@inlang/paraglide-sveltekit
v0.15.0
Published
[![Inlang-ecosystem compatibility badge](https://cdn.jsdelivr.net/gh/opral/monorepo@main/inlang/assets/md-badges/inlang.svg)](https://inlang.com)
Downloads
40,354
Readme
Getting Started
Get started instantly with the Paraglide-SvelteKit CLI.
npx @inlang/paraglide-sveltekit init
npm install
The CLI will ask you which languages you want to support. This can be changed later.
- Create an Inlang Project
- Create translation files for each of your languages
- Add necessary Provider Components and files
- Update your
vite.config.js
file to use the Paraglide-SvelteKit Plugin.
You can now start your development server and visit /de
, /ar
, or whatever languages you've set up.
Creating 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.
Note: All messages you use in your project must be added to these files. It is not possible to dynamically add more messages at runtime.
Using messages in Code
The Paraglide compiler will generate a src/lib/paraglide/messages.js
file that contains your messages. Import messages from there. By convention, a wildcard import is used.
<script>
import * as m from '$lib/paraglide/messages.js'
</script>
<h1>{m.homepage_title()}</h1>
<p>{m.homepage_subtitle({ some: "param" })}</p>
Only messages used on the current page are sent to the client. Any messages that aren't used on the current page will be tree-shaken out.
## Accessing Language in Code
You can access the current language with the languageTag()
function.
<script>
import { languageTag } from '$lib/paraglide/runtime.js'
</script>
<h1>{languageTag()}</h1>
On the server languageTag()
is scoped to the current request, there is no danger of multiple requests interfering. languageTag()
can safely be called in server-load functions and form actions.
Language detection
The language is determined based on the URL. If the first segment of the URL is a language tag, that language will be used. If no language tag is present, the default language will be used.
/about
- English/de/about
- German
The reroute
hook in src/hooks.js
(added automatically) automatically rewrites requests that include the language in the URL to the correct page. There is no need to modify your routes to add a [locale]
segment.
src/
routes/
+layout.svelte
+page.svelte