i18next je populárna knižnica na internacionalizáciu, ktorá uľahčuje preklad webových aplikácií do viacerých jazykov. Je to skvelá voľba pre vývojárov React a Next.js, ktorí chcú podporovať používateľov po celom svete. V tomto článku preskúmame, ako sa i18next ľahko integruje s aplikáciami React a Next.js.
Najskôr začnime stručným prehľadom i18next. Je to knižnica JavaScript, ktorá poskytuje jednoduché rozhranie API na načítanie a správu prekladov. Môžete ho použiť s rôznymi front-end rámcami, vrátane React a Next.js. i18next podporuje mnoho funkcií priamo z krabice, ako sú množné čísla, kontext a interpolácia. Tiež podporuje načítanie prekladov z rôznych zdrojov, vrátane súborov JSON a backendových API.
Na integráciu i18next do vašej aplikácie React alebo Next.js ho najskôr musíte nainštalovať. Toto môžete urobiť pomocou npm alebo yarn spustením nasledujúceho príkazu:
npm install i18next
alebo
yarn add i18next
Keď nainštalujete i18next, môžete ho začať používať vo svojej aplikácii. Jeden z najjednoduchších spôsobov, ako použiť i18next s Reactom, je použiť useTranslation
hák Tento háčik poskytuje pohodlný spôsob načítania prekladov a prekladu textu vo vašich komponentoch.
Tu je príklad, ako použiť useTranslation
záhlavie v React komponentu:
import React from 'react';
import { useTranslation } from 'react-i18next';
function MyComponent() {
const { t } = useTranslation();
return (
{t('title')}
{t('description')}
);
}
export default MyComponent;
V tomto príklade importujeme the useTranslation
háčik z react-i18next
balíček. Potom ho používame na načítanie prekladov a získanie prekladovej funkcie (t
) ktorú môžeme použiť na preklad textu v rámci komponentu.
Môžeme potom použiť t
funkcia na preklad title
a description
reťazce z našich prekladových súborov. Prekladové súbory môžu byť súbory JSON, ako je tento:
{
"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 môže automaticky vytvárať viacero jazykov pomocou pluginu FluentC pre i18next.
V tomto príklade máme dva preklady: jeden pre angličtinu a jeden pre francúzštinu. Môžeme tieto preklady načítať do našej aplikácie pomocou i18next
knižnica.
Na načítanie prekladov môžeme použiť i18next
objekt a jeho init
funkcia. Tu je príklad:
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
},
},
});
V tomto príklade importujeme anglické a francúzske preklady zo súborov JSON. Potom inicializujeme i18next s týmito prekladmi a nastavujeme predvolený jazyk na angličtinu. Tiež nastavujeme nastavenia interpolácie, aby sme mohli používať premenné v našich prekladoch.
Keď načítate svoje preklady a nastavíte i18next, môžete začať používať useTranslation
háčik na preklad textu vo vašich komponentoch.
V aplikácii Next.js môžete použiť rovnaký prístup na integráciu i18next. Môžete načítať preklady v getStaticProps
alebo getServer