Nadpisz ścieżkę za pomocą configPath wejściowego, jeśli potrzebujesz lokalizacji niedomyślnej.
Schemat
# .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.*"Odniesienie terenowe
| Pole | Typ | Przypisy |
|---|---|---|
sourceLocale | string | Jeśli nie jest ustawione, wraca do sourceLocale wejścia. Również przekierowano to do Translatora jako from=<locale>, żeby krótkie ciągi znaków nie były automatycznie wykrywane. |
toLocales | string[] | Albo tablica, albo ciąg rozdzielony przecinkami. |
include / exclude | string[] | Wzorce globów oceniane względem ścieżek absolutnych i względnych do przestrzeni roboczej. |
glossary | map<string,string> | Terminy po tłumaczeniu. Świadomy granic słów (obsługuje C++, .NET). |
categoryId | string | Azure Custom Translator kategoria — twoja branża/domena (prawna, medyczna, marketingowa itd.). Wysłane jako ?category=.... |
textType | "plain" | "html" | Domyślnie ustawia się na plain. Używaj html tylko wtedy, gdy wartości zasobów zawierają prawdziwe fragmenty HTML. |
profanityAction | "NoAction" | "Marked" | "Deleted" | Jak traktować wulgarne terminy w tłumaczeniu. |
profanityMarker | "Asterisk" | "Tag" | Ma sens tylko wtedy, gdy profanityAction jest "Marked". |
allowFallback | boolean | Ustaw false niepowodzenie tłumaczenia, gdy twój categoryId nie ma wdrożenia dla docelowej lokalizacji, zamiast wracać do ogólnego modelu. |
apiVersion | string | Translator REST API w wersji Domyślnie ustawia się na 3.0. |
maxRetries | integer | Maksymalna liczba prób powtórek na przejściowych odpowiedziach HTTP (408, 425, 429, 500, 502, 503, 504). Domyślnie ustawia się na 5. Łączna liczba wywołań HTTP na jedno żądanie wynosi 1 + maxRetries. |
retryBackoffMs | integer | Limit (ms) na każdym pojedynczym odchyleniu snu. Domyślnie ustawia się na 30000. Nagłówek Retry-After Azure jest honorowany dokładnie wtedy, gdy jest obecny; w przeciwnym razie stosuje się drgający się odrzut wykładniczy, ograniczony do tej wartości. |
protectPlaceholders | boolean | Domyślnie ustawia się na true. Po włączeniu tokeny takie jak {{name}}, ${var}, {0}, {0:N2}, %s, %1$s oraz jednostki HTML są zastępowane tokenami sentinel przed tłumaczeniem i przywracane po tłumaczeniu. Wyłącz tylko wtedy, gdy źródło celowo zawiera literale w kształcie zastępczych. |
customPlaceholderPatterns | string[] | Dodatkowe wzorce regex (bez ograniczników) dodane do domyślnego zestawu zastępczych, np. <<.+?>> dla własnej składni tokenów. Nieprawidłowe regexy są ignorowane. |
noTranslatePatterns | string[] | Wzorce glob dopasowane do kluczy na poziomie parsera (JSON ścieżka kropkowana, RESX name, PO msgid, jednostka XLIFF id, klucz INI/restext). Pasujące klucze są usuwane z żądania i przekazywane z zachowaną wartością źródłową. |
Kolejność załadunku
- Akcja odczytuje jawne dane z przepływu pracy.
- Konfiguracja YAML ładuje się z
configPath. - Dla każdego wspólnego pola wygrywa wejście; w przeciwnym razie używa się wartości YAML.
- Scalone wartości są weryfikowane. Nieprawidłowe enumy (np.
profanityAction: Mask) powodują, że akcja szybko się nie powiodła z wyraźnym komunikatem.
Ton i przemysł, w prostych słowach
API Azure AI Translator v3 nie posiada pojedynczego pokrętła tonowego. Dwa ustawienia łączą się, dając większość tej samej kontroli:
- Branża / dziedzina: Użyj
categoryId, aby wskazać kategorię Azure Custom Translator wytrenowaną na twoim własnym korpusie — prawnym, technicznym, medycznym, marketingowym lub czymkolwiek innym. To najsilniejszy dźwignia dla brzmienia, stylu marki i słownictwa. - Tekst powierzchowny: Używaj Słowniczek do zablokowania nazw marek i terminów produktów dosłownie, a
profanityActiondo usuwania wulgarnych określeń przy lokalizacji dla młodszych odbiorców.