首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >用React解决i18next缺少的关键问题

我试图在我的网站上实现一个多语言的网站,但我得到的是,我错过了一个关键,我真的不知道为什么。

这是我的i18n配置文件

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
import i18n from 'i18next';
import { initReactI18next } from 'react-i18next';

import Backend from 'i18next-http-backend';
import LanguageDetector from 'i18next-browser-languagedetector';

i18n
  .use(Backend)
  .use(LanguageDetector)
  .use(initReactI18next)
  .init({
    lng: 'en',
    resources: {
      en: {
        translation: { key: 'value' },
      },
      es: {
        translation: { key: 'value' },
      },
    },
    fallbackLng: 'en',
    debug: true,
    ns: ['translations'],
    defaultNS: 'translations',
    keySeparator: false,
    interpolation: {
      escapeValue: false,
      formatSeparator: ',',
    },
    react: {
      wait: true,
      useSuspense: false,
    },
  });

export default i18n;

我的index.jsx看起来像这样

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
import React, { Suspense } from 'react';
import ReactDOM from 'react-dom';
import { BrowserRouter, Route, Routes } from 'react-router-dom';
import { I18nextProvider } from 'react-i18next';
import Home from './pages/Home';
import Gallery from './pages/Gallery';
import NotFound from './pages/404';
import UnderConstruction from './pages/UnderConstruction';
import i18n from './i18n';

ReactDOM.render(
  <React.StrictMode>
    <I18nextProvider i18n={i18n}>
      <Suspense fallback={null}>
        <BrowserRouter>
          <Routes>
            <Route path="/" element={<Home />} />
            <Route path="/gallery" element={<Gallery />} />
            <Route path="/about-us" element={<UnderConstruction />} />
            <Route path="*" element={<NotFound />} />
          </Routes>
        </BrowserRouter>
      </Suspense>
    </I18nextProvider>
  </React.StrictMode>,
  document.getElementById('root'),
);

我试着用这样的翻译

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
import '../assets/scss/header.scss';
import { useEffect, useState } from 'react';
import { useTranslation, withTranslation } from 'react-i18next';
import { ReactComponent as MenuIcon } from '../assets/images/menu.svg';
import Logo from '../assets/images/dmeh-logo.jpg';
import LangSelector from './LangSelector';

function Navbar({ t }) {
  const [click, setClick] = useState(false);
  const handleClick = () => setClick(!click);
  // const { t } = useTranslation();
  // console.log(t);
  const [show, setShow] = useState(false);
  const controlNavbar = () => {
    if (window.scrollY <= 100) {
      setShow(false);
    } else {
      setShow(true);
    }
  };

  useEffect(() => {
    window.addEventListener('scroll', controlNavbar);
    return () => {
      window.removeEventListener('scroll', controlNavbar);
    };
  }, []);

  return (
    <nav className={`navbar ${show && 'nav__shrink'}`}>
      <div className="logo-nav">
        <div className="logo-container">
          <div className="logo-navbar">
            <a href="/">
              <img src={Logo} alt="" />
            </a>
          </div>
        </div>
      </div>

      <div className={click ? 'menu active' : 'menu'}>
        <LangSelector click={click} />
        <div className="categories-options">
          <ul className={click ? 'nav-options active' : 'nav-options'}>
            <li className="nav-option">
              {/* eslint-disable-next-line jsx-a11y/anchor-is-valid */}
              <a href="/#services">
                {' '}
                {t('key')}
                {' '}
              </a>
            </li>
          </ul>
        </div>
      </div>
      <div className="mobile-menu">
        <button type="button" onClick={handleClick}>
          <MenuIcon className="flag-icon" />
        </button>
      </div>
    </nav>
  );
}

export default withTranslation()(Navbar);

我已经尝试过没有withTranslation,但仍然什么也没有。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
i18next::translator: missingKey en translations key key

这是我收到的一条信息,另一条是

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
It seems you are still using the old wait option, you may migrate to the new useSuspense behaviour.

但是最后一个只是来自控制台的警告。

提前谢谢你。

EN

回答 1

Stack Overflow用户

发布于 2022-06-28 21:02:45

