245 lines
8.1 KiB
YAML
245 lines
8.1 KiB
YAML
name: Auto Translate
|
|
|
|
on:
|
|
workflow_dispatch:
|
|
|
|
permissions:
|
|
contents: write
|
|
pull-requests: write
|
|
|
|
jobs:
|
|
translate-zh:
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
- uses: actions/setup-node@v4
|
|
with:
|
|
node-version: "20"
|
|
- run: npx i18n-auto-translation -k ${{ secrets.GOOGLE_TRANSLATE_API_KEY }} -d "src/locales" -f en -t zh
|
|
- uses: actions/upload-artifact@v4
|
|
with:
|
|
name: translations-zh
|
|
path: src/locales/zh.json
|
|
continue-on-error: true
|
|
|
|
translate-ru:
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
- uses: actions/setup-node@v4
|
|
with:
|
|
node-version: "20"
|
|
- run: npx i18n-auto-translation -k ${{ secrets.GOOGLE_TRANSLATE_API_KEY }} -d "src/locales" -f en -t ru
|
|
- uses: actions/upload-artifact@v4
|
|
with:
|
|
name: translations-ru
|
|
path: src/locales/ru.json
|
|
continue-on-error: true
|
|
|
|
translate-pt:
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
- uses: actions/setup-node@v4
|
|
with:
|
|
node-version: "20"
|
|
- run: npx i18n-auto-translation -k ${{ secrets.GOOGLE_TRANSLATE_API_KEY }} -d "src/locales" -f en -t pt
|
|
- uses: actions/upload-artifact@v4
|
|
with:
|
|
name: translations-pt
|
|
path: src/locales/pt.json
|
|
continue-on-error: true
|
|
|
|
translate-fr:
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
- uses: actions/setup-node@v4
|
|
with:
|
|
node-version: "20"
|
|
- run: npx i18n-auto-translation -k ${{ secrets.GOOGLE_TRANSLATE_API_KEY }} -d "src/locales" -f en -t fr
|
|
- uses: actions/upload-artifact@v4
|
|
with:
|
|
name: translations-fr
|
|
path: src/locales/fr.json
|
|
continue-on-error: true
|
|
|
|
translate-es:
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
- uses: actions/setup-node@v4
|
|
with:
|
|
node-version: "20"
|
|
- run: npx i18n-auto-translation -k ${{ secrets.GOOGLE_TRANSLATE_API_KEY }} -d "src/locales" -f en -t es
|
|
- uses: actions/upload-artifact@v4
|
|
with:
|
|
name: translations-es
|
|
path: src/locales/es.json
|
|
continue-on-error: true
|
|
|
|
translate-de:
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
- uses: actions/setup-node@v4
|
|
with:
|
|
node-version: "20"
|
|
- run: npx i18n-auto-translation -k ${{ secrets.GOOGLE_TRANSLATE_API_KEY }} -d "src/locales" -f en -t de
|
|
- uses: actions/upload-artifact@v4
|
|
with:
|
|
name: translations-de
|
|
path: src/locales/de.json
|
|
continue-on-error: true
|
|
|
|
translate-hi:
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
- uses: actions/setup-node@v4
|
|
with:
|
|
node-version: "20"
|
|
- run: npx i18n-auto-translation -k ${{ secrets.GOOGLE_TRANSLATE_API_KEY }} -d "src/locales" -f en -t hi
|
|
- uses: actions/upload-artifact@v4
|
|
with:
|
|
name: translations-hi
|
|
path: src/locales/hi.json
|
|
continue-on-error: true
|
|
|
|
translate-bn:
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
- uses: actions/setup-node@v4
|
|
with:
|
|
node-version: "20"
|
|
- run: npx i18n-auto-translation -k ${{ secrets.GOOGLE_TRANSLATE_API_KEY }} -d "src/locales" -f en -t bn
|
|
- uses: actions/upload-artifact@v4
|
|
with:
|
|
name: translations-bn
|
|
path: src/locales/bn.json
|
|
continue-on-error: true
|
|
|
|
translate-ja:
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
- uses: actions/setup-node@v4
|
|
with:
|
|
node-version: "20"
|
|
- run: npx i18n-auto-translation -k ${{ secrets.GOOGLE_TRANSLATE_API_KEY }} -d "src/locales" -f en -t ja
|
|
- uses: actions/upload-artifact@v4
|
|
with:
|
|
name: translations-ja
|
|
path: src/locales/ja.json
|
|
continue-on-error: true
|
|
|
|
translate-vi:
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
- uses: actions/setup-node@v4
|
|
with:
|
|
node-version: "20"
|
|
- run: npx i18n-auto-translation -k ${{ secrets.GOOGLE_TRANSLATE_API_KEY }} -d "src/locales" -f en -t vi
|
|
- uses: actions/upload-artifact@v4
|
|
with:
|
|
name: translations-vi
|
|
path: src/locales/vi.json
|
|
continue-on-error: true
|
|
|
|
translate-tr:
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
- uses: actions/setup-node@v4
|
|
with:
|
|
node-version: "20"
|
|
- run: npx i18n-auto-translation -k ${{ secrets.GOOGLE_TRANSLATE_API_KEY }} -d "src/locales" -f en -t tr
|
|
- uses: actions/upload-artifact@v4
|
|
with:
|
|
name: translations-tr
|
|
path: src/locales/tr.json
|
|
continue-on-error: true
|
|
|
|
translate-ko:
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
- uses: actions/setup-node@v4
|
|
with:
|
|
node-version: "20"
|
|
- run: npx i18n-auto-translation -k ${{ secrets.GOOGLE_TRANSLATE_API_KEY }} -d "src/locales" -f en -t ko
|
|
- uses: actions/upload-artifact@v4
|
|
with:
|
|
name: translations-ko
|
|
path: src/locales/ko.json
|
|
continue-on-error: true
|
|
|
|
translate-it:
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
- uses: actions/setup-node@v4
|
|
with:
|
|
node-version: "20"
|
|
- run: npx i18n-auto-translation -k ${{ secrets.GOOGLE_TRANSLATE_API_KEY }} -d "src/locales" -f en -t it
|
|
- uses: actions/upload-artifact@v4
|
|
with:
|
|
name: translations-it
|
|
path: src/locales/it.json
|
|
continue-on-error: true
|
|
|
|
translate-he:
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
- uses: actions/setup-node@v4
|
|
with:
|
|
node-version: "20"
|
|
- run: npx i18n-auto-translation -k ${{ secrets.GOOGLE_TRANSLATE_API_KEY }} -d "src/locales" -f en -t he
|
|
- uses: actions/upload-artifact@v4
|
|
with:
|
|
name: translations-he
|
|
path: src/locales/he.json
|
|
continue-on-error: true
|
|
|
|
create-pr:
|
|
needs: [translate-zh, translate-ru, translate-pt, translate-fr, translate-es, translate-de, translate-hi, translate-bn, translate-ja, translate-vi, translate-tr, translate-ko, translate-it, translate-he]
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
with:
|
|
token: ${{ secrets.GHCR_TOKEN }}
|
|
|
|
- name: Download all artifacts
|
|
uses: actions/download-artifact@v4
|
|
with:
|
|
path: translations-temp
|
|
|
|
- name: Move translations to src/locales
|
|
run: |
|
|
cp translations-temp/translations-zh/zh.json src/locales/ 2>/dev/null || true
|
|
cp translations-temp/translations-ru/ru.json src/locales/ 2>/dev/null || true
|
|
cp translations-temp/translations-pt/pt.json src/locales/ 2>/dev/null || true
|
|
cp translations-temp/translations-fr/fr.json src/locales/ 2>/dev/null || true
|
|
cp translations-temp/translations-es/es.json src/locales/ 2>/dev/null || true
|
|
cp translations-temp/translations-de/de.json src/locales/ 2>/dev/null || true
|
|
cp translations-temp/translations-hi/hi.json src/locales/ 2>/dev/null || true
|
|
cp translations-temp/translations-bn/bn.json src/locales/ 2>/dev/null || true
|
|
cp translations-temp/translations-ja/ja.json src/locales/ 2>/dev/null || true
|
|
cp translations-temp/translations-vi/vi.json src/locales/ 2>/dev/null || true
|
|
cp translations-temp/translations-tr/tr.json src/locales/ 2>/dev/null || true
|
|
cp translations-temp/translations-ko/ko.json src/locales/ 2>/dev/null || true
|
|
cp translations-temp/translations-it/it.json src/locales/ 2>/dev/null || true
|
|
cp translations-temp/translations-he/he.json src/locales/ 2>/dev/null || true
|
|
|
|
- name: Create Pull Request
|
|
uses: peter-evans/create-pull-request@v6
|
|
with:
|
|
token: ${{ secrets.GHCR_TOKEN }}
|
|
commit-message: "chore: auto-translate to multiple languages"
|
|
branch: translations-update
|
|
delete-branch: true
|
|
title: "chore: Update translations for all languages"
|