Ganti jalur dengan input configPath jika Anda memerlukan lokasi non-default.
Skema
# .github/resource-translator.ymlsourceLocale: en
# Provider config can be nested. Keep secrets in workflow inputs; use repo# config for non-secret defaults like region, model, formality, or category.provider: azure: categoryId: my-custom-translator-category apiVersion: "3.0" allowFallback: true
toLocales: - fr - de - esinclude: - "src/**/*.en.json" - "apps/**/*.en.resx"exclude: - "**/__tests__/**"glossary: Acme: Contoso Octocat: Octocat # keep brand names verbatim
# Translator request shape — most users can ignore these.textType: plain # plain | htmlprofanityAction: NoAction # NoAction | Marked | DeletedprofanityMarker: Asterisk # Asterisk | Tag (only when profanityAction == Marked)
# 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
providerEither a provider string or a nested provider block (provider.azure, provider.aws, or provider.google). Prefer nested blocks for provider-specific settings; keep secrets in workflow inputs rather than committed config.
sourceLocaleKembali ke input sourceLocale jika tidak disetel. Juga diteruskan ke Penerjemah karena from=<locale> sehingga string pendek tidak terdeteksi secara otomatis.
toLocalesBaik array atau string yang dipisahkan koma.
include / excludePola glob dievaluasi terhadap jalur absolut dan relatif ruang kerja.
glossaryPenggantian istilah pasca-terjemahan. Sadar batas kata (menangani C++, .NET).
categoryIdKategori Custom Translator Azure — kenop industri/domain Anda (nada hukum, medis, pemasaran, dll.). Dikirim sebagai ?category=....
textTypeDefault ke plain. Gunakan html hanya jika nilai resource Anda berisi fragmen HTML nyata.
profanityActionBagaimana memperlakukan istilah tidak senonoh dalam keluaran terjemahan.
profanityMarkerHanya berarti ketika profanityAction "Marked".
allowFallbackAtur ke false untuk gagal dalam terjemahan saat categoryId Anda tidak memiliki penyebaran untuk lokal target alih-alih kembali ke model umum.
apiVersionVersi REST API penerjemah. Default ke 3.0.
awsFormalityAWS Translate formality setting for supported target languages.
awsBrevitySet to true to enable AWS Translate brevity mode for supported language pairs.
awsTerminologyNames / awsParallelDataNamesAWS Translate custom terminology and parallel data resource names. Either an array or comma-separated string.
googleModelGoogle Cloud Translation model, e.g. nmt or base.
googleApiEndpointOptional Google Cloud Translation API endpoint override.
googleAutoRetryOptional Google Cloud Translation automatic retry toggle. Leave unset to use the Google client default.
maxRetriesUpaya 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.
retryBackoffMsTutup (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.
protectPlaceholdersDefault 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.
customPlaceholderPatternsPola regulex tambahan (tanpa pembatas) ditambahkan ke set placeholder default, misalnya <<.+?>> untuk sintaks token kustom. Regex yang tidak valid diabaikan.
noTranslatePatternsPola 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.
changeDetectionDefaults to smart. Uses the committed state manifest to translate only changed or missing parser keys. Set to disabled or false to preserve the legacy always-translate behavior.
statePathPath to the deterministic smart change-detection state manifest. Defaults to .github/resource-translator-state.json.
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.