diff --git a/.github/workflows/crowdin-commit.yml b/.github/workflows/crowdin-commit.yml new file mode 100644 index 000000000..b31576992 --- /dev/null +++ b/.github/workflows/crowdin-commit.yml @@ -0,0 +1,70 @@ +name: Import translations from Crowdin + +on: + schedule: + - cron: "0 0 1,15 * *" + workflow_dispatch: + +jobs: + build: + runs-on: ubuntu-latest + container: devkitpro/devkitarm:20241104 + + steps: + - uses: actions/checkout@v4 + with: + persist-credentials: false + submodules: recursive + + - name: Setup environment + run: git config --global safe.directory '*' + + - name: Install tools + run: | + curl -L https://github.com/Epicpkmn11/bannertool/releases/latest/download/bannertool.zip -o bannertool.zip + unzip bannertool.zip linux-x86_64/bannertool + chmod +x linux-x86_64/bannertool + mv linux-x86_64/bannertool /usr/local/bin + rm -rf bannertool.zip linux-x86_64 + curl -L https://github.com/3DSGuy/Project_CTR/releases/download/makerom-v0.17/makerom-v0.17-ubuntu_x86_64.zip -o makerom-v0.17-ubuntu_x86_64.zip + unzip makerom-v0.17-ubuntu_x86_64.zip + chmod +x makerom + mv makerom /usr/local/bin + rm makerom-v0.17-ubuntu_x86_64.zip + + - 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: Pull origin + run: git pull origin master --ff-only # Pull origin in case a commit has been done while updating + + # This makes sure that the site actually builds before pushing to master + - name: Build GodMode9i + run: | + make all dsi + + - 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..8543a3a07 --- /dev/null +++ b/.github/workflows/crowdin-upload.yml @@ -0,0 +1,47 @@ +name: Upload source files to Crowdin + +on: + push: + branches: [ master ] + paths: + - 'romfs/lang/en/**' + workflow_dispatch: + +jobs: + build: + runs-on: ubuntu-latest + container: devkitpro/devkitarm + + steps: + - uses: actions/checkout@v4 + with: + persist-credentials: false + submodules: recursive + + - name: Setup environment + run: git config --global safe.directory '*' + + - name: Install tools + run: | + curl -L https://github.com/Epicpkmn11/bannertool/releases/latest/download/bannertool.zip -o bannertool.zip + unzip bannertool.zip linux-x86_64/bannertool + chmod +x linux-x86_64/bannertool + mv linux-x86_64/bannertool /usr/local/bin + rm -rf bannertool.zip linux-x86_64 + curl -L https://github.com/3DSGuy/Project_CTR/releases/download/makerom-v0.17/makerom-v0.17-ubuntu_x86_64.zip -o makerom-v0.17-ubuntu_x86_64.zip + unzip makerom-v0.17-ubuntu_x86_64.zip + chmod +x makerom + mv makerom /usr/local/bin + rm makerom-v0.17-ubuntu_x86_64.zip + + - name: Build test + run: | + make + + - 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