reactjs - React-i18next 未在使用 create-react-app 创建的 React 应用程序中加载 json 翻译文件

标签 reactjs webpack i18next react-i18next

我使用 create-react-app 创建了一个 React 应用程序

我想实现翻译,我发现 react-i18next

安装所需的软件包后,我设置了 i18n.js 配置文件:

import i18n from 'i18next';
import LanguageDetector from 'i18next-browser-languagedetector';
import XHR from 'i18next-xhr-backend';

i18n
    .use(XHR)
    .use(LanguageDetector)
    .init({
      debug: true,
      lng: 'en',
      nsSeparator: false,
      keySeparator: false,
      fallbackLng: false,
      backend: {
        loadPath: 'locales/{{lng}}/{{ns}}.json'
      }
    });


export default i18n;

我收到此错误:i18next::backendConnector:加载语言的命名空间翻译失败,无法将 locales/en/translation.json 解析为 json

发生这种情况是因为 webpack 找不到 json 文件,而是返回了 index.html 文件内容:

enter image description here

最佳答案

我不确定您将区域设置文件放在哪里,但我看到两个问题:

  1. 您已指定相对 URL,因此加载 /kiosk/parents/locales 而不是 /locales。您需要在加载路径的开头添加斜杠。

  2. 要让 Create React App 提供静态文件,您需要将它们放入 public 文件夹中。其用户指南对此进行了更详细的描述。因此,请确保 locales 位于项目根目录的 public 文件夹内。

希望这有帮助!

关于reactjs - React-i18next 未在使用 create-react-app 创建的 React 应用程序中加载 json 翻译文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43898155/

相关文章:

javascript - 通过计时器从状态中删除项目

reactjs - ReactJS 如何在组件之间传递数据?

node.js - 如何修复 "FATAL ERROR: Ineffective mark-compacts near heap limit Allocation failed - JavaScript heap out of memory"错误

javascript - React - 追加而不是替换状态

javascript - 导出函数和 module.exports 有什么区别?

javascript - 如何让我的 NPM 模块正确安装其依赖项?

reactjs - 如何在 React Native 中使用 i18next 显示文本和超链接

reactjs - 如何在 Next-i18next/React i18next 中插入一个 Link 组件来改变文本中的位置

css - 使用 Webpack 和 font-face 加载字体

javascript - i18next 插值中的 React 组件显示为 [object Object]