One source key changes
Smart detection isolates the delta before any provider call.
Три секрета, четыре строки, и ваш репозиторий будет многоязычным при следующем прокачке.
Smart detection isolates the delta before any provider call.
Построен для судоходства
Перенесите действие в ваш существующий CI, направьте его на Azure, AWS или Google и пусть репозиторий говорит на любом языке, который вы выбрали.
Default in v3.2
A compact .github/resource-translator-state.json tracks parser keys, source hashes, and translation-affecting settings. The action skips stable keys, preserves manual target edits, and logs every decision with rule codes. Use snapshotOnly to bootstrap existing translations without a provider call.
Most runs translate only the changed keys
Туда-обратно .resx, .xliff, .po, .json, .ini и .restext с форматированием по байтовой стабильности.
Добавьте .github/resource-translator.yml файл, чтобы включить глобы, глоссарии и категории пользовательского переводчика.
Зафиксируйте бренды и термины продукта с помощью умного regex с границей слов, который обрабатывает C++, .NET и друзей.
Просматривайте переводы без написания файлов или выявляйте каждую ошибку как предупреждение во время итерации.
summary-title, summary-details и has-new-translations напрямую вставляются в create-pull-request.
Выбирайте одного провайдера на пробег. Каждый из них управляется официальным SDK (@azure-rest/ai-translation-text, @aws-sdk/client-translate, @google-cloud/translate) с автоматическими повторными попытками на 408/429/5xx - без ручного HTTP. esbuild упаковано, чисто по аудиту.
Resource Translator открывает машинно переведённые pull-запросы на ваши файлы ресурсов с помощью Azure, AWS или Google - одно единое действие, один провайдер на запуск, официальные SDK под капотом.
Начинайтеname: translateon: push: paths: ["**/*.en.resx", "**/*.en.json"]
permissions: contents: write pull-requests: write
jobs: translate: runs-on: ubuntu-latest steps: - uses: actions/checkout@v5 - id: translator uses: IEvangelist/resource-translator@v3 with: sourceLocale: en provider: | azure: subscriptionKey: ${{ secrets.KEY }} endpoint: ${{ secrets.ENDPOINT }} region: ${{ secrets.REGION }} toLocales: '["fr","de","es","ja"]'
- uses: peter-evans/create-pull-request@v7 with: title: Update translationsОдин ключ провайдера - Azure, AWS или Google - и один файл рабочего процесса. Остальное занимается Resource Translator.