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@v4 - 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