i18next 翻译外部组件

2024-04-20

我是 i18next 的新手,正在尝试本地化/翻译网站。一切都适用于组件内部的翻译,但在外部(意味着带有 i18n.t() 的 json 文件)它不会检索所需的信息,而是显示默认值。

我正在使用 create-react-app ,它是文件夹引用的默认设置,也许这​​是关键问题,但我无法找出原因和要更改的内容。

import i18n from '../../i18n';


const navigation = [
    {
        'id'      : 'dashboard',
        'title'   : i18n.t('analytics.title', 'NOT FOUND'),
        'type'    : 'group',
        'icon'    : 'apps',

    }
  ]

export default navigation;

这是 i18n.js 文件的设置:

import i18n from "i18next";
import Backend from 'i18next-xhr-backend';
import { initReactI18next } from 'react-i18next';
import detector from "i18next-browser-languagedetector";

i18n

  .use(detector)
  .use(Backend)
  .use(initReactI18next)
  .init({
    lng: localStorage.getItem('language') || 'en',
    backend: {
      /* translation file path */
      loadPath: '/assets/i18n/{{ns}}/{{lng}}.json'
    },
    fallbackLng: ['en', 'se', 'da'],
    debug: true,
    ns: ['translations'],
    defaultNS: 'translations',
    keySeparator: false,
    interpolation: {
      escapeValue: false,
      formatSeparator: ','
    },
    react: {
      wait: true
    }

  })

  export default i18n;

对于index.js:

import 'typeface-muli';
import './react-table-defaults';
import './react-chartjs-2-defaults';
import { I18nextProvider } from "react-i18next";
import i18n from "./i18n";
import './styles/index.css';
import React from 'react';
import ReactDOM from 'react-dom';
import * as serviceWorker from './serviceWorker';
import App from 'app/App';

 ReactDOM.render(
   <I18nextProvider i18n={i18n}>
   <App />
   </ I18nextProvider>
   ,
   document.getElementById('root'));

serviceWorker.unregister();

我只是得到默认:“未找到”...


您正在使用后端服务在浏览器中异步获取翻译。导入时i18n您可能期望翻译很容易获得,但事实并非如此 -i18n.init也是一个异步方法(如果您尝试并等待它,您将能够利用t功能)。

一种可能的方法是定义翻译键:

const navigation = [
  {
    ...
    'title_key': 'analytics.title',
    ...
  }
]

然后将其传递给t在组件内:

navigation.map(({ title_key }) => <li>t(title_key)</li>)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

i18next 翻译外部组件 的相关文章

