V tem razdelku vas bomo vodili skozi postopek implementacije internacionalizacije(i18n) v vaši Next.js aplikaciji. Z i18n lahko ustvarite večjezično izkušnjo za uporabnike in zagotovite vsebino, specifično za jezik.
Uporaba next-i18next
knjižnice
next-i18next
je priljubljena knjižnica za implementacijo i18n v Next.js aplikacije. Tukaj je opisano, kako lahko dodate i18n svoji aplikaciji:
Namesti next-i18next
:
npm install next-i18next
Konfigurirajte knjižnico v svoji next.config.js
datoteki:
const { i18n } = require('./next-i18next.config');
module.exports = {
i18n,
};
Ustvarite konfiguracijsko datoteko z imenom next-i18next.config.js
:
module.exports = {
i18n: {
locales: ['en', 'fr', 'es'],
defaultLocale: 'en',
},
};
Uporabite knjižnico v svoji aplikaciji:
import { useTranslation } from 'next-i18next';
function MyComponent() {
const { t } = useTranslation();
return(
<div>
<p>{t('welcome')}</p>
</div>
);
}
Ustvarjanje večjezične vsebine
Po namestitvi next-i18next
lahko ustvarite jezikovne datoteke, kot so en.json
, fr.json
, es.json
da zagotovite vsebino v vsakem jeziku:
// en.json
{
"welcome": "Welcome!"
}
// fr.json
{
"welcome": "Bienvenue!"
}
// es.json
{
"welcome": "¡Bienvenido!"
}
Preklapljanje jezika
Če želite omogočiti preklapljanje jezikov, lahko ustvarite orodje za preklop jezikov in uporabite i18n.changeLanguage
funkcijo:
import { useTranslation } from 'next-i18next';
function LanguageSwitcher() {
const { i18n } = useTranslation();
const handleChangeLanguage =(newLanguage) => {
i18n.changeLanguage(newLanguage);
};
return(
<div>
<button onClick={() => handleChangeLanguage('en')}>English</button>
<button onClick={() => handleChangeLanguage('fr')}>Français</button>
<button onClick={() => handleChangeLanguage('es')}>Español</button>
</div>
);
}
Zaključek
Ta razdelek vas je seznanil s postopkom implementacije internacionalizacije(i18n) v vaši Next.js aplikaciji z uporabo next-i18next
knjižnice. Z zagotavljanjem vsebine, specifične za jezik, in omogočanjem uporabnikom, da preklapljajo med jeziki, lahko ustvarite privlačno večjezično izkušnjo za svoje uporabnike.