name: Download translations from Crowdin

on:
  workflow_dispatch:
  push:
    branches:
      - 'release/**'

jobs:

  synchronize-with-crowdin:
    runs-on: ubuntu-latest
    permissions:
      contents: write
      pull-requests: write
    steps:
      - name: Checkout repository
        uses: actions/checkout@v6
      - name: Create env files
        run: make create-env-files
      - name: Create empty backend source files
        run: touch src/backend/locale/django.pot
      # crowdin workflow
      - name: crowdin action
        uses: crowdin/github-action@v2
        with:
          config: crowdin/config.yml
          upload_sources: false
          upload_translations: false
          download_translations: true
          create_pull_request: false
          push_translations: false
          push_sources: false
        env:
          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
          # A numeric ID, found at https://crowdin.com/project/<projectName>/tools/api
          CROWDIN_PROJECT_ID: ${{ secrets.CROWDIN_PROJECT_ID }}

          # Visit https://crowdin.com/settings#api-key to create this token
          CROWDIN_PERSONAL_TOKEN: ${{ secrets.CROWDIN_PERSONAL_TOKEN }}

          CROWDIN_BASE_PATH: "../src/"
      - name: Generate source translations
        run: make i18n-compile
      # Create a new PR
      - name: Create a new Pull Request with new translated strings
        uses: peter-evans/create-pull-request@v7
        with:
          commit-message: |
            🌐(i18n) update translated strings

            Update translated files with new translations
          title: 🌐(i18n) update translated strings
          body: |
            ## Purpose

            update translated strings

            ## Proposal

            - [x]  update translated strings
          branch: i18n/update-translations
          labels: i18n
