在没有钩子的React中使用翻译i18n的方法可以通过以下步骤实现:
npm
或yarn
命令来安装,例如:npm install i18next react-i18next --save
。en.json
和zh.json
。每个文件中包含键值对,键是要翻译的文本,值是对应的翻译结果。例如:// en.json
{
"welcome": "Welcome",
"hello": "Hello"
}
// zh.json
{
"welcome": "欢迎",
"hello": "你好"
}
Translation.js
,并编写如下代码:import React from 'react';
import { useTranslation } from 'react-i18next';
function Translation() {
const { t } = useTranslation();
return (
<div>
<h2>{t('welcome')}</h2>
<p>{t('hello')}</p>
</div>
);
}
export default Translation;
i18n.js
文件,编写如下代码:import i18n from 'i18next';
import { initReactI18next } from 'react-i18next';
import en from './en.json'; // 引入英文翻译资源文件
import zh from './zh.json'; // 引入中文翻译资源文件
i18n.use(initReactI18next).init({
lng: 'en', // 默认语言为英文
resources: {
en: {
translation: en,
},
zh: {
translation: zh,
},
},
fallbackLng: 'en', // 如果未找到对应语言的翻译文本,将回退到英文
interpolation: {
escapeValue: false,
},
});
export default i18n;
i18n.js
,并将其包裹在I18nextProvider
中,以便在整个应用程序中使用翻译功能。例如:import React from 'react';
import { I18nextProvider } from 'react-i18next';
import i18n from './i18n'; // 引入i18n配置文件
import Translation from './Translation'; // 引入翻译组件
function App() {
return (
<I18nextProvider i18n={i18n}>
<Translation />
</I18nextProvider>
);
}
export default App;
至此,你已经可以在React应用程序中使用i18n进行翻译了。通过修改i18n.js
中的lng
配置,可以更改默认语言,从而实现多语言切换。
如果你正在使用腾讯云,腾讯云也提供了一些与国际化和翻译相关的产品和服务,例如:
这些腾讯云产品可以与React应用程序集成,以实现更多的国际化和翻译功能。
领取专属 10元无门槛券
手把手带您无忧上云