Overskriv stien med configPath input, hvis du har brug for en ikke-standard placering.
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.*"Feltreference
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.
sourceLocaleDen falder tilbage til sourceLocale input, hvis den ikke er sat. Også videresendt til Oversætteren som from=<locale>, så korte strenge ikke automatisk opdages.
toLocalesEnten et array eller en komma-separeret streng.
include / excludeGlob-mønstre evalueret mod absolutte og arbejdsområde-relative stier.
glossaryEfter-oversættelse overstyrer termer. Ord-grænsebevidst (håndterer C++, .NET).
categoryIdAzure Custom Translator kategori — din branche-/domæneknap (juridisk, medicinsk, markedsføringstone osv.). Sendt som ?category=....
textTypeSom standard er plain. Brug kun html, hvis dine ressourceværdier indeholder ægte HTML-fragmenter.
profanityActionHvordan man behandler bandeord i oversat output.
profanityMarkerKun meningsfuldt, når profanityAction er "Marked".
allowFallbackSæt til false til at fejle oversættelsen, når din categoryId ikke har nogen udrulning til et målområde, i stedet for at falde tilbage til den generelle model.
apiVersionOversætter REST API-version. Som standard er 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.
maxRetriesMaksimale genforsøg på transiente HTTP-svar (408, 425, 429, 500, 502, 503, 504). Som standard er 5. Det samlede antal HTTP-kald pr. forespørgsel er 1 + maxRetries.
retryBackoffMsGrænse (MS) for enhver enkelt backoff-søvn. Som standard er 30000. Azures Retry-After header bliver respekteret præcis, når den er til stede; ellers bruges jitteret eksponentiel backoff, begrænset til denne værdi.
protectPlaceholdersSom standard er true. Når de er tændt, erstattes tokens som {{name}}, ${var}, {0}, {0:N2}, %s, %1$s og HTML-enheder med sentinel-tokens før oversættelse og gendannes bagefter. Deaktiver kun, når kildekoden bevidst indeholder pladsholderformede literals.
customPlaceholderPatternsEkstra regex-mønstre (uden afgrænsere) tilføjet til standardpladsholdersættet, f.eks. <<.+?>> til brugerdefineret tokensyntaks. Ugyldige regexes ignoreres.
noTranslatePatternsGlob-mønstre matchede mod parser-niveau nøgler (JSON sti, RESX name, PO msgid, XLIFF enhed id, INI/restext-nøgle). Matchende nøgler fjernes fra forespørgslen og sendes videre med deres kildeværdi bevaret.
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.
Lasterækkefølge
- Handlingen læser eksplicitte input fra workflowet.
- Den indlæser YAML-konfigurationen fra
configPath. - For hvert delt felt vinder inputtet; ellers bruges YAML-værdien.
- De sammenlagte værdier valideres. Ugyldige enums (f.eks.
profanityAction: Mask) får handlingen til hurtigt at fejle med en klar besked.
Tone og industri, i klare vendinger
Azure AI Translator v3 API'en har ikke en enkelt toneknap. To indstillinger kombineres for at give dig det meste af den samme kontrol:
- Branche / domæne: brug
categoryIdtil at pege på en Azure Custom Translator-kategori, der er trænet på dit eget korpus — juridisk, teknisk, medicinsk, marketing eller noget andet. Dette er den stærkeste løftestang for tone, brandets stemme og ordforråd. - Overfladetekst: Brug Ordliste til at låse brandnavne og produkttermer ordret, og brug
profanityActiontil at fjerne bandeord, når du målretter lokalisering til yngre målgrupper.