|  | @@ -0,0 +1,77 @@
 | 
	
		
			
				|  |  | +name: Weekly Qt translation refresh
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +on:
 | 
	
		
			
				|  |  | +  schedule:
 | 
	
		
			
				|  |  | +    - cron: '0 0 * * 0'   # Runs every Sunday at 00:00 UTC
 | 
	
		
			
				|  |  | +  workflow_dispatch:
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +permissions:
 | 
	
		
			
				|  |  | +  contents: write
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +env:
 | 
	
		
			
				|  |  | +  CURRENT_BRANCH: ${{ github.ref_name }}
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +jobs:
 | 
	
		
			
				|  |  | +  refresh:
 | 
	
		
			
				|  |  | +    name: Qt translations refresh
 | 
	
		
			
				|  |  | +    runs-on: ubuntu-latest
 | 
	
		
			
				|  |  | +    
 | 
	
		
			
				|  |  | +    steps:
 | 
	
		
			
				|  |  | +      - name: Checkout repository
 | 
	
		
			
				|  |  | +        uses: actions/checkout@v4
 | 
	
		
			
				|  |  | +        with:
 | 
	
		
			
				|  |  | +          ref: ${{ env.CURRENT_BRANCH }}
 | 
	
		
			
				|  |  | +          fetch-depth: 0
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +      - name: Install Qt tools (lupdate)
 | 
	
		
			
				|  |  | +        run: |
 | 
	
		
			
				|  |  | +          sudo apt install -y --no-install-recommends qttools5-dev-tools
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        # Update all TS files; remove obsolete entries
 | 
	
		
			
				|  |  | +      - name: Update TS files (Launcher)
 | 
	
		
			
				|  |  | +        working-directory: launcher
 | 
	
		
			
				|  |  | +        run: |
 | 
	
		
			
				|  |  | +          lupdate -no-obsolete . -ts translation/*.ts
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +      - name: Update TS files (Map Editor)
 | 
	
		
			
				|  |  | +        working-directory: mapeditor
 | 
	
		
			
				|  |  | +        run: |
 | 
	
		
			
				|  |  | +          lupdate -no-obsolete . -ts translation/*.ts
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +      - name: Show changed files
 | 
	
		
			
				|  |  | +        run: |
 | 
	
		
			
				|  |  | +          echo "Changed files (working tree):"
 | 
	
		
			
				|  |  | +          git status --porcelain || true
 | 
	
		
			
				|  |  | +          echo
 | 
	
		
			
				|  |  | +          echo "Diff names (unstaged):"
 | 
	
		
			
				|  |  | +          git diff --name-only || true
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +      - name: Stage translation changes explicitly
 | 
	
		
			
				|  |  | +        run: |
 | 
	
		
			
				|  |  | +          git add -A launcher/translation mapeditor/translation || true
 | 
	
		
			
				|  |  | +          echo "Staged for commit:"
 | 
	
		
			
				|  |  | +          git diff --cached --name-only || true
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +      - name: Detect staged changes
 | 
	
		
			
				|  |  | +        id: staged
 | 
	
		
			
				|  |  | +        run: |
 | 
	
		
			
				|  |  | +          COUNT=$(git diff --cached --name-only | wc -l)
 | 
	
		
			
				|  |  | +          echo "count=$COUNT" >> "$GITHUB_OUTPUT"
 | 
	
		
			
				|  |  | +          if [ "$COUNT" -eq 0 ]; then
 | 
	
		
			
				|  |  | +            echo "No staged translation changes."
 | 
	
		
			
				|  |  | +          else
 | 
	
		
			
				|  |  | +            echo "Staged $COUNT file(s)."
 | 
	
		
			
				|  |  | +          fi
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +      - name: Commit and push changes
 | 
	
		
			
				|  |  | +        if: ${{ steps.staged.outputs.count != '0' }}
 | 
	
		
			
				|  |  | +        uses: EndBug/add-and-commit@v9
 | 
	
		
			
				|  |  | +        with:
 | 
	
		
			
				|  |  | +          add: "launcher/translation mapeditor/translation"
 | 
	
		
			
				|  |  | +          default_author: github_actions
 | 
	
		
			
				|  |  | +          message: "Auto-update VCMI Qt translation files"
 | 
	
		
			
				|  |  | +          push: true
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +      - name: No-op summary
 | 
	
		
			
				|  |  | +        if: ${{ steps.staged.outputs.count == '0' }}
 | 
	
		
			
				|  |  | +        run: echo "No translation changes detected; nothing to commit."
 |