i18next::pluralResolver:您的环境似乎与 Intl API 不兼容,请使用 Intl.PluralRules 填充

sas*_*arn 62 i18next react-native

请帮我。

错误 -

i18next::pluralResolver:您的环境似乎与 Intl API 不兼容,请使用 Intl.PluralRules 填充。将回退到兼容性JSON v3 格式处理

代码 -

    import i18n from "i18next";
    import english from './englist.json';
    import thai from './thai.json';
    import { initReactI18next } from "react-i18next";
    i18n.use(initReactI18next).init({
        lng:'th',
        fallbackLng: 'en',
        resources:{
            en:english,
            th:thai
        },
        interpolation: {
            escapeValue: false 
        },
        react:{
            useSuspense:false,
        }
    });
    export default i18n;
Run Code Online (Sandbox Code Playgroud)

Chr*_*yen 194

看起来像是 Android 上的问题。

i18n.use(initReactI18next).init({
  compatibilityJSON: 'v3', <--- add this line.
  lng:'th',
  fallbackLng: 'en',
  resources:{
    en:english,
    th:thai
  },
  interpolation: {
    escapeValue: false 
  },
  react: {
    useSuspense:false,
 }
});
Run Code Online (Sandbox Code Playgroud)

它应该可以解决您的问题。您可能需要检查一下

玩得开心。

  • 仅当您不需要/使用复数形式时这才有帮助。如果您需要复数,请参阅我的答案并使用 intl-pluralrules 包。 (12认同)

ken*_*hin 85

我也遇到了同样的问题,使用该compatibilityJSON V3模式意味着这会在我的 IOS 模拟器上出现问题,因为我实际上使用的是复数形式,并且使用的是i18n-next的最新版本(v21)

就我而言,我可以通过填充来修复它intl-pluralrules

看看https://github.com/eemeli/intl-pluralruleshttps://www.i18next.com/misc/migration-guide

安装

npm install intl-pluralrules
Run Code Online (Sandbox Code Playgroud)

聚合物填料

要用作 polyfill,只需导入它以确保它Intl.PluralRules在您的环境中可用:

npm install intl-pluralrules
Run Code Online (Sandbox Code Playgroud)

如果Intl.PluralRules已经存在,包含一个selectRange()方法,并且支持多个语言环境,则不会加载polyfill。

  • 这应该被标记为正确答案 (3认同)