Step 1: ഒരു വിവർത്തന ദാതാവിനെ തിരഞ്ഞെടുക്കുക
ഒരു ഏകീകൃത API ഉപരിതലത്തിന് പിന്നിൽ Azure AI Translator, AWS വിവർത്തനം, ഗൂഗിൾ ക്ലൗഡ് വിവർത്തനം എന്നിവ ഉപയോഗിച്ച് പ്രവർത്തനം പ്രവർത്തിക്കുന്നു. provider ഇൻപുട്ട് ഉപയോഗിച്ച് ഓരോ റണ്ണിലും ഒരൊറ്റ ദാതാവ് തിരഞ്ഞെടുക്കുക - ദാതാവിനെ പരിഗണിക്കാതെ വർക്ക്ഫ്ലോ സമാനമായി പെരുമാറുന്നു; യോഗ്യതാപത്രങ്ങൾ മാത്രമാണ് വ്യത്യാസപ്പെട്ടിരിക്കുന്നത്. പൂർണ്ണമായ താരതമ്യത്തിന് വിവർത്തന ദാതാക്കൾ കാണുക.
Step 2: ക്രെഡൻഷ്യലുകളും വർക്ക്ഫ്ലോയും ചേർക്കുക
നിങ്ങളുടെ ദാതാവിന്റെ ക്രെഡൻഷ്യലുകൾ ഗിറ്റ്ഹബ് റിപ്പോസിറ്ററി രഹസ്യങ്ങളായി സംഭരിക്കുക, തുടർന്ന് .github/workflows/translate.yml സൃഷ്ടിക്കുക. അതിന്റെ നിർദ്ദിഷ്ട സജ്ജീകരണത്തിനായി ചുവടെയുള്ള നിങ്ങളുടെ ദാതാവിനെ തിരഞ്ഞെടുക്കുക - ബാക്കി വർക്ക്ഫ്ലോ സമാനമാണ്.
Azure AI Translator
അഷ്വർ ഡിഫോൾട്ട് പ്രൊവൈഡറാണ്, അതിനാൽ provider ഒഴിവാക്കപ്പെട്ടേക്കാം. Azure പോർട്ടലിൽ ഒരു Azure AI Translator റിസോഴ്സ് നൽകുക, തുടർന്ന് അതിന്റെ ക്രെഡൻഷ്യലുകൾ സംഭരിക്കുക:
ഇവ റെപ്പോസിറ്ററി രഹസ്യങ്ങളായി സൂക്ഷിക്കുക
TRANSLATOR_KEY— റിസോഴ്സിനായുള്ള സബ്സ്ക്രിപ്ഷൻ കീ.TRANSLATOR_ENDPOINT— റീജിയണൽ എൻഡ് പോയിന്റ് യുആർഎൽ.TRANSLATOR_REGION— റിസോഴ്സിന്റെ അസൂർ റീജിയൻ.
വർക്ക്ഫ്ലോ ചേർക്കുക
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 ആയി ക്രമീകരിക്കുക. 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-translationഗൂഗിൾ ക്ലൗഡ് വിവർത്തനം
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. ഇത് core.summary വഴി തൊഴിൽ പേജിലേക്ക് ഒരു മാർക്ക്ഡൗൺ സംഗ്രഹവും എഴുതുന്നു.