Zadaj pytanie i otrzymaj streszczenie dokumentu, odwołując się do tej strony i wybranego dostawcy AI
Dzięki integracji serwera Intlayer MCP z ulubionym asystentem AI możesz uzyskać dostęp do całej dokumentacji bezpośrednio z ChatGPT, DeepSeek, Cursor, VSCode itp.
Zobacz dokumentację serwera MCPHistoria wersji
- Inicjalizacja historiiv5.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.
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.ENGLISH, // Ważne content: { multilingualContent: "Title of my component" },} satisfies Dictionary;export default helloWorldContent;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.
.└── 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.