Saltar al contenido

Idioma

Elige tu idioma

Cambia a la misma página en otro idioma.

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

Configuración

Empezando

Añade un archivo de flujo de trabajo, elige tu proveedor de traducción — Azure, AWS o Google — y la acción escanea el repositorio en busca de archivos de recursos en idioma fuente y emite los hermanos traducidos.

En esta página

    Step 1: Elige un proveedor de traducción

    La acción funciona con Azure AI Translator, AWS Translate y Traducción de Google Cloud detrás de una sola superficie unificada de API. Elige un único proveedor por ejecución con la entrada provider — el flujo de trabajo se comporta igual independientemente del proveedor; solo difieren las credenciales. Consulta Proveedores de traducción para una comparación completa.

    Step 2: Añadir credenciales y un flujo de trabajo

    Guarda las credenciales de tu proveedor como secretos del repositorio de GitHub y luego crea .github/workflows/translate.yml. Selecciona a tu proveedor a continuación para su configuración específica — el resto del flujo de trabajo es idéntico.

    Azure AI Translator

    Azure es el proveedor por defecto, así que provider puede omitirse. Provisiona un recurso Azure AI Translator en el portal Azure y luego almacena sus credenciales:

    Almacena estos como secretos de repositorio

    • TRANSLATOR_KEY — La clave de suscripción para el recurso.
    • TRANSLATOR_ENDPOINT — la URL regional del punto final.
    • TRANSLATOR_REGION — la región Azure del recurso.

    Añadir el flujo de trabajo

    .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: Commit de un archivo de recurso fuente

    Los archivos de recursos utilizan la convención Name.<sourceLocale>.<ext>. Por ejemplo, Greetings.en.resx se convierte en Greetings.fr.resx, Greetings.de.resx, y así sucesivamente tras una partida.

    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: Inspeccionar la salida

    Una vez que termina el flujo de trabajo, la acción expone tres salidas que puedes conectar en una descripción de relaciones públicas: summary-title, summary-details y has-new-translations. También escribe un resumen de Markdown en la página de empleo a través de core.summary.

    Próximos pasos