name: Translations on: schedule: - cron: '0 0 * * *' jobs: crowdin: runs-on: ubuntu-24.04 steps: - uses: actions/checkout@v4 with: fetch-depth: 0 ref: main token: ${{secrets.INKSTITCH_BUILDS_GITHUB_TOKEN}} - name: checkout submodules run: | git submodule update --init --recursive - uses: actions/setup-python@v5 with: python-version: '3.12.x' - env: CROWDIN_API_KEY: ${{ secrets.CROWDIN_API_V2_KEY }} CROWDIN_PROJECT_ID: "299419" run: | git config --global user.email "inkstitch-crowdin@lex.gd" git config --global user.name "Ink/Stitch Crowdin integration" wget --quiet https://github.com/crowdin/crowdin-cli/releases/download/4.6.1/crowdin-cli.zip unzip -j crowdin-cli.zip sudo apt-get update sudo apt install gettext # for wxPython sudo apt install libnotify4 sudo apt install glib-networking libsdl2-dev libsdl2-2.0-0 # for PyGObject sudo apt install libgirepository1.0-dev libcairo2-dev # for shapely sudo apt install build-essential libgtk-3-dev libgeos-dev cmake sudo apt install gcc g++ gfortran libopenblas-dev liblapack-dev python -m pip install --upgrade pip python -m pip install wheel python -m pip install pycairo python -m pip install PyGObject==3.50.0 python -m pip install https://extras.wxpython.org/wxPython4/extras/linux/gtk3/ubuntu-24.04/wxPython-4.2.2-cp312-cp312-linux_x86_64.whl python -m pip install -r requirements.txt python -m pip install Babel make messages.po echo "uploading messages.po to crowdin" java -jar crowdin-cli.jar -v upload -b main -T "$CROWDIN_API_KEY" -i "$CROWDIN_PROJECT_ID" echo "downloading new translations" java -jar crowdin-cli.jar -v pull -b main -T "$CROWDIN_API_KEY" -i "$CROWDIN_PROJECT_ID" # Try to only commit if translations changed. Crowdin will update all # files when a new translation string is added but we don't need to # commit those until folks actually translate the new strings. if git diff translations | grep -qE '^[-+]msgstr ".+"$'; then git add translations git commit -m "new translations from Crowdin" git push https://github.com/inkstitch/inkstitch main fi