name: Translations
on:
  schedule:
    - cron: '0 0 * * *'
jobs:
  crowdin:
    runs-on: ubuntu-20.04
    steps:
      - uses: actions/checkout@v2
        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@v1
        with:
          python-version: '3.x'
      - env:
          CROWDIN_API_KEY: ${{ secrets.CROWDIN_API_KEY }}
        run: |
          git config --global user.email "inkstitch-crowdin@lex.gd"
          git config --global user.name "Ink/Stitch Crowdin integration"

          wget --quiet https://downloads.crowdin.com/cli/v2/crowdin-cli.zip
          unzip -j crowdin-cli.zip

          sudo apt-get install python2.7 gettext
          python -m pip install --upgrade pip
          python -m pip install flask==0.* jinja2 Babel ./pyembroidery

          make messages.po
          echo "uploading messages.po to crowdin"
          java -jar crowdin-cli.jar -v upload -b main

          echo "downloading new translations"
          java -jar crowdin-cli.jar -v pull -b main

          # 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
            make electron/src/renderer/assets/translations.json
            git add translations electron/src/renderer/assets/translations.json
            git commit -m "new translations from Crowdin"
            git push https://github.com/inkstitch/inkstitch main
          fi
