React i18n,检查翻译是否存在?

12

有没有一种方法在React应用程序上检查语言环境是否存在?像布尔值true/false一样

2个回答

26

是的,您可以使用 i18n.exists() 方法检查您的语言变量是否存在:

您可以从 useTranslation 钩子中提取 i18n

const { t, i18n } = useTranslation();

例如,调用i18n.exists('my.key')

i18n.exists("common.values.active")

https://www.i18next.com/overview/api#exists


目前你的回答不够清晰,请编辑并添加更多细节,以帮助其他人理解它如何回答问题。你可以在帮助中心找到有关如何编写好答案的更多信息。 - Community

1

你可以使用onLoaded

i18next.on('loaded', function(loaded) {})

获取已加载资源时出错。

并且 在加载失败时

i18next.on('failedLoading', function(lng, ns, msg) {})

如果加载资源失败(在内置重试算法之后),则会触发错误。

对于React应用程序,您可以使用useTranslation钩子来获取ready布尔值。

// additional ready will state if translations are loaded or not

const { t, i18n, ready } = useTranslation('ns1', { useSuspense: false });

就我个人而言,我在我的根文件中使用ready,可以是index.jsApp.js或任何你有的文件,并检查翻译是否准备好,然后显示我的应用程序。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接