Mở yêu cầu kéo sau mỗi lần chạy
- id: translate uses: IEvangelist/resource-translator@v3 with: sourceLocale: en subscriptionKey: ${{ secrets.TRANSLATOR_KEY }} endpoint: ${{ secrets.TRANSLATOR_ENDPOINT }} region: ${{ secrets.TRANSLATOR_REGION }}
- if: steps.translate.outputs.has-new-translations == 'true' uses: peter-evans/create-pull-request@v7 with: branch: machine-translation title: ${{ steps.translate.outputs.summary-title }} body: ${{ steps.translate.outputs.summary-details }} labels: localizationMonorepos: dịch phạm vi mỗi gói
with: sourceLocale: en include: | apps/web/**/*.en.resx packages/shared/**/*.en.json exclude: | **/dist/** **/__tests__/**Bảng thuật ngữ về tên thương hiệu và thuật ngữ sản phẩm
Thả một .github/resource-translator.yml vào kho lưu trữ:
glossary: Acme: Contoso Octocat: Octocat ".NET": ".NET" "C++": "C++"Thuật ngữ thuật ngữ được áp dụng sau khi dịch, vì vậy đầu ra được dịch bằng máy vẫn giữ được thương hiệu ưa thích của bạn ngay cả khi mô hình đã hoán đổi nó thành một từ đồng nghĩa.
Danh mục Trình dịch tùy chỉnh (ngành / miền)
with: sourceLocale: en subscriptionKey: ${{ secrets.TRANSLATOR_KEY }} endpoint: ${{ secrets.TRANSLATOR_ENDPOINT }} categoryId: 1234abcd-5678-90ef-... Đào tạo danh mục Azure Custom Translator trên một kho dữ liệu nắm bắt từ vựng và giọng điệu trong ngành của bạn (pháp lý, y tế, tiếp thị, kỹ thuật nội bộ, v.v.) và chuyển ID của nó qua categoryId. Đây là đòn bẩy âm thanh mạnh nhất mà Azure cung cấp.
Kiểm soát giai điệu + dự phòng nghiêm ngặt
# .github/resource-translator.yml# Industry / domain — choose your tone via a Custom Translator categorycategoryId: legal-en
# Treat profanity strictly for content aimed at younger audiencesprofanityAction: MarkedprofanityMarker: Tag
# Fail the run rather than silently fall back to the general modelallowFallback: false Kết hợp categoryId Trình dịch tùy chỉnh với profanityAction và allowFallback: false để thực thi giọng nói nhất quán và không thực hiện được quy trình làm việc nếu danh mục đã chọn không triển khai cho một trong các ngôn ngữ mục tiêu của bạn.
Chạy khô trước khi bật quy trình làm việc
with: dryRun: true failOnError: false Hành động vẫn phát ra kết quả tóm tắt và tóm tắt bước, nhưng không có tệp nào được ghi. Kết hợp với failOnError: false để hiển thị mọi vấn đề dưới dạng cảnh báo trong khi bạn lặp lại.