Crowdin: Import translations #1
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: "Crowdin: Import translations" | |
| on: | |
| schedule: | |
| - cron: "0 0 1,15 * *" | |
| workflow_dispatch: | |
| jobs: | |
| import: | |
| 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: | | |
| apt-get update | |
| apt-get install python3 python3-pip -y | |
| python3 -m pip install --upgrade pip setuptools --break-system-packages | |
| python3 -m pip install cryptography git+https://github.com/TuxSH/firmtool.git --break-system-packages | |
| - uses: actions/setup-node@v4 | |
| with: | |
| node-version: lts/* | |
| - name: Setup Crowdin CLI | |
| run: | | |
| npm i -g @crowdin/cli | |
| - name: Pull from Crowdin | |
| shell: bash | |
| env: | |
| CROWDIN_TOKEN: ${{ secrets.CROWDIN_TOKEN }} | |
| run: | | |
| crowdin pull | |
| set +e # continue on errors, we're using the exit code | |
| for item in resources/languages/*.json; do | |
| if ! [[ $item =~ (source|en).json$ ]]; then | |
| # Check if the translation is over 30% translated | |
| utils/transcheck.py resources/languages/source.json $item 30 | |
| if [[ $? -ne 0 ]]; then | |
| rm $item | |
| fi | |
| fi | |
| done | |
| - 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 app actually builds before pushing to master | |
| - name: Build test | |
| run: | | |
| make release -j$(nproc) | |
| - name: Commit changes | |
| continue-on-error: true | |
| run: | | |
| git config user.email "[email protected]" | |
| git config user.name "GitHub Actions" | |
| git checkout master | |
| git stage resources/languages | |
| git commit -m "Automatic translation import" | |
| - name: Push changes | |
| uses: ad-m/github-push-action@master | |
| with: | |
| branch: master | |
| github_token: ${{ secrets.GITHUB_TOKEN }} |