Is an easy to use integration for Next.js to enable i18next translations on your application with support for SSR, SSG and Client translation loading.
It gives you freedom to use i18next
with a lot of different customizations, while still being compatible with next.js
.
Ni18n
also does not directly depend on i18next
nor react-i18next
, allowing you to update these dependencies without having to wait for any action on our part.
yarn add i18next react-i18next ni18n
npm install i18next react-i18next ni18n
import {
appWithI18Next,
loadTranslations,
clientNamespaces,
useSyncLanguage,
} from 'ni18n'
Read the docs at Getting Started or on the website https://jcquintas.gitbook.io/ni18n/usage/getting-started
When running on Vercel we are unable to load the translation files automatically because the vercel/nft package doesn't bundle files requested by a third party lib.
A work around is to create a wrapper around loadTranslations
that calls path.resolve('./', './public/locales')
, and then use this function instead of the exported by the ni18n
package.
import { loadTranslations as ni18nLoadTranslations } from 'ni18n'
import { ni18nConfig } from '../ni18n.config'
export const loadTranslations = async (
initialLocale?: string | undefined,
namespacesNeeded?: NamespacesNeeded | undefined,
) => {
const locales = path.resolve('./', './public/locales')
return await ni18nLoadTranslations(
ni18nConfig,
initialLocale,
namespacesNeeded,
)
}
You can read more on #49