See CHANGELOG.md for the full record.
Okufulumya
3.2.0 —
- Smart change detection now defaults to
smart: a compact provider-neutral state manifest (.github/resource-translator-state.json) tracks parser keys, source hashes, target hashes, and translation-affecting settings so only changed or missing keys are sent to the selected provider. UsechangeDetection=disabledorfalsefor legacy always-translate behavior,statePathto relocate the manifest, andsnapshotOnlyto bootstrap the manifest from existing target files without calling a provider. The same release adds nested {provider} blocks, AWS/Google-native behavior knobs, narrow-friendly reference cards, and official provider-doc links. Key-level audit rule codes are logged for every decision.
3.1.0 —
- Multi-vendor: translate with Azure AI Translator, AWS Translate, or Google Cloud Translation behind one unified API surface. Pick a single provider per run with the new
providerinput; the action delegates to the matching SDK behind a factory and behaves identically regardless of vendor. Fully backward compatible —providerdefaults toazure, so existing Azure workflows keep working unchanged. - New AWS Translate Provider (
@aws-sdk/client-translate). Authenticate with the AWS default credential chain (recommended: OIDC via aws-actions/configure-aws-credentials) or explicitawsAccessKeyId/awsSecretAccessKey; Mu kitunduawsRegionobaAWS_REGION. - New Google Cloud Translation provider (
@google-cloud/translate, v2). Okukakasa ng'okozesa akawunti y'obuweereza JSON credential (googleCredentials) oba ekisumuluzo kya API (googleApiKey); OptionalgoogleProjectId. - New inputs:
provider,awsAccessKeyId,awsSecretAccessKey,awsRegion,googleApiKey,googleCredentials,googleProjectId. - Intent-specifier mapping:
textTypemaps to Google'sformatandprofanityActionmaps to AWS profanity masking where an equivalent exists. Ebiwandiiko bya Azure byokka (categoryId,apiVersion,profanityMarker,allowFallback) tebikkirizibwa baweereza balala. - Azure request inputs (
subscriptionKey,endpoint,region) are not longer marked required inaction.ymlso other providers can be selected — still verified at runtime whenproviderisazure. - New Translation providers page, provider tabs on Getting started, provider selection on the Inputs page, and a refreshed home page leading with Azure, AWS, and Google.
3.0.2 —
- Fixed: Translator requests now pin
api-version=3.0on the wire for both/translateand/languages. The Azure SDK only honors the client-level api-version option when a credential is passed; Ekikolwa kino kikakasa buli kusaba okuyita mu mitwe, n'olwekyo akakodyo kano kaggyibwawo mu kasirise era okusaba kwalemererwa okukyusibwa mu nkyukakyuka ya API eyagaana endagaano ya/translatene HTTP 400 (enkola y'ensobi400074). Okutereeza kutandika mu 3.0.1.
3.0.1 —
- Fixed: The
/translaterequest body is now a bare JSON array of{ text }items instead of a wrapped{ inputs }object, matching the v3.0 REST contract. Ku bwakyo kino tekyazzaawo kuvvuunula — laba 3.0.2.
3.0.0 —
- Mu kiseera
node24Ssekabaka Muteesa II (BREAKING). - New inputs:
include,exclude,configPath,categoryId,apiVersion,dryRun,failOnError, plus advanced Translator knobstextType,profanityAction,profanityMarker, andallowFallback. - Source locale is now also forwarded to Translator as
from=<locale>so short strings are not autodetected. - Obugumiikiriza: automatic retry on transient HTTP responses (
408, 425, 429, 500, 502, 503, 504) honoring Azure'sRetry-Afterheader — falls back to jittered exponential backoff when absent. Tunable viamaxRetriesandretryBackoffMs. Closes #46. - Placeholder protection: tokens like
{{name}},${var},{0},{0:N2},%s,%1$sand HTML entities are wrapped in sentinels before translation and restored later, so Translator stops mangling i18next/Mustache/Handlebars/.NET/printf placeholders. Toggle viaprotectPlaceholders; YongeyeyocustomPlaceholderPatternsTightens #16. - Per-key opt-out: new
noTranslatePatternsinput drops matching keys from the Translator request completely (preserves source values for brand names, error codes, etc.). Zikwatagana n'ebisumuluzo eby'omutendera ogwa parser (JSON dotted path, RESXname, POmsgid, XLIFF unitid, INI/restext key). Closes #35. - Repo-level config via
.github/resource-translator.yml. - Glossary support, step summary via
core.summary. - esbuild bundler, ESLint 9 flat config, Prettier, EditorConfig.
- NPM audit clean (0 vulnerabilities).
- Astro + Tailwind v4 docs site with view transitions and Expressive Code.
- Docs accessibility: WCAG 2.1 AA pass. Logo glyphs converted to paths so they not longer fail color-contrast against gradient stops, the floating
Back to topbutton usesinertwhile hidden (instead of anaria-hiddentoggle that left it tabbable),formats.astrosections no longer collide with their auto-generated heading IDs, three locale cards now expose BCP-47-validlangattributes (nya→ny,lug→lg,run→rn), duplicateDocumentationlandmark labels are disambiguated between sidebar and footer, and every data table oninputs/configurationships with a screen-reader caption. - Inline code styling: docs prose
<code>now wears the warm/amber theme accent — different from the brand→accent palette used for links and headings. - Dependabot auto-merge, CodeQL scanning, CI matrix.
2.2.1 —
- Security: bumped axios (1.4.0 → 1.6.0), @babel/traverse, semver, and tough-cookie/@azure/ms-rest-js to clear Dependabot alerts.
2.2.0 —
- Maintenance release (dependency and dist refresh).
2.1.9 —
- Dependency upgrades (including xml2js 0.4.23 → 0.5.0) and a refreshed dist build.
2.1.8 —
- Security: bumped follow-redirects, node-fetch, decode-uri-component, minimist, ansi-regex, jsdom, json5, minimatch, and @actions/core (1.2.6 → 1.9.1).
2.1.7 —
- Use a different delimiter when building the translation map so keys containing the previous separator are handled correctly (#36).
- Fixes #32.
2.1.6 —
- Assorted bug fixes and improved logging.
2.1.5 —
- Fix an issue with file names containing four segments.
2.1.4 —
- Added a JSON parser and .json file support.
- Fix batching bug (#18).
2.1.3 —
- Maintenance release.
2.1.2 —
- Fixes #15.
2.1.1 —
- Fix the generated step summary.
2.1.0 —
- Support for additional resource file formats beyond .resx: .ini, .po, .restext, and .xliff.
2.0.4 —
- Maintenance release.
2.0.3 —
- Fixes a batching bug and other related issues.
2.0.2 —
- File filtering to limit excessive translations.
- Batching of the translate API call to avoid rate limiting.
2.0.1 —
- New action outputs: has-new-translations, summary-title, and summary-details.
- Fix a bug where an error was logged but the action failure was not set.
2.0.0 —
- First official, fully functional and verified release.
1.0.1 —
- Build release.
1.0.0 —
- Initial release of the Azure AI Translator resource action (.resx support).
0.0.x —
- Initial prototype pre-releases (tags 0.01–0.09).