name: Check locale

on: 
    pull_request:
      branches: 
       - main 
      paths:
       - 'localization/**'
       - ".github/workflows/check_locale.yml"

jobs:
  check_translation:
    name: Check translation
    runs-on: ubuntu-latest
    steps:  
      - name: Checkout repository
        uses: actions/checkout@v6

      - name: Install gettext 
        run: |
          sudo apt-get update
          sudo apt-get install -y gettext

      # don't call ./run_gentext.sh as most translators never sync with main branch...
      - name: Check translation format
        run: |
          echo $PWD
          pot_file="./localization/i18n/OrcaSlicer.pot"
          for dir in ./localization/i18n/*/
          do
              dir=${dir%*/}      # remove the trailing "/"
              lang=${dir##*/}    # extract the language identifier
          
              if [ -f "$dir/OrcaSlicer_${lang}.po" ]; then
                  mkdir -p ./resources/i18n/${lang}/
                  msgfmt --check-format -o ./resources/i18n/${lang}/OrcaSlicer.mo $dir/OrcaSlicer_${lang}.po
                  # Check the exit status of the msgfmt command
                  if [ $? -ne 0 ]; then
                      echo "Error encountered with msgfmt command for language ${lang}."
                      exit 1  # Exit the script with an error status
                  fi
              fi
          done
        
