Buka permintaan pull setelah setiap eksekusi
- 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: terjemahan cakupan per paket
with: sourceLocale: en include: | apps/web/**/*.en.resx packages/shared/**/*.en.json exclude: | **/dist/** **/__tests__/**Glosarium untuk nama merek dan istilah produk
Masukkan .github/resource-translator.yml ke dalam reposito:
glossary: Acme: Contoso Octocat: Octocat ".NET": ".NET" "C++": "C++"Istilah glosarium diterapkan setelah terjemahan, sehingga output yang diterjemahkan mesin mempertahankan merek pilihan Anda bahkan ketika model menukarnya dengan sinonim.
Kategori Penerjemah Kustom (industri / domain)
with: sourceLocale: en subscriptionKey: ${{ secrets.TRANSLATOR_KEY }} endpoint: ${{ secrets.TRANSLATOR_ENDPOINT }} categoryId: 1234abcd-5678-90ef-... Latih kategori Azure Custom Translator pada korpus yang menangkap kosakata dan nada industri Anda (hukum, medis, pemasaran, teknik internal, dll.) dan teruskan ID-nya melalui categoryId. Ini adalah tuas nada terkuat yang ditawarkan Azure.
Kontrol nada + penggantian ketat
# .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 Gabungkan categoryId Penerjemah Kustom dengan profanityAction dan allowFallback: false untuk menegakkan suara yang konsisten dan gagal dalam alur kerja jika kategori yang dipilih tidak memiliki penyebaran untuk salah satu lokal target Anda.
Lari kering sebelum mengaktifkan alur kerja
with: dryRun: true failOnError: false Tindakan ini masih memancarkan output ringkasan dan ringkasan langkah, tetapi tidak ada file yang ditulis. Gabungkan dengan failOnError: false untuk memunculkan setiap masalah sebagai peringatan saat Anda melakukan iterasi.