Internationalization
How to add multiple languages to your application.
next-forge includes a powerful internationalization package that enables you to add multiple language support to your application with minimal configuration. The package handles language detection, routing, and content management through a dictionary-based approach.
Languine offers 500 translation keys for free. If you need more, you can upgrade to a paid plan with the discount code nextforge
for 30% off!
How it works
The internationalization system is built on Next.js Internationalization’s routing system and Languine’s translation system.
It’s configured by default for the web
package to:
- Detect the user’s preferred language through browser headers
- Route users to language-specific paths (e.g.,
/en/about
,/fr/about
) - Serve content from language-specific dictionaries
The package handles language detection and matching, ensuring users see content in their preferred language when available.
Setup
To enable automatic translations, simply create a .env
file in the internationalization
package and set the LANGUINE_PROJECT_ID
environment variable.
Configuration
The internationalization package is configured through a languine.json
file that defines:
- Source locale (e.g.,
en
) - Target locales (e.g.,
["es", "de"]
) - Dictionary file locations
Dictionary Structure
Dictionaries are TypeScript files that export strongly-typed content for each supported language. The type system ensures consistency across translations:
There is no need to create a dictionary for any non-source locale, as Languine will automatically generate the translations for you.
Usage
Translating
To translate your application, you can run the following command:
This will translate all of the content in your application and save the translations to the dictionaries
folder.
Frontend
To use the internationalization package, you need to:
- Maintain a dictionary for your source locale.
- Import the dictionary into your application.
- Use the dictionary to render content.
You can find an example of a dictionary in the web
package:
You can change the locale of the application by changing the locale
parameter in the URL. For example, https://example.com/en/about
will render the about
page in English.
We’ve already configured the web
package with a language switcher, so you don’t need to worry about it.
Middleware
The internationalization package also includes a middleware component that automatically detects the user’s language and routes them to the appropriate language-specific page.
This has already been configured for the web
package, so you don’t need to worry about it.