Локализируйте репозиторий на каждое обязательство.
Resource Translator открывает машинно переведённые pull-запросы на ваши файлы ресурсов через Azure AI Translator через официальный SDK — никаких дополнительных сервисов, только рабочий процесс.
- 0 проблем с аудитом npm
- 150 тестов
- Узел 20 / 22 / 24
- Official Azure SDK
.NET XML .xliff XLIFF 2.0 .po gettext .json вложенные или плоские .ini key=value .restext Текст MUI Построен для судоходства
Перевод — это рабочий процесс, а не рутина.
Переведите действие в ваш существующий CI, направьте его на Azure AI Translator и пусть репозиторий говорит на всех языках, которые вы выбрали.
Шесть форматов файлов
Туда-обратно .resx, .xliff, .po, .json, .ini и .restext с форматированием по байтовой стабильности.
Конфигурация на уровне репозитория
Добавьте .github/resource-translator.yml файл, чтобы включить глобы, глоссарии и категории пользовательского переводчика.
Знание глоссария
Зафиксируйте бренды и термины продукта с помощью умного regex с границей слов, который обрабатывает C++, .NET и друзей.
Пробный запуск + мягкий отказ
Просматривайте переводы без написания файлов или выявляйте каждую ошибку как предупреждение во время итерации.
Выходы, дружественные к PR
summary-title, summary-details и has-new-translations напрямую вставляются в create-pull-request.
Official Azure SDK
Построен на @azure-rest/ai-translation-text + @azure/core-rest-pipeline — автоматические повторные попытки на 408/429/5xx, без ручного HTTP. esbuild упаковано, чисто по аудиту.
Рабочий процесс drop-in
Принято. Вставить. Переводи.
Три секрета, четыре строки, и ваш репозиторий будет многоязычным на следующем прокачке.
name: translateon: push: branches: [main] 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 subscriptionKey: ${{ secrets.TRANSLATOR_KEY }} endpoint: ${{ secrets.TRANSLATOR_ENDPOINT }} region: ${{ secrets.TRANSLATOR_REGION }} toLocales: '["fr","de","es","ja"]'
- if: steps.translator.outputs.has-new-translations == 'true' uses: peter-evans/create-pull-request@v7 with: branch: machine-translation title: ${{ steps.translator.outputs.summary-title }} body: ${{ steps.translator.outputs.summary-details }} labels: localizationГотовы локализировать на автопилоте?
Один ключ Azure AI Translator, один файл рабочего процесса. Остальное занимается Resource Translator.