Vedi CHANGELOG.md per il verbale completo.
Pubblicazioni
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-fornitore: tradurre con Azure AI Translator, AWS Translate o Google Cloud Translation dietro una superficie API unificata. Scegli un singolo provider per ogni run con il nuovo input
provider; l'azione viene delegata all'SDK corrispondente dietro una fabbrica e si comporta allo stesso modo indipendentemente dal venditore. Completamente retrocompatibile —providerpredefinito suazure, quindi i flussi di lavoro Azure esistenti continuano a funzionare invariati. - Nuovo fornitore AWS Translate (
@aws-sdk/client-translate). Autenticarsi con la catena di credenziali predefinita AWS (consigliato: OIDC via aws-actions/configure-aws-credentials) o conawsAccessKeyIdespliciti /awsSecretAccessKey; la regione tramiteawsRegionoAWS_REGION. - Nuovo fornitore di traduzione Google Cloud (
@google-cloud/translate, v2). Autenticare con una credenziale JSON dell'account di servizio (googleCredentials) o una chiave API (googleApiKey); OpzionalegoogleProjectId. - Nuovi input:
provider,awsAccessKeyId,awsSecretAccessKey,awsRegion,googleApiKey,googleCredentials,googleProjectId. - Mappatura specificatore di intento:
textTypemappa ilformatdi Google eprofanityActionmappa il mascheramento delle parolacce AWS dove esiste un equivalente. Gli specificatori solo Azure (categoryId,apiVersion,profanityMarker,allowFallback) sono ignorati da altri provider. - Gli input delle richieste Azure (
subscriptionKey,endpoint,region) non sono più contrassegnati come obbligatori inaction.ymlquindi possono essere selezionati altri provider — comunque validati in runtime quandoproviderèazure. - Nuova pagina dei fornitori di traduzione, schede dei fornitori su Come iniziare, selezione del provider nella pagina degli input e una pagina principale aggiornata che inizia con Azure, AWS e Google.
3.0.2 —
- Corretto: Richieste Traduttore ora fissano
api-version=3.0sul filo sia per/translateche per/languages. L'Azure SDK rispetta l'opzione di versione API a livello client solo quando viene passata una credenziali; l'azione autentica ogni richiesta tramite header, quindi quell'opzione è stata silenziosamente abbandonata e le richieste sono passate di default a una versione API di anteprima il cui contratto/translateha respinto il corpo con HTTP 400 (codice di errore400074). Completi la correzione iniziata nella 3.0.1.
3.0.1 —
- Corretto: Il corpo della richiesta
/translateora è un array JSON nudo di{ text }elementi invece di un oggetto{ inputs }wrapped, corrispondente al contratto REST v3.0. Da solo questo non ripristinava le traduzioni — vedi 3.0.2.
3.0.0 —
- Spostato a
node24durata di esecuzione (BREAKING). - Nuovi ingressi:
include,exclude,configPath,categoryId,apiVersion,dryRun,failOnError, oltre a manopole avanzate del TraduttoretextType,profanityAction,profanityMarkereallowFallback. - La località di origine ora viene inoltrata anche al Traduttore come
from=<locale>così le stringhe brevi non vengono rilevate automaticamente. - Resilienza: ritentativo automatico sulle risposte HTTP transitorie (
408, 425, 429, 500, 502, 503, 504) che rispettano l'intestazioneRetry-Afterdi Azure — torna a un ritorno esponenziale con jittered quando assente. Regolabile tramitemaxRetrieseretryBackoffMs. Chiude il #46. - Protezione provvisoria: token come
{{name}},${var},{0},{0:N2},%s,%1$se HTML vengono avvolti in sentinelle prima della traduzione e ripristinati successivamente, così Translator smette di deformare i18next/Mustache/Handlebars/.NET/printf placeholder. Commuta tramiteprotectPlaceholders; Estendi concustomPlaceholderPatterns. Stringe il #16. - Opzione per chiave: nuovo input
noTranslatePatternselimina completamente le chiavi corrispondenti della richiesta Traduttore (preserva i valori sorgente per nomi di marchi, codici di errore, ecc.). Confronta i glob pattern con le chiavi a livello di parser (JSON doted path, RESXname, POmsgid, unità XLIFFid, chiave INI/restext). Chiude il #35. - Configurazione a livello di repository tramite
.github/resource-translator.yml. - Supporto al glossario, riassunto dei passaggi tramite
core.summary. - esbuild bundler, ESLint 9 flat config, Prettier, EditorConfig.
- Audit NPM pulito (0 vulnerabilità).
- Sito di documentazione Astro + Tailwind v4 con transizioni di visualizzazione e Codice Expressivo.
- Accessibilità dei documenti: WCAG 2.1 AA pass. I glifi del logo convertiti in percorsi in modo che non falliscano più il contrasto di colore contro i stop di gradiente, il pulsante
Back to topfluttuante usainertmentre è nascosto (invece di un togglearia-hiddenche lo rendeva tabbiabile),formats.astrosezioni non collidono più con i loro ID di titoli generati automaticamente, tre schede locale ora espongono attributilangvalidi BCP-47 (nya→ny,lug→lg,run→rn), le etichette duplicateDocumentationi punti di riferimento vengono disambiguate tra la barra laterale e il piè di pagina, e ogni tabella dati suinputs/configurationviene fornita con una didascalia per lettore di schermo. - Stile in codice inline: prosa di documenti
<code>ora indossa l'accento a tema caldo/ambrato — distinto dalla palette di accento → marca usata per link e intestazioni. - Auto-merge Dependabut, scansione 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).