Полностью обратная совместимость: provider по умолчанию установлена azure, поэтому существующие рабочие процессы Azure продолжают работать без изменений — никаких изменений не требуется.
Выбор поставщика
Установите provider вход на azure (по умолчанию), aws или google, затем введите учетные данные этого провайдера. На каждый вызов с действием используется только один провайдер; действие детерминированно делегирует соответствующий SDK за фабрикой.
Сравнение поставщиков
подпискаКлюч, конечная точка, регион (по желанию)
OIDC / по умолчанию или awsAccessKeyId + awsSecretAccessKey; awsRegion
googleApiKey ИЛИ googleCredentials (сервис-аккаунт JSON)
Azure AI Translator (по умолчанию)
Провайдер по умолчанию. Предоставьте ресурс Azure AI Translator и пропустите subscriptionKey, endpoint и, по желанию, region. Это та же конфигурация, что уже используется в существующих рабочих процессах.
Official Azure docs
jobs: translate: runs-on: ubuntu-latest steps: - uses: actions/checkout@v5
- id: translator uses: IEvangelist/resource-translator@v3 with: provider: | azure: subscriptionKey: ${{ secrets.TRANSLATOR_KEY }} endpoint: ${{ secrets.TRANSLATOR_ENDPOINT }} region: ${{ secrets.TRANSLATOR_REGION }} sourceLocale: en toLocales: '["es","fr","de"]'AWS Translate
Использует @aws-sdk/client-translate. Предпочитаю OIDC через aws-actions/configure-aws-credentials, чтобы не хранились долговременные секреты — действие считывает цепочку учетных данных AWS SDK по умолчанию. Или пропустите awsAccessKeyId и awsSecretAccessKey явно. Регион всегда необходим через awsRegion или AWS_REGION переменную среды.
Official AWS docs
- Amazon Translate overview
- TranslateText API reference
- Setting formality
- Using brevity
- Custom terminology
- Parallel data
- Supported languages
OIDC (рекомендую)
permissions: id-token: write # for aws-actions/configure-aws-credentials OIDC contents: write pull-requests: write
jobs: translate: runs-on: ubuntu-latest steps: - uses: actions/checkout@v5
- uses: aws-actions/configure-aws-credentials@v4 with: role-to-assume: arn:aws:iam::123456789012:role/gh-actions-translate aws-region: us-east-1
- id: translator uses: IEvangelist/resource-translator@v3 with: provider: | aws: region: us-east-1 # or rely on AWS_REGION from the step above formality: FORMAL brevity: true sourceLocale: en toLocales: '["es","fr","de"]'Чтобы использовать статические клавиши вместо OIDC, отбросьте aws-actions/configure-aws-credentials шаг и передайте awsAccessKeyId / awsSecretAccessKey (через secrets) плюс awsRegion.
Google Cloud Translation
Использует @google-cloud/translate (v2). Аутентифицироваться либо с помощью API-ключа (googleApiKey), либо JSON-учетной записи сервиса (googleCredentials). Поставьте ровно одного; Необязательный googleProjectId выводится из удостоверения при опускении.
Official Google docs
jobs: translate: runs-on: ubuntu-latest steps: - uses: actions/checkout@v5
- id: translator uses: IEvangelist/resource-translator@v3 with: provider: | google: # Provide EITHER a service-account JSON credential... credentials: ${{ secrets.GCP_TRANSLATE_CREDENTIALS }} # ...OR an API key: # apiKey: ${{ secrets.GCP_TRANSLATE_API_KEY }} model: nmt sourceLocale: en toLocales: '["es","fr","de"]'Отображение спецификатора намерения
Специфические спецификаторы поставщика отображаются там, где существует эквивалент. Всё остальное сводится к разумным стандартам, чтобы поведение оставалось постоянным.
textTypeprofanityActioncategoryIdallowFallbackawsFormalityawsBrevityawsTerminologyNamesawsParallelDataNamesgoogleModelgoogleApiEndpointКоды локализации различаются в зависимости от провайдера
Каждый провайдер использует свои коды локализации (например, упрощённый китайский zh-Hans на Azure, zh на AWS и zh-CN в Google). Коды проходят как есть и управляют имёнами выходных файлов, поэтому выбирайте toLocales значения, которые поддерживает выбранный вами провайдер.