Overschrijf het pad met de configPath input als je een niet-standaard locatie nodig hebt.
Schema
# .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.*"Veldreferentie
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.
sourceLocaleValt terug op de sourceLocale input als hij niet ingesteld is. Ook doorgestuurd naar de Vertaler als from=<locale> zodat korte strings niet automatisch worden gedetecteerd.
toLocalesOfwel een array of een komma-gescheiden string.
include / excludeGlobpatronen geëvalueerd aan de hand van absolute en werkruimte-relatieve paden.
glossaryTerm-overruling na vertaling. Woordgrensbewust (verwerkt C++, .NET).
categoryIdAzure Custom Translator categorie — je branche-/domeinknop (juridisch, medisch, marketingtoon, enz.). Verzonden als ?category=....
textTypeStandaard staat plain. Gebruik html alleen als je resourcewaarden echte HTML-fragmenten bevatten.
profanityActionHoe je grof taalgebruik in vertaalde output te gebruiken.
profanityMarkerAlleen betekenisvol als profanityAction "Marked" is.
allowFallbackStel het in op false om de vertaling te falen wanneer je categoryId geen deployment voor een doellocatie heeft, in plaats van terug te vallen op het algemene model.
apiVersionTranslator REST API-versie. Standaard staat 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.
maxRetriesMaximale herpogingen bij transiente HTTP-antwoorden (408, 425, 429, 500, 502, 503, 504). Standaard staat 5. Het totale aantal HTTP-oproepen per verzoek is 1 + maxRetries.
retryBackoffMsLimiet (ms) op elke enkele backoff-slaap. Standaard staat 30000. Azure's Retry-After header wordt precies gerespecteerd wanneer aanwezig; anders wordt een jitterde exponentiële backoff gebruikt, gecapt op deze waarde.
protectPlaceholdersStandaard staat true. Wanneer aan, worden tokens zoals {{name}}, ${var}, {0}, {0:N2}, %s, %1$s en HTML-entiteiten vervangen door sentinel-tokens vóór de vertaling en daarna hersteld. Schakel alleen uit wanneer de bron opzettelijk tijdelijke literals bevat.
customPlaceholderPatternsExtra regex-patronen (zonder scheidingstekens) toegevoegd aan de standaard plaatshouderset, bijvoorbeeld <<.+?>> voor aangepaste tokensyntaxis. Ongeldige regexes worden genegeerd.
noTranslatePatternsGlob-patronen matchen parser-niveau sleutels (JSON dotted path, RESX name, PO msgid, XLIFF unit id, INI/restext key). Overeenkomende sleutels worden uit het verzoek verwijderd en doorgegeven, waarbij hun bronwaarde behouden blijft.
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.
Laadvolgorde
- De actie leest expliciete invoer uit de workflow.
- Het laadt de YAML-configuratie vanaf
configPath. - Voor elk gedeeld veld wint de invoer; anders wordt de YAML-waarde gebruikt.
- De samengevoegde waarden worden gevalideerd. Ongeldige enums (bijvoorbeeld
profanityAction: Mask) zorgen ervoor dat de actie snel afloopt met een duidelijke melding.
Toon en industrie, in gewone bewoordingen
De Azure AI Translator v3 API heeft geen enkele toonknop. Twee instellingen combineren om je grotendeels dezelfde controle te geven:
- Industrie / domein: gebruik
categoryIdom te wijzen op een Azure Custom Translator categorie die is getraind op je eigen corpus — juridisch, technisch, medisch, marketing, of iets anders. Dit is de sterkste hefboom voor toon, merkstem en woordenschat. - Oppervlaktetekst: Gebruik de Verklarende woordenlijst om merknamen en producttermen letterlijk te vergrendelen, en gebruik
profanityActionom grof te schrappen bij het richten op lokalisatie voor jongere doelgroepen.