Step 1: Тәрҗемәчене сайлагыз
Акция бердәм API өслеге артында Azure AI Translator, AWS Тәрҗемә һәм Google Болыт тәрҗемәсе белән эшли. Бер эш өчен provider кертү белән бер провайдерны сайлагыз — эш процессы провайдерга карамастан үзен бер төрле тота; Бары тик вәкаләтләре генә аерыла. Тулысынча чагыштыру Тәрҗемә күрсәтүчеләр карагыз.
Step 2: Учет мәгълүматларын һәм эш процессын өстәгез
Провайдерның учет мәгълүматларын GitHub репозиторий серләре буларак саклагыз, аннары .github/workflows/translate.yml. Провайдерны сайлагыз — эш процессының калган өлеше бер төрле.
Azure AI Translator
Azure стандарт провайдер булып тора, шуңа күрә provider төшереп калдырырга мөмкин. Azure порталында Azure AI тәрҗемәче ресурсын тәэмин итегез, аннары аның учет мәгълүматларын саклагыз:
Аларны саклау серләре буларак саклагыз
TRANSLATOR_KEY— Ресурс өчен подписка ачкычы.TRANSLATOR_ENDPOINT— төбәк ахыргы ноктасы URL.TRANSLATOR_REGION— ресурсның Azure төбәге.
Эш процессын өстәгез
name: translate
on: push: branches: [main] paths: - "src/**/*.en.resx" - "src/**/*.en.json"
permissions: contents: write pull-requests: write
jobs: translate: runs-on: ubuntu-latest steps: - uses: actions/checkout@v5 - id: translate uses: IEvangelist/resource-translator@v3 with: provider: | azure: subscriptionKey: ${{ secrets.TRANSLATOR_KEY }} endpoint: ${{ secrets.TRANSLATOR_ENDPOINT }} region: ${{ secrets.TRANSLATOR_REGION }} sourceLocale: en toLocales: '["fr","de","es"]' - if: steps.translate.outputs.has-new-translations == 'true' uses: peter-evans/create-pull-request@v7 with: title: ${{ steps.translate.outputs.summary-title }} body: ${{ steps.translate.outputs.summary-details }} branch: machine-translationAWS Тәрҗемә
Аны provider aws. Озак вакытлы серләр сакланмас өчен OIDC аша aws-actions/configure-aws-credentials өстенлек AWS_REGION. Аның урынына статик ачкычларны куллану өчен түбәндәгеләрне саклагыз:
Аларны саклау серләре буларак саклагыз
AWS_ACCESS_KEY_ID— сезнең AWS керү ачкычы идентификаторы.AWS_SECRET_ACCESS_KEY— сезнең AWS яшерен керү ачкычы.
Төбәк һәрвакыт таләп ителә — аны awsRegion яки AWS_REGION әйләнә-тирә үзгәрүчән белән куягыз.
Эш процессын өстәгез
name: translate
on: push: branches: [main] paths: - "src/**/*.en.resx" - "src/**/*.en.json"
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: translate 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: '["fr","de","es"]' - if: steps.translate.outputs.has-new-translations == 'true' uses: peter-evans/create-pull-request@v7 with: title: ${{ steps.translate.outputs.summary-title }} body: ${{ steps.translate.outputs.summary-details }} branch: machine-translationGoogle Болыт тәрҗемәсе
Аны provider google. Сервис-аккаунт JSON учет мәгълүматлары яки API ачкычы белән аутентификацияләнергә кирәк:
Аларны саклау серләре буларак саклагыз
GCP_TRANSLATE_CREDENTIALS— сервис-аккаунт JSON ачкычы (JSON строкасы буларак).GCP_TRANSLATE_API_KEY— яки Google Cloud API ачкычы.
Өстәмә googleProjectId төшереп калдырылган очракта, таныклыктан факультатив чыгарыла.
Эш процессын өстәгез
name: translate
on: push: branches: [main] paths: - "src/**/*.en.resx" - "src/**/*.en.json"
permissions: contents: write pull-requests: write
jobs: translate: runs-on: ubuntu-latest steps: - uses: actions/checkout@v5 - id: translate 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: '["fr","de","es"]' - if: steps.translate.outputs.has-new-translations == 'true' uses: peter-evans/create-pull-request@v7 with: title: ${{ steps.translate.outputs.summary-title }} body: ${{ steps.translate.outputs.summary-details }} branch: machine-translationStep 3: Чыганак ресурс файлын урнаштыру
Ресурс файллары Name.<sourceLocale>.<ext> конвенциясен куллана. Мәсәлән, Greetings.en.resx йөгергәннән соң Greetings.fr.resx, Greetings.de.resx һ.б.
Step 4: Let smart change detection protect your bill
changeDetection defaults to smart and stores a compact .github/resource-translator-state.json manifest in the repo. Commit that file so future runs can reuse stable translations, preserve manual target edits, and send only new, missing, changed, or settings-invalidated keys to the provider. If localized files already exist, run once with snapshotOnly: true to create the manifest without provider calls.
Step 5: Нәтиҗәне тикшерегез
Эш процессы тәмамланганнан соң, өч чыганак ачыла: summary-title, summary-details һәм has-new-translations. Шулай ук эш битенә Markdown резюмесын core.summary.