Skip to content

Olulimi

Londa olulimi lw'okozesa

Kyusa olupapula lwe lumu mu lulimi olulala.

EnglishEnglishenAfrikaansAfrikaansafአማርኛAmharicamالعربيةArabicarঅসমীয়াAssameseasAzərbaycanAzerbaijaniazБашҡортBashkirbaБългарскиBulgarianbgभोजपुरीBhojpuribhoবাংলাBanglabnབོད་སྐད་Tibetanboबड़ोBodobrxBosanskiBosnianbsCatalàCatalancaČeštinaCzechcsCymraegWelshcyDanskDanishdaDeutschGermandeडोगरीDogridoiDolnoserbšćinaLower SorbiandsbދިވެހިބަސްDivehidvΕλληνικάGreekelEspañolSpanishesEestiEstonianetEuskaraBasqueeuفارسیPersianfaSuomiFinnishfiFilipinoFilipinofilVakavitiFijianfjFøroysktFaroesefoFrançaisFrenchfrFrançais (Canada)French (Canada)fr-CAGaeilgeIrishgaGalegoGalicianglकोंकणीKonkanigomગુજરાતીGujaratiguHausaHausahaעבריתHebrewheहिन्दीHindihiछत्तीसगढ़ीChhattisgarhihneHrvatskiCroatianhrHornjoserbsceUpper SorbianhsbHaitian CreoleHaitian CreolehtMagyarHungarianhuՀայերենArmenianhyIndonesiaIndonesianidÌgbòIgboigInuinnaqtunInuinnaqtuniktÍslenskaIcelandicisItalianoItalianitᐃᓄᒃᑎᑐᑦInuktitutiuInuktitut (Latin)Inuktitut (Latin)iu-Latn日本語JapanesejaქართულიGeorgiankaҚазақ ТіліKazakhkkខ្មែរKhmerkmKurmancîKurdish (Northern)kmrಕನ್ನಡKannadakn한국어KoreankoكٲشُرKashmiriksکوردیی ناوەندیKurdish (Central)kuКыргызчаKyrgyzkyLëtzebuergeschLuxembourgishlbLingálaLingalalnລາວLaoloLietuviųLithuanianltLugandaGandalugLatviešuLatvianlv中文 (文言文)Chinese (Literary)lzhमैथिलीMaithilimaiMalagasyMalagasymgTe Reo MāoriMāorimiМакедонскиMacedonianmkമലയാളംMalayalammlМонгол хэлMongolian (Cyrillic)mn-Cyrlᠮᠣᠩᠭᠣᠯ ᠬᠡᠯᠡMongolian (Traditional)mn-MongমৈতৈলোনManipurimniमराठीMarathimrMelayuMalaymsMaltiMaltesemtHmong DawHmong Dawmwwမြန်မာMyanmar (Burmese)myNorsk BokmålNorwegian BokmålnbनेपालीNepalineNederlandsDutchnlSesotho sa LeboaSesotho sa LeboansoChinyanjaChichewanyaଓଡ଼ିଆOdiaorHñähñuQuerétaro OtomiotqਪੰਜਾਬੀPunjabipaPolskiPolishplدریDariprsپښتوPashtopsPortuguês (Brasil)Portuguese (Brazil)ptPortuguês (Portugal)Portuguese (Portugal)pt-PTRomânăRomanianroРусскийRussianruIkirundiRundirunKinyarwandaKinyarwandarwسنڌيSindhisdසිංහලSinhalasiSlovenčinaSlovakskSlovenščinaSlovenianslGagana SāmoaSamoansmchiShonaShonasnSoomaaliSomalisoShqipAlbaniansqСрпски (ћирилица)Serbian (Cyrillic)sr-CyrlSrpski (latinica)Serbian (Latin)sr-LatnSesothoSesothostSvenskaSwedishsvKiswahiliSwahiliswதமிழ்TamiltaతెలుగుTeluguteไทยThaithትግርTigrinyatiTürkmen DiliTurkmentkLea fakatongaTongantoTürkçeTurkishtrТатарTatarttReo TahitiTahitiantyئۇيغۇرچەUyghurugУкраїнськаUkrainianukاردوUrduurUzbek (Latin)Uzbek (Latin)uzTiếng ViệtVietnameseviisiXhosaisiXhosaxhÈdè YorùbáYorubayoYucatec MayaYucatec Mayayua粵語Cantonese (Traditional)yue中文 (简体)Chinese Simplifiedzh-Hans中文 (繁體)Chinese Traditionalzh-HantisiZuluisiZuluzu

Ebyafaayo

Enkyukakyuka

High-level summary of releases. The canonical, authoritative changelog lives in CHANGELOG.md in the repository.

Ku lupapula luno

    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. Use changeDetection=disabled or false for legacy always-translate behavior, statePath to relocate the manifest, and snapshotOnly to 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 provider input; the action delegates to the matching SDK behind a factory and behaves identically regardless of vendor. Fully backward compatible — provider defaults to azure, 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 explicit awsAccessKeyId / awsSecretAccessKey; Mu kitundu awsRegion oba AWS_REGION.
    • New Google Cloud Translation provider (@google-cloud/translate, v2). Okukakasa ng'okozesa akawunti y'obuweereza JSON credential (googleCredentials) oba ekisumuluzo kya API (googleApiKey); Optional googleProjectId.
    • New inputs: provider, awsAccessKeyId, awsSecretAccessKey, awsRegion, googleApiKey, googleCredentials, googleProjectId.
    • Intent-specifier mapping: textType maps to Google's format and profanityAction maps 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 in action.yml so other providers can be selected — still verified at runtime when provider is azure.
    • 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.0 on the wire for both /translate and /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 /translate ne HTTP 400 (enkola y'ensobi 400074). Okutereeza kutandika mu 3.0.1.

    3.0.1 —

    • Fixed: The /translate request 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 node24 Ssekabaka Muteesa II (BREAKING).
    • New inputs: include, exclude, configPath, categoryId, apiVersion, dryRun, failOnError, plus advanced Translator knobs textType, profanityAction, profanityMarker, and allowFallback.
    • 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's Retry-After header — falls back to jittered exponential backoff when absent. Tunable via maxRetries and retryBackoffMs. Closes #46.
    • Placeholder protection: tokens like {{name}}, ${var}, {0}, {0:N2}, %s, %1$s and HTML entities are wrapped in sentinels before translation and restored later, so Translator stops mangling i18next/Mustache/Handlebars/.NET/printf placeholders. Toggle via protectPlaceholders; Yongeyeyo customPlaceholderPatterns Tightens #16.
    • Per-key opt-out: new noTranslatePatterns input 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, RESX name, PO msgid, XLIFF unit id, 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 top button uses inert while hidden (instead of an aria-hidden toggle that left it tabbable), formats.astro sections no longer collide with their auto-generated heading IDs, three locale cards now expose BCP-47-valid lang attributes (nya→ny, lug→lg, run→rn), duplicate Documentation landmark labels are disambiguated between sidebar and footer, and every data table on inputs/configuration ships 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).