完全向后兼容:provider默认为azure,因此现有的Azure工作流程保持不变——无需修改。
选择服务提供者
将provider输入设置为azure(默认)、aws或google,然后提供该提供商的凭证。每个动作调用只使用一个提供者;该动作确定性地委派给工厂后面的匹配 SDK。
提供者比较
subscriptionKey, endpoint, region(可选)
OIDC / 默认链,或 awsAccessKeyID + awsSecretAccessKey;awsRegion
googleApiKey OR googleCredentials (service-account JSON)
Azure AI 翻译器(默认)
默认的供应商。配置一个Azure AI翻译器资源,并传递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 翻译
使用@aws-sdk/client-translate。优先通过aws-actions/configure-aws-credentials进行OIDC,这样就不会存储长期存在的秘密——动作读取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步,通过secrets传递awsAccessKeyId / awsSecretAccessKey加awsRegion。
谷歌云翻译
使用@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不同服务商的地区代码不同
每个提供商使用自己的本地代码(例如,简体中文在Azure上zh-Hans,zh在AWS上,zh-CN在Google上)。代码按现状传输并驱动输出文件名,因此选择你所选服务提供商支持的toLocales值。