Voir CHANGELOG.md pour le dossier 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
providerentrée; l’action est déléguée au SDK correspondant derrière une usine et se comporte de la même façon peu importe le fournisseur. Totalement rétrocompatible —providerpar défaut estazure, donc les flux de travail Azure existants continuent de fonctionner sans changement. - Nouveau fournisseur AWS Translate (
@aws-sdk/client-translate). Authentifier avec la chaîne d’identifiants par défaut AWS (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);googleProjectIdoptionnelle. - Nouvelles entrées :
provider,awsAccessKeyId,awsSecretAccessKey,awsRegion,googleApiKey,googleCredentials,googleProjectId. - Mappage de spécificateur d’intention :
textTypecorrespond auformatde Google etprofanityActioncorrespond au masquage des jurons AWS là où il existe un équivalent. Les spécificateurs Azure uniquement (categoryId,apiVersion,profanityMarker,allowFallback) sont ignorés par d’autres fournisseurs. - Les entrées de requête Azure (
subscriptionKey,endpoint,region) ne sont plus marquées comme requises dansaction.ymlafin que d’autres fournisseurs puissent être sélectionnés — toujours validées à l’exécution lorsqueproviderestazure. - Nouvelle page des fournisseurs de traduction, onglets fournisseurs sur Démarrage, sélection du fournisseur sur la page Entrées, et une page d’accueil rafraîchie en tête d’Azure, AWS et Google.
3.0.2 —
- Corrigé : demandes de traducteur épinglent maintenant
api-version=3.0sur le fil pour/translateet/languages. Le SDK Azure ne respecte l’option de version API au niveau client que lorsqu’un identifiant est transmis; l’action authentifie chaque requête via des en-têtes, donc cette option a été silencieusement abandonné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 maintenant un tableau JSON nu de{ text }items au lieu d’un objet{ inputs }enveloppé, correspondant au contrat REST v3.0. À lui seul, cela ne restaurait pas les traductions — voir 3.0.2.
3.0.0 —
- Augmenté à
node24durée de jeu (BREAKS). - Nouvelles entrées :
include,exclude,configPath,categoryId,apiVersion,dryRun,failOnError, ainsi que les boutons avancés du traducteurtextType,profanityAction,profanityMarkeretallowFallback. - La localisation source est maintenant aussi transférée vers le traducteur
from=<locale>donc les courtes chaînes ne sont 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 jitter lorsqu’il est absent. Ajustable viamaxRetriesetretryBackoffMs. Ferme le #46. - Protection provisoire : des jetons comme
{{name}},${var},{0},{0:N2},%s,%1$set HTML sont enveloppés dans des sentinelles avant la traduction et restaurés ensuite, donc Traducteur arrête de déformer i18next/Mustache/Handlebars/.NET/printf. Basculez viaprotectPlaceholders; Prolonge-toi 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, codes d’erreur, etc.). Compare les motifs glob avec les clés de niveau analyseur (chemin pointillé JSON,nameRESX,msgidPO,idunité XLIFF, clé INI/restext). Clôture le #35. - Configuration au niveau du dépôt via
.github/resource-translator.yml. - Soutien au glossaire, résumé des étapes via
core.summary. - esbuild bundler, ESLint 9 flat config, Prettier, EditorConfig.
- Audit NPM propre (0 vulnérabilité).
- Site de documentation Astro + Tailwind v4 avec transitions de vue et Expressive Code.
- Accessibilité des documents : passe WCAG 2.1 AA. Les glyphes du logo sont convertis en chemins pour ne plus échouer en contraste colorimétrique avec les arrêts de dégradé, le bouton de
Back to topflottant utiliseinertlorsqu’il est caché (au lieu d’un bascule dearia-hiddenqui le rendait tabable),formats.astrosections ne sont plus en collision avec leurs identifiants d’en-tête générés automatiquement, trois cartes de localisation exposent maintenant des attributs delangvalides pour BCP-47 (nya→ny,lug→lg,run→rn), les étiquettes dupliquéesDocumentationde points de repère sont disambiguïsées 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 en code en ligne : prose documentaire
<code>porte maintenant l’accent à thème chaud/ambré — distinct de la palette d’accents → marque utilisée pour les liens et les titres. - Auto-fusion Dependabot, 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).