i18next 是一个流行的国际化库,能够轻松将网页应用程序翻译成多种语言。 这是为希望支持全球用户的React和Next.js开发者的绝佳选择。 在本文中,我们将探讨i18next如何轻松集成到React和Next.js应用中。

首先,让我们简要介绍一下 i18next。 它是一个JavaScript库,提供了一个简单的API用于加载和管理翻译。 你可以将它与多种前端框架一起使用,包括React和Next.js。 i18next 原生支持许多功能,例如复数形式、语境和插值。 它还支持从各种来源加载翻译,包括JSON文件和后端API。

要将i18next集成到您的React或Next.js应用中,您首先需要安装它。 你可以通过运行以下命令使用 npm 或 yarn 来完成此操作:

				
					npm install i18next
				
			

				
					yarn add i18next
				
			

安装好 i18next 之后,你就可以在你的应用中开始使用它了。 使用 i18next 与 React 的最简单方法之一是使用 useTranslation 钩子。 这个钩子提供了一种方便的方式来加载翻译和在你的组件中翻译文本。

以下是使用方法的示例 useTranslation 在 React 组件中使用钩子:

				
					import React from 'react';
import { useTranslation } from 'react-i18next';

function MyComponent() {
  const { t } = useTranslation();

  return (
    <div>
      <h1>{t('title')}</h1>
      <p>{t('description')}</p>
    </div>
  );
}

export default MyComponent;
				
			

在这个例子中,我们正在导入 useTranslation 钩子来自于 react-i18next 包裹。 然后我们用它来加载翻译并获取一个翻译函数t我们可以用来在组件内翻译文本的工具。

然后我们可以使用 t 翻译的函数 titledescription 来自我们的翻译文件的字符串。 翻译文件可以是 JSON 文件,像这样:

				
					{
  "en": {
    "title": "Welcome to my app!",
    "description": "This is my app description."
  },
  "fr": {
    "title": "Bienvenue dans mon application !",
    "description": "Ceci est la description de mon application."
  }
}
				
			

FluentC 可以使用 i18next FluentC 插件自动构建多种语言。

在这个例子中,我们有两个翻译:一个是英文的,一个是法文的。 我们可以使用以下方法将这些翻译加载到我们的应用程序中 i18next 图书馆

要加载翻译,我们可以使用 i18next 对象及其 init 函数。 这是一个例子:

				
					import i18next from 'i18next';
import translationEN from './locales/en.json';
import translationFR from './locales/fr.json';

i18next.init({
  interpolation: { escapeValue: false },
  lng: 'en',
  resources: {
    en: {
      translation: translationEN
    },
    fr: {
      translation: translationFR
    },
  },
});
				
			

在这个例子中,我们从JSON文件中导入了英文和法文的翻译。 然后我们用这些翻译初始化i18next,并将默认语言设置为英语。 我们还在配置插值设置,以便在翻译中使用变量。

一旦你加载了你的翻译并设置了 i18next,你就可以开始使用它了 useTranslation 钩子,用于翻译组件内的文本。

在 Next.js 应用中,你可以使用相同的方法集成 i18next。 你可以在以下位置加载翻译 getStaticPropsgetServer