Zadaj pytanie i otrzymaj streszczenie dokumentu, odwołując się do tej strony i wybranego dostawcy AI
Historia wersji
- "Dodano obsługę dostawcy LM Studio"v8.9.412.05.2026
- "Dodano opcje `prune` i `minify` do konfiguracji budowania"v8.7.08.04.2026
- "Dodano opcję `currentDomain`"v8.7.03.04.2026
- "Dodano obsługę zapisu obiektowego na poziomie lokali dla 'compiler.output' i 'dictionary.fill'"v8.4.020.03.2026
- "Przeniesiono 'baseDir' z konfiguracji 'content' do konfiguracji 'system'"v8.3.011.03.2026
- "Zaktualizowano opcje kompilatora, dodano obsługę 'output' i 'noMetadata'"v8.2.09.03.2026
- "Zaktualizowano opcje kompilatora"v8.1.725.02.2026
- "Dodano opcję kompilatora 'build-only' i prefiks klucza słownika"v8.1.523.02.2026
- "Dodano obsługę dostawców Open Router, Alibaba, Amazon, Google Vertex Bedrock, Fireworks, Groq, Hugging Face i Together AI"v8.0.612.02.2026
- "Dodano `dataSerialization` do konfiguracji AI"v8.0.56.02.2026
- "Zmiana nazwy trybu importu `live` na `fetch`, aby lepiej opisać mechanizm."v8.0.024.01.2026
- "Przeniesiono konfigurację budowania `importMode` do konfiguracji `dictionary`."v8.0.022.01.2026
- "Dodano opcję `rewrite` do konfiguracji routingu"v8.0.022.01.2026
- "Oddzielono konfigurację systemową od konfiguracji treści. Przeniesiono ścieżki wewnętrzne do właściwości `system`. Dodano `codeDir`, aby oddzielić pliki treści od przekształceń kodu."v8.0.018.01.2026
- "Dodano opcje słownika `location` i `schema`"v8.0.018.01.2026
- "Dodano obsługę formatów plików JSON5 i JSONC"v7.5.110.01.2026
- "Dodano opcję `buildMode`"v7.5.017.12.2025
- "Dodano konfigurację `dictionary`"v7.0.025.10.2025
- "Zastąpiono `middleware` przez konfigurację `routing`"v7.0.021.10.2025
- "Dodano opcję `formatCommand`"v7.0.012.10.2025
- "Zaktualizowano opcję `excludedPath`"v6.2.012.10.2025
- "Dodano opcję `outputFormat`"v6.0.223.09.2025
- "Usunięto pola `dictionaryOutput` i `i18nextResourcesDir`"v6.0.021.09.2025
- "Dodano tryb importu `live`"v6.0.016.09.2025
- "Zastąpiono pole `hotReload` przez `liveSync` oraz dodano pola `liveSyncPort`, `liveSyncURL`"v6.0.04.09.2025
- "Zastąpiono `activateDynamicImport` przez opcję `importMode`"v5.6.125.07.2025
- "Zmieniono domyślny `contentDir` z `['src']` na `['.']`"v5.6.013.07.2025
- "Dodano komendy `docs`"v5.5.1129.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
Dokumentacja konfiguracji Intlayer
Przegląd
Pliki konfiguracyjne Intlayer pozwalają na dostosowanie różnych aspektów wtyczki, takich jak internacjonalizacja (i18n), middleware i zarządzanie treścią. Ten dokument zawiera szczegółowy opis każdej właściwości w konfiguracji.
Spis treści
Obsługa plików konfiguracyjnych
Intlayer akceptuje formaty plików konfiguracyjnych JSON, JS, MJS i TS:
intlayer.config.tsintlayer.config.jsintlayer.config.jsonintlayer.config.json5intlayer.config.jsoncintlayer.config.cjsintlayer.config.mjs.intlayerrc
Przykładowy plik konfiguracyjny
Skopiuj kod do schowka
Odniesienia do konfiguracji
Poniższe sekcje szczegółowo opisują różne właściwości konfiguracji dostępne w Intlayer.
Konfiguracja internacjonalizacji (Internationalization)
Definiuje ustawienia związane z internacjonalizacją, w tym dostępne locale i domyślne locale.
Otwórz tabelę w oknie modalnym, aby wyraźnie zobaczyć całą zawartość
| Pole | Opis | Typ | Domyślnie | Przykład | Uwagi |
|---|---|---|---|---|---|
locales | Lista obsługiwanych lokali w aplikacji. | string[] | [Locales.ENGLISH] | ['en', 'fr', 'es'] | |
requiredLocales | Lista wymaganych lokali w aplikacji. | string[] | [] | [] | • Jeśli pusta, wszystkie locale są wymagane w trybie strict.• Upewnij się, że wymagane locale są również zdefiniowane w polu locales. |
strictMode | Zapewnia silną implementację zinternacjonalizowanej treści za pomocą TypeScript. | string | 'inclusive' | • Jeśli "strict": Każde zadeklarowane locale musi być zdefiniowane dla funkcji t - błąd w przypadku braku lub niezadeklarowanego locale.• Jeśli "inclusive": Ostrzeżenie dla brakujących lokali, ale pozwala na użycie istniejących niezadeklarowanych lokali.• Jeśli "loose": Akceptuje każde istniejące locale. | |
defaultLocale | Domyślne locale używane jako zapasowe, gdy żądane locale nie zostanie znalezione. | string | Locales.ENGLISH | 'en' | Używane do określenia locale, jeśli żadne nie jest określone w URL, plikach cookie lub nagłówku. |
Konfiguracja edytora (Editor)
Definiuje ustawienia edytora wizualnego, w tym port serwera i status aktywacji.
Otwórz tabelę w oknie modalnym, aby wyraźnie zobaczyć całą zawartość
| Pole | Opis | Typ | Domyślnie | Przykład | Uwagi |
|---|---|---|---|---|---|
applicationURL | URL Twojej aplikacji. | string | undefined | 'http://localhost:3000''https://example.com'process.env.INTLAYER_EDITOR_URL | • Używane do ograniczania źródła edytora ze względów bezpieczeństwa. • Jeśli ustawione na '*', edytor jest dostępny z dowolnego źródła. |
port | Port serwera edytora wizualnego. | number | 8000 | ||
editorURL | URL serwera edytora. | string | 'http://localhost:8000' | 'http://localhost:3000''https://example.com'process.env.INTLAYER_EDITOR_URL | • Używane do ograniczania źródeł, które mogą wchodzić w interakcję z aplikacją. • Jeśli ustawione na '*', dostępne z dowolnego źródła.• Należy to ustawić, jeśli port zostanie zmieniony lub edytor jest hostowany na innej domenie. |
cmsURL | URL Intlayer CMS. | string | 'https://app.intlayer.org' | 'https://app.intlayer.org' | |
backendURL | URL serwera backendu. | string | https://back.intlayer.org | http://localhost:4000 | |
enabled | Czy aplikacja powinna wchodzić w interakcję z edytorem wizualnym. | boolean | false | process.env.NODE_ENV !== 'production' | • Jeśli false, edytor nie będzie mógł wchodzić w interakcję z aplikacją.• Wyłączenie tego dla określonych środowisk zwiększa bezpieczeństwo. |
clientId | Pozwala pakietom intlayer na uwierzytelnianie w backendzie za pomocą oAuth2. Przejdź do intlayer.org/project, aby uzyskać token dostępu. | string | undefined | undefined | Musi pozostać tajne; używaj zmiennych środowiskowych. | |
clientSecret | Pozwala pakietom intlayer na uwierzytelnianie w backendzie za pomocą oAuth2. Przejdź do intlayer.org/project, aby uzyskać token dostępu. | string | undefined | undefined | Musi pozostać tajne; używaj zmiennych środowiskowych. | |
dictionaryPriorityStrategy | Strategia priorytetu słowników, gdy obecne są zarówno słowniki lokalne, jak i zdalne. | string | 'local_first' | 'distant_first' | • 'distant_first': Słowniki zdalne mają pierwszeństwo przed lokalnymi.• 'local_first': Słowniki lokalne mają pierwszeństwo przed zdalnymi. |
liveSync | Czy serwer aplikacji powinien natychmiast przeładowywać treść po wykryciu zmian w CMS edytorze wizualnym serwerze backendu. | boolean | true | true | • Aktualizuje treść strony aplikacji po dodaniu/aktualizacji słowników. • Live Sync pobiera treść z innego serwera, co może nieznacznie wpłynąć na wydajność. • Zaleca się hostowanie obu na tej samej maszynie. |
liveSyncPort | Port serwera Live Sync. | number | 4000 | 4000 | |
liveSyncURL | URL serwera Live Sync. | string | 'http://localhost:{liveSyncPort}' | 'https://example.com' | Domyślnie wskazuje na localhost; można zmienić na zdalny serwer Live Sync. |
Konfiguracja routingu (Routing)
Ustawienia kontrolujące zachowanie routingu, w tym strukturę URL, przechowywanie locale i obsługę middleware.
Otwórz tabelę w oknie modalnym, aby wyraźnie zobaczyć całą zawartość
| Pole | Opis | Typ | Domyślnie | Przykład | Uwagi |
|---|---|---|---|---|---|
mode | Tryb struktury URL do zarządzania locale. | 'prefix-no-default' | 'prefix-all' | 'no-prefix' | 'search-params' | 'prefix-no-default' | 'prefix-no-default': /dashboard (en) lub /fr/dashboard (fr). 'prefix-all': /en/dashboard. 'no-prefix': locale zarządzane inaczej. 'search-params': /dashboard?locale=fr | Nie wpływa na zarządzanie plikami cookie ani pamięcią lokalną. |
storage | Konfiguracja przechowywania locale u klienta. | false | 'cookie' | 'localStorage' | 'sessionStorage' | 'header' | CookiesAttributes | StorageAttributes | Array | ['cookie', 'header'] | 'localStorage'[{ type: 'cookie', name: 'custom-locale', secure: true }] | Zobacz tabelę opcji przechowywania poniżej. |
basePath | Bazowa ścieżka dla adresów URL aplikacji. | string | '' | '/my-app' | Jeśli Twoja aplikacja znajduje się pod adresem https://example.com/my-app, basePath to '/my-app', co wskazuje na URL https://example.com/my-app/en. |
rewrite | Własne reguły przepisywania URL w celu zmiany domyślnego trybu routingu dla określonych ścieżek. Obsługuje parametry dynamiczne [param]. | Record<string, StrictModeLocaleMap<string>> | undefined | Zobacz przykład poniżej | • Reguły routingu mają wyższy priorytet niż mode.• Działa z Next.js i Vite. • getLocalizedUrl() automatycznie stosuje pasujące reguły.• Zobacz Własne przepisywanie URL. |
domains | Mapuje locale na nazwy hostów domen dla routingu opartego na domenach. Gdy ustawione, adresy URL dla danego locale używają tej domeny jako bazy (absolutny URL) i do ścieżki nie jest dodawany prefiks locale. | Partial<Record<Locale, string>> | undefined | { zh: 'intlayer.zh', fr: 'intlayer.org' } | • Domyślnym protokołem jest https://, gdy nie jest zawarty w nazwie hosta.• Sama domena identyfikuje locale, więc prefiks /zh/ nie jest dodawany.• getLocalizedUrl('/', 'zh') zwraca https://intlayer.zh/. |
Przykład rewrite:
Skopiuj kod do schowka
Opcje przechowywania (Storage)
Otwórz tabelę w oknie modalnym, aby wyraźnie zobaczyć całą zawartość
| Wartość | Uwagi | Opis |
|---|---|---|
'cookie' | • Zapewnij odpowiednią zgodę użytkownika zgodnie z RODO. • Można dostosować przez CookiesAttributes ({ type: 'cookie', name: 'custom-locale', secure: true, httpOnly: false }). | Przechowuje locale w pliku cookie - dostępne zarówno u klienta, jak i na serwerze. |
'localStorage' | • Nie wygasa, dopóki nie zostanie usunięte jawnie. • Intlayer Proxy nie ma do niego dostępu. • Można dostosować przez StorageAttributes ({ type: 'localStorage', name: 'custom-locale' }). | Przechowuje locale w przeglądarce bez daty wygaśnięcia - tylko klient. |
'sessionStorage' | • Usuwane po zamknięciu karty/okna przeglądarki. • Intlayer Proxy nie ma do niego dostępu. • Można dostosować przez StorageAttributes ({ type: 'sessionStorage', name: 'custom-locale' }). | Przechowuje locale na czas sesji strony - tylko klient. |
'header' | • Przydatne przy wywołaniach API. • Klient nie ma do niego dostępu. • Można dostosować przez StorageAttributes ({ type: 'header', name: 'custom-locale' }). | Przechowuje lub przekazuje locale przez nagłówki HTTP - tylko serwer. |
Atrybuty Cookie (Cookies Attributes)
Przy użyciu przechowywania w plikach cookie można skonfigurować dodatkowe atrybuty:
Otwórz tabelę w oknie modalnym, aby wyraźnie zobaczyć całą zawartość
| Pole | Opis | Typ |
|---|---|---|
name | Nazwa pliku cookie. Domyślnie: 'INTLAYER_LOCALE' | string |
domain | Domena pliku cookie. Domyślnie: undefined | string |
path | Ścieżka pliku cookie. Domyślnie: undefined | string |
secure | Wymagane HTTPS. Domyślnie: undefined | boolean |
httpOnly | Flaga HTTP-only. Domyślnie: undefined | boolean |
sameSite | Polityka SameSite. | 'strict' | 'lax' | 'none' |
expires | Liczba oznacza dni od momentu utworzenia; data (lub ciąg daty ISO) to bezwzględna data wygaśnięcia. Domyślnie: undefined | Date | number | string |
maxAge | Czas życia w sekundach od momentu utworzenia. Ma pierwszeństwo przed expires. Domyślnie: undefined | number |
Atrybuty przechowywania (Storage Attributes)
Przy użyciu localStorage lub sessionStorage:
Otwórz tabelę w oknie modalnym, aby wyraźnie zobaczyć całą zawartość
| Pole | Opis | Typ |
|---|---|---|
type | Typ przechowywania. | 'localStorage' | 'sessionStorage' |
name | Nazwa klucza w pamięci. Domyślnie: 'INTLAYER_LOCALE' | string |
Przykłady konfiguracji
Oto kilka typowych konfiguracji korzystających z nowej struktury routingu v7:
Podstawowa konfiguracja (Standard):
Skopiuj kod do schowka
Konfiguracja zgodna z RODO:
Skopiuj kod do schowka
Tryb parametrów wyszukiwania (Search Params):
Skopiuj kod do schowka
Tryb bez prefiksu (No-Prefix) z własnym miejscem przechowywania:
Skopiuj kod do schowka
Własne przepisywanie URL ze ścieżkami dynamicznymi:
Skopiuj kod do schowka
Konfiguracja treści (Content)
Ustawienia do zarządzania treścią w aplikacji, w tym nazwy katalogów, rozszerzenia plików i pochodne konfiguracje.
Otwórz tabelę w oknie modalnym, aby wyraźnie zobaczyć całą zawartość
| Pole | Opis | Typ | Domyślnie | Przykład | Uwagi |
|---|---|---|---|---|---|
watch | Wskazuje, czy Intlayer powinien śledzić zmiany w plikach deklaracji treści w celu regeneracji słowników. | boolean | true | ||
fileExtensions | Rozszerzenia plików do skanowania podczas kompilacji słowników. | string[] | ['.content.ts', '.content.js', '.content.cjs', '.content.mjs', '.content.json', '.content.json5', '.content.jsonc', '.content.tsx', '.content.jsx'] | ['.data.ts', '.data.js', '.data.json'] | Może pomóc uniknąć konfliktów przy dostosowywaniu. |
contentDir | Ścieżki do katalogów, w których znajdują się pliki definicji treści (.content.*). | string[] | ['.'] | ['src', '../../ui-library', require.resolve("@my-package/content"), '@my-package/content'] | Używane do śledzenia plików treści i regeneracji słowników. |
codeDir | Ścieżka do katalogów, w których znajduje się kod, względem katalogu bazowego. | string[] | ['.'] | ['src', '../../ui-library'] | • Używane do śledzenia przekształceń plików kodu (usuwanie niepotrzebnych części, optymalizacja). • Oddzielenie od contentDir zwiększa wydajność. |
excludedPath | Katalogi, które należy wykluczyć ze skanowania treści. | string[] | ['**/node_modules/**', '**/dist/**', '**/build/**', '**/.intlayer/**', '**/.next/**', '**/.nuxt/**', '**/.expo/**', '**/.vercel/**', '**/.turbo/**', '**/.tanstack/**'] | Obecnie nieużywane; zaplanowane na przyszłość. | |
formatCommand | Polecenie do formatowania plików treści, gdy Intlayer zapisuje je lokalnie. | string | undefined | 'npx prettier --write "{{file}}" --log-level silent' (Prettier), 'npx biome format "{{file}}" --write --log-level none' (Biome), 'npx eslint --fix "{{file}}" --quiet' (ESLint) | • {{file}} zostanie zastąpione ścieżką do pliku.• Jeśli niezdefiniowane, Intlayer spróbuje automatycznie wykryć (testuje prettier, biome, eslint). |
Konfiguracja słownika (Dictionary)
Opcje kontrolujące operacje na słownikach, w tym zachowanie automatycznego uzupełniania i generowanie treści.
Otwórz tabelę w oknie modalnym, aby wyraźnie zobaczyć całą zawartość
| Pole | Opis | Typ | Domyślnie | Przykład | Uwagi |
|---|---|---|---|---|---|
fill | Kontroluje generowanie plików wyjściowych automatycznego uzupełniania (tłumaczenia AI). | boolean | FilePathPattern | Partial<Record<Locale, boolean | FilePathPattern>> | true | { en: '/locales/en/{{key}}.json', fr: ({ key }) => '/locales/fr/${key}.json', es: false } | • true: Domyślna ścieżka (ten sam plik co źródło).• false: Wyłączone.• Wzorzec ciągu/funkcji pozwala na generowanie na poziomie lokali. • Obiekt na poziomie lokali: Każde locale ma własny wzorzec; false wyklucza locale.• Uwzględnienie {{locale}} pozwala na generowanie na poziomie lokali.• Ustawienie fill na poziomie słownika zawsze ma priorytet nad tym globalnym ustawieniem. |
description | Pomaga edytorowi i CMS zrozumieć przeznaczenie słownika. Używane również jako kontekst do generowania tłumaczeń przez AI. | string | undefined | 'User profile section' | |
locale | Przełącza słownik na format specyficzny dla danego locale. Każde zadeklarowane pole staje się węzłem tłumaczenia. Jeśli brak, słownik jest uznawany za zawierający wiele tłumaczeń. | LocalesValues | undefined | 'en' | Używaj tego, jeśli słownik jest przeznaczony dla konkretnego języka, a nie zawiera wielu tłumaczeń. |
contentAutoTransformation | Czy automatycznie przekształcać ciągi znaków treści w typowane węzły (Markdown, HTML lub wstawki). | boolean | { markdown?: boolean; html?: boolean; insertion?: boolean } | false | true | • Markdown : ### Title → md('### Title') .• HTML : <div>Title</div> → html('<div>Title</div>') .• Wstawki : Hello {{name}} → insert('Hello {{name}}') . |
location | Wskazuje na lokalizację przechowywania plików słowników oraz sposób ich synchronizacji z CMS. | 'local' | 'remote' | 'hybrid' | 'plugin' | string | 'local' | 'hybrid' | • 'local': Tylko lokalne zarządzanie.• 'remote': Tylko zdalne zarządzanie (CMS).• 'hybrid': Zarządzanie zarówno lokalne, jak i zdalne.• 'plugin' lub własne ciągi: Zarządzanie przez wtyczkę lub własne źródło. |
importMode | Kontroluje sposób importowania słowników. | 'static' | 'dynamic' | 'fetch' | 'static' | 'dynamic' | • 'static': Statyczny import.• 'dynamic': Dynamiczny import przez Suspense.• 'fetch': Pobieranie przez API Live Sync; rezerwowa opcja 'dynamic' w razie błędu.• Wymagane wtyczki @intlayer/babel i @intlayer/swc.• Klucze muszą być zadeklarowane statycznie. • Ignorowane, jeśli optimize jest wyłączone.• Nie wpływa na getIntlayer, getDictionary itp. |
priority | Priorytet słownika. Przy rozwiązywaniu konfliktów między słownikami wyższa wartość ma pierwszeństwo przed niższą. | number | undefined | 1 | |
live | ZDEPRECJONOWANE - używaj importMode: 'fetch'. Wcześniej wskazywało, czy należy pobierać treść słownika dynamicznie przez API Live Sync. | boolean | undefined | Przemianowano na importMode: 'fetch' w v8.0.0. | |
schema | Generowane automatycznie przez Intlayer do walidacji schematu JSON. | 'https://intlayer.org/schema.json' | Automatyczne | Nie edytuj ręcznie. | |
title | Pomaga identyfikować słowniki w edytorze i CMS. | string | undefined | 'User Profile' | |
tags | Klasyfikuje słowniki i dostarcza kontekst lub instrukcje dla edytora i AI. | string[] | undefined | ['user', 'profile'] | |
version | Wersja zdalnego słownika; pomaga śledzić używaną obecnie wersję. | string | undefined | '1.0.0' | • Zarządzane w CMS. • Nie edytuj lokalnie. |
Przykład fill:
Skopiuj kod do schowka
Konfiguracja loggera (Log)
Ustawienia dostosowywania wyjścia logów Intlayer.
Otwórz tabelę w oknie modalnym, aby wyraźnie zobaczyć całą zawartość
| Pole | Opis | Typ | Domyślnie | Przykład | Uwagi |
|---|---|---|---|---|---|
mode | Wskazuje tryb loggera. | 'default' | 'verbose' | 'disabled' | 'default' | 'verbose' | • 'verbose': Zapisuje więcej informacji do debugowania.• 'disabled': Całkowicie wyłącza loggera. |
prefix | Prefiks dla wszystkich wiadomości w logach. | string | '[intlayer] ' | '[mój prefiks] ' |
Konfiguracja AI (AI)
Ustawienia do zarządzania funkcjami AI w Intlayer, w tym dostawca, model i klucz API.
Ta konfiguracja jest opcjonalna, jeśli zarejestrujesz się za pomocą klucza dostępu w Intlayer Dashboard. Intlayer automatycznie wybierze najbardziej opłacalne i wydajne rozwiązanie AI dla Twoich potrzeb. Korzystanie z domyślnych ustawień zapewnia najlepsze długoterminowe wsparcie, ponieważ Intlayer stale aktualizuje się, aby korzystać z najnowszych modeli.
Jeśli wolisz korzystać z własnego klucza API lub konkretnego modelu, możesz zdefiniować własną konfigurację AI.
Ta konfiguracja AI będzie używana globalnie w Twoim środowisku Intlayer. Komendy CLI, takie jak fill, będą domyślnie używać tych ustawień, podobnie jak SDK, edytor wizualny i CMS. Możesz nadpisać te wartości domyślne w konkretnych przypadkach za pomocą parametrów komend.
Intlayer obsługuje szeroką gamę dostawców AI, aby zapewnić maksymalną elastyczność. Obecnie obsługiwani dostawcy to:
- OpenAI (Domyślnie)
- Anthropic Claude
- Mistral AI
- DeepSeek
- Google Gemini
- Google AI Studio
- Google Vertex
- Meta Llama
- Ollama
- OpenRouter
- Alibaba Cloud
- Fireworks
- Hugging Face
- Groq
- Amazon Bedrock
- Together.ai
- LM Studio
Otwórz tabelę w oknie modalnym, aby wyraźnie zobaczyć całą zawartość
| Pole | Opis | Typ | Domyślnie | Przykład | Uwagi |
|---|---|---|---|---|---|
provider | Dostawca, który będzie używany do funkcji AI w Intlayer. | 'openai' | 'anthropic' | 'mistral' | 'deepseek' | 'gemini' | 'ollama' | 'openrouter' | 'alibaba' | 'fireworks' | 'groq' | 'huggingface' | 'bedrock' | 'googleaistudio' | 'googlevertex' | 'togetherai' | 'lmstudio' | undefined | 'anthropic' | Różni dostawcy wymagają różnych kluczy API i mają różne cenniki. |
model | Model AI do użycia w funkcjach AI. | string | Brak | 'gpt-4o-2024-11-20' | Konkretne modele zależą od dostawcy. |
temperature | Kontroluje losowość odpowiedzi AI. | number | Brak | 0.1 | Wyższa temperatura = bardziej kreatywne, ale mniej niezawodne odpowiedzi. |
apiKey | Twój klucz API dla wybranego dostawcy. | string | Brak | process.env.OPENAI_API_KEY | Musi pozostać tajny; używaj zmiennych środowiskowych. |
applicationContext | Dodatkowy kontekst o Twojej aplikacji, aby pomóc AI generować dokładniejsze tłumaczenia (domena, grupa docelowa, ton, terminologia). | string | Brak | 'mój własny kontekst aplikacji' | Można użyć do dodania zasad (np.: "Nie powinieneś tłumaczyć swoich URL" ). |
baseURL | Bazowy URL dla API AI. | string | Brak | 'https://api.openai.com/v1''http://localhost:5000' | Może wskazywać na lokalne lub własne punkty końcowe API AI. |
dataSerialization | Format serializacji danych dla funkcji AI. | 'json' | 'toon' | undefined | 'toon' | • 'json': domyślnie, niezawodne; zużywa więcej tokenów.• 'toon': mniej tokenów, mniej stabilne.• Przekazuje modelowi kontekst jako dodatkowy parametr (reasoning effort itp.). |
Konfiguracja budowania (Build)
Ustawienia kontrolujące sposób, w jaki Intlayer optymalizuje i kompiluje internacjonalizację aplikacji.
Ustawienia budowania mają zastosowanie do wtyczek @intlayer/babel i @intlayer/swc.
W trybie deweloperskim Intlayer używa statycznego importu słowników w celu ułatwienia procesu deweloperskiego.
Podczas optymalizacji Intlayer zastępuje wywołania słowników optymalizacją dzielenia kodu (chunking), aby wynikowy pakiet importował tylko te słowniki, które są faktycznie używane.
Otwórz tabelę w oknie modalnym, aby wyraźnie zobaczyć całą zawartość
| Pole | Opis | Typ | Domyślnie | Przykład | Uwagi |
|---|---|---|---|---|---|
mode | Kontroluje tryb wykonywania budowania. | 'auto' | 'manual' | 'auto' | 'manual' | • 'auto': Budowanie jest automatycznie wyzwalane podczas budowania (build time) aplikacji.• 'manual': Uruchamiane tylko poprzez jawne polecenie budowania.• Może być użyte do zapobiegania budowaniu słowników (np. aby uniknąć uruchamiania w środowisku Node.js). |
optimize | Kontroluje, czy optymalizacja budowania jest wykonywana. | boolean | undefined | process.env.NODE_ENV === 'production' | • Jeśli niezdefiniowane, optymalizacja jest wyzwalana podczas budowania (build time) frameworka (Vite/Next.js). • true wymusza optymalizację nawet w trybie deweloperskim.• false wyłącza ją.• Jeśli włączone, zastępuje wywołania słowników optymalizacją chunking. • Wymagane wtyczki @intlayer/babel i @intlayer/swc. |
minify | Minimalizuj słowniki, aby zmniejszyć rozmiar bundle'a. | boolean | false | • Określa, czy pakiet ma zostać zminimalizowany. • Domyślnie: true w produkcji.• Ta opcja zostanie zignorowana, jeśli optimize jest wyłączone.• Ta opcja zostanie zignorowana, jeśli editor.enabled jest prawdziwe. | |
purge | Usuń nieużywane klucze w słownikach. | boolean | false | • Określa, czy pakiet ma zostać wyczyszczony. • Domyślnie: true w produkcji.• Ta opcja zostanie zignorowana, jeśli optimize jest wyłączone. | |
checkTypes | Wskazuje, czy budowanie powinno sprawdzać typy TypeScript i logować błędy. | boolean | false | Może spowolnić proces budowania. | |
outputFormat | Kontroluje format wyjściowy słowników. | ('esm' | 'cjs')[] | ['esm', 'cjs'] | ['cjs'] | |
traversePattern | Wzorzec dla plików, które mają być skanowane podczas optymalizacji. | string[] | ['**/*.{tsx,ts,js,mjs,cjs,jsx,vue,svelte,svte}', '!**/node_modules/**', '!**/dist/**', '!**/.intlayer/**', '!**/*.config.*', '!**/*.test.*', '!**/*.spec.*', '!**/*.stories.*'] | ['src/**/*.{ts,tsx}', '../ui-library/**/*.{ts,tsx}', '!**/node_modules/**'] | • Poprawia wydajność budowania poprzez ograniczenie optymalizacji do odpowiednich plików. • Ignorowane, jeśli optimize jest wyłączone.• Używa wzorców glob. |
Konfiguracja systemowa (System)
Te ustawienia są przeznaczone dla zaawansowanych użytkowników i wewnętrznej konfiguracji Intlayer.
Otwórz tabelę w oknie modalnym, aby wyraźnie zobaczyć całą zawartość
| Pole | Opis | Typ | Domyślnie | Przykład | Uwagi |
|---|---|---|---|---|---|
dictionariesDir | Katalog dla skompilowanych słowników. | string | '.intlayer/dictionary' | ||
moduleAugmentationDir | Katalog dla module augmentation TypeScript. | string | '.intlayer/types' | ||
unmergedDictionariesDir | Katalog dla niepołączonych słowników. | string | '.intlayer/unmerged_dictionary' | ||
typesDir | Katalog dla wygenerowanych typów. | string | '.intlayer/types' | ||
mainDir | Katalog głównych plików Intlayer. | string | '.intlayer/main' | ||
configDir | Katalog skompilowanych plików konfiguracyjnych. | string | '.intlayer/config' | ||
cacheDir | Katalog plików cache. | string | '.intlayer/cache' |
Konfiguracja kompilatora (Compiler)
Kontroluje ustawienia kompilatora Intlayer, który kolekcjonuje słowniki bezpośrednio z Twoich komponentów.
Otwórz tabelę w oknie modalnym, aby wyraźnie zobaczyć całą zawartość
| Pole | Opis | Typ | Domyślnie | Przykład | Uwagi |
|---|---|---|---|---|---|
enabled | Wskazuje, czy kompilator powinien być aktywny w celu kolekcjonowania słowników. | boolean | 'build-only' | true | 'build-only' | 'build-only' pomija kompilator podczas deweloperki dla szybszego startu; uruchamia się tylko podczas poleceń budowania. |
dictionaryKeyPrefix | Prefiks dla zebranych kluczy słowników. | string | '' | 'my-prefix-' | Dodawany przed wygenerowanym kluczem (opartym na nazwie pliku), aby uniknąć konfliktów. |
saveComponents | Czy zapisać komponenty po ich przekształceniu. | boolean | false | • Jeśli true, oryginalne pliki zostaną nadpisane przekształconymi wersjami.• Pozwala na jednorazowe uruchomienie kompilatora, a następnie jego usunięcie. | |
output | Definiuje ścieżkę do pliku wyjściowego. Zastępuje outputDir. Obsługuje zmienne szablonowe: {{fileName}}, {{key}}, {{locale}}, {{extension}}, {{componentFileName}}, {{componentExtension}}, {{format}}, {{componentFormat}}, {{componentDirPath}} . | boolean | FilePathPattern | Partial<Record<Locale, boolean | FilePathPattern>> | undefined | './{{fileName}}{{extension}}''/locales/{{locale}}/{{key}}.json'{ en: ({ key }) => './locales/en/${key}.json', fr: '...', es: false } | • Ścieżki ./ są obliczane względem katalogu komponentu.• Ścieżki / są obliczane względem korzenia projektu.• {{locale}} pozwala na generowanie na poziomie lokali.• Obsługuje definicję przez obiekt na poziomie lokali. |
noMetadata | Jeśli true, kompilator usuwa metadane słownika (klucz, content wrapper) z wyniku. | boolean | false | false → {"key":"my-key","content":{"key":"value"}}true → {"key":"value"} | • Przydatne dla formatów i18next lub ICU MessageFormat JSON na język. • Dobrze współpracuje z wtyczką loadJSON. |
dictionaryKeyPrefix | Prefiks klucza słownika | string | '' | Dodaje opcjonalny prefiks do wyodrębnionych kluczy słownika |
Własne schematy (Custom Schemas)
Otwórz tabelę w oknie modalnym, aby wyraźnie zobaczyć całą zawartość
| Pole | Opis | Typ |
|---|---|---|
schemas | Pozwala definiować schematy Zod do walidacji struktury Twoich słowników. | Record<string, ZodSchema> |
Wtyczki (Plugins)
Otwórz tabelę w oknie modalnym, aby wyraźnie zobaczyć całą zawartość
| Pole | Opis | Typ |
|---|---|---|
plugins | Lista wtyczek Intlayer, które mają być dołączone. | IntlayerPlugin[] |