Step 1: এটা অনুবাদ প্ৰদানকাৰী বাছক
কাৰ্যটোৱে এটা একত্ৰিত API পৃষ্ঠৰ পিছফালে Azure AI Translator, AWS অনুবাদ আৰু গুগল ক্লাউড অনুবাদ ৰ সৈতে কাম কৰে। provider ইনপুটৰ সৈতে প্ৰতি দৌৰত এজন প্ৰদানকাৰী বাছনি কৰক - ৱৰ্কফ্ল'য়ে প্ৰদানকাৰী নিৰ্বিশেষে একে ধৰণে আচৰণ কৰে; কেৱল পৰিচয় পত্ৰবোৰহে পৃথক হয়। সম্পূৰ্ণ তুলনাৰ বাবে অনুবাদ প্ৰদানকাৰী চাওক।
Step 2: ক্ৰেডেন্সিয়েল আৰু ৱৰ্কফ্ল' যোগ দিয়ক
আপোনাৰ প্ৰদানকাৰীৰ পৰিচয় পত্ৰসমূহ GitHub ভঁৰালৰ গোপনীয়তা হিচাপে সংৰক্ষণ কৰক, তাৰপিছত .github/workflows/translate.yml সৃষ্টি কৰক। ইয়াৰ নিৰ্দিষ্ট ছেটআপৰ বাবে তলত আপোনাৰ প্ৰদানকাৰী বাছনি কৰক - বাকী ৱৰ্কফ্ল'টো একেই।
Azure AI Translator
Azure হৈছে ডিফল্ট প্ৰদানকাৰী, সেয়েহে provider বাদ দিয়া হ'ব পাৰে। Azure পৰ্টেলত এটা Azure AI Translator সম্পদ প্ৰদান কৰক, তাৰ পিছত ইয়াৰ যোগ্যতা সংৰক্ষণ কৰক:
এসমূহ গোপন তথ্য ৰূপত সংৰক্ষণ কৰা হ'ব
TRANSLATOR_KEY— সম্পদৰ বাবে সাবস্ক্ৰিপশন কি'।TRANSLATOR_ENDPOINT— আঞ্চলিক এণ্ডপইণ্ট ইউআৰএল।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 লৈ ছেট কৰক। aws-actions/configure-aws-credentials যোগে OIDC পছন্দ কৰক যাতে কোনো দীৰ্ঘম্যাদী গোপনীয়তা সংৰক্ষণ নহয় - পদক্ষেপ ৰপ্তানি আপোনাৰ বাবে 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— বা এটা গুগল ক্লাউড এপিআই কী।
বাদ দিলে যোগ্যতাৰ পৰা বৈকল্পিক 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: এটা উৎস সম্পদ ফাইল commit কৰক
সম্পদ ফাইলবোৰে 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 যোগে চাকৰিৰ পৃষ্ঠাত এটা মাৰ্কডাউন সাৰাংশও লিখে।