Zlokalizuj swoje repozytorium na Każde zobowiązanie.
Resource Translator otwiera maszynowo tłumaczone pull requesty dla Twoich plików zasobów za pomocą Azure AI Translator za pośrednictwem oficjalnego SDK — bez dodatkowych usług, tylko workflow.
- 0 Problemy z audytem npm
- 150 testów
- Węzeł 20 / 22 / 24
- Official Azure SDK
.NET XML .xliff XLIFF 2.0 .po gettext .json zagnieżdżone lub płaskie .ini key=value .restext Tekst MUI Zbudowany do żeglugi
Tłumaczenie jako sposób pracy, a nie obowiązek.
Włóż akcję do istniejącego CI, skieruj ją na Azure AI Translator i pozwól repozytorium mówić we wszystkich językach, które wybierasz.
Sześć formatów plików
Połączenia w obie strony .resx, .xliff, .po, .json, .ini i .restext z formatowaniem stabilnym bajt.
Konfiguracja na poziomie repozytorium
Zrezygnuj z pliku .github/resource-translator.yml, aby obejmować globy, słowniki i kategorie Custom Translator.
Świadomy słownika
Zabezpiecz nazwy marek i terminy produktów za pomocą inteligentnego regexu granicznego słowa, który obsługuje C++, .NET i znajomych.
Próba próbna + miękka porażka
Podglądaj tłumaczenia bez zapisywania plików lub wyświetlaj każdy błąd jako ostrzeżenie podczas iteracji.
Produkty przyjazne PR-owi
summary-title, summary-details i has-new-translations bezpośrednio wpadają w create-pull-request.
Official Azure SDK
Zbudowane na @azure-rest/ai-translation-text + @azure/core-rest-pipeline — automatyczne próby na 408/429/5xx, brak ręcznie tworzonego HTTP. esbuild pakiety, czyste od audytu.
Przepływ pracy bez zaproszenia
Kopiuj. Wklej. Przetłumacz.
Trzy sekrety, cztery linie, a repozytorium jest wielojęzyczne przy następnym pushu.
name: translateon: push: branches: [main] paths: ["**/*.en.resx", "**/*.en.json"]
permissions: contents: write pull-requests: write
jobs: translate: runs-on: ubuntu-latest steps: - uses: actions/checkout@v5 - id: translator uses: IEvangelist/resource-translator@v3 with: sourceLocale: en subscriptionKey: ${{ secrets.TRANSLATOR_KEY }} endpoint: ${{ secrets.TRANSLATOR_ENDPOINT }} region: ${{ secrets.TRANSLATOR_REGION }} toLocales: '["fr","de","es","ja"]'
- if: steps.translator.outputs.has-new-translations == 'true' uses: peter-evans/create-pull-request@v7 with: branch: machine-translation title: ${{ steps.translator.outputs.summary-title }} body: ${{ steps.translator.outputs.summary-details }} labels: localizationGotowy do lokalizacji na autopilocie?
Jeden klucz Azure AI Translator, jeden plik workflow. Resource Translator zajmuje się resztą.