@zero-library/common 3.2.1 → 3.2.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.d.mts CHANGED
@@ -1535,7 +1535,7 @@ type I18nResources = Record<string, Record<string, NamespaceResource>>;
1535
1535
  /** 语言存储键 */
1536
1536
  declare const LANG_KEY = "ns-lang";
1537
1537
  /**
1538
- * 按优先级获取语言:URL 参数 → localStorage → 默认 zh-CN
1538
+ * 按优先级获取语言:URL 参数 → localStorage → navigator.language → 默认 zh-CN
1539
1539
  * 命中 URL 参数时顺带持久化,避免跳转后语言回退
1540
1540
  */
1541
1541
  declare function getLang(): string;
package/dist/index.d.ts CHANGED
@@ -1535,7 +1535,7 @@ type I18nResources = Record<string, Record<string, NamespaceResource>>;
1535
1535
  /** 语言存储键 */
1536
1536
  declare const LANG_KEY = "ns-lang";
1537
1537
  /**
1538
- * 按优先级获取语言:URL 参数 → localStorage → 默认 zh-CN
1538
+ * 按优先级获取语言:URL 参数 → localStorage → navigator.language → 默认 zh-CN
1539
1539
  * 命中 URL 参数时顺带持久化,避免跳转后语言回退
1540
1540
  */
1541
1541
  declare function getLang(): string;
package/dist/index.esm.js CHANGED
@@ -1876,10 +1876,21 @@ var LocaleProvider = ({ children, ...rest }) => {
1876
1876
 
1877
1877
  // src/i18n/index.ts
1878
1878
  var DEFAULT_LNG = "zh-CN";
1879
+ function normalizeLang(lng) {
1880
+ const normalized = String(lng || "").trim().toLowerCase();
1881
+ if (!normalized) return DEFAULT_LNG;
1882
+ if (normalized.startsWith("zh")) return "zh-CN";
1883
+ if (normalized.startsWith("en")) return "en-US";
1884
+ if (normalized.startsWith("ja")) return "ja-JP";
1885
+ }
1886
+ function getNavigatorLang() {
1887
+ if (typeof navigator === "undefined") return DEFAULT_LNG;
1888
+ return normalizeLang(navigator.language);
1889
+ }
1879
1890
  var LANG_KEY = "ns-lang";
1880
1891
  var langManager = createTokenManager({ key: LANG_KEY });
1881
1892
  function getLang() {
1882
- return langManager.get() || DEFAULT_LNG;
1893
+ return langManager.get() || getNavigatorLang();
1883
1894
  }
1884
1895
  var i18n = createInstance({
1885
1896
  lng: DEFAULT_LNG,
@@ -1904,11 +1915,12 @@ function initI18n(options = {}) {
1904
1915
  return i18n;
1905
1916
  }
1906
1917
  function switchLang(lng, reload = false) {
1907
- langManager.set(lng);
1918
+ const nextLang = normalizeLang(lng);
1919
+ langManager.set(nextLang);
1908
1920
  if (reload) {
1909
1921
  window?.top?.location.reload();
1910
1922
  } else {
1911
- i18n.changeLanguage(lng);
1923
+ i18n.changeLanguage(nextLang);
1912
1924
  }
1913
1925
  }
1914
1926
  function useTranslation(namespace) {