name: Generate Translation Strings on: push: branches: - dev jobs: generate-translate-strings: name: Generate Translation Strings runs-on: ubuntu-latest permissions: contents: write steps: - name: Checkout code uses: actions/checkout@v4 with: token: ${{ secrets.PNGX_BOT_PAT }} ref: ${{ github.head_ref }} - name: Set up Python id: setup-python uses: actions/setup-python@v5 - name: Install system dependencies run: | sudo apt-get update -qq sudo apt-get install -qq --no-install-recommends gettext - name: Install uv uses: astral-sh/setup-uv@v5 with: enable-cache: true - name: Install backend python dependencies run: | uv sync \ --group dev \ --frozen - name: Generate backend translation strings run: cd src/ && uv run manage.py makemessages -l en_US -i "samples*" - name: Install pnpm uses: pnpm/action-setup@v4 with: version: 10 - name: Use Node.js 20 uses: actions/setup-node@v4 with: node-version: 20.x cache: 'pnpm' cache-dependency-path: 'src-ui/pnpm-lock.yaml' - name: Cache frontend dependencies id: cache-frontend-deps uses: actions/cache@v4 with: path: | ~/.pnpm-store ~/.cache key: ${{ runner.os }}-frontenddeps-${{ hashFiles('src-ui/pnpm-lock.yaml') }} - name: Install frontend dependencies if: steps.cache-frontend-deps.outputs.cache-hit != 'true' run: cd src-ui && pnpm install - name: Re-link Angular cli run: cd src-ui && pnpm link @angular/cli - name: Generate frontend translation strings run: | cd src-ui pnpm run ng extract-i18n - name: Commit changes uses: stefanzweifel/git-auto-commit-action@v5 with: file_pattern: 'src-ui/messages.xlf src/locale/en_US/LC_MESSAGES/django.po' commit_message: "Auto translate strings" commit_user_name: "GitHub Actions" commit_author: "GitHub Actions <41898282+github-actions[bot]@users.noreply.github.com>"