Veja CHANGELOG.md para o registro completo.
Lançamentos
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-fornecedor: traduzir com Azure AI Translator, AWS Translate ou Google Cloud Translation atrás de uma única superfície unificada de API. Escolha um único provedor por execução com a nova entrada
provider; a ação delega ao SDK correspondente atrás de uma fábrica e se comporta de forma idêntica independentemente do fornecedor. Totalmente compatível com versões anteriores —providerpadrão paraazure, então os fluxos de trabalho existentes do Azure continuam funcionando sem alterações. - Novo provedor AWS Translate (
@aws-sdk/client-translate). Autentique com a cadeia padrão de credenciais da AWS (recomendada: OIDC via aws-actions/configure-aws-credentials) ou comawsAccessKeyIdexplícito /awsSecretAccessKey; região viaawsRegionouAWS_REGION. - Novo provedor de tradução Google Cloud (
@google-cloud/translate, v2). Autenticar com uma credencial JSON de conta de serviço (googleCredentials) ou uma chave API (googleApiKey); OpcionalgoogleProjectId. - Novas entradas:
provider,awsAccessKeyId,awsSecretAccessKey,awsRegion,googleApiKey,googleCredentials,googleProjectId. - Mapeamento de especificador de intenção:
textTypemapeia para oformatdo Google eprofanityActionmapeia para mascaramento de palavrões da AWS onde existe um equivalente. Especificadores exclusivos do Azure (categoryId,apiVersion,profanityMarker,allowFallback) são ignorados por outros provedores. - As entradas de requisição Azure (
subscriptionKey,endpoint,region) não são mais marcadas como exigidas noaction.ymlpara que outros provedores possam ser selecionados — ainda validadas em tempo de execução quandoproviderestáazure. - Página de novos provedores de tradução, abas de provedores em Como começar, seleção de provedores na página de Entradas e uma página inicial atualizada que começa com Azure, AWS e Google.
3.0.2 —
- Corrigido: Solicitações de tradutor agora fixam
api-version=3.0na linha tanto para/translatequanto para/languages. O Azure SDK só honra a opção de versão da API em nível de cliente quando uma credencial é passada; a ação autentica cada requisição via cabeçalhos, então essa opção foi silenciosamente descartada e as requisições passaram a ser padrão para uma versão de API de prévia cujo contrato de/translaterejeitou o corpo com HTTP 400 (código de erro400074). Conclui a correção iniciada na 3.0.1.
3.0.1 —
- Corrigido: O corpo da solicitação
/translateagora é um array JSON nu de itens{ text }, em vez de um objeto{ inputs }wrapped, correspondendo ao contrato REST v3.0. Sozinho, isso não restaurava as traduções — veja 3.0.2.
3.0.0 —
- Avançado para
node24tempo de execução (BREAKING). - Novas entradas:
include,exclude,configPath,categoryId,apiVersion,dryRun,failOnError, além de botões avançados do tradutortextType,profanityAction,profanityMarkereallowFallback. - A localização de origem agora também é encaminhada para o Tradutor como
from=<locale>para que cadeias curtas não sejam detectadas automaticamente. - Resiliência: retentativa automática em respostas HTTP transitórias (
408, 425, 429, 500, 502, 503, 504) que honra o cabeçalhoRetry-Afterdo Azure — volta a um recuo exponencial com tremores quando ausente. Ajustável viamaxRetrieseretryBackoffMs. Fecha o #46. - Proteção provisória: tokens como
{{name}},${var},{0},{0:N2},%s,%1$se HTML são encapsulados em sentinelas antes da tradução e restaurados depois, para que o Tradutor pare de manipular os marcadores i18next/Mustache/Handlebars/.NET/printf. Alternar viaprotectPlaceholders; Estenda comcustomPlaceholderPatterns. Aperta a #16. - Opção de desvinculação por chave: nova entrada
noTranslatePatternselimina completamente as chaves correspondentes da solicitação do tradutor (preserva os valores fonte de nomes de marcas, códigos de erro, etc.). Compara padrões glob com chaves em nível de parser (JSON ponted path, RESXname, POmsgid, unidade XLIFFid, chave INI/restext). Fecha a #35. - Configuração em nível de repositório via
.github/resource-translator.yml. - Suporte ao glossário, resumo dos passos via
core.summary. - esbuild bundler, ESLint 9 flat config, Prettier, EditorConfig.
- Auditoria NPM limpa (0 vulnerabilidades).
- Site de documentação Astro + Tailwind v4 com transições de visualização e Expressive Code.
- Acessibilidade dos documentos: WCAG 2.1 AA pass. Glifos de logo convertidos em caminhos para que não falhem mais no contraste de cor contra paradas de gradiente, o botão flutuante de
Back to topusainertenquanto está oculto (em vez de um botão dearia-hiddenque deixava o item tabável),formats.astroseções não colidem mais com seus IDs de cabeçalhos gerados automaticamente, três cartões de localidade agora expõem atributos delangválidos para BCP-47 (nya→ny,lug→lg,run→rn), rótulos duplicadosDocumentationmarcos são desambiguados entre a barra lateral e o rodapé, e toda tabela de dados noinputs/configurationvem com uma legenda de leitor de tela. - Estilo de código inline: prosa
<code>docs agora usa o tema quente/âmbar — diferente da paleta → marcassotaque usada para links e títulos. - Auto-merge Dependabot, varredura CodeQL, matriz 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).