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 (
    
      {t('title')}
      {t('description')}
    
  );
}
export default MyComponent; 
				
			
		В этом примере мы импортируем useTranslation крючок из react-i18next пакет. Затем мы используем его для загрузки переводов и получения функции перевода (t) который мы можем использовать для перевода текста внутри компонента.
Затем мы можем использовать t функция для перевода title е description строки из наших файлов перевода Файлы переводов могут быть файлами 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 может автоматически создавать несколько языков с помощью плагина FluentC для i18next.
В этом примере у нас есть два перевода: один для английского и один для французского. Мы можем загрузить эти переводы в наше приложение, используя 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. Вы можете загрузить переводы в getStaticProps или getServer
								
															


