@orderly.network/i18n 2.11.0 → 3.0.0-beta.1

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.js CHANGED
@@ -1494,15 +1494,20 @@ var languageDetector = new LanguageDetector__default.default(null, {
1494
1494
  lookupCookie: i18nCookieKey,
1495
1495
  caches: ["localStorage", "cookie"]
1496
1496
  });
1497
- var i18n = i18next.createInstance({
1498
- // lng: defaultLng,
1499
- fallbackLng: defaultLng,
1500
- // debug: true,
1501
- interpolation: {
1502
- escapeValue: false
1503
- },
1497
+ function createI18nInstance(options) {
1498
+ return i18next.createInstance({
1499
+ // lng: defaultLng,
1500
+ fallbackLng: defaultLng,
1501
+ // debug: true,
1502
+ interpolation: {
1503
+ escapeValue: false
1504
+ },
1505
+ ...options
1506
+ }).use(languageDetector);
1507
+ }
1508
+ var i18n = createI18nInstance({
1504
1509
  resources
1505
- }).use(languageDetector);
1510
+ });
1506
1511
  i18n.init();
1507
1512
  var i18n_default = i18n;
1508
1513
 
@@ -1614,8 +1619,7 @@ var LocaleProvider = (props) => {
1614
1619
  supportedLanguages,
1615
1620
  onLanguageChanged,
1616
1621
  convertDetectedLanguage,
1617
- onLanguageBeforeChanged,
1618
- onLocaleChange
1622
+ onLanguageBeforeChanged
1619
1623
  } = props;
1620
1624
  const [languages, setLanguages] = react.useState(defaultLanguages);
1621
1625
  const backendRef = react.useRef(new Backend(backend));
@@ -1666,9 +1670,8 @@ var LocaleProvider = (props) => {
1666
1670
  const languageChangedHandle = react.useCallback(
1667
1671
  async (lang) => {
1668
1672
  onLanguageChanged?.(lang);
1669
- onLocaleChange?.(lang);
1670
1673
  },
1671
- [onLanguageChanged, onLocaleChange]
1674
+ [onLanguageChanged]
1672
1675
  );
1673
1676
  const memoizedValue = react.useMemo(() => {
1674
1677
  return {
@@ -1691,7 +1694,9 @@ function useTranslation(ns, options) {
1691
1694
  });
1692
1695
  }
1693
1696
  function useLocaleCode() {
1694
- const [loacaleCode, setLoacaleCode] = react.useState(i18n_default.language);
1697
+ const [loacaleCode, setLoacaleCode] = react.useState(
1698
+ parseI18nLang(i18n_default.language)
1699
+ );
1695
1700
  react.useEffect(() => {
1696
1701
  const handleLanguageChange = (lng) => {
1697
1702
  setLoacaleCode(lng);
@@ -1704,6 +1709,32 @@ function useLocaleCode() {
1704
1709
  return loacaleCode;
1705
1710
  }
1706
1711
 
1712
+ // src/external/utils.ts
1713
+ var preloadDefaultResource = (messages) => {
1714
+ i18n_default.addResourceBundle(defaultLng, defaultNS, messages, true, true);
1715
+ };
1716
+ var asyncAddResource = async (localeCode, resources2) => {
1717
+ const resource = await resources2(localeCode, defaultNS);
1718
+ i18n_default.addResourceBundle(localeCode, defaultNS, resource, true, true);
1719
+ };
1720
+ var ExternalLocaleProvider = (props) => {
1721
+ const { resources: resources2 } = props;
1722
+ const localeCode = useLocaleCode();
1723
+ react.useEffect(() => {
1724
+ if (typeof resources2 === "function") {
1725
+ asyncAddResource(localeCode, resources2);
1726
+ return;
1727
+ }
1728
+ if (resources2) {
1729
+ Object.entries(resources2).forEach(([locale, messages]) => {
1730
+ i18n_default.addResourceBundle(locale, defaultNS, messages, true, true);
1731
+ });
1732
+ return;
1733
+ }
1734
+ }, [localeCode, resources2]);
1735
+ return /* @__PURE__ */ jsxRuntime.jsx(jsxRuntime.Fragment, { children: props.children });
1736
+ };
1737
+
1707
1738
  Object.defineProperty(exports, "createInstance", {
1708
1739
  enumerable: true,
1709
1740
  get: function () { return i18next.createInstance; }
@@ -1712,10 +1743,12 @@ Object.defineProperty(exports, "i18next", {
1712
1743
  enumerable: true,
1713
1744
  get: function () { return i18next__default.default; }
1714
1745
  });
1746
+ exports.ExternalLocaleProvider = ExternalLocaleProvider;
1715
1747
  exports.I18nProvider = I18nProvider;
1716
1748
  exports.LocaleContext = LocaleContext;
1717
1749
  exports.LocaleEnum = LocaleEnum;
1718
1750
  exports.LocaleProvider = LocaleProvider;
1751
+ exports.createI18nInstance = createI18nInstance;
1719
1752
  exports.defaultLanguages = defaultLanguages;
1720
1753
  exports.defaultLng = defaultLng;
1721
1754
  exports.defaultNS = defaultNS;
@@ -1726,6 +1759,7 @@ exports.i18n = i18n_default;
1726
1759
  exports.i18nCookieKey = i18nCookieKey;
1727
1760
  exports.i18nLocalStorageKey = i18nLocalStorageKey;
1728
1761
  exports.parseI18nLang = parseI18nLang;
1762
+ exports.preloadDefaultResource = preloadDefaultResource;
1729
1763
  exports.removeLangPrefix = removeLangPrefix;
1730
1764
  exports.useLocaleCode = useLocaleCode;
1731
1765
  exports.useLocaleContext = useLocaleContext;