Ganti jalur dengan input configPath jika Anda memerlukan lokasi non-default.
Skema
# .github/resource-translator.ymlsourceLocale: entoLocales: - fr - de - esinclude: - "src/**/*.en.json" - "apps/**/*.en.resx"exclude: - "**/__tests__/**"glossary: Acme: Contoso Octocat: Octocat # keep brand names verbatim
# Domain / industry — uses an Azure Custom Translator category trained on# your tone and vocabulary. Leave unset for the general model.categoryId: my-custom-translator-category
# Translator request shape — most users can ignore these.textType: plain # plain | htmlprofanityAction: NoAction # NoAction | Marked | DeletedprofanityMarker: Asterisk # Asterisk | Tag (only when profanityAction == Marked)allowFallback: true # false fails when the categoryId has no deployment
apiVersion: "3.0"
# Resilience — Translator returns 429 under load. Defaults are usually# fine; tune only if your runs are large enough to hit them.maxRetries: 5retryBackoffMs: 30000 # cap on any single backoff sleep (ms)
# Placeholder protection. ON by default — wraps tokens like {{name}},# {0}, %s, ${var} into sentinels before translation and restores them# on the way back. Set false only when source intentionally contains# placeholder-shaped literals.protectPlaceholders: truecustomPlaceholderPatterns: - "<<.+?>>" # any extra token syntax you use
# Per-key opt-out. Keys matching any glob are dropped from the request# and pass through with the source value preserved.noTranslatePatterns: - "errors.code.*" - "brands.*"Referensi bidang
| Bidang | Tipe | Catatan |
|---|---|---|
sourceLocale | string | Kembali ke input sourceLocale jika tidak diatur. Juga diteruskan ke Penerjemah karena from=<locale> sehingga string pendek tidak terdeteksi secara otomatis. |
toLocales | string[] | Baik array atau string yang dipisahkan koma. |
include / exclude | string[] | Pola glob dievaluasi terhadap jalur absolut dan relatif ruang kerja. |
glossary | map<string,string> | Penggantian istilah pasca-terjemahan. Sadar batas kata (menangani C++, .NET). |
categoryId | string | Kategori Custom Translator Azure — kenop industri/domain Anda (nada hukum, medis, pemasaran, dll.). Dikirim sebagai ?category=.... |
textType | "plain" | "html" | Default ke plain. Gunakan html hanya jika nilai resource Anda berisi fragmen HTML nyata. |
profanityAction | "NoAction" | "Marked" | "Deleted" | Bagaimana memperlakukan istilah tidak senonoh dalam keluaran terjemahan. |
profanityMarker | "Asterisk" | "Tag" | Hanya berarti ketika profanityAction "Marked". |
allowFallback | boolean | Atur ke false untuk gagal dalam terjemahan saat categoryId Anda tidak memiliki penyebaran untuk lokal target alih-alih kembali ke model umum. |
apiVersion | string | Versi REST API penerjemah. Default ke 3.0. |
maxRetries | integer | Upaya coba ulang maksimum pada respons HTTP sementara (408, 425, 429, 500, 502, 503, 504). Default ke 5. Total panggilan HTTP per permintaan adalah 1 + maxRetries. |
retryBackoffMs | integer | Tutup (ms) pada satu tidur mundur. Default ke 30000. Header Retry-After Azure dihormati persis saat ada; jika tidak, backoff eksponensial yang gelisah digunakan, dibatasi pada nilai ini. |
protectPlaceholders | boolean | Default ke true. Saat aktif, token seperti entitas {{name}}, ${var}, {0}, {0:N2}, %s, %1$s, dan HTML diganti dengan token sentinel sebelum diterjemahkan dan dipulihkan setelahnya. Nonaktifkan hanya jika sumber sengaja berisi literal berbentuk placeholder. |
customPlaceholderPatterns | string[] | Pola regulex tambahan (tanpa pembatas) ditambahkan ke set placeholder default, misalnya <<.+?>> untuk sintaks token kustom. Regex yang tidak valid diabaikan. |
noTranslatePatterns | string[] | Pola glob cocok dengan kunci tingkat parser (jalur putus-putus JSON, name RESX, PO msgid, id unit XLIFF, kunci INI/restext). Kunci yang cocok dihapus dari permintaan dan diteruskan dengan nilai sumbernya dipertahankan. |
Memuat pesanan
- Tindakan membaca input eksplisit dari alur kerja.
- Ini memuat konfigurasi YAML dari
configPath. - Untuk setiap bidang bersama, input menang; jika tidak, nilai YAML digunakan.
- Nilai yang digabungkan divalidasi. Enum yang tidak valid (misalnya
profanityAction: Mask) menyebabkan tindakan gagal dengan cepat dengan pesan yang jelas.
Nada dan industri, secara sederhana
Azure AI Translator v3 API tidak memiliki kenop nada tunggal. Dua pengaturan digabungkan untuk memberi Anda sebagian besar kontrol yang sama:
- Industri / domain: gunakan
categoryIduntuk menunjuk ke kategori Custom Translator Azure yang dilatih pada korpus Anda sendiri — hukum, teknis, medis, pemasaran, atau apa pun. Ini adalah tuas terkuat untuk nada, suara merek, dan kosakata. - Teks permukaan: Gunakan glosarium untuk mengunci nama merek dan istilah produk kata demi kata, dan gunakan
profanityActionuntuk menghapus istilah tidak senonoh saat menargetkan pelokalan untuk audiens yang lebih muda.