Hla mus rau cov ntsiab lus

Hom Lus

Xaiv koj hom lus

Hloov mus rau tib nplooj ntawv ua lwm hom lus.

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

Kev teeb tsa

Pib

Ntxiv ib tug workflow ntaub ntawv, xaiv koj txhais lus muab kev pab — Azure, AWS, los yog Google — thiab qhov kev txiav txim scans lub repo rau qhov chaw-lus resource ntaub ntawv thiab emits txhais kwv tij.

Ntawm nplooj ntawv no

    Step 1: Xaiv ib tug txhais lus muab kev pab

    Qhov kev nqis tes ua haujlwm nrog Azure AI Tus Neeg Txhais Lus, AWS Txhais Lus thiab Google Huab Txhais lus tom qab ib qho kev sib koom ua ke API nto. Xaiv ib tus neeg zov me nyuam ib qho kev khiav nrog cov tswv yim provider - cov txheej txheem ua haujlwm zoo ib yam tsis hais tus neeg muab kev pabcuam; tsuas yog cov ntawv pov thawj sib txawv. Saib Cov chaw muab kev txhais lus rau kev sib piv tag nrho.

    Step 2: Ntxiv cov ntawv pov thawj thiab kev ua haujlwm

    Khaws koj tus neeg zov me nyuam cov ntawv pov thawj raws li GitHub repository secrets, tom qab ntawd tsim .github/workflows/translate.yml. Xaiv koj tus kws kho mob hauv qab no rau nws qhov kev teeb tsa tshwj xeeb - tus so ntawm kev ua haujlwm zoo ib yam.

    Azure AI Tus Neeg Txhais Lus

    Azure yog lub neej ntawd tus muab kev pab, yog li provider tej zaum yuav raug rho tawm. Muab Azure AI Txhais lus cov peev txheej hauv Azure portal, tom qab ntawd khaws nws cov ntawv pov thawj:

    Khaws cov no raws li repository secrets

    • TRANSLATOR_KEY — tus yuam sij subscription rau cov peev txheej.
    • TRANSLATOR_ENDPOINT — lub cheeb tsam endpoint URL.
    • TRANSLATOR_REGION — cov peev txheej Azure cheeb tsam.

    Ntxiv cov workflow

    .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: Cog lus ib qho ntaub ntawv peev txheej

    Cov ntaub ntawv peev txheej siv cov Name.<sourceLocale>.<ext> lus cog tseg. Piv txwv li Greetings.en.resx dhau los ua Greetings.fr.resx, Greetings.de.resx thiab lwm yam tom qab khiav.

    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: Xyuas cov zis

    Thaum lub workflow tiav, qhov kev txiav txim nthuav tawm peb cov zis uas koj tuaj yeem xaim rau hauv PR cov lus piav qhia: summary-title, summary-details thiab has-new-translations. Nws kuj sau ib tug Markdown ntsiab lus rau hauv txoj hauj lwm nplooj ntawv los ntawm core.summary.

    Cov kauj ruam tom ntej