You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

获取i18next实例支持语言列表的标准方式是什么?

问题:获取i18next当前支持的所有语言列表

在React应用中使用i18next/react-i18next,已按常规配置多语言资源:

i18n
  .use(LanguageDetector)
  .use(initReactI18next)
  .init({
    fallbackLng: "en",
    resources: {
      en: { ... },
      de: { ... },
      pl: { ... },
      // ...
    },
  });

需要获取该i18next实例当前支持的语言列表,用于制作语言选择器,确定可传入i18next.changeLanguage()的参数。由于i18next支持运行时修改资源,语言列表可能已变更,因此希望从i18next直接获取真实状态。

最初尝试用i18next.languages,但它仅返回当前活跃语言,无法体现所有可用语言。目前使用Object.keys(i18n.services.resourceStore.data)获取列表,虽能反映变更,但感觉像非官方取巧方式,请问是否有更标准的做法?


标准解决方案

i18next提供了官方认可的API来获取所有已加载的语言列表,无需直接访问内部私有属性:

  • i18next v22+ 推荐用法:使用i18next.getLanguages()方法,这是专门新增的公开API,直接返回当前所有可用语言的字符串数组,完全适配运行时资源变更场景:

    const availableLanguages = i18next.getLanguages();
    // 返回示例:["en", "de", "pl"]
    
  • 兼容旧版本(v22以下):通过resourceStore提供的公开方法getLanguages()获取,比直接读取data属性更符合API规范:

    const availableLanguages = i18next.services.resourceStore.getLanguages();
    

这两种方式都能准确反映i18next实例的实时语言资源状态,属于官方推荐的标准用法,比直接访问内部数据结构更可靠。

内容的提问来源于stack exchange,提问作者Autumn Leaf

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.26 06:32:06