Zadaj pytanie i otrzymaj streszczenie dokumentu, odwołując się do tej strony i wybranego dostawcy AI
Historia wersji
- "Inicjalizacja historii"v5.5.1029.06.2025
Treść tej strony została przetłumaczona przy użyciu sztucznej inteligencji.
Zobacz ostatnią wersję oryginalnej treści w języku angielskimJeśli masz pomysł na ulepszenie tej dokumentacji, zachęcamy do przesłania pull requesta na GitHubie.
Link do dokumentacji na GitHubieKopiuj dokument Markdown do schowka
Deklaracja zawartości Per-Locale w Intlayer
Intlayer obsługuje dwa sposoby deklarowania wielojęzycznej zawartości:
- Jeden plik ze wszystkimi tłumaczeniami
- Jeden plik na locale (format per-locale)
Ta elastyczność umożliwia:
- Łatwą migrację z innych narzędzi i18n
- Wsparcie dla zautomatyzowanych procesów tłumaczeniowych
- Jasna organizacja tłumaczeń w oddzielnych plikach specyficznych dla locale
Jeden plik z wieloma tłumaczeniami
Ten format jest idealny dla:
- Szybkiej iteracji w kodzie.
- Bezproblemowej integracji z CMS.
Jest to zalecane podejście dla większości przypadków użycia. Centralizuje tłumaczenia, co ułatwia iterację i integrację z CMS.
Skopiuj kod do schowka
import { t, type Dictionary } from "intlayer";
const helloWorldContent = {
key: "hello-world",
content: {
multilingualContent: t({
en: "Title of my component",
es: "Título de mi componente",
}),
},
} satisfies Dictionary;
export default helloWorldContent;Zalecane: Ten format jest najlepszy podczas korzystania z wizualnego edytora Intlayer lub zarządzania tłumaczeniami bezpośrednio w kodzie.
Globalna konfiguracja dla plików dla poszczególnych lokali
Możesz skonfigurować globalną konfigurację dla plików dla poszczególnych lokali, dodając poniższą treść do pliku intlayer.config.ts:
Skopiuj kod do schowka
import { Locales, type IntlayerConfig } from "intlayer";const config: IntlayerConfig = { dictionary: { locale: Locales.ENGLISH, },};export default config;Korzystając z tej konfiguracji, wszystkie pliki dla poszczególnych lokali będą generowane z domyślnym lokalem ustawionym na angielski. Obejmuje to również generowanie plików .content za pomocą polecenia extract oraz kompilatora. (Zobacz Compiler lub Extract, aby uzyskać więcej informacji.)
Format per-locale
Ten format jest przydatny, gdy:
- Chcesz wersjonować lub nadpisywać tłumaczenia niezależnie.
- Integrujesz procesy tłumaczeń maszynowych lub ludzkich.
Możesz również podzielić tłumaczenia na indywidualne pliki dla poszczególnych lokalizacji, określając pole locale:
Skopiuj kod do schowka
import { t, Locales, type Dictionary } from "intlayer";
const helloWorldContent = {
key: "hello-world",
locale: Locales.SPANISH, // Ważne
content: { multilingualContent: "Título de mi componente" },
} satisfies Dictionary;
export default helloWorldContent;Ważne: Upewnij się, że pole locale jest zdefiniowane. Informuje Intlayer, jakiego języka dotyczy plik.
Uwaga: W obu przypadkach plik deklaracji zawartości musi mieć nazwę zgodną z wzorcem*.content.{ts,tsx,js,jsx,mjs,cjs,json}, aby został rozpoznany przez Intlayer. Sufiks.[locale]jest opcjonalny i służy tylko jako konwencja nazewnicza.
Mieszanie formatów
Możesz łączyć oba podejścia deklaracji dla tego samego klucza zawartości. Na przykład:
- Zadeklaruj swoją bazową zawartość statycznie w pliku takim jak index.content.ts.
- Dodaj lub nadpisz konkretne tłumaczenia w osobnych plikach, takich jak index.fr.content.ts lub index.content.json.
To rozwiązanie jest szczególnie przydatne, gdy:
- Chcesz zdefiniować początkową strukturę zawartości w kodzie.
- Planujesz wzbogacić lub uzupełnić tłumaczenia później, korzystając z CMS lub narzędzi automatycznych.
Skopiuj kod do schowka
.└── Components └── MyComponent ├── index.content.ts ├── index.content.json └── index.tsPrzykład
Oto plik deklaracji zawartości wielojęzycznej:
Skopiuj kod do schowka
import { t, type Dictionary } from "intlayer";const helloWorldContent = { key: "hello-world", locale: Locales.ENGLISH, content: { multilingualContent: "Tytuł mojego komponentu", projectName: "Mój projekt", },} satisfies Dictionary;export default helloWorldContent;Skopiuj kod do schowka
{ "$schema": "https://intlayer.org/schema.json", "key": "hello-world", "content": { "multilingualContent": { "nodeType": "translation", "translation": { "fr": "Titre de mon composant", "es": "Título de mi componente" } } }}Intlayer automatycznie łączy pliki wielojęzyczne i per-locale.
Skopiuj kod do schowka
import { getIntlayer, Locales } from "intlayer";const intlayer = getIntlayer("hello-world"); // Domyślny język to ENGLISH, więc zwróci zawartość w języku angielskimconsole.log(JSON.stringify(intlayer, null, 2));// Wynik:// {// "multilingualContent": "Tytuł mojego komponentu",// "projectName": "Mój projekt"// }const intlayer = getIntlayer("hello-world", Locales.SPANISH);console.log(JSON.stringify(intlayer, null, 2));// Wynik:// {// "multilingualContent": "Título de mi componente",// "projectName": "Mój projekt"// }const intlayer = getIntlayer("hello-world", Locales.FRENCH);console.log(JSON.stringify(intlayer, null, 2));// Wynik:// {// "multilingualContent": "Titre de mon composant",// "projectName": "Mój projekt"// }Automatyczne generowanie tłumaczeń
Użyj intlayer CLI, aby automatycznie uzupełnić brakujące tłumaczenia na podstawie wybranych usług.