react-intlayer: NPM Package to internationalize (i18n) an React application
Intlayer is a suite of packages designed specifically for JavaScript developers. It is compatible with frameworks like React, React, and Express.js.
The react-intlayer package allows you to internationalize your React application. It provides context providers and hooks for React internationalization.
Why Internationalize Your React Application?
Internationalizing your React application is essential for serving a global audience effectively. It allows your application to deliver content and messages in the preferred language of each user. This capability enhances user experience and broadens your application's reach by making it more accessible and relevant to people from different linguistic backgrounds.
Why to integrate Intlayer?
- JavaScript-Powered Content Management: Harness the flexibility of JavaScript to define and manage your content efficiently.
- Type-Safe Environment: Leverage TypeScript to ensure all your content definitions are precise and error-free.
- Integrated Content Files: Keep your translations close to their respective components, enhancing maintainability and clarity.
Installation
Install the necessary package using your preferred package manager:
npm install react-intlayer
Example of usage
With Intlayer, you can declare your content in a structured way anywhere in your codebase.
By default, Intlayer scans for files with the extension .content.{ts,tsx,js,jsx,mjs,cjs}.
You can modify the default extension by setting the contentDir property in the configuration file.
.├── intlayer.config.ts└── src └── components ├── Component1 │ ├── index.content.ts │ └── index.tsx └── Component2 ├── index.content.ts └── index.tsx
Declare your content
react-intlayer is made to work with the intlayer package.intlayer is a package that allows you to declare your content anywhere in your code. It converts multilingual content declarations into structured dictionaries that integrate seamlessly into your application.
Here’s an example of content declaration:
import { type DeclarationContent, t } from "intlayer";const component1Content = { key: "component-1", content: { myTranslatedContent: t({ en: "Hello World", fr: "Bonjour le monde", es: "Hola Mundo", }), numberOfCar: enu({ "<-1": "Less than minus one car", "-1": "Minus one car", "0": "No cars", "1": "One car", ">5": "Some cars", ">19": "Many cars", }), },} satisfies DeclarationContent;export default component1Content;
Utilize Content in Your Code
Once you have declared your content, you can use it in your code. Here's an example of how to use the content in a React component:
"use client";import type { FC } from "react";import { useIntlayer } from "react-intlayer";export const Component1Example: FC = () => { const { myTranslatedContent } = useIntlayer("component-1"); // Create related content declaration return ( <div> <p>{myTranslatedContent}</p> </div> );};
Mastering the internationalization of your React application
Intlayer provides a lot of features to help you internationalize your React application.
To learn more about these features, refer to the React Internationalization (i18n) with Intlayer and Vite and React guide for Vite and React Application, or the React Internationalization (i18n) with Intlayer and React (CRA) guide for React Create App.
Functions provided by react-intlayer package
The react-intlayer package also provides some functions to help you to internationalize your application.
If you have an idea for improving this documentation, please feel free to contribute by submitting a pull request on GitHub.
GitHub link to the documentation