Strona głównaPiaskownicaPrezentacjaAplikacjaDokumentacjaBlog
    • Englishangielski
      EN
    • русскийrosyjski
      RU
    • 日本語japoński
      JA
    • françaisfrancuski
      FR
    • 한국어koreański
      KO
    • 中文chiński
      ZH
    • españolhiszpański
      ES
    • Deutschniemiecki
      DE
    • العربيةarabski
      AR
    • italianowłoski
      IT
    • British Englishangielski brytyjski
      EN-GB
    • portuguêsportugalski
      PT
    • हिन्दीhindi
      HI
    • Türkçeturecki
      TR
    • polskipolski
      PL
    • Indonesiaindonezyjski
      ID
    • Tiếng Việtwietnamski
      VI
    • українськаukraiński
      UK
    /
    Filtruj dokumenty według frameworka
    Alt+←
    Dlaczego Intlayer?
    Zacząć
    Koncepcja
    • Jak działa Intlayer
    • Konfiguracja
    • TestFillBuildWatchExtractLoginPushPullConfigurationListVersionEditorLiveDebugDoc ReviewDoc TranslateSDK
    • Edytor wizualny
    • CMS
    • Integracja CI/CD
    • TłumaczenieLiczba mnogaWyliczenieWarunekPłećWstawieniePlikZagnieżdżanieMarkdownHTMLPobieranie funkcji
    • Plik dla każdej lokalizacji
    • Kompilator
    • Automatyczne wypełnianie
    • Testowanie
    • Optymalizacja pakietu
    Środowisko
    • Next.js 14 i App Router
      Next.js 15
      Next.js bez locale URL
      Next.js dan Page Router
      Kompilator
    • Tanstack Start Solid
    • Astro dan React
      Astro dan Svelte
      Astro dan Vue
      Astro dan Solid
      Astro dan Preact
      Astro dan Lit
      Astro dan Vanilla JS
    • React Router v7
      React Router v7 (fs-routes)
      Compiler
    • Nuxt dan Vue
    • Vite dan Solid
    • SvelteKit
    • Vite dan Preact
    • Vite dan Vanilla JS
    • Vite dan Lit
    • Angular 19 (Webpack)
      Analog
    • React CRA
    • React Native dan Expo
    • Express.js
      NestJS
      Fastify
      Hono
      Adonis
    • Lynx dan React
    Plugins
    • JSON
    • gettext (.po)
    Rozszerzenie VS Code
    Agent
    • Serwer MCP
    • Umiejętności agenta
    Wersje
    • v8
    • v7
    • v6
    Benchmark
    • Next.js
    • TanStack
    • Vue
    • Solid
    • Svelte
    Blog
    Zadaj pytanie
    1. Documentation
    2. Koncepcja
    3. Plik dla każdej lokalizacji
    Data utworzenia:2025-04-18Ostatnia aktualizacja:2025-06-29
    Prześlij ten dokument do swojego ulubionego asystenta AI
    ChatGPT
    Claude
    DeepSeek
    Google AI mode
    Gemini
    Perplexity
    Mistral
    Grok

    Zadaj pytanie i otrzymaj streszczenie dokumentu, odwołując się do tej strony i wybranego dostawcy AI

    Historia wersji

    1. "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 angielskim
    Edytuj tę dokumentację

    Jeśli masz pomysł na ulepszenie tej dokumentacji, zachęcamy do przesłania pull requesta na GitHubie.

    Link do dokumentacji na GitHubie
    Kopiuj

    Kopiuj 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.

    hello-world.content.ts
    Kopiuj kod

    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:

    ts
    Kopiuj kod

    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:

    hello-world.es.content.ts
    Kopiuj kod

    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.
    bash
    Kopiuj kod

    Skopiuj kod do schowka

    .└── Components    └── MyComponent        ├── index.content.ts        ├── index.content.json        └── index.ts

    Przykład

    Oto plik deklaracji zawartości wielojęzycznej:

    Components/MyComponent/index.content.ts
    Kopiuj kod

    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;
    Components/MyComponent/index.content.json
    Kopiuj kod

    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.

    Components/MyComponent/index.ts
    Kopiuj kod

    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.

    Pobieranie funkcji
    Kompilator
    Alt+→

    Na tej stronie

      Dyskusje są anonimowe i regularnie przeglądane w celu rozwiązania typowych problemów. Podziel się pomysłami na funkcje, opinią o dokumentacji lub czymkolwiek związanym z Intlayer, wykorzystujemy te informacje do kształtowania naszej mapy drogowej i ulepszania produktu.

      import { Locales, type IntlayerConfig } from "intlayer";const config: IntlayerConfig = {  dictionary: {    locale: Locales.ENGLISH,  },};export default config;
      .└── Components    └── MyComponent        ├── index.content.ts        ├── index.content.json        └── index.ts
      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;
      {  "$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"      }    }  }}
      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"// }