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. Integracja CI/CD
    Data utworzenia:2025-05-20Ostatnia aktualizacja:2025-08-13
    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

    Automatyczne generowanie tłumaczeń w pipeline CI/CD

    Intlayer umożliwia automatyczne generowanie tłumaczeń dla Twoich plików deklaracji treści. Istnieje wiele sposobów, aby to osiągnąć, w zależności od Twojego workflow.

    Spis treści

    Korzystanie z CMS

    Z Intlayer możesz przyjąć workflow, w którym lokalnie deklarowany jest tylko jeden język, podczas gdy wszystkie tłumaczenia są zarządzane zdalnie przez CMS. Pozwala to na całkowite oddzielenie treści i tłumaczeń od bazy kodu, oferując większą elastyczność dla edytorów treści oraz umożliwiając Live Sync (brak konieczności przebudowy aplikacji, aby zastosować zmiany).

    Przykładowa konfiguracja

    intlayer.config.ts
    Kopiuj kod

    Skopiuj kod do schowka

    import { Locales, type IntlayerConfig } from "intlayer";const config: IntlayerConfig = {  internationalization: {    locales: [Locales.ENGLISH, Locales.SPANISH, Locales.FRENCH],    requiredLocales: [Locales.ENGLISH], // Opcjonalne języki będą zarządzane zdalnie    defaultLocale: Locales.ENGLISH,  },  editor: {    // Dane uwierzytelniające CMS, jeśli używasz CMS    clientId: process.env.INTLAYER_CLIENT_ID,    clientSecret: process.env.INTLAYER_CLIENT_SECRET,    liveSync: true,  },  ai: {    applicationContext: "To jest aplikacja testowa", // Pomaga zapewnić spójność generowania tłumaczeń  },};export default config;

    Aby dowiedzieć się więcej o CMS, zapoznaj się z oficjalną dokumentacją.

    Używanie Husky

    Możesz zintegrować generowanie tłumaczeń z lokalnym workflow Git za pomocą Husky.

    Przykładowa konfiguracja

    intlayer.config.ts
    Kopiuj kod

    Skopiuj kod do schowka

    import { Locales, type IntlayerConfig } from "intlayer";const config: IntlayerConfig = {  internationalization: {    locales: [Locales.ENGLISH, Locales.SPANISH, Locales.FRENCH],    requiredLocales: [Locales.ENGLISH], // Opcjonalne lokalizacje są obsługiwane zdalnie    defaultLocale: Locales.ENGLISH,  },  editor: {    clientId: process.env.INTLAYER_CLIENT_ID,    clientSecret: process.env.INTLAYER_CLIENT_SECRET,  },  ai: {    provider: "openai",    apiKey: process.env.OPENAI_API_KEY, // Użyj własnego klucza API    applicationContext: "To jest aplikacja testowa", // Pomaga zapewnić spójność generowania tłumaczeń  },};export default config;
    .husky/pre-push
    Kopiuj kod

    Skopiuj kod do schowka

    npx intlayer build                          # Aby upewnić się, że słowniki są aktualnenpx intlayer fill --unpushed --mode fill    # Wypełnia tylko brakujące treści, nie aktualizuje istniejących
    Aby uzyskać więcej informacji na temat poleceń Intlayer CLI i ich użycia, zapoznaj się z dokumentacją CLI.
    Jeśli masz wiele aplikacji w swoim repozytorium korzystających z osobnych instancji intlayer, możesz użyć argumentu --base-dir w następujący sposób:
    .husky/pre-push
    Kopiuj kod

    Skopiuj kod do schowka

    # Aplikacja 1npx intlayer build --base-dir ./app1npx intlayer fill --base-dir ./app1 --unpushed --mode fill# Aplikacja 2npx intlayer build --base-dir ./app2npx intlayer fill --base-dir ./app2 --unpushed --mode fill

    Używanie GitHub Actions

    Intlayer udostępnia polecenie CLI do automatycznego wypełniania i przeglądu zawartości słowników. Można to zintegrować z Twoim workflow CI/CD za pomocą GitHub Actions.

    .github/workflows/intlayer-translate.yml
    Kopiuj kod

    Skopiuj kod do schowka

    name: Intlayer Auto-Fill# Warunki wyzwalające ten workflowon:  pull_request:    branches:      - "main"permissions:  contents: write  pull-requests: writeconcurrency:  group: "autofill-${{ github.ref }}"  cancel-in-progress: truejobs:  autofill:    runs-on: ubuntu-latest    env:      # OpenAI      AI_MODEL: openai      AI_PROVIDER: gpt-5-mini      AI_API_KEY: ${{ secrets.AI_API_KEY }}    steps:      # Krok 1: Pobierz najnowszy kod z repozytorium      - name: ⬇️ Checkout repository        uses: actions/checkout@v4        with:          persist-credentials: true # Zachowaj poświadczenia do tworzenia PR          fetch-depth: 0 # Pobierz pełną historię git do analizy różnic      # Krok 2: Skonfiguruj środowisko Node.js      - name: 🟢 Set up Node.js        uses: actions/setup-node@v4        with:          node-version: 20 # Użyj Node.js 20 LTS dla stabilności      # Krok 3: Zainstaluj zależności projektu      - name: 📦 Zainstaluj zależności        run: npm install      # Krok 4: Zainstaluj globalnie Intlayer CLI do zarządzania tłumaczeniami      - name: 📦 Zainstaluj Intlayer        run: npm install -g intlayer-cli      # Krok 5: Zbuduj projekt Intlayer, aby wygenerować pliki tłumaczeń      - name: ⚙️ Zbuduj projekt Intlayer        run: npx intlayer build      # Krok 6: Użyj AI do automatycznego uzupełniania brakujących tłumaczeń      - name: 🤖 Automatyczne uzupełnianie brakujących tłumaczeń        run: npx intlayer fill --git-diff --mode fill --provider $AI_PROVIDER --model $AI_MODEL --api-key $AI_API_KEY      # Krok 7: Sprawdź, czy są zmiany i zatwierdź je      - name: � Sprawdź zmiany        id: check-changes        run: |          if [ -n "$(git status --porcelain)" ]; then            echo "has-changes=true" >> $GITHUB_OUTPUT          else            echo "has-changes=false" >> $GITHUB_OUTPUT          fi      # Krok 8: Zatwierdź i wypchnij zmiany, jeśli istnieją      - name: 📤 Zatwierdź i wypchnij zmiany        if: steps.check-changes.outputs.has-changes == 'true'        run: |          git config --local user.email "[email protected]"          git config --local user.name "GitHub Action"          git add .          git commit -m "chore: auto-fill missing translations [skip ci]"          git push origin HEAD:${{ github.head_ref }}

    Aby skonfigurować zmienne środowiskowe, przejdź do GitHub → Settings → Secrets and variables → Actions i dodaj sekret.

    Podobnie jak w przypadku Husky, w przypadku monorepo możesz użyć argumentu --base-dir, aby kolejno obsłużyć każdą aplikację.
    Domyślnie argument --git-diff filtruje słowniki, które zawierają zmiany od bazy (domyślnie origin/main) do bieżącej gałęzi (domyślnie: HEAD).
    Aby uzyskać więcej informacji o poleceniach Intlayer CLI i ich użyciu, zapoznaj się z dokumentacją CLI.
    CMS
    Deklaracja zawartości
    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 = {  internationalization: {    locales: [Locales.ENGLISH, Locales.SPANISH, Locales.FRENCH],    requiredLocales: [Locales.ENGLISH], // Opcjonalne języki będą zarządzane zdalnie    defaultLocale: Locales.ENGLISH,  },  editor: {    // Dane uwierzytelniające CMS, jeśli używasz CMS    clientId: process.env.INTLAYER_CLIENT_ID,    clientSecret: process.env.INTLAYER_CLIENT_SECRET,    liveSync: true,  },  ai: {    applicationContext: "To jest aplikacja testowa", // Pomaga zapewnić spójność generowania tłumaczeń  },};export default config;
      import { Locales, type IntlayerConfig } from "intlayer";const config: IntlayerConfig = {  internationalization: {    locales: [Locales.ENGLISH, Locales.SPANISH, Locales.FRENCH],    requiredLocales: [Locales.ENGLISH], // Opcjonalne lokalizacje są obsługiwane zdalnie    defaultLocale: Locales.ENGLISH,  },  editor: {    clientId: process.env.INTLAYER_CLIENT_ID,    clientSecret: process.env.INTLAYER_CLIENT_SECRET,  },  ai: {    provider: "openai",    apiKey: process.env.OPENAI_API_KEY, // Użyj własnego klucza API    applicationContext: "To jest aplikacja testowa", // Pomaga zapewnić spójność generowania tłumaczeń  },};export default config;
      npx intlayer build                          # Aby upewnić się, że słowniki są aktualnenpx intlayer fill --unpushed --mode fill    # Wypełnia tylko brakujące treści, nie aktualizuje istniejących
      # Aplikacja 1npx intlayer build --base-dir ./app1npx intlayer fill --base-dir ./app1 --unpushed --mode fill# Aplikacja 2npx intlayer build --base-dir ./app2npx intlayer fill --base-dir ./app2 --unpushed --mode fill
      name: Intlayer Auto-Fill# Warunki wyzwalające ten workflowon:  pull_request:    branches:      - "main"permissions:  contents: write  pull-requests: writeconcurrency:  group: "autofill-${{ github.ref }}"  cancel-in-progress: truejobs:  autofill:    runs-on: ubuntu-latest    env:      # OpenAI      AI_MODEL: openai      AI_PROVIDER: gpt-5-mini      AI_API_KEY: ${{ secrets.AI_API_KEY }}    steps:      # Krok 1: Pobierz najnowszy kod z repozytorium      - name: ⬇️ Checkout repository        uses: actions/checkout@v4        with:          persist-credentials: true # Zachowaj poświadczenia do tworzenia PR          fetch-depth: 0 # Pobierz pełną historię git do analizy różnic      # Krok 2: Skonfiguruj środowisko Node.js      - name: 🟢 Set up Node.js        uses: actions/setup-node@v4        with:          node-version: 20 # Użyj Node.js 20 LTS dla stabilności      # Krok 3: Zainstaluj zależności projektu      - name: 📦 Zainstaluj zależności        run: npm install      # Krok 4: Zainstaluj globalnie Intlayer CLI do zarządzania tłumaczeniami      - name: 📦 Zainstaluj Intlayer        run: npm install -g intlayer-cli      # Krok 5: Zbuduj projekt Intlayer, aby wygenerować pliki tłumaczeń      - name: ⚙️ Zbuduj projekt Intlayer        run: npx intlayer build      # Krok 6: Użyj AI do automatycznego uzupełniania brakujących tłumaczeń      - name: 🤖 Automatyczne uzupełnianie brakujących tłumaczeń        run: npx intlayer fill --git-diff --mode fill --provider $AI_PROVIDER --model $AI_MODEL --api-key $AI_API_KEY      # Krok 7: Sprawdź, czy są zmiany i zatwierdź je      - name: � Sprawdź zmiany        id: check-changes        run: |          if [ -n "$(git status --porcelain)" ]; then            echo "has-changes=true" >> $GITHUB_OUTPUT          else            echo "has-changes=false" >> $GITHUB_OUTPUT          fi      # Krok 8: Zatwierdź i wypchnij zmiany, jeśli istnieją      - name: 📤 Zatwierdź i wypchnij zmiany        if: steps.check-changes.outputs.has-changes == 'true'        run: |          git config --local user.email "[email protected]"          git config --local user.name "GitHub Action"          git add .          git commit -m "chore: auto-fill missing translations [skip ci]"          git push origin HEAD:${{ github.head_ref }}