随机推荐

  • 如何处理Android应用程序中标记的双击

    我在地图上显示车辆 当我单击车辆时 它会显示信息窗口 但我需要双击车辆 然后它会转到新页面 我不知道该怎么做 请帮助我 这是我的代码 public class MapsActivity extends FragmentActivity im
  • 如何将其制作为左/右滑动 div

    下面提供的是我的 html 和 css 代码的片段 我不仅需要在 html 和 css 中添加 而且还需要在 javascript 中添加什么 才能使其以滑入 滑出的方式工作 向右打开 和 左关闭 div div a href Edit P
  • 创建后缀号码球拍

    我正在尝试在 Racket 中试验我可以做的事情 并且我想在数字后加上字母 对于这个例子 我只想代表10000 as 10K and 1000000 as 1M 有没有办法 用宏或其他方式 我可以扩展1M to 1 1000000 或者有什
  • 如何模块化(大型)Java 应用程序?

    我手头有一个相当大的 几个 MLOC 应用程序 我想将其拆分为更易于维护的单独部分 目前该产品由大约 40 个 Eclipse 项目组成 其中许多项目具有相互依赖性 仅此一点就使得连续构建系统变得不可行 因为每次签入都必须进行大量重建 有没
  • 如何允许函数返回类型未定义

    我认为typescript有很多不明显的地方 使得它不严格也不正确 我想使用 undefined 作为函数返回类型 因为实际上它是未定义的 不是 void 或其他虚构类型 但是当我写下这个 function myFunction undef
  • Java 7 keytool 椭圆曲线加密

    我正在尝试使用带有 keyalg ECC 的 keytool 创建密钥库 这应该是可能的 根据Oracle http www oracle com technetwork java javase jdk7 relnotes 418459 h
  • UIImagePickerController(使用相机作为源)在 iPad2 上自动旋转,我该如何停止它?

    我正在尝试编写一个具有某些相机功能的应用程序 并使用覆盖视图用图像来装饰它 这就是我实现该应用程序的方式 我将 UIImagePickerController 用于用户相机接收的内容 并将 UIImageView 作为子视图添加到camer
  • 如何测试点是否位于其表面由点云定义的 3D 形状内?

    我有一个点的集合 这些点描述了一个大致呈球形的形状的表面 并且我需要一种方法来确定是否有任何其他给定点位于该形状内 我之前一直将形状 近似为精确的球体 但事实证明这太不准确 我需要一种更准确的方法 简单性和速度比完全精确性更有利 一个好的近
  • Ant 任务:使用排除参数

    得到以下 build xml 字符串
  • Spring 4.0.6 与quartz 1.8.6:setCronExpression 方法未公开给 CronTriggerBean 类

    我使用的是 spring 版本 4 0 6 和quartz 版本 1 8 6 问题是 当我尝试使用配置类而不是 xml 带有 Configuration 注释 时 我无法使用该方法设置 cron 表达式 CronTriggerBean ct
  • 如何获取位类型列的计数?

    我正在尝试使用SEDE https data stackexchange com 确定总共授予了多少个基于标签的徽章 我的典型策略是总结 select sum TagBased from Badges 不幸的是 自从TagBased是一个位
  • 在 table() 结果中包含零计数级别

    我有一个向量 y 我使用以下方法计算不同的值table y lt c 0 0 1 3 4 4 table y y 0 1 3 4 2 1 1 2 但是 我还希望结果包含零个 2 和零个 5 的事实 我可以用吗table 为了这 期望的结果
  • 如何在 Meteor 中将 forbidClientAccountCreation 设置为 false?

    Meteor 中的默认设置不允许从客户端创建帐户 这在许多应用程序中出于安全目的是有意义的 但我正在构建一个博客 需要允许用户创建一个帐户 以便他们可以发表评论 github stackoverflow 和各种教程上的典型响应似乎建议将以下
  • 错误 403:向 Cloud PubSub 发送测试消息时出错:用户无权执行此操作

    我想设置推送通知手表 但收到错误响应 我需要什么授权 Request Google API client getClient POST request ch curl init https www googleapis com gmail
  • 更新actionButton的标签为闪亮

    我知道类似的question https stackoverflow com questions 27326929 how to update button labels in r shiny已经回答了 但是该解决方案在字符串输入时创建一个
  • 打字稿感叹号括号[重复]

    这个问题在这里已经有答案了 我在以下位置看到过这个声明有角度的网站 https angular io api common AsyncPipe this resolve hi there 我不知道是什么 可能意味着在这种情况下 我遇到过非空
  • 在Python中删除小数点后的尾随零

    我正在使用Python 2 7 我需要更换 0 字符串在末尾 比如说 a 2 50 a a replace 0 我得到 a 2 5 我对这个结果很满意 现在a 200 a a replace 0 我得到 a 2 这个输出是按照我同意的设计的
  • 如何从文本文件中逐行读取并按字符分割行? [复制]

    这个问题在这里已经有答案了 我正在写一个 Bash 脚本 我的问题是我想从文本文件中逐行读取并按字符分割行 我想要纯 Bash 代码 假设我在文本文件中有这个 格式 姓名 用户名 代码 John Doe johnDoe 534092 Joh
  • 识别并解决 Oracle ITL 死锁

    我有一个 Oracle DB 包 它经常导致我认为是 ITL 感兴趣的事务列表 死锁 跟踪文件的相关部分如下 Deadlock graph Blocker s Waiter s Resource Name process session h
  • i18next 翻译外部组件

    我是 i18next 的新手 正在尝试本地化 翻译网站 一切都适用于组件内部的翻译 但在外部 意味着带有 i18n t 的 json 文件 它不会检索所需的信息 而是显示默认值 我正在使用 create react app 它是文件夹引用的