Step 1: ኣወሃሃዲ ትርጕም ምረጽ
እቲ ተግባር ምስ Azure AI ተርጓሚ AWS ተርጓሚ ከምኡውን ጉግል ክላውድ ተርጓሜ ብድሕሪ ሓደ ሓድነት ዘለዎ ገጽ ኤፒአይ እዩ ዚዓዪ። ኣብ ነፍሲ ወከፍ ጕያ provider መእተዊ ዘለዎ ሓደ ኣቕራቢ ምረጽ — እቲ ኣወሃሃዲ ብዘየገድስ እቲ መስርሕ ተመሳሳሊ እዩ ዚመያየጥ፣ እቲ መረጋገጺ ጥራይ እዩ ዚፈላለ። ምሉእ ንጽጽር ኣቕረብቲ ትርጕም ርአ።
Step 2: መረጋገጺ ወረቓቕትን ኣሰራርሓን ወሲኽካ
ነቲ ናይ ኣቕራቢኻ ምስክር ወረቓቕቲ ከም ምስጢራት መኽዘን GitHub ኣቐምጦ፣ ድሕሪኡ .github/workflows/translate.yml ፍጠር። ንፍሉይ ኣሰራርሓኡ ኣብ ታሕቲ ዘሎ ኣወሃሃዲኻ ምረጽ — እቲ ዝተረፈ መስርሕ ተመሳሳሊ እዩ።
Azure AI ተርጓሚ
Azure ነባሪ ወሃቢ ስለ ዝዀነ provider ኪጠፍእ ይኽእል እዩ። ኣብ Azure ፖርታል ናይ Azure AI ተርጓሚ ምንጪ ኣዳሉ፣ ድሕሪኡ ነቲ መረጋገጺኡ ኣቐምጦ፦
ነዚ ምስጢራት እዚ ኸም መኽዘን ጌርካ ኣቐምጦ
TRANSLATOR_KEY— እቲ መፍትሕ ናይ መኽፈቲ መኽሰብ።TRANSLATOR_ENDPOINT— ዞባዊ ናይ መወዳእታ ነጥቢ URL።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 ኣቐምጥ። ንነዊሕ እዋን ዚጸንሕ ምስጢራት ምእንቲ ኸይዕቀብ 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-translationጉግል ክላውድ ተርጓሜ
provider ናብ google ኣቐምጥ። ብሰርቪስ-ሕሳብ JSON ምስክር ወረቐት ወይ ብኤፒአይ መፍትሒ ኣረጋግጽ — ልክዕ ሓደ ኣቕርብ፦
ነዚ ምስጢራት እዚ ኸም መኽዘን ጌርካ ኣቐምጦ
GCP_TRANSLATE_CREDENTIALS— ናይ ኣገልግሎት ሕሳብ JSON ቁልፍ (ከም ሕብረቁምፊ JSON)።GCP_TRANSLATE_API_KEY— ወይ ናይ ጉግል ክላውድ ኤፒአይ መኽፈቲ።
ኣማራጺ 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: ነቲ ውጽኢት መርምሮ
እቲ መስርሕ ምስ ተወድአ እቲ ተግባር ኣብ ናይ PR መግለጺ ከተእትዎ እትኽእል ሰለስተ ውፅኢታት የቃልዕ - summary-title summary-details ከምኡውን has-new-translations። ብተወሳኺ'ውን ኣብ ናይ ስራሕ ገጽ ናይ core.summary ጽማቝ ጽሑፍ ይጽሕፍ።