【问题标题】:Next-i18next serverSideTranslations initialI18nStore missing localesNext-i18next serverSideTranslations initialI18nStore 缺少语言环境
【发布时间】:2021-08-14 23:31:48
【问题描述】:
export const getStaticProps: GetStaticProps = async (context) => {
  const { locale } = context;
  const translations = await serverSideTranslations(locale, ["common"]);

  console.log(translations._nextI18Next.initialI18nStore)
}

如果是这种情况,则仅显示当前语言环境和默认语言环境中的那些。

这是我的next-18next.config.js 文件:

const path = require("path");

module.exports = {
  i18n: {
    defaultLocale: "de",
    locales: ["de", "en", "fr", "it"],
  },
  localePath: path.resolve("./src/locales"),
};

我的locales 看起来像这样:

我想在initialI18nStore 中找到我在配置中定义的所有语言环境。为什么没有显示所有这些?

【问题讨论】:

    标签: javascript reactjs next.js react-i18next next-i18next


    【解决方案1】:

    您可以从getStaticProps 中的context 对象访问包含所有支持的语言环境的locales 数组。

    export const getStaticProps: GetStaticProps = async (context) => {
      const { locale, locales } = context;
      const translations = await serverSideTranslations(locale, ["common"]);
    
      console.log(locales); // Will log `['de', 'en', 'fr', 'it']`
    }
    

    【讨论】:

      【解决方案2】:

      我遇到了同样的问题。我曾经使用serverSideTranslations(locale, ["common"]) 获取所有语言环境翻译字符串,但突然间我开始只接收当前语言环境的翻译和默认值。我做了一个解决方法来获取所有翻译:

      export const getStaticProps: GetStaticProps = async (context) => {
        const { locales } = context;
      
        for (const locale of locales) {
          const currentLocaleTranslation = await serverSideTranslations(locale, ['common']);
      
          // do something with your translations
        }
      }
      

      【讨论】:

        猜你喜欢
        • 2021-07-04
        • 2021-06-19
        • 2020-11-24
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-03-07
        • 2020-09-26
        • 2020-09-26
        相关资源
        最近更新 更多