Nhận thông báo về các bản phát hành sắp tới của Intlayer
    Ngày tạo:2025-05-20Cập nhật lần cuối:2025-08-13

    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 "action@github.com"          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.
    Nhận thông báo về các bản phát hành sắp tới của Intlayer