Introduction

What is react-i18next?

react-i18next is a powerful internationalization framework for React / React Native which is based on i18next. Check out the history of i18next and when react-i18next was introduced.

You should read the i18next documentation. The configuration options and translation functionalities like plurals, formatting, interpolation, ... are documented there.

The module provides multiple components eg. to assert that needed translations get loaded or that your content gets rendered when the language changes.

Official CLI

i18next-cli

The official, high-performance, all-in-one command-line tool for i18next. It handles key extraction, code linting, locale syncing, and type generation. It's built with modern technologies for maximum speed and accuracy. This is the recommended tool for all i18next projects.

As react-i18next depends on i18next you can use it in any other UI framework and on the server-side (node.js, .net, ...) too. Like the React philosophy - just:

Learn once - translate everywhere.

Using Next.js? Here you'll find a blog post on how to best use next-i18next with client side translation download and SEO optimization.

Using Next.js with the new App Router? Then this article is what you are looking for!

Using Remix? Here you'll find a simple example and here a step by step tutorial on how to best use remix-i18next.

Using Gatsby? Here you can find an example and an appropriate blog post.

What does my code look like

Before: Your React code would have looked something like:

...
<div>Just simple content</div>
<div>
  Hello <strong title="this is your name">{name}</strong>, you have {count} unread message(s). <Link to="/msgs">Go to messages</Link>.
</div>
...

After: With the Trans component just change it to:

...
<div>{t('simpleContent')}</div>
<Trans i18nKey="userMessagesUnread" count={count}>
  Hello <strong title={t('nameTitle')}>{{name}}</strong>, you have {{count}} unread message(s). <Link to="/msgs">Go to messages</Link>.
</Trans>
...

If you prefer not using semantic keys but text - that's also possible.

i18next supports translation management tools such as locize.com.

Learn more about the enterprise offering

Last updated