@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.cjs.js CHANGED
@@ -1926,10 +1926,21 @@ var LocaleProvider = ({ children, ...rest }) => {
1926
1926
 
1927
1927
  // src/i18n/index.ts
1928
1928
  var DEFAULT_LNG = "zh-CN";
1929
+ function normalizeLang(lng) {
1930
+ const normalized = String(lng || "").trim().toLowerCase();
1931
+ if (!normalized) return DEFAULT_LNG;
1932
+ if (normalized.startsWith("zh")) return "zh-CN";
1933
+ if (normalized.startsWith("en")) return "en-US";
1934
+ if (normalized.startsWith("ja")) return "ja-JP";
1935
+ }
1936
+ function getNavigatorLang() {
1937
+ if (typeof navigator === "undefined") return DEFAULT_LNG;
1938
+ return normalizeLang(navigator.language);
1939
+ }
1929
1940
  var LANG_KEY = "ns-lang";
1930
1941
  var langManager = createTokenManager({ key: LANG_KEY });
1931
1942
  function getLang() {
1932
- return langManager.get() || DEFAULT_LNG;
1943
+ return langManager.get() || getNavigatorLang();
1933
1944
  }
1934
1945
  var i18n = i18next.createInstance({
1935
1946
  lng: DEFAULT_LNG,
@@ -1954,11 +1965,12 @@ function initI18n(options = {}) {
1954
1965
  return i18n;
1955
1966
  }
1956
1967
  function switchLang(lng, reload = false) {
1957
- langManager.set(lng);
1968
+ const nextLang = normalizeLang(lng);
1969
+ langManager.set(nextLang);
1958
1970
  if (reload) {
1959
1971
  window?.top?.location.reload();
1960
1972
  } else {
1961
- i18n.changeLanguage(lng);
1973
+ i18n.changeLanguage(nextLang);
1962
1974
  }
1963
1975
  }
1964
1976
  function useTranslation(namespace) {