Chuyển đến nội dung

Ngôn ngữ

Chọn ngôn ngữ của bạn

Chuyển sang cùng một trang bằng ngôn ngữ khác.

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

Thành lập

Bắt đầu

Thêm tệp quy trình làm việc, chọn nhà cung cấp dịch thuật của bạn — Azure, AWS hoặc Google — và hành động sẽ quét kho lưu trữ để tìm các tệp tài nguyên ngôn ngữ nguồn và phát ra các anh chị em đã dịch.

Trên trang này

    Step 1: Chọn nhà cung cấp dịch thuật

    Hành động này hoạt động với Trình dịch Azure AI, Dịch AWS và Dịch thuật Google Cloud đằng sau một nền tảng API hợp nhất. Chọn một nhà cung cấp duy nhất cho mỗi lần chạy với đầu vào provider — quy trình làm việc hoạt động giống hệt nhau bất kể nhà cung cấp nào; Chỉ có thông tin đăng nhập khác nhau. Xem Nhà cung cấp dịch thuật để so sánh đầy đủ.

    Step 2: Thêm thông tin đăng nhập và quy trình làm việc

    Lưu trữ thông tin đăng nhập của nhà cung cấp dưới dạng bí mật kho lưu trữ GitHub, sau đó tạo .github/workflows/translate.yml. Chọn nhà cung cấp của bạn bên dưới để thiết lập cụ thể — phần còn lại của quy trình làm việc giống hệt nhau.

    Trình dịch Azure AI

    Azure là nhà cung cấp mặc định, vì vậy provider có thể bị bỏ qua. Cung cấp tài nguyên Azure AI Translator trong cổng thông tin Azure, sau đó lưu trữ thông tin đăng nhập của tài nguyên đó:

    Lưu trữ chúng dưới dạng bí mật kho lưu trữ

    • TRANSLATOR_KEY — khóa đăng ký cho tài nguyên.
    • TRANSLATOR_ENDPOINT — URL điểm cuối khu vực.
    • TRANSLATOR_REGION — khu vực Azure của tài nguyên.

    Thêm quy trình làm việc

    .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: Cam kết tệp tài nguyên nguồn

    Các tệp tài nguyên sử dụng quy ước Name.<sourceLocale>.<ext>. Ví dụ, Greetings.en.resx trở thành Greetings.fr.resx, Greetings.de.resx, v.v. sau khi chạy.

    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: Kiểm tra đầu ra

    Sau khi quy trình làm việc kết thúc, hành động sẽ hiển thị ba đầu ra mà bạn có thể kết nối vào mô tả PR: summary-title, summary-detailshas-new-translations. Nó cũng viết một bản tóm tắt Markdown vào trang việc làm thông qua core.summary.

    Các bước tiếp theo