Voir CHANGELOG.md pour le compte rendu complet.
Sorties
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-fournisseurs : traduire avec Azure AI Translator, AWS Translate ou Google Cloud Translation derrière une surface API unifiée. Choisissez un seul fournisseur par run avec la nouvelle entrée
provider; l’action est déléguée au SDK correspondant derrière une usine et se comporte de la même manière quel que soit le fournisseur. Totalement rétrocompatible —providerpar défaut surazure, donc les flux de travail Azure existants continuent de fonctionner sans modification. - Nouveau fournisseur AWS Translate (
@aws-sdk/client-translate). Authentifier avec la chaîne d’identifiants AWS par défaut (recommandée : OIDC via aws-actions/configure-aws-credentials) ou avecawsAccessKeyId/awsSecretAccessKeyexplicites ; la région viaawsRegionouAWS_REGION. - Nouveau fournisseur de traduction Google Cloud (
@google-cloud/translate, v2). Authentifier avec un identifiant JSON de compte de service (googleCredentials) ou une clé API (googleApiKey) ;googleProjectIdoptionnel. - Nouvelles entrées :
provider,awsAccessKeyId,awsSecretAccessKey,awsRegion,googleApiKey,googleCredentials,googleProjectId. - Mappage de spécification d’intention :
textTypecorrespond à laformatde Google etprofanityActionà AWS en masquant des jurons là où il existe un équivalent. Les spécificateurs uniquement Azure (categoryId,apiVersion,profanityMarker,allowFallback) sont ignorés par d’autres fournisseurs. - Les entrées de requêtes Azure (
subscriptionKey,endpoint,region) ne sont plus marquées comme obligatoires dansaction.ymlafin que d’autres fournisseurs puissent être sélectionnés — toujours validés à l’exécution lorsqueproviderestazure. - Nouvelle page des fournisseurs de traduction, onglets fournisseurs sur Démarrage, sélection de fournisseurs sur la page Entrées, et une page d’accueil rafraîchie en début d’envoi par Azure, AWS et Google.
3.0.2 —
- Corrigé : Traducteur demande maintenant de
api-version=3.0sur le fil pour/translateet/languages. Le SDK Azure ne respecte l’option de version API au niveau client que lorsqu’une certification est transmise ; l’action authentifie chaque requête via des en-têtes, donc cette option a été silencieusement supprimée et les requêtes sont passées par défaut à une version API d’aperçu dont le contrat de/translaterejetait le corps avec HTTP 400 (code d’erreur400074). Termine, la correction commencée en 3.0.1.
3.0.1 —
- Corrigé : Le corps de la requête
/translateest désormais un tableau JSON nu de{ text }items au lieu d’un objet{ inputs }enveloppé, correspondant au contrat REST v3.0. Pris isolément, cela ne rétablissait pas les traductions — voir 3.0.2.
3.0.0 —
- Rendu à
node24durée (BREAKING). - Nouvelles entrées :
include,exclude,configPath,categoryId,apiVersion,dryRun,failOnError, ainsi que les boutons avancés du traducteurtextType,profanityAction,profanityMarkeretallowFallback. - La localisation source est désormais également transférée vers le traducteur
from=<locale>afin que les courtes chaînes ne soient pas détectées automatiquement. - Résilience : réessai automatique sur les réponses HTTP transitoires (
408, 425, 429, 500, 502, 503, 504) honorant l’en-têteRetry-Afterd’Azure — revient à un retour exponentiel par jittered lorsqu’il est absent. Ajustable viamaxRetriesetretryBackoffMs. Clôture du #46. - Protection provisoire : des jetons comme
{{name}},${var},{0},{0:N2},%s,%1$set HTML sont enveloppés dans des sentinelles avant la traduction puis restaurés ensuite, de sorte que Traducteur arrête de déformer i18next/Mustache/Handlebars/.NET/printf. Basculez viaprotectPlaceholders; Prolongez aveccustomPlaceholderPatterns. Serre le #16. - Désinscription par clé : nouvelle entrée
noTranslatePatternssupprime complètement les clés correspondantes de la requête Traducteur (préserve les valeurs sources des noms de marques, des codes d’erreur, etc.). Compare les motifs glob avec les clés de niveau analyseur (chemin pointillé JSON,nameRESX,msgidPO,idd’unité XLIFF, clé INI/restext). Ferme le #35. - Configuration au niveau du dépôt via
.github/resource-translator.yml. - Soutien au glossaire, résumé des étapes via
core.summary. - Bundler esbuild, ESLint 9 configuration plate, Prettier, EditorConfig.
- Audit NPM propre (0 vulnérabilité).
- Site doc Astro + Tailwind v4 avec transitions de vue et Expressive Code.
- Accessibilité des documents : WCAG 2.1 AA Pass. Les glyphes de logo sont convertis en chemins pour qu’ils ne manquent plus de contraste de couleur face aux arrêts de dégradé, le bouton
Back to topflottant utiliseinerten étant caché (au lieu d’un basculearia-hiddenqui le rendait tabable),formats.astrosections ne se heurtent plus avec leurs identifiants d’en-tête générés automatiquement, trois cartes de quartier exposent désormais des attributs delangvalides pour BCP-47 (nya→ny,lug→lg,run→rn), les doublonsDocumentationles labels de repère sont disambigués entre la barre latérale et le pied de page, et chaque table de données surinputs/configurationest livrée avec une légende de lecteur d’écran. - Stylisme du code en ligne : prose documentaire
<code>porte désormais l’accent à thème chaud/ambré — distinct de la palette d’accents → marque utilisée pour les liens et les titres. - Auto-fusion dépendabut, balayage CodeQL, matrice CI.
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).