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
- Zmiana nazwy `autoFill` na `fill` oraz aktualizacja zachowaniav7.0.023.10.2025
- Dodanie konfiguracji globalnejv6.0.020.09.2025
- Dodanie zmiennej `{{fileName}}`v6.0.017.09.2025
- 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
Tłumaczenia plików deklaracji wypełniania zawartości
Pliki deklaracji autouzupełniania w Twoim CI to sposób na przyspieszenie procesu tworzenia oprogramowania.
Domyślne zachowanie
Domyślnie fill jest ustawione globalnie na true, co oznacza, że Intlayer automatycznie wypełni wszystkie pliki zawartości i edytuje sam plik. To zachowanie można dostosować na kilka sposobów:
Globalne opcje konfiguracji
- fill: true (domyślnie) - Automatyczne wypełnianie wszystkich lokalizacji i edycja bieżącego pliku
- fill: false - Wyłączenie autouzupełniania dla tego pliku zawartości
- fill: "path/to/file" - Utworzenie/aktualizacja określonego pliku bez edycji bieżącego
- fill: { [key in Locales]?: string } - Utworzenie/aktualizacja określonego pliku dla każdej lokalizacji
Zmiany zachowania w wersji v7
W wersji 7 zachowanie polecenia fill zostało zaktualizowane:
- fill: true - Nadpisuje bieżący plik wypełnioną zawartością dla wszystkich lokalizacji
- fill: "path/to/file" - Wypełnia określony plik bez modyfikowania bieżącego pliku
- fill: false - Całkowicie wyłącza autouzupełnianie
Podczas używania opcji ścieżki do zapisu do innego pliku, mechanizm wypełniania działa na zasadzie relacji master-slave między plikami deklaracji zawartości. Główny (master) plik służy jako źródło prawdy, a gdy zostanie zaktualizowany, Intlayer automatycznie zastosuje te zmiany do pochodnych (wypełnionych) plików deklaracji określonych przez ścieżkę.
Dostosowanie dla poszczególnych lokalizacji
Możesz również dostosować zachowanie dla każdej lokalizacji, używając obiektu:
Skopiuj kod do schowka
const config: IntlayerConfig = { content: { internationalization: { locales: [Locales.ENGLISH, Locales.FRENCH, Locales.POLISH], defaultLocale: Locales.ENGLISH, requiredLocales: [Locales.ENGLISH], // Zalecane, aby uniknąć błędu Property 'pl' is missing in type '{ en: string; xxx }' w funkcji t }, }, dictionary: { fill: { en: true, // Wypełnij i edytuj bieżący plik dla języka angielskiego fr: "./translations/fr.json", // Utwórz osobny plik dla języka francuskiego es: false, // Wyłącz wypełnianie dla języka hiszpańskiego }, },};To pozwala na różne zachowania wypełniania dla różnych lokalizacji w ramach tego samego projektu.
Skopiuj kod do schowka
import { Locales, type Dictionary } from "intlayer";const exampleContent = { key: "example", locale: Locales.ENGLISH, fill: "./example.content.json", content: { contentExample: "To jest przykład zawartości", },} satisfies Dictionary;export default exampleContent;Oto plik deklaracji zawartości dla poszczególnych lokalizacji wykorzystujący instrukcję fill.
Następnie, gdy uruchomisz następujące polecenie:
npx intlayer fill --file 'src/components/example/example.content.ts'Intlayer automatycznie wygeneruje pochodny plik deklaracji w src/components/example/example.content.json, wypełniając wszystkie lokalizacje, które nie zostały jeszcze zadeklarowane w głównym pliku.
Skopiuj kod do schowka
{ "key": "example", "content": { "contentExample": { "nodeType": "translation", "translation": { "fr": "Ceci est un exemple de contenu", "es": "Este es un ejemplo de contenido", }, }, },}Następnie oba pliki deklaracji zostaną scalone w jeden słownik, dostępny za pomocą standardowego hooka useIntlayer("example") (react) / composable (vue).
Konfiguracja globalna
Możesz skonfigurować globalną konfigurację automatycznego wypełniania w pliku intlayer.config.ts.
Skopiuj kod do schowka
import { type IntlayerConfig, Locales } from "intlayer";const config: IntlayerConfig = { internationalization: { locales: [Locales.ENGLISH, Locales.FRENCH, Locales.SPANISH], defaultLocale: Locales.ENGLISH, requiredLocales: [Locales.ENGLISH, Locales.FRENCH], }, dictionary: { // Automatyczne generowanie brakujących tłumaczeń dla wszystkich słowników fill: "./{{fileName}}Filled.content.ts", // // fill: "/messages/{{locale}}/{{key}}/{{fileName}}.content.json", // // fill: true, // automatyczne generowanie brakujących tłumaczeń dla wszystkich słowników, jak przy użyciu "./{{fileName}}.content.json" // // fill: { // en: "./{{fileName}}.en.content.json", // fr: "./{{fileName}}.fr.content.json", // es: "./{{fileName}}.es.content.json", // }, },};export default config;Możesz nadal precyzyjnie dostosować konfigurację dla poszczególnych słowników, używając pola fill w plikach z zawartością. Intlayer najpierw uwzględni konfigurację dla konkretnego słownika, a następnie, w razie potrzeby, przejdzie do konfiguracji globalnej.
Format pliku automatycznie wypełnianego
Zalecanym formatem dla automatycznie wypełnianych plików deklaracji jest JSON, co pomaga uniknąć ograniczeń formatowania. Jednak Intlayer obsługuje również formaty .ts, .js, .mjs, .cjs oraz inne.
Skopiuj kod do schowka
const exampleContent = { key: "example", fill: "./example.filled.content.ts", content: { // Twoja zawartość },};To spowoduje wygenerowanie pliku pod ścieżką:
src/components/example/example.filled.content.tsGenerowanie plików .js, .ts i podobnych działa w następujący sposób:
- Jeśli plik już istnieje, Intlayer przeanalizuje go za pomocą AST (Abstract Syntax Tree), aby zlokalizować każde pole i wstawić brakujące tłumaczenia.
- Jeśli plik nie istnieje, Intlayer wygeneruje go, używając domyślnego szablonu pliku deklaracji zawartości.
Ścieżki bezwzględne
Pole fill obsługuje również ścieżki bezwzględne.
Skopiuj kod do schowka
const exampleContent = { key: "example", fill: "/messages/example.content.json", content: { // Twoja zawartość },};To wygeneruje plik pod ścieżką:
/messages/example.content.jsonAutomatyczne generowanie plików deklaracji zawartości dla poszczególnych lokalizacji
Pole fill obsługuje również generowanie plików deklaracji zawartości dla poszczególnych lokalizacji.
Skopiuj kod do schowka
const exampleContent = { key: "example", fill: { fr: "./example.fr.content.json", es: "./example.es.content.json", }, content: { // Twoja zawartość },};To wygeneruje dwa oddzielne pliki:
- src/components/example/example.fr.content.json
- src/components/example/example.es.content.json
W tym przypadku, jeśli obiekt nie zawiera wszystkich lokalizacji, Intlayer pomija generowanie pozostałych lokalizacji.
Filtrowanie automatycznego wypełniania dla konkretnej lokalizacji
Użycie obiektu w polu fill pozwala na zastosowanie filtrów i generowanie tylko plików dla określonych lokalizacji.
Skopiuj kod do schowka
const exampleContent = { key: "example", fill: { fr: "./example.fr.content.json", }, content: { // Twoja zawartość },};To wygeneruje tylko plik z tłumaczeniem na język francuski.
Zmienne ścieżek
Możesz używać zmiennych w ścieżce fill, aby dynamicznie rozwiązywać docelowe ścieżki dla generowanych plików.
Dostępne zmienne:
- {{locale}} – Kod lokalizacji (np. fr, es)
- {{fileName}} – Nazwa pliku (np. index)
- {{key}} – Klucz słownika (np. example)
Skopiuj kod do schowka
const exampleContent = { key: "example", fill: "/messages/{{locale}}/{{key}}.content.json", content: { // Twoja zawartość },};To wygeneruje:
- /messages/fr/example.content.json
- /messages/es/example.content.json
Skopiuj kod do schowka
const exampleContent = { key: "example", fill: "./{{fileName}}.content.json", content: { // Twoja zawartość },};To wygeneruje:
- ./index.content.json
- ./index.content.json