首页 > 解决方案 > 如何从 i18next 获取 localeCompare 的语言环境?

问题描述

我们的项目使用i18next进行翻译,我目前需要使用String.prototype.localeCompare对字符串进行排序

我将如何从 i18next获取类似'en', 'fr',等的代码?'en-US'i18next 是否默认使用特定代码?我需要使用 i18next 实例还是默认导出?

我相信这些可能被称为“BCP 47 语言标签”

谢谢

标签: javascripti18next

解决方案


好的,所以简短的答案是您只需使用i18next.language

在我们的例子中,我们使用正确的实例很重要,而不仅仅是默认导入。我们还使用了一个附加层react-i18next,如下所示。

import { I18nContext } from "react-i18next";

...

const { i18n } = useContext(I18nContext);

...

return isLocaleCompareSupported()
    ? aText.localeCompare(bText, i18n.language)
    : aText.localeCompare(bText);


推荐阅读