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
- Dodano konfigurację `dictionary`v7.0.025.10.2025
- Zastąpiono konfigurację `middleware` 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 pole `dictionaryOutput` oraz pole `i18nextResourcesDir`v6.0.021.09.2025
- Dodano tryb importu `live`v6.0.016.09.2025
- Zastąpiono pole `hotReload` polem `liveSync` oraz dodano pola `liveSyncPort` i `liveSyncURL`v6.0.04.09.2025
- Zastąpiono `activateDynamicImport` 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 umożliwiają dostosowanie różnych aspektów wtyczki, takich jak internacjonalizacja, middleware oraz obsługa treści. Ten dokument zawiera szczegółowy opis każdej właściwości w konfiguracji.
Spis treści
Obsługiwane formaty plików konfiguracyjnych
Intlayer obsługuje formaty plików konfiguracyjnych JSON, JS, MJS oraz TS:
- intlayer.config.ts
- intlayer.config.js
- intlayer.config.json
- intlayer.config.cjs
- intlayer.config.mjs
- .intlayerrc
Przykładowy plik konfiguracyjny
Skopiuj kod do schowka
import { Locales, type IntlayerConfig } from "intlayer";const config: IntlayerConfig = { internationalization: { locales: [Locales.ENGLISH], }, content: { contentDir: ["src", "../ui-library"], }, dictionary: { fill: "./{{fileName}}.content.json", }, routing: { mode: "prefix-no-default", storage: "cookie", }, editor: { applicationURL: "https://example.com", }, ai: { apiKey: process.env.OPENAI_API_KEY, applicationContext: "To jest aplikacja testowa", }, build: { importMode: "dynamic", },};export default config;Odniesienie do konfiguracji
Poniższe sekcje opisują różne ustawienia konfiguracyjne dostępne dla Intlayer.
Konfiguracja internacjonalizacji
Definiuje ustawienia związane z internacjonalizacją, w tym dostępne lokalizacje oraz domyślną lokalizację dla aplikacji.
Właściwości
locales:
- Typ: string[]
- Domyślnie: ['en']
- Opis: Lista obsługiwanych lokalizacji w aplikacji.
- Przykład: ['en', 'fr', 'es']
- requiredLocales:
- Typ: string[]
- Domyślnie: []
- Opis: Lista wymaganych lokalizacji w aplikacji.
- Przykład: []
- Uwaga: Jeśli pusta, wszystkie lokalizacje są wymagane w trybie strict.
- Uwaga: Upewnij się, że wymagane lokalizacje są również zdefiniowane w polu locales.
strictMode:
- Typ: string
- Domyślnie: inclusive
- Opis: Zapewnia silną implementację zinternacjonalizowanej zawartości przy użyciu TypeScript.
- Uwaga: Jeśli ustawione na "strict", funkcja tłumaczenia t będzie wymagać zdefiniowania każdej zadeklarowanej lokalizacji. Jeśli jakaś lokalizacja będzie brakować lub nie będzie zadeklarowana w konfiguracji, zostanie zgłoszony błąd.
- Uwaga: Jeśli ustawione na "inclusive", funkcja tłumaczenia t będzie wymagać zdefiniowania każdej zadeklarowanej lokalizacji. Jeśli jakaś lokalizacja będzie brakować, zostanie wyświetlone ostrzeżenie. Jednak zaakceptuje lokalizację, która nie jest zadeklarowana w konfiguracji, ale istnieje.
- Uwaga: Jeśli ustawione na "loose", funkcja tłumaczenia t zaakceptuje dowolną istniejącą lokalizację.
defaultLocale:
- Typ: string
- Domyślnie: 'en'
- Opis: Domyślna lokalizacja używana jako zapasowa, jeśli żądana lokalizacja nie zostanie znaleziona.
- Przykład: 'en'
- Uwaga: Używane do określenia lokalizacji, gdy żadna nie jest podana w URL, ciasteczku lub nagłówku.
Konfiguracja edytora
Definiuje ustawienia związane z zintegrowanym edytorem, w tym port serwera i status aktywności.
Właściwości
applicationURL:
- Typ: string
- Domyślnie: http://localhost:3000
- Opis: URL aplikacji. Używany do ograniczenia pochodzenia edytora ze względów bezpieczeństwa.
- Przykład:
- 'http://localhost:3000'
- 'https://example.com'
- process.env.INTLAYER_EDITOR_URL
- Uwaga: URL aplikacji. Używany do ograniczenia pochodzenia edytora ze względów bezpieczeństwa. Jeśli ustawiony na '*', edytor jest dostępny z dowolnego pochodzenia.
port:
- Typ: number
- Domyślnie: 8000
- Opis: Port używany przez serwer wizualnego edytora.
editorURL:
- Typ: string
- Domyślnie: 'http://localhost:8000'
- Opis: URL serwera edytora. Używany do ograniczenia pochodzenia edytora ze względów bezpieczeństwa.
- 'http://localhost:3000'
- 'https://example.com'
- process.env.INTLAYER_EDITOR_URL
- Uwaga: URL serwera edytora, do którego aplikacja się łączy. Używany do ograniczenia pochodzenia, które może wchodzić w interakcję z aplikacją ze względów bezpieczeństwa. Jeśli ustawiony na '*', edytor jest dostępny z dowolnego pochodzenia. Powinien być ustawiony, jeśli zmieniono port lub jeśli edytor jest hostowany na innej domenie.
cmsURL:
- Typ: string
- Domyślnie: 'https://intlayer.org'
- Opis: URL systemu CMS Intlayer.
- Przykład: 'https://intlayer.org'
- Uwaga: URL systemu CMS Intlayer.
backendURL:
- Typ: string
- Domyślnie: https://back.intlayer.org
- Opis: URL serwera backendowego.
- Przykład: http://localhost:4000
enabled:
- Typ: boolean
- Domyślnie: true
- Opis: Wskazuje, czy aplikacja wchodzi w interakcję z edytorem wizualnym.
- Przykład: process.env.NODE_ENV !== 'production'
- Uwaga: Jeśli wartość jest prawdziwa, edytor będzie mógł wchodzić w interakcję z aplikacją. Jeśli fałszywa, edytor nie będzie mógł wchodzić w interakcję z aplikacją. W każdym przypadku edytor może być włączony tylko przez edytor wizualny. Wyłączanie edytora dla określonych środowisk jest sposobem na zwiększenie bezpieczeństwa.
clientId:
- Typ: string | undefined
- Domyślnie: undefined
- Opis: clientId i clientSecret pozwalają pakietom intlayer na uwierzytelnianie się z backendem za pomocą uwierzytelniania oAuth2. Token dostępu jest używany do uwierzytelniania użytkownika związanego z projektem. Aby uzyskać token dostępu, przejdź do https://intlayer.org/dashboard/project i załóż konto.
- Przykład: true
- Uwaga: Ważne: clientId i clientSecret powinny być przechowywane w tajemnicy i nie udostępniane publicznie. Upewnij się, że są przechowywane w bezpiecznym miejscu, na przykład w zmiennych środowiskowych.
clientSecret:
- Typ: string | undefined
- Domyślnie: undefined
- Opis: clientId i clientSecret pozwalają pakietom intlayer na uwierzytelnianie się z backendem za pomocą uwierzytelniania oAuth2. Token dostępu jest używany do uwierzytelniania użytkownika związanego z projektem. Aby uzyskać token dostępu, przejdź do https://intlayer.org/dashboard/project i załóż konto.
- Przykład: true
- Uwaga: Ważne: clientId i clientSecret powinny być przechowywane w tajemnicy i nie udostępniane publicznie. Upewnij się, że są przechowywane w bezpiecznym miejscu, na przykład w zmiennych środowiskowych.
dictionaryPriorityStrategy:
- Typ: string
- Domyślnie: 'local_first'
- Opis: Strategia priorytetyzacji słowników w przypadku obecności zarówno lokalnych, jak i zdalnych słowników. Jeśli ustawiona na 'distant_first', aplikacja będzie priorytetowo traktować słowniki zdalne nad lokalnymi. Jeśli ustawiona na 'local_first', aplikacja będzie priorytetowo traktować słowniki lokalne nad zdalnymi.
- Przykład: 'distant_first'
liveSync:
- Typ: boolean
- Domyślnie: false
- Opis: Wskazuje, czy serwer aplikacji powinien automatycznie przeładowywać zawartość aplikacji po wykryciu zmiany w CMS / Visual Editor / Backend.
- Przykład: true
- Uwaga: Na przykład, gdy zostanie dodany lub zaktualizowany nowy słownik, aplikacja zaktualizuje zawartość wyświetlaną na stronie.
- Uwaga: Live sync wymaga zewnętrznego udostępnienia zawartości aplikacji na innym serwerze. Oznacza to, że może to nieznacznie wpłynąć na wydajność aplikacji. Aby to ograniczyć, zalecamy hostowanie aplikacji i serwera live sync na tej samej maszynie. Ponadto, połączenie live sync i optimize może generować znaczną liczbę zapytań do serwera live sync. W zależności od infrastruktury, zalecamy przetestowanie obu opcji oraz ich kombinacji.
liveSyncPort:
- Typ: number
- Domyślnie: 4000
- Opis: Port serwera live sync.
- Przykład: 4000
- Uwaga: Port serwera live sync.
liveSyncURL:
- Typ: string
- Domyślnie: 'http://localhost:{liveSyncPort}'
- Opis: URL serwera live sync.
- Przykład: 'https://example.com'
- Uwaga: Domyślnie wskazuje na localhost, ale może zostać zmieniony na dowolny URL w przypadku zdalnego serwera live sync.
Konfiguracja routingu
Ustawienia kontrolujące zachowanie routingu, w tym strukturę URL, przechowywanie lokalizacji oraz obsługę middleware.
Właściwości
mode:
- Typ: 'prefix-no-default' | 'prefix-all' | 'no-prefix' | 'search-params'
- Domyślnie: 'prefix-no-default'
- Opis: Tryb routingu URL dla obsługi lokalizacji.
- Przykłady:
- 'prefix-no-default': /dashboard (en) lub /fr/dashboard (fr)
- 'prefix-all': /en/dashboard (en) lub /fr/dashboard (fr)
- 'no-prefix': /dashboard (lokalizacja obsługiwana innymi metodami)
- 'search-params': /dashboard?locale=fr
- Uwaga: To ustawienie nie wpływa na zarządzanie ciasteczkami ani przechowywaniem lokalizacji.
storage:
- Typ: false | 'cookie' | 'localStorage' | 'sessionStorage' | 'header' | CookiesAttributes | StorageAttributes | Array
- Domyślnie: 'localStorage'
Opis: Konfiguracja przechowywania lokalizacji po stronie klienta.
cookie:
- Opis: Przechowuje dane w ciasteczkach, małych fragmentach danych zapisywanych w przeglądarce klienta, dostępnych zarówno po stronie klienta, jak i serwera.
- Uwaga: Aby przechowywanie było zgodne z RODO, należy zapewnić odpowiednią zgodę użytkownika przed użyciem.
- Uwaga: Parametry ciasteczek są konfigurowalne, jeśli ustawione jako CookiesAttributes ({ type: 'cookie', name: 'custom-locale', secure: true, httpOnly: false }).
localStorage:
- Opis: Przechowuje dane w przeglądarce bez dat wygaśnięcia, co pozwala na utrzymanie danych pomiędzy sesjami, dostępne tylko po stronie klienta.
- Uwaga: Idealne do przechowywania danych długoterminowych, ale należy pamiętać o kwestiach prywatności i bezpieczeństwa ze względu na brak automatycznego wygasania, chyba że dane zostaną wyraźnie usunięte.
- Uwaga: Przechowywanie lokalizacji jest dostępne tylko po stronie klienta, proxy intlayer nie będzie miało do niego dostępu.
- Uwaga: Parametry przechowywania lokalizacji są konfigurowalne, jeśli ustawione jako StorageAttributes ({ type: 'localStorage', name: 'custom-locale' }).
sessionStorage:
- Opis: Przechowuje dane przez czas trwania sesji strony, co oznacza, że dane są usuwane po zamknięciu zakładki lub okna, dostępne tylko po stronie klienta.
- Uwaga: Odpowiednie do tymczasowego przechowywania danych dla każdej sesji.
- Uwaga: Przechowywanie lokalne jest dostępne tylko po stronie klienta, proxy intlayer nie będzie miało do niego dostępu.
- Uwaga: Parametry przechowywania lokalnego są konfigurowalne, jeśli ustawione jako StorageAttributes ({ type: 'sessionStorage', name: 'custom-locale' }).
header:
- Opis: Wykorzystuje nagłówki HTTP do przechowywania lub przesyłania danych lokalizacyjnych, odpowiednie do określania języka po stronie serwera.
- Uwaga: Przydatne w wywołaniach API do utrzymania spójnych ustawień językowych w żądaniach.
- Uwaga: Nagłówek jest dostępny tylko po stronie serwera, klient nie będzie miał do niego dostępu.
- Uwaga: Nazwa nagłówka jest konfigurowalna, jeśli ustawiona jako StorageAttributes ({ type: 'header', name: 'custom-locale' }).
basePath:
- Typ: string
- Domyślnie: ''
- Opis: Podstawowa ścieżka dla adresów URL aplikacji.
- Przykład: '/my-app'
- Uwaga:
- Jeśli aplikacja jest hostowana pod adresem https://example.com/my-app
- Podstawowa ścieżka to '/my-app'
- Adres URL będzie https://example.com/my-app/en
- Jeśli podstawowa ścieżka nie jest ustawiona, adres URL będzie https://example.com/en
Atrybuty ciasteczek
Podczas korzystania z przechowywania w ciasteczkach, możesz skonfigurować dodatkowe atrybuty ciasteczek:
- name: Nazwa ciasteczka (domyślnie: 'INTLAYER_LOCALE')
- domain: Domeną ciasteczka (domyślnie: niezdefiniowane)
- path: Ścieżka ciasteczka (domyślnie: niezdefiniowane)
- secure: Wymagaj HTTPS (domyślnie: niezdefiniowane)
- httpOnly: Flaga HTTP-only (domyślnie: niezdefiniowane)
- sameSite: Polityka SameSite ('strict' | 'lax' | 'none')
- expires: Data wygaśnięcia lub liczba dni (domyślnie: niezdefiniowane)
Atrybuty przechowywania lokalnego
Podczas korzystania z localStorage lub sessionStorage:
- type: Typ przechowywania ('localStorage' | 'sessionStorage')
- name: Nazwa klucza przechowywania (domyślnie: 'INTLAYER_LOCALE')
Przykłady konfiguracji
Oto kilka typowych przykładów konfiguracji dla nowej struktury routingu w wersji v7:
Podstawowa konfiguracja (domyślna):
// intlayer.config.tsexport default defineConfig({ internationalization: { locales: ["en", "fr", "es"], defaultLocale: "en", }, routing: { mode: "prefix-no-default", storage: "localStorage", headerName: "x-intlayer-locale", basePath: "", },});Konfiguracja zgodna z RODO:
// intlayer.config.tsexport default defineConfig({ internationalization: { locales: ["en", "fr", "es"], defaultLocale: "en", }, routing: { mode: "prefix-no-default", storage: [ { type: "localStorage", name: "user-locale", }, { type: "cookie", name: "user-locale", secure: true, sameSite: "strict", httpOnly: false, }, ], headerName: "x-intlayer-locale", basePath: "", },});Tryb parametrów wyszukiwania:
// intlayer.config.tsexport default defineConfig({ internationalization: { locales: ["en", "fr", "es"], defaultLocale: "en", }, routing: { mode: "search-params", storage: "localStorage", headerName: "x-intlayer-locale", basePath: "", },});Tryb bez prefiksu z niestandardową pamięcią:
// intlayer.config.tsexport default defineConfig({ internationalization: { locales: ["en", "fr", "es"], defaultLocale: "en", }, routing: { mode: "no-prefix", storage: { type: "sessionStorage", name: "app-locale", }, headerName: "x-custom-locale", basePath: "/my-app", },});Konfiguracja treści
Ustawienia związane z obsługą treści w aplikacji, w tym nazwy katalogów, rozszerzenia plików oraz pochodne konfiguracje.
Właściwości
watch:
- Typ: boolean
- Domyślnie: process.env.NODE_ENV === 'development'
- Opis: Wskazuje, czy Intlayer powinien obserwować zmiany w plikach deklaracji treści w aplikacji, aby przebudować powiązane słowniki.
fileExtensions:
- Typ: string[]
- Domyślnie: ['.content.ts', '.content.js', '.content.cjs', '.content.mjs', '.content.json', '.content.tsx', '.content.jsx']
- Opis: Rozszerzenia plików, które mają być wyszukiwane podczas budowania słowników.
- Przykład: ['.data.ts', '.data.js', '.data.json']
- Uwaga: Dostosowanie rozszerzeń plików może pomóc uniknąć konfliktów.
baseDir:
- Typ: string
- Domyślnie: process.cwd()
- Opis: Katalog bazowy projektu.
- Przykład: '/path/to/project'
- Uwaga: Jest używany do rozwiązywania wszystkich katalogów związanych z Intlayer.
contentDir:
- Typ: string[]
- Domyślnie: ['.']
- Przykład: ['src', '../../ui-library', require.resolve("@my-package/content")]
- Opis: Ścieżka katalogu, w którym przechowywana jest zawartość.
dictionariesDir:
- Typ: string
- Domyślnie: '.intlayer/dictionaries'
- Opis: Ścieżka katalogu do przechowywania wyników pośrednich lub wyjściowych.
moduleAugmentationDir:
- Typ: string
- Domyślnie: '.intlayer/types'
- Opis: Katalog do rozszerzania modułów, umożliwiający lepsze sugestie w IDE i sprawdzanie typów.
- Przykład: 'intlayer-types'
- Uwaga: Upewnij się, że jest to uwzględnione w tsconfig.json.
unmergedDictionariesDir:
- Typ: string
- Domyślnie: '.intlayer/unmerged_dictionary'
- Opis: Katalog do przechowywania niepołączonych słowników.
- Przykład: 'translations'
dictionariesDir:
- Typ: string
- Domyślnie: '.intlayer/dictionary'
- Opis: Katalog do przechowywania słowników lokalizacyjnych.
- Przykład: 'translations'
typesDir:
- Typ: string
- Domyślnie: 'types'
- Opis: Katalog do przechowywania typów słowników.
- Przykład: 'intlayer-types'
mainDir:
- Typ: string
- Domyślnie: 'main'
- Opis: Katalog, w którym przechowywane są główne pliki aplikacji.
- Przykład: 'intlayer-main'
excludedPath:
- Typ: string[]
- Domyślnie: ['**/node_modules/**', '**/dist/**', '**/build/**', '**/.intlayer/**', '**/.next/**', '**/.nuxt/**', '**/.expo/**', '**/.vercel/**', '**/.turbo/**', '**/.tanstack/**']
- Opis: Katalogi wykluczone z wyszukiwania treści.
- Uwaga: To ustawienie nie jest jeszcze używane, ale planowane do implementacji w przyszłości.
formatCommand:
- Typ: string
- Domyślnie: undefined
- Opis: Komenda do formatowania zawartości. Gdy intlayer zapisuje lokalnie twoje pliki .content, ta komenda będzie używana do formatowania zawartości.
- Przykład: 'npx prettier --write "{{file}}" --log-level silent' Użycie Prettier
- Przykład: 'npx biome format "{{file}}" --write --log-level none' Użycie Biome
- Przykład: 'npx eslint --fix "{{file}}" --quiet' Użycie ESLint
- Uwaga: Intlayer zastąpi {{file}} ścieżką do pliku, który ma zostać sformatowany.
- Uwaga: Jeśli nie zostanie ustawione, Intlayer spróbuje automatycznie wykryć polecenie formatowania. Próbując rozpoznać następujące polecenia: prettier, biome, eslint.
Konfiguracja Słownika
Ustawienia kontrolujące operacje słownika, w tym zachowanie automatycznego wypełniania oraz generowanie zawartości.
Ta konfiguracja słownika służy dwóm głównym celom:
- Wartości domyślne: Definiowanie wartości domyślnych podczas tworzenia plików deklaracji zawartości
- Zachowanie zapasowe: Zapewnienie wartości zapasowych, gdy konkretne pola nie są zdefiniowane, co pozwala na globalne określenie zachowania operacji słownika
Aby uzyskać więcej informacji na temat plików deklaracji zawartości oraz sposobu stosowania wartości konfiguracyjnych, zobacz Dokumentację pliku zawartości.
Właściwości
- fill
- description
- locale
- priority
- live
- title
- tags
- version
Konfiguracja Loggera
Ustawienia kontrolujące logger, w tym prefiks do użycia.
Właściwości
mode:
- Typ: string
- Domyślnie: default
- Opis: Określa tryb loggera.
- Opcje: default, verbose, disabled
- Przykład: default
- Uwaga: Tryb loggera. Tryb verbose będzie logował więcej informacji, ale może być używany do celów debugowania. Tryb disabled wyłączy logger.
prefix:
- Typ: string
- Domyślnie: '[intlayer] '
- Opis: Prefiks loggera.
- Przykład: '[my custom prefix] '
- Uwaga: Prefiks loggera.
Konfiguracja AI
Ustawienia kontrolujące funkcje AI w Intlayer, w tym dostawcę, model i klucz API.
Ta konfiguracja jest opcjonalna, jeśli jesteś zarejestrowany na Intlayer Dashboard i korzystasz z klucza dostępu. Intlayer automatycznie zarządza najbardziej efektywnym i opłacalnym rozwiązaniem AI dla Twoich potrzeb. Korzystanie z domyślnych opcji zapewnia lepszą długoterminową utrzymalność, ponieważ Intlayer stale aktualizuje się, aby korzystać z najbardziej odpowiednich modeli.
Jeśli wolisz używać własnego klucza API lub konkretnego modelu, możesz zdefiniować własną konfigurację AI. Ta konfiguracja AI będzie używana globalnie w całym środowisku Intlayer. Polecenia CLI będą korzystać z tych ustawień jako domyślnych dla poleceń (np. fill), a także SDK, Visual Editor i CMS. Możesz nadpisać te domyślne wartości dla konkretnych przypadków użycia, korzystając z parametrów poleceń.
Intlayer obsługuje wielu dostawców AI, aby zapewnić większą elastyczność i wybór. Obecnie obsługiwani dostawcy to:
- OpenAI (domyślny)
- Anthropic Claude
- Mistral AI
- DeepSeek
- Google Gemini
- Meta Llama
Właściwości
provider:
- Typ: string
- Domyślnie: 'openai'
- Opis: Dostawca używany do funkcji AI w Intlayer.
- Opcje: 'openai', 'anthropic', 'mistral', 'deepseek', 'gemini'
- Przykład: 'anthropic'
- Uwaga: Różni dostawcy mogą wymagać różnych kluczy API i mieć różne modele cenowe.
model:
- Typ: string
- Domyślnie: Brak
- Opis: Model używany do funkcji AI w Intlayer.
- Przykład: 'gpt-4o-2024-11-20'
- Uwaga: Konkretne modele różnią się w zależności od dostawcy.
temperature:
- Typ: number
- Domyślnie: Brak
- Opis: Temperatura kontroluje losowość odpowiedzi AI.
- Przykład: 0.1
- Uwaga: Wyższa temperatura sprawia, że AI jest bardziej kreatywne i mniej przewidywalne.
apiKey:
- Typ: string
- Domyślnie: Brak
- Opis: Twój klucz API dla wybranego dostawcy.
- Przykład: process.env.OPENAI_API_KEY
- Uwaga: Ważne: Klucze API powinny być przechowywane w tajemnicy i nie udostępniane publicznie. Proszę upewnić się, że są przechowywane w bezpiecznym miejscu, takim jak zmienne środowiskowe.
applicationContext:
- Typ: string
- Domyślnie: Brak
- Opis: Dostarcza dodatkowy kontekst dotyczący Twojej aplikacji dla modelu AI, pomagając mu generować dokładniejsze i kontekstowo odpowiednie tłumaczenia. Może to obejmować informacje o domenie aplikacji, docelowej grupie odbiorców, tonie lub specyficznej terminologii.
Konfiguracja Budowania
Ustawienia kontrolujące, jak Intlayer optymalizuje i buduje internacjonalizację Twojej aplikacji.
Opcje budowania dotyczą wtyczek @intlayer/babel oraz @intlayer/swc.
W trybie deweloperskim Intlayer używa statycznych importów słowników, aby uprościć proces tworzenia aplikacji.
Po optymalizacji Intlayer zastąpi wywołania słowników, aby zoptymalizować podział na części (chunking), dzięki czemu finalny pakiet zaimportuje tylko te słowniki, które są faktycznie używane.
Właściwości
optimize:
- Typ: boolean
- Domyślnie: process.env.NODE_ENV === 'production'
- Opis: Kontroluje, czy budowa powinna być zoptymalizowana.
- Przykład: true
- Uwaga: Po włączeniu Intlayer zastąpi wszystkie wywołania słowników, aby zoptymalizować podział na części. W ten sposób finalny pakiet zaimportuje tylko używane słowniki. Wszystkie importy pozostaną statyczne, aby uniknąć asynchronicznego przetwarzania podczas ładowania słowników.
- Uwaga: Intlayer zastąpi wszystkie wywołania useIntlayer trybem zdefiniowanym przez opcję importMode oraz getIntlayer funkcją getDictionary.
- Uwaga: Ta opcja wymaga wtyczek @intlayer/babel oraz @intlayer/swc.
- Uwaga: Upewnij się, że wszystkie klucze są deklarowane statycznie w wywołaniach useIntlayer, np. useIntlayer('navbar').
- importMode:
- Typ: 'static' | 'dynamic' | 'live'
- Domyślnie: 'static'
- Opis: Kontroluje sposób importowania słowników.
- Przykład: 'dynamic'
- Uwaga: Dostępne tryby:
- "static": Słowniki są importowane statycznie. Zastępuje useIntlayer funkcją useDictionary.
- "dynamic": Słowniki są importowane dynamicznie z użyciem Suspense. Zastępuje useIntlayer funkcją useDictionaryDynamic.
- "live": Słowniki są pobierane dynamicznie za pomocą API synchronizacji na żywo. Zastępuje useIntlayer funkcją useDictionaryDynamic.
- Uwaga: Importy dynamiczne opierają się na Suspense i mogą nieznacznie wpływać na wydajność renderowania.
- Uwaga: Jeśli wyłączone, wszystkie lokalizacje zostaną załadowane jednocześnie, nawet jeśli nie są używane.
- Uwaga: Ta opcja wymaga wtyczek @intlayer/babel oraz @intlayer/swc.
- Uwaga: Upewnij się, że wszystkie klucze są zadeklarowane statycznie w wywołaniach useIntlayer, np. useIntlayer('navbar').
- Uwaga: Ta opcja zostanie zignorowana, jeśli optimize jest wyłączone.
- Uwaga: Jeśli ustawione na "live", tylko słowniki zawierające zdalną zawartość i oznaczone flagą "live" zostaną przekształcone w tryb live. Pozostałe zostaną zaimportowane dynamicznie w trybie "dynamic", aby zoptymalizować liczbę zapytań fetch i wydajność ładowania.
- Uwaga: Tryb live będzie korzystał z API synchronizacji na żywo do pobierania słowników. Jeśli wywołanie API się nie powiedzie, słowniki zostaną zaimportowane dynamicznie w trybie "dynamic".
- Uwaga: Ta opcja nie wpłynie na funkcje getIntlayer, getDictionary, useDictionary, useDictionaryAsync oraz useDictionaryDynamic.
outputFormat:
- Typ: 'esm' | 'cjs'
- Domyślnie: 'esm'
- Opis: Kontroluje format wyjściowy słowników.
- Przykład: 'cjs'
- Uwaga: Format wyjściowy słowników.
traversePattern:
- Typ: string[]
- Domyślnie: ['**/*.{js,ts,mjs,cjs,jsx,tsx,mjx,cjx}', '!**/node_modules/**']
- Opis: Wzorce definiujące, które pliki powinny być przeszukiwane podczas optymalizacji.
- Przykład: ['src/**/*.{ts,tsx}', '../ui-library/**/*.{ts,tsx}', '!**/node_modules/**']
- Uwaga: Użyj tego, aby ograniczyć optymalizację do istotnych plików kodu i poprawić wydajność budowania.
- Uwaga: Ta opcja zostanie zignorowana, jeśli optimize jest wyłączone.
- Uwaga: Używaj wzorców glob.