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

问题描述 投票:0回答:2

请帮助我。

错误-

i18next::pluralResolver:您的环境似乎与 Intl API 不兼容,请使用 Intl.PluralRules polyfill。将回退到兼容性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;
react-native i18next
2个回答
205
投票

看起来像是 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,
 }
});

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

玩得开心。


92
投票

我也遇到了同样的问题,使用

compatibilityJSON V3
模式意味着这会在我的 IOS 模拟器上出现问题,因为我实际上使用的是复数形式,并且使用的是 i18n-next

的最新版本(v21)

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

intl-pluralrules

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

安装

npm install intl-pluralrules

Polyfill

要用作填充,只需导入它以确保

Intl.PluralRules
是 在您的环境中可用:

import 'intl-pluralrules'

如果

Intl.PluralRules
已经存在, 包括一个
selectRange()
方法, 并支持多个语言环境, Polyfill 将不会被加载。

© www.soinside.com 2019 - 2024. All rights reserved.