@inlang/paraglide-next
v0.7.2
Published
The easiest way to do i18n in NextJS
Downloads
10,803
Readme
Getting Started
Get started instantly with the Paraglide-Next CLI.
npx @inlang/paraglide-next init
npm install
The CLI will ask you which languages you want to support. This can be changed later.
It will:
- Create an Inlang Project
- Create translation files for each of your languages
- Add necessary Provider Components and files
- Update your
next.config.js
file to use the Paraglide-Next Plugin. - Offer to automatically migrate to the Localized navigation APIs if you're using the App Router (recommended)
You can now start your development server and visit /de
, /ar
, or whatever languages you've set up.
Creating and Using Messages
Your messages live in messages/{languageTag}.json
files. You can add messages in these files as key-value pairs of the message ID and the translations.
Use curly braces to add parameters.
// messages/en.json
{
// The $schema key is automatically ignored
"$schema": "https://inlang.com/schema/inlang-message-format",
"hello_world": "Hello World!",
"greetings": "Greetings {name}."
}
Learn more about the format in the Inlang Message Format Documentation.
## Using Messages in Code
Use messages by importing them from @/paraglide/messages.js
. By convention, we do a wildcard import as m
.
import * as m from "@/paraglide/messages.js"
export function Home() {
return (
<>
<h1>{m.homepage_title()}</h1>
<p>{m.homepage_subtitle({ some: "param" })}</p>
</>
)
}
Only messages used in client components are sent to the client. Messages in Server Components don't impact bundle size.
Using the Language in Code
You can get the current language by calling the languageTag()
function.
import { languageTag } from "@/paraglide/runtime"
export function Home() {
return <h1>{languageTag()}</h1>
}
This is scoped to the current request, it's safe to use in server-components.
Examples
You can find example projects in our GitHub repository, or try them on StackBlitz: