diff --git a/.github/workflows/crowdin-commit.yml b/.github/workflows/crowdin-commit.yml new file mode 100644 index 000000000..fa87b45f3 --- /dev/null +++ b/.github/workflows/crowdin-commit.yml @@ -0,0 +1,45 @@ +name: Import translations from Crowdin + +on: + schedule: + - cron: "0 0 1,15 * *" + workflow_dispatch: + +jobs: + build: + runs-on: ubuntu-latest + + steps: + - uses: actions/checkout@v4 + with: + persist-credentials: false + submodules: recursive + + - uses: actions/setup-node@v4 + with: + node-version: lts/* + + - name: Setup Crowdin CLI + run: | + npm i -g @crowdin/cli + + - name: Pull from Crowdin + env: + CROWDIN_TOKEN: ${{ secrets.CROWDIN_TOKEN }} + UU_CROWDIN_ID: ${{ secrets.UU_CROWDIN_ID }} + run: | + ./crowdin-pull.sh + + - name: Commit changes + run: | + git config user.email "twlbot@flashcarts.net" + git config user.name "TWLBot" + + git checkout master + git commit -a -m "Automatic translation import" + + - name: Push changes + uses: ad-m/github-push-action@master + with: + branch: master + github_token: ${{ secrets.TWLBOT_TOKEN }} diff --git a/.github/workflows/crowdin-upload.yml b/.github/workflows/crowdin-upload.yml new file mode 100644 index 000000000..31bd53c97 --- /dev/null +++ b/.github/workflows/crowdin-upload.yml @@ -0,0 +1,26 @@ +name: Upload source files to Crowdin + +on: + push: + branches: [ master ] + paths: + - 'romfs/lang/en/**' + workflow_dispatch: + +jobs: + build: + runs-on: ubuntu-latest + + steps: + - uses: actions/checkout@v4 + with: + persist-credentials: false + submodules: recursive + + - name: Push to Crowdin + uses: crowdin/github-action@v2 + with: + upload_sources: true + env: + CROWDIN_TOKEN: ${{ secrets.CROWDIN_TOKEN }} + UU_CROWDIN_ID: ${{ secrets.UU_CROWDIN_ID }} diff --git a/crowdin-pull.sh b/crowdin-pull.sh new file mode 100755 index 000000000..9907c971e --- /dev/null +++ b/crowdin-pull.sh @@ -0,0 +1,10 @@ +#!/bin/bash + +# Add new languages here, space separated and using the ID for `crowdin pull` +LANGUAGES="bruh da de es-ES fr hu it ja ko lt nl no pl pt-PT pt-BR ro ru ry tr uk zh-CN zh-TW" + +ARG='' +for LANGUAGE in $LANGUAGES; do + ARG+="-l $LANGUAGE " +done +crowdin pull $ARG