设置正确的命名空间:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
ns: ['translation'],
defaultNS: 'translation',
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72794402

复制
相关文章
Web应用程序测试:Web测试的8步指南
本文翻译自:https://www.guru99.com/web-application-testing.html
小锋学长生活大爆炸
2020/08/13
2.6K0
Web应用程序测试:Web测试的8步指南
基于Python的Web应用程序的Web服务器比较
在本文中,我们将讨论三个主要内容:Python,Web服务器,最重要的是两者之间的比较。
用户2188327
2020/07/03
2.1K0
基于Python的Web应用程序的Web服务器比较
基于Flask的Web应用程序插件式结构
        事实上,很多应用程序基于插件式结构开发,可以很方便了扩展软件的功能,并且这些功能完全可以依托于第三方开发者,只要提供好接口和完备文档,比如wordpress、谷歌火狐浏览器等。
py3study
2020/01/20
8390
Webpack单元测试,e2e测试
此篇文章是续 webpack多入口文件、热更新等体验,主要说明单元测试与e2e测试的基本配置以及相关应用。 一、单元测试 实现单元测试框架的搭建、es6语法的应用、以及测试覆盖率的引入。 1. 需要安装的项目: jasmine:单元测试库 karma:测试框架,配置选择phantomjs浏览器 karma-jasmine:操作jasmine的插件 karma-webpack:webpack与karma的连接 mock:用于数据模拟,用'npm install --save-dev mockjs'安装 kar
sam dragon
2018/01/17
2.4K0
基于nGrinder下的web网站性能测试
nGrinder 看名字估计很多人就猜到跟Grinder有关系。nGrinder是韩国一家公司居于Grinder二次开发的一个性能平台。nGrinder具有 开源、易用、高可用、高扩展等特性,在Grinder基础上实现了多测试并行,通过web管理,实现了集群,同时支持Groovy和Jython脚本语言,(官方上说,Groovy的性能会更好),也实现了对目标服务的监控以及插件的扩展,简单实现更多用户虚拟用户并发(官方上说,8G内存的4核cpu机器可以支持高到8000个虚拟用户)
用户6367961
2019/09/29
1.3K0
180多个Web应用程序测试示例测试用例
180多个Web应用程序测试示例测试用例 假设:假设您的应用程序支持以下功能 各种领域的表格 儿童窗户 应用程序与数据库进行交互 各种搜索过滤条件和显示结果 图片上传 发送电子邮件功能 数据导出功能 通用测试方案 1.所有必填字段均应经过验证,并以星号(*)表示。 2.验证错误消息应正确显示在正确的位置。 3.所有错误消息应以相同的CSS样式显示(例如,使用红色) 4.常规确认消息应使用CSS样式而不是错误消息样式(例如,使用绿色)显示 5.工具提示文本应有意义。 6.下拉字段的第一项应为空白或诸如“选择”
用户7466307
2020/06/17
8.3K0
20条Web测试基于实际测试的功能测试点总结
1、功能相关性:删除/增加一项会不会对其他项产生影响,如产品影响,这些影响是否正确(常见的错误是:增加某个数据记录后,如果该记录某个字段值内容过长,可能在查询的时候让数据例表变形)
程序员白楠楠
2021/08/17
1.1K0
E2E 测试容器化实践
在互联网最初之时,没有任何容器化的概念,那么刚开始的时候是怎样开发软件或者是网站的吗?那时就是计算机便是服务器,就是一个简单的静态网页,没有复杂的业务逻辑。
DevOps时代
2018/08/01
1.6K0
E2E 测试容器化实践
Web应用程序安全性测试指南
由于存储在Web应用程序中的数据量巨大,并且Web上的事务数量增加,因此,对Web应用程序进行适当的安全测试正变得越来越重要。
用户7466307
2020/06/17
1.2K0
Newbe.Pct-Web E2E 自动化测试脚手架
本项目为测试工作者提供了一套“简易的 Web E2E 自动化测试脚手架”。测试工作者可以通过该脚手架,实现编写一些简单的 Web E2E 自动化测试。
newbe36524
2020/03/16
6590
如何知道我们的E2E测试覆盖率?
在单元测试中,很容易知道已经覆盖了哪些代码区域。但是我们能及时知道API调用的动态范围吗?我们一直在思考,既然已经编写了许多 E2E 测试用例,但是我们应该继续编写多少剩余测试?
ThoughtWorks
2020/09/25
1.5K0
jenkins(二) 创建和配置基于Mvven的JEE WEB应用程序
一 构建基于Maven模板的任务 二:填写远程代码仓库地址,遇到如下错误
爱明依
2019/03/12
5160
web安全测试_web测试的主要测试内容
Web安全测试就是要提供证据表明,在面对敌意和恶意输入的时候,web系统应用仍然能够充分地满足它的需求
全栈程序员站长
2022/09/29
1.1K0
web安全测试_web测试的主要测试内容
使用Angular CLI进行单元测试和E2E测试
单元测试. angular cli使用karma进行单元测试. 首先执行ng test --help或者ng test -h查看帮助. 执行测试的话就执行ng test即可, 它会执行项目里所有的.s
solenovex
2018/03/29
2.8K0
使用Angular CLI进行单元测试和E2E测试
Windows c++应用程序通用日志组件(组件及测试程序下载)
引言   众所周知,在调试、跟踪和执行应用程序的过程中,程序的日志能为这些工作提供大量有价值的运行信息。因此,程序的日志对应用程序的运行、维护至关重要。   在如何记录程序日志方面,通常有三种选择:   1、采用Log4CXX等公共开源日志组件:这类日志组件的特点是跨平台且功能比较强大,例如可以把日志发往另一台服务器或记录到数据库中等; 另外,可配置性较高,可以通过配置文件或程序代码对日志进行很多个性化设置。但从另外一个角度看,由于这些优点往往也导致了在使用方面的缺点。首先,对于 一般应用程序来说,它们并不
猿人谷
2018/01/17
1.4K0
Windows c++应用程序通用日志组件(组件及测试程序下载)
编写接口请求库单元测试与 E2E 测试的思考
最近在写适配 Mx Space Server 的 JS SDK。因为想写一个正式一点的库,以后真正能派的上用场的,所以写的时候尽量严谨一点。所以单测和 E2E 也是非常重要。
Innei
2021/12/28
1.1K0
你需要了解的前端测试“金字塔”
来自:开源中国社区 链接:www.oschina.net/translate/the-front-end-test-pyramid-rethink-your-testing 原文:https://medium.freecodecamp.org/the-front-end-test-pyramid-rethink-your-testing-3b343c2bca51 如果您正在测试前端应用程序,则应该了解前端测试金字塔。 在本文中,我们将看到前端测试金字塔是什么,以及如何使用它来创建全面的测试套件。 前端测试金
企鹅号小编
2018/01/11
1.7K0
你需要了解的前端测试“金字塔”
10个基于web的JavaScript最优秀的应用程序库和框架
在所有可用于创建web应用程序的语言中,JavaScript可能是最健壮的库和框架选择。事实上,有太多的东西,很难弄清楚该用哪一个,尤其是当你刚刚开始的时候。
程序你好
2018/07/23
2.3K0
基于 Vue 测试套件引入 Mocha + Expect 测试 Vue 组件
在 Vue 框架中编写单元测试的基本流程和学院君之前在 Laravel 框架和 Go-Micro 微服务框架中编写单元测试时一模一样,只是使用的测试框架和语法有所区别罢了,Laravel 中我们使用的测试框架是 PHPUnit,Go-Micro 中我们使用的测试框架是 GoConvey,而在 Vue 框架中,我们将使用 Vue 生态的 Vue 测试套件并引入 Mocha 测试框架进行 BDD 风格的单元测试。
学院君
2023/03/03
1.4K0
基于 Vue 测试套件引入 Mocha + Expect 测试 Vue 组件
点击加载更多

相似问题

如何在MYSQL中获得两个datetimes之间的差异?

50

如何在Server中获得两个日期之间的秒数?

46

如何在javascript中获得两个日期之间的秒数?

20

计算两个XQuery之间的秒数的dateTimes表达式是什么?

12

如何在Oracle中查找两个datetimes之间的差异

12
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文