I det här avsnittet guidar vi dig genom processen för att implementera Internationalization(i18n) i din Next.js ansökan. Med i18n kan du skapa en flerspråkig upplevelse för användare och tillhandahålla språkspecifikt innehåll.
Använda next-i18next
biblioteket
next-i18next
är ett populärt bibliotek för att implementera i18n i Next.js applikationer. Så här kan du lägga till i18n till din applikation:
Installera next-i18next
:
npm install next-i18next
Konfigurera biblioteket i din next.config.js
fil:
const { i18n } = require('./next-i18next.config');
module.exports = {
i18n,
};
Skapa en konfigurationsfil med namnet next-i18next.config.js
:
module.exports = {
i18n: {
locales: ['en', 'fr', 'es'],
defaultLocale: 'en',
},
};
Använd biblioteket i din ansökan:
import { useTranslation } from 'next-i18next';
function MyComponent() {
const { t } = useTranslation();
return(
<div>
<p>{t('welcome')}</p>
</div>
);
}
Skapa flerspråkigt innehåll
Efter installationen next-i18next
kan du skapa språkfiler som, , en.json
för fr.json
att es.json
tillhandahålla innehåll på varje språk:
// en.json
{
"welcome": "Welcome!"
}
// fr.json
{
"welcome": "Bienvenue!"
}
// es.json
{
"welcome": "¡Bienvenido!"
}
Språkväxling
För att tillåta språkväxling kan du skapa ett språkväxlingsverktyg och använda funktionen i18n.changeLanguage
:
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>
);
}
Slutsats
Det här avsnittet introducerade dig till processen att implementera Internationalization(i18n) i din Next.js applikation med hjälp av next-i18next
biblioteket. Genom att tillhandahålla språkspecifikt innehåll och göra det möjligt för användare att byta språk kan du skapa en engagerande flerspråkig upplevelse för dina användare.