پرش به محتوا

زبان

زبان خود را انتخاب کنید

به همان صفحه به زبان دیگر تغییر دهید.

EnglishEnglishenAfrikaansAfrikaansafአማርኛAmharicamالعربيةArabicarঅসমীয়াAssameseasAzərbaycanAzerbaijaniazБашҡортBashkirbaБългарскиBulgarianbgभोजपुरीBhojpuribhoবাংলাBanglabnབོད་སྐད་Tibetanboबड़ोBodobrxBosanskiBosnianbsCatalàCatalancaČeštinaCzechcsCymraegWelshcyDanskDanishdaDeutschGermandeडोगरीDogridoiDolnoserbšćinaLower SorbiandsbދިވެހިބަސްDivehidvΕλληνικάGreekelEspañolSpanishesEestiEstonianetEuskaraBasqueeuفارسیPersianfaSuomiFinnishfiFilipinoFilipinofilVakavitiFijianfjFøroysktFaroesefoFrançaisFrenchfrFrançais (Canada)French (Canada)fr-CAGaeilgeIrishgaGalegoGalicianglकोंकणीKonkanigomગુજરાતીGujaratiguHausaHausahaעבריתHebrewheहिन्दीHindihiछत्तीसगढ़ीChhattisgarhihneHrvatskiCroatianhrHornjoserbsceUpper SorbianhsbHaitian CreoleHaitian CreolehtMagyarHungarianhuՀայերենArmenianhyIndonesiaIndonesianidÌgbòIgboigInuinnaqtunInuinnaqtuniktÍslenskaIcelandicisItalianoItalianitᐃᓄᒃᑎᑐᑦInuktitutiuInuktitut (Latin)Inuktitut (Latin)iu-Latn日本語JapanesejaქართულიGeorgiankaҚазақ ТіліKazakhkkខ្មែរKhmerkmKurmancîKurdish (Northern)kmrಕನ್ನಡKannadakn한국어KoreankoكٲشُرKashmiriksکوردیی ناوەندیKurdish (Central)kuКыргызчаKyrgyzkyLëtzebuergeschLuxembourgishlbLingálaLingalalnລາວLaoloLietuviųLithuanianltLugandaGandalugLatviešuLatvianlv中文 (文言文)Chinese (Literary)lzhमैथिलीMaithilimaiMalagasyMalagasymgTe Reo MāoriMāorimiМакедонскиMacedonianmkമലയാളംMalayalammlМонгол хэлMongolian (Cyrillic)mn-Cyrlᠮᠣᠩᠭᠣᠯ ᠬᠡᠯᠡMongolian (Traditional)mn-MongমৈতৈলোনManipurimniमराठीMarathimrMelayuMalaymsMaltiMaltesemtHmong DawHmong Dawmwwမြန်မာMyanmar (Burmese)myNorsk BokmålNorwegian BokmålnbनेपालीNepalineNederlandsDutchnlSesotho sa LeboaSesotho sa LeboansoChinyanjaChichewanyaଓଡ଼ିଆOdiaorHñähñuQuerétaro OtomiotqਪੰਜਾਬੀPunjabipaPolskiPolishplدریDariprsپښتوPashtopsPortuguês (Brasil)Portuguese (Brazil)ptPortuguês (Portugal)Portuguese (Portugal)pt-PTRomânăRomanianroРусскийRussianruIkirundiRundirunKinyarwandaKinyarwandarwسنڌيSindhisdසිංහලSinhalasiSlovenčinaSlovakskSlovenščinaSlovenianslGagana SāmoaSamoansmchiShonaShonasnSoomaaliSomalisoShqipAlbaniansqСрпски (ћирилица)Serbian (Cyrillic)sr-CyrlSrpski (latinica)Serbian (Latin)sr-LatnSesothoSesothostSvenskaSwedishsvKiswahiliSwahiliswதமிழ்TamiltaతెలుగుTeluguteไทยThaithትግርTigrinyatiTürkmen DiliTurkmentkLea fakatongaTongantoTürkçeTurkishtrТатарTatarttReo TahitiTahitiantyئۇيغۇرچەUyghurugУкраїнськаUkrainianukاردوUrduurUzbek (Latin)Uzbek (Latin)uzTiếng ViệtVietnameseviisiXhosaisiXhosaxhÈdè YorùbáYorubayoYucatec MayaYucatec Mayayua粵語Cantonese (Traditional)yue中文 (简体)Chinese Simplifiedzh-Hans中文 (繁體)Chinese Traditionalzh-HantisiZuluisiZuluzu

تنظیمات

شروع

یک فایل جریان کاری اضافه کنید، ارائه دهنده ترجمه خود — Azure، AWS یا Google — را انتخاب کنید و این اقدام مخزن را برای یافتن فایل های منبع زبان منبع اسکن کرده و نسخه های ترجمه شده را ارسال می کند.

در این صفحه

    Step 1: یک ارائه دهنده ترجمه انتخاب کنید

    این عمل با Azure AI Translator، AWS Translate و ترجمه ابری گوگل پشت یک سطح API یکپارچه کار می کند. در هر اجرا یک ارائه دهنده را با ورودی provider انتخاب کنید — جریان کار به طور یکسان عمل می کند، صرف نظر از ارائه دهنده؛ فقط مدارک متفاوت است. برای مقایسه کامل به ارائه دهندگان ترجمه مراجعه کنید.

    Step 2: اطلاعات ورود و جریان کاری را اضافه کنید

    اطلاعات اطلاعات ارائه دهنده خود را به عنوان اسرار مخزن گیت هاب ذخیره کنید و سپس .github/workflows/translate.yml بسازید. ارائه دهنده خود را در زیر برای تنظیمات خاص آن انتخاب کنید — بقیه روند کاری یکسان است.

    Azure AI Translator

    Azure ارائه دهنده پیش فرض است، بنابراین ممکن است provider حذف شده باشد. یک منبع Azure AI Translator را در پورتال Azure فراهم کنید، سپس اعتبارنامه های آن را ذخیره کنید:

    این ها را به عنوان اسرار مخزن ذخیره کنید

    • TRANSLATOR_KEY — کلید اشتراک برای منبع.
    • TRANSLATOR_ENDPOINT — آدرس نقطه پایانی منطقه ای.
    • TRANSLATOR_REGION — منطقه Azure منبع بود.

    روند کاری را اضافه کنید

    .github/workflows/translate.yml
    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-translation

    Step 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 در صفحه شغل می نویسد.

    گام های بعدی