См. CHANGELOG.md для полной информации.
Релизы
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 —
- Мультивендор: переводить с помощью Azure AI Translator, AWS Translate или Google Cloud Translation за единой поверхностью API. Выбирайте одного провайдера на каждый пробег с новым входом
provider; действие делегирует соответствующий SDK за фабрикой и ведёт себя одинаково независимо от поставщика. Полностью обратная совместимость —providerпо умолчаниюazure, поэтому существующие рабочие процессы Azure продолжают работать без изменений. - Новый провайдер AWS Translate (
@aws-sdk/client-translate). Аутентифицировать с помощью стандартной цепочки учетных данных AWS (рекомендуется: OIDC через aws-actions/configure-aws-credentials) или явнойawsAccessKeyId/awsSecretAccessKey; регион черезawsRegionилиAWS_REGION. - Новый поставщик Google Cloud Translation (
@google-cloud/translate, версия 2). Аутентифицироваться с помощью учетной записи сервиса JSON (googleCredentials) или API-ключа (googleApiKey); ОпциональноgoogleProjectId. - Новые входы:
provider,awsAccessKeyId,awsSecretAccessKey,awsRegion,googleApiKey,googleCredentials,googleProjectId. - Отображение спецификаторов намерения:
textTypeкарты сformatGoogle, аprofanityActionкарты — к маскировке нецензурных слов AWS, где существует эквивалент. Спецификаторы только Azure (categoryId,apiVersion,profanityMarker,allowFallback) игнорируются другими провайдерами. - Входные запросы Azure (
subscriptionKey,endpoint,region) больше не обозначены обязательными вaction.yml, поэтому можно выбрать других провайдеров — они всё равно проверяются во время выполнения, когдаproviderazure. - Страница новых переводческих провайдеров, вкладки провайдеров в разделе «Начало», выбор провайдера на странице «Входы» и обновлённая главная страница с Azure, AWS и Google.
3.0.2 —
- Исправлено: Запросы на переводчик теперь закрепляют
api-version=3.0на проводе как для/translate, так и для/languages. Azure SDK учитывает опцию API на уровне клиента только при передаче учетных данных; действие аутентифицируется по запросу через заголовки, поэтому эта опция была безмолвно отменена, а запросы по умолчанию перешли на версию предварительного просмотра API, контракт/translateкоторой отклонял тело с HTTP 400 (код ошибки400074). Завершает исправление, начатое в версии 3.0.1.
3.0.1 —
- Исправлено: Тело запроса
/translateтеперь представляет собой чистый JSON-массив из{ text }элементов, а не обёрнутый{ inputs }объект, совпадающий с контрактом REST версии 3.0. Само по себе это не восстанавливало переводы — см. 3.0.2.
3.0.0 —
- Перенесено на
node24время выполнения (РАЗРЫВ). - Новые входы:
include,exclude,configPath,categoryId,apiVersion,dryRun,failOnError, а также продвинутые ручки переводчикаtextType,profanityAction,profanityMarkerиallowFallback. - Исходное местоположение теперь также пересылается в Translator как
from=<locale>, поэтому короткие строки не определяются автоматически. - Устойчивость: автоматическая попытка на временные HTTP-ответы (
408, 425, 429, 500, 502, 503, 504) с уважением к заголовку AzureRetry-After— при отсутствии возвращается к дрожащему экспоненциальному отступлению. Настраиваемо черезmaxRetriesиretryBackoffMs. Закрывается #46. - Временная защита: токены, такие как
{{name}},${var},{0},{0:N2},%s,%1$sи HTML-сущности, оборачиваются в sentinels перед переводом и восстанавливаются после, так что Translator перестаёт искажать i18next/Mustache/Handlebars/.NET/printf. Переключитесь черезprotectPlaceholders; расширятьcustomPlaceholderPatterns. Затягивает #16. - Отказ по клавишам: новый
noTranslatePatternsinput полностью удаляет соответствующие ключи из запроса Translator (сохраняет исходные значения для брендов, коды ошибок и т.д.). Сопоставляет шаблоны glob с ключами уровня парсера (JSON пунктирный путь, RESXname, POmsgid, XLIFF unitid, INI/restext ключ). Закрывается #35. - Конфигурация на уровне репозитория через
.github/resource-translator.yml. - Поддержка глоссария, краткое изложение шагов через
core.summary. - esbuild bundler, ESLint 9 flat config, Prettier, EditorConfig.
- Чистый аудит NPM (0 уязвимостей).
- Сайт документации Astro + Tailwind v4 с переходами между просмотрами и Expressive Code.
- Доступность документации: WCAG 2.1 AA. Глифы логотипа преобразованы в пути, чтобы они больше не теряли цветовой контраст при градиентных стопах, плавающая кнопка
Back to topиспользуетinertпри скрытом состоянии (вместоaria-hiddenпереключателя, который позволял табировать),formats.astroразделы больше не сталкиваются с автоматически сгенерированными идентификаторами заголовков, теперь три карты локализации отображаютlangатрибуты, действительные для BCP-47 (nya→ny,lug→lg,run→rn), дублируютDocumentationметки ориентиров различаются между боковой панелью и подвалом, И каждая таблица данных наinputs/configurationпоставляется с подписью для экрана. - Стиль встроенного кода: docs prose
<code>теперь использует тёплую/янтарную тему — отличительную от палитры бренда→акцента, используемой для ссылок и заголовков. - Автоматическое слияние Dependabot, сканирование CodeQL, матрица 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).