Trang chủSandboxTrưng bàyỨng dụngTài liệuBlog
    • EnglishTiếng Anh
      EN
    • русскийTiếng Nga
      RU
    • 日本語Tiếng Nhật
      JA
    • françaisTiếng Pháp
      FR
    • 한국어Tiếng Hàn
      KO
    • 中文Tiếng Trung
      ZH
    • españolTiếng Tây Ban Nha
      ES
    • DeutschTiếng Đức
      DE
    • العربيةTiếng Ả Rập
      AR
    • italianoTiếng Italy
      IT
    • British EnglishTiếng Anh (Anh)
      EN-GB
    • portuguêsTiếng Bồ Đào Nha
      PT
    • हिन्दीTiếng Hindi
      HI
    • TürkçeTiếng Thổ Nhĩ Kỳ
      TR
    • polskiTiếng Ba Lan
      PL
    • IndonesiaTiếng Indonesia
      ID
    • Tiếng ViệtTiếng Việt
      VI
    • українськаTiếng Ukraina
      UK
    /
    Lọc tài liệu theo framework
    Alt+←
    Tại sao Intlayer?
    Bắt đầu
    Khái niệm
    • Intlayer làm việc như thế nào
    • Cấu hình
    • TestFillBuildWatchExtractLoginPushPullConfigurationListVersionEditorLiveDebugDoc ReviewDoc TranslateSDK
    • Editor visual
    • CMS
    • Tích hợp CI/CD
    • DịchSố nhiềuLiệt kêĐiều kiệnGiới tínhChènTệpNestingMarkdownHTMLLấy hàm
    • File cho mỗi ngôn ngữ
    • Biên dịch
    • Tự động điền
    • Kiểm tra
    • Tối ưu hóa gói
    Môi trường
    • Next.js 14 và App RouterNext.js 15Next.js không locale URLNext.js và Page RouterTrình biên dịch
    • Tanstack Start Solid
    • Astro và ReactAstro và SvelteAstro và VueAstro và SolidAstro và PreactAstro và LitAstro và Vanilla JS
    • React Router v7React Router v7 (fs-routes)Compiler
    • Nuxt và Vue
    • Vite và Solid
    • SvelteKit
    • Vite và Preact
    • Vite và Vanilla JS
    • Vite và Lit
    • Angular 19 (Webpack)Analog
    • React CRA
    • React Native và Expo
    • Express.jsNestJSFastifyHonoAdonis
    • Lynx và React
    Plugins
    • JSON
    • gettext (.po)
    Mở rộng VS Code
    Tác nhân
    • MCP Server
    • Kỹ năng tác nhân
    Phiên bản
    • v8
    • v7
    • v6
    Benchmark
    • Next.js
    • TanStack
    • Vue
    • Solid
    • Svelte
    Blog
    Đặt câu hỏi
    1. Documentation
    2. Khái niệm
    3. Tích hợp CI/CD

    Tự động tạo bản dịch trong pipeline CI/CD

    Intlayer cho phép tự động tạo các bản dịch cho các file khai báo nội dung của bạn. Có nhiều cách để thực hiện điều này tùy thuộc vào quy trình làm việc của bạn.

    Mục lục

    Sử dụng CMS

    Với Intlayer, bạn có thể áp dụng một quy trình làm việc trong đó chỉ một locale duy nhất được khai báo cục bộ, trong khi tất cả các bản dịch được quản lý từ xa thông qua CMS. Điều này cho phép nội dung và các bản dịch hoàn toàn tách biệt khỏi codebase, mang lại sự linh hoạt hơn cho các biên tập viên nội dung và kích hoạt Live Sync (không cần phải xây dựng lại ứng dụng để áp dụng các thay đổi).

    Cấu hình ví dụ

    intlayer.config.ts
    import { Locales, type IntlayerConfig } from "intlayer";const config: IntlayerConfig = {  internationalization: {    locales: [Locales.ENGLISH, Locales.SPANISH, Locales.FRENCH],    requiredLocales: [Locales.ENGLISH], // Các locale tùy chọn sẽ được quản lý từ xa    defaultLocale: Locales.ENGLISH,  },  editor: {    // Thông tin xác thực CMS nếu bạn sử dụng CMS    clientId: process.env.INTLAYER_CLIENT_ID,    clientSecret: process.env.INTLAYER_CLIENT_SECRET,    liveSync: true,  },  ai: {    applicationContext: "Đây là một ứng dụng thử nghiệm", // Giúp đảm bảo việc tạo bản dịch nhất quán  },};export default config;

    Để tìm hiểu thêm về CMS, tham khảo tài liệu chính thức.

    Sử dụng Husky

    Bạn có thể tích hợp việc tạo bản dịch vào quy trình làm việc Git cục bộ của mình bằng cách sử dụng Husky.

    Cấu hình ví dụ

    intlayer.config.ts
    import { Locales, type IntlayerConfig } from "intlayer";const config: IntlayerConfig = {  internationalization: {    locales: [Locales.ENGLISH, Locales.SPANISH, Locales.FRENCH],    requiredLocales: [Locales.ENGLISH], // Các ngôn ngữ tùy chọn được xử lý từ xa    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, // Sử dụng khóa API của bạn    applicationContext: "Đây là một ứng dụng thử nghiệm", // Giúp đảm bảo việc tạo bản dịch nhất quán  },};export default config;
    .husky/pre-push
    npx intlayer build                          # Để đảm bảo từ điển được cập nhậtnpx intlayer fill --unpushed --mode fill    # Chỉ điền nội dung còn thiếu, không cập nhật những nội dung đã có
    Để biết thêm thông tin về các lệnh Intlayer CLI và cách sử dụng chúng, hãy tham khảo tài liệu CLI.
    Nếu bạn có nhiều ứng dụng trong kho mã của mình sử dụng các instance intlayer riêng biệt, bạn có thể sử dụng đối số --base-dir như sau:
    .husky/pre-push
    # Ứng dụng 1npx intlayer build --base-dir ./app1npx intlayer fill --base-dir ./app1 --unpushed --mode fill# Ứng dụng 2npx intlayer build --base-dir ./app2npx intlayer fill --base-dir ./app2 --unpushed --mode fill

    Sử dụng GitHub Actions

    Intlayer cung cấp một lệnh CLI để tự động điền và xem lại nội dung từ điển. Điều này có thể được tích hợp vào quy trình CI/CD của bạn bằng cách sử dụng GitHub Actions.

    .github/workflows/intlayer-translate.yml
    name: Tự động điền Intlayer# Điều kiện kích hoạt cho workflow nàyon:  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:      # Bước 1: Lấy mã nguồn mới nhất từ kho lưu trữ      - name: ⬇️ Kiểm tra kho lưu trữ        uses: actions/checkout@v4        with:          persist-credentials: true # Giữ lại thông tin xác thực để tạo PR          fetch-depth: 0 # Lấy toàn bộ lịch sử git để phân tích sự khác biệt      # Bước 2: Thiết lập môi trường Node.js      - name: 🟢 Thiết lập Node.js        uses: actions/setup-node@v4        with:          node-version: 20 # Sử dụng Node.js 20 LTS để đảm bảo ổn định      # Bước 3: Cài đặt các phụ thuộc của dự án      - name: 📦 Cài đặt phụ thuộc        run: npm install      # Bước 4: Cài đặt Intlayer CLI toàn cục để quản lý bản dịch      - name: 📦 Cài đặt Intlayer        run: npm install -g intlayer-cli      # Bước 5: Xây dựng dự án Intlayer để tạo các file bản dịch      - name: ⚙️ Xây dựng dự án Intlayer        run: npx intlayer build      # Bước 6: Sử dụng AI để tự động điền các bản dịch còn thiếu      - name: 🤖 Tự động điền bản dịch còn thiếu        run: npx intlayer fill --git-diff --mode fill --provider $AI_PROVIDER --model $AI_MODEL --api-key $AI_API_KEY      # Bước 7: Kiểm tra xem có thay đổi nào không và commit chúng      - name: � Kiểm tra thay đổi        id: check-changes        run: |          if [ -n "$(git status --porcelain)" ]; then            echo "has-changes=true" >> $GITHUB_OUTPUT          else            echo "has-changes=false" >> $GITHUB_OUTPUT          fi      # Bước 8: Commit và đẩy các thay đổi nếu có      - name: 📤 Commit và đẩy thay đổi        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: tự động điền bản dịch còn thiếu [skip ci]"          git push origin HEAD:${{ github.head_ref }}

    Để thiết lập các biến môi trường, hãy vào GitHub → Settings → Secrets and variables → Actions và thêm secret .

    Tương tự như với Husky, trong trường hợp monorepo, bạn có thể sử dụng đối số --base-dir để xử lý tuần tự từng ứng dụng.
    Mặc định, đối số --git-diff lọc các từ điển bao gồm các thay đổi từ base (mặc định origin/main) đến nhánh hiện tại (mặc định: HEAD).
    Để biết thêm thông tin về các lệnh Intlayer CLI và cách sử dụng chúng, hãy tham khảo tài liệu CLI.
    Ngày tạo:2025-05-20Cập nhật lần cuối:2025-08-13
    Tham chiếu tài liệu này tới trợ lý AI yêu thích của bạn
    ChatGPT
    Claude
    DeepSeek
    Google AI mode
    Gemini
    Perplexity
    Mistral
    Grok

    Đặt câu hỏi và nhận tóm tắt tài liệu bằng cách tham chiếu trang này và nhà cung cấp AI bạn chọn

    Lịch sử phiên bản

    1. "Khởi tạo lịch sử"
      v5.5.1029/6/2025

    Nội dung của trang này đã được dịch bằng AI.

    Xem phiên bản mới nhất của nội dung gốc bằng tiếng Anh
    Chỉnh sửa tài liệu này

    Nếu bạn có ý tưởng để cải thiện tài liệu này, vui lòng đóng góp bằng cách gửi pull request trên GitHub.

    Liên kết GitHub tới tài liệu
    Sao chép

    Sao chép Markdown của tài liệu vào bộ nhớ tạm

    Sao chép mã

    Sao chép đoạn mã vào khay nhớ tạm (clipboard)

    Sao chép mã

    Sao chép đoạn mã vào khay nhớ tạm (clipboard)

    Sao chép mã

    Sao chép đoạn mã vào khay nhớ tạm (clipboard)

    Sao chép mã

    Sao chép đoạn mã vào khay nhớ tạm (clipboard)

    Sao chép mã

    Sao chép đoạn mã vào khay nhớ tạm (clipboard)

    CMS
    Khai báo nội dung
    Alt+→

    Trong trang này

      Các cuộc thảo luận là ẩn danh và được xem xét thường xuyên để giải quyết các vấn đề phổ biến. Hãy thoải mái chia sẻ ý tưởng tính năng, phản hồi về tài liệu hoặc bất cứ điều gì liên quan đến Intlayer, chúng tôi sử dụng thông tin này để định hình lộ trình và cải thiện sản phẩm.