Skip to content

JCQuintas/ni18n

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Ni18n

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.

Installing

yarn add i18next react-i18next ni18n
npm install i18next react-i18next ni18n
import {
  appWithI18Next,
  loadTranslations,
  clientNamespaces,
  useSyncLanguage,
} from 'ni18n'

Getting Started

Read the docs at Getting Started or on the website https://jcquintas.gitbook.io/ni18n/usage/getting-started

Known Issues

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