Veja CHANGELOG.md para o registo 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 superfície API unificada. Escolha um único fornecedor por execução com a nova
providerentrada; a ação delega para o SDK correspondente atrás de uma fábrica e comporta-se de forma idêntica independentemente do fornecedor. Totalmente compatível com versões anteriores —providerpor defeito paraazure, por isso os fluxos de trabalho existentes do Azure continuam a funcionar inalterados. - Novo fornecedor AWS Translate (
@aws-sdk/client-translate). Autenticar com a cadeia de credenciais padrão da AWS (recomendada: OIDC via aws-actions/configure-aws-credentials) ou comawsAccessKeyIdexplícito /awsSecretAccessKey; região viaawsRegionouAWS_REGION. - Novo fornecedor 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 especificação de intenção:
textTypemapeia para aformatdo Google eprofanityActionmapas para mascarar palavrões da AWS onde existe um equivalente. Especificadores apenas Azure (categoryId,apiVersion,profanityMarker,allowFallback) são ignorados por outros fornecedores. - As entradas de pedidos do Azure (
subscriptionKey,endpoint,region) já não são marcadas como obrigatórias emaction.ymlpara que outros fornecedores possam ser selecionados — ainda validadas em tempo de execução quandoproviderestáazure. - Página de novos fornecedores de tradução, separadores de fornecedores em Como começar, seleção de fornecedores na página de Entradas e uma página inicial atualizada a começar com Azure, AWS e Google.
3.0.2 —
- Corrigido: Solicitações do tradutor agora colocam
api-version=3.0na linha tanto para/translatecomo para/languages. O Azure SDK só honra a opção de versão da API ao nível do cliente quando uma credencial é passada; a ação autentica-se por pedido através de cabeçalhos, pelo que essa opção foi silenciosamente abandonada e os pedidos passaram por defeito a uma versão API de pré-visualização 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 do pedido
/translateé agora um array JSON nu de itens{ text }em vez de um objeto{ inputs }wrapped, correspondendo ao contrato REST v3.0. Por si só, isto não restaurava as traduções — ver 3.0.2.
3.0.0 —
- Subi 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 também é agora encaminhada para o Tradutor como
from=<locale>para que cadeias curtas não sejam detetadas 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 jitter quando ausente. Ajustável viamaxRetrieseretryBackoffMs. Fecha a #46. - Proteção provisória: tokens como
{{name}},${var},{0},{0:N2},%s,%1$se HTML são enrolados em sentinelas antes da tradução e restaurados depois, por isso o Tradutor deixa de manipular i18next/Mustache/Handlebars/.NET/printf placeholders. Alternar viaprotectPlaceholders; Estende comcustomPlaceholderPatterns. Aperta a #16. - Exclusão por chave: nova entrada
noTranslatePatternselimina completamente as chaves correspondentes do pedido do tradutor (preserva os valores fonte para nomes de marcas, códigos de erro, etc.). Compara padrões glob com chaves ao nível do parser (JSON ponted path, RESXname, POmsgid, unidade XLIFFid, INI/restext key). Fecha a #35. - Configuração ao nível do 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: passe WCAG 2.1 AA. Os glifos do logótipo convertidos em caminhos para que já não falhem no contraste de cor com paradas de gradiente, o botão de
Back to topflutuante usainertenquanto está oculto (em vez de um botão dearia-hiddenque o deixava tabável),formats.astrosecções deixaram de colidir com os seus IDs de cabeçalhos gerados automaticamente, três cartões locais agora expõem atributos delangválidos para BCP-47 (nya→ny,lug→lg,run→rn), rótulos duplicadosDocumentationde referência são desambiguados entre a barra lateral e o rodapé, e todas as tabelas de dados noinputs/configurationsão enviadas com uma legenda de leitor de ecrã. - Estilo de código inline: prosa documental
<code>agora usa o tema quente/âmbar — distinto da paleta → marcassotaque usada para links e títulos. - Fusão automática 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).