diff --git a/.github/workflows/check_locale.yml b/.github/workflows/check_locale.yml new file mode 100644 index 0000000000..ceadc773a1 --- /dev/null +++ b/.github/workflows/check_locale.yml @@ -0,0 +1,26 @@ +name: Check locale + +on: + pull_request: + branches: + - main + paths: + - 'localization/**' + - ".github/workflows/check_locale.yml" + +jobs: + publish_docs_to_wiki: + name: Publish docs to Wiki + runs-on: ubuntu-latest + steps: + - name: Checkout repository + uses: actions/checkout@v3 + + - name: Install gettext + run: | + sudo apt-get update + sudo apt-get install -y gettext + + - name: Check translation format + run: | + ./run_gettext.sh diff --git a/.gitignore b/.gitignore index 5a1f124d32..2093364316 100644 --- a/.gitignore +++ b/.gitignore @@ -26,3 +26,4 @@ SVG src/OrcaSlicer-doc/ .idea/ /.cache/ +*.mo \ No newline at end of file diff --git a/BuildLinux.sh b/BuildLinux.sh index 0226f1e761..82d0a243bb 100755 --- a/BuildLinux.sh +++ b/BuildLinux.sh @@ -81,7 +81,7 @@ export REQUIRED_DEV_PACKAGES="libmspack-dev libgstreamerd-3-dev libsecret-1-dev # libwebkit2gtk-4.1-dev ?? export DEV_PACKAGES_COUNT=$(echo ${REQUIRED_DEV_PACKAGES} | wc -w) if [ $(dpkg --get-selections | grep -E "$(echo ${REQUIRED_DEV_PACKAGES} | tr ' ' '|')" | wc -l) -lt ${DEV_PACKAGES_COUNT} ]; then - sudo apt install -y ${REQUIRED_DEV_PACKAGES} git cmake wget file + sudo apt install -y ${REQUIRED_DEV_PACKAGES} git cmake wget file gettext fi #FIXME: require root for -u option @@ -230,11 +230,8 @@ then # make Slic3r echo "[8/9] Building Slic3r..." make -j$NCORES OrcaSlicer # Slic3r - - # make .mo - # make gettext_po_to_mo # FIXME: DeftDawg: complains about msgfmt not existing even in SuperSlicer, did this ever work? - popd + run_gettext.sh echo "done" fi diff --git a/build_release.bat b/build_release.bat index 73c02fbe4c..07cc2fe805 100644 --- a/build_release.bat +++ b/build_release.bat @@ -20,4 +20,7 @@ cd build cmake .. -G "Visual Studio 16 2019" -DBBL_RELEASE_TO_PUBLIC=1 -DCMAKE_PREFIX_PATH="%DEPS%/usr/local" -DCMAKE_INSTALL_PREFIX="./OrcaSlicer" -DCMAKE_BUILD_TYPE=Release -DWIN10SDK_PATH="C:/Program Files (x86)/Windows Kits/10/Include/10.0.19041.0" cmake --build . --config Release --target ALL_BUILD -- -m +cd .. +run_gettext.bat +cd build cmake --build . --target install --config Release \ No newline at end of file diff --git a/build_release_macos.sh b/build_release_macos.sh index ec2e13965b..bcbb5ec40b 100755 --- a/build_release_macos.sh +++ b/build_release_macos.sh @@ -78,6 +78,9 @@ cd build_$ARCH echo "building slicer..." cmake .. -GXcode -DBBL_RELEASE_TO_PUBLIC=1 -DCMAKE_PREFIX_PATH="$DEPS/usr/local" -DCMAKE_INSTALL_PREFIX="$PWD/OrcaSlicer" -DCMAKE_BUILD_TYPE=Release -DCMAKE_MACOSX_RPATH=ON -DCMAKE_INSTALL_RPATH="$DEPS/usr/local" -DCMAKE_MACOSX_BUNDLE=ON -DCMAKE_OSX_ARCHITECTURES=${ARCH} cmake --build . --config Release --target ALL_BUILD +cd .. +run_gettext.sh +cd build_$ARCH mkdir -p OrcaSlicer cd OrcaSlicer rm -r ./OrcaSlicer.app diff --git a/build_release_vs2022.bat b/build_release_vs2022.bat index 2ff2d89304..a51c6469a8 100644 --- a/build_release_vs2022.bat +++ b/build_release_vs2022.bat @@ -20,4 +20,7 @@ cd build cmake .. -G "Visual Studio 17 2022" -A x64 -DBBL_RELEASE_TO_PUBLIC=1 -DCMAKE_PREFIX_PATH="%DEPS%/usr/local" -DCMAKE_INSTALL_PREFIX="./OrcaSlicer" -DCMAKE_BUILD_TYPE=Release cmake --build . --config Release --target ALL_BUILD -- -m +cd .. +run_gettext.bat +cd build cmake --build . --target install --config Release \ No newline at end of file diff --git a/resources/i18n/cs/OrcaSlicer.mo b/resources/i18n/cs/OrcaSlicer.mo deleted file mode 100644 index 2f37ced030..0000000000 Binary files a/resources/i18n/cs/OrcaSlicer.mo and /dev/null differ diff --git a/resources/i18n/de/OrcaSlicer.mo b/resources/i18n/de/OrcaSlicer.mo deleted file mode 100644 index 5708346b7f..0000000000 Binary files a/resources/i18n/de/OrcaSlicer.mo and /dev/null differ diff --git a/resources/i18n/en/OrcaSlicer.mo b/resources/i18n/en/OrcaSlicer.mo deleted file mode 100644 index 0f77fc0aa7..0000000000 Binary files a/resources/i18n/en/OrcaSlicer.mo and /dev/null differ diff --git a/resources/i18n/es/OrcaSlicer.mo b/resources/i18n/es/OrcaSlicer.mo deleted file mode 100644 index dd8cda3180..0000000000 Binary files a/resources/i18n/es/OrcaSlicer.mo and /dev/null differ diff --git a/resources/i18n/fr/OrcaSlicer.mo b/resources/i18n/fr/OrcaSlicer.mo deleted file mode 100644 index 2c351bebd7..0000000000 Binary files a/resources/i18n/fr/OrcaSlicer.mo and /dev/null differ diff --git a/resources/i18n/hu/OrcaSlicer.mo b/resources/i18n/hu/OrcaSlicer.mo deleted file mode 100644 index 0fe8b4f3dc..0000000000 Binary files a/resources/i18n/hu/OrcaSlicer.mo and /dev/null differ diff --git a/resources/i18n/it/OrcaSlicer.mo b/resources/i18n/it/OrcaSlicer.mo deleted file mode 100644 index d55e3eab0b..0000000000 Binary files a/resources/i18n/it/OrcaSlicer.mo and /dev/null differ diff --git a/resources/i18n/ja/OrcaSlicer.mo b/resources/i18n/ja/OrcaSlicer.mo deleted file mode 100644 index 536f198c79..0000000000 Binary files a/resources/i18n/ja/OrcaSlicer.mo and /dev/null differ diff --git a/resources/i18n/ko/OrcaSlicer.mo b/resources/i18n/ko/OrcaSlicer.mo deleted file mode 100644 index df0c890d50..0000000000 Binary files a/resources/i18n/ko/OrcaSlicer.mo and /dev/null differ diff --git a/resources/i18n/nl/OrcaSlicer.mo b/resources/i18n/nl/OrcaSlicer.mo deleted file mode 100644 index bc65b03d89..0000000000 Binary files a/resources/i18n/nl/OrcaSlicer.mo and /dev/null differ diff --git a/resources/i18n/placeholder.txt b/resources/i18n/placeholder.txt new file mode 100644 index 0000000000..e69de29bb2 diff --git a/resources/i18n/ru/OrcaSlicer.mo b/resources/i18n/ru/OrcaSlicer.mo deleted file mode 100644 index 026d8bdec0..0000000000 Binary files a/resources/i18n/ru/OrcaSlicer.mo and /dev/null differ diff --git a/resources/i18n/sv/OrcaSlicer.mo b/resources/i18n/sv/OrcaSlicer.mo deleted file mode 100644 index ad45d17683..0000000000 Binary files a/resources/i18n/sv/OrcaSlicer.mo and /dev/null differ diff --git a/resources/i18n/tr/OrcaSlicer.mo b/resources/i18n/tr/OrcaSlicer.mo deleted file mode 100644 index 04d0e9fe1a..0000000000 Binary files a/resources/i18n/tr/OrcaSlicer.mo and /dev/null differ diff --git a/resources/i18n/uk/OrcaSlicer.mo b/resources/i18n/uk/OrcaSlicer.mo deleted file mode 100644 index 15ac350b07..0000000000 Binary files a/resources/i18n/uk/OrcaSlicer.mo and /dev/null differ diff --git a/resources/i18n/zh_TW/OrcaSlicer.mo b/resources/i18n/zh_TW/OrcaSlicer.mo deleted file mode 100644 index cd1bd9ebf2..0000000000 Binary files a/resources/i18n/zh_TW/OrcaSlicer.mo and /dev/null differ diff --git a/resources/i18n/zh_cn/OrcaSlicer.mo b/resources/i18n/zh_cn/OrcaSlicer.mo deleted file mode 100644 index 3cd37927c8..0000000000 Binary files a/resources/i18n/zh_cn/OrcaSlicer.mo and /dev/null differ diff --git a/run_gettext.bat b/run_gettext.bat index a767997b0f..edb129b5de 100644 --- a/run_gettext.bat +++ b/run_gettext.bat @@ -1,9 +1,17 @@ @echo off REM OrcaSlicer gettext REM Created by SoftFever on 27/5/23. -xgettext --keyword=L --keyword=_L --keyword=_u8L --keyword=L_CONTEXT:1,2c --keyword=_L_PLURAL:1,2 --add-comments=TRN --from-code=UTF-8 --no-location --debug --boost -f ./localization/i18n/list.txt -o ./localization/i18n/OrcaSlicer.pot -build\src\hints\Release\hintsToPot ./resources ./localization/i18n +REM Check for --full argument +set FULL_MODE=0 +for %%a in (%*) do ( + if "%%a"=="--full" set FULL_MODE=1 +) + +if %FULL_MODE%==1 ( + xgettext --keyword=L --keyword=_L --keyword=_u8L --keyword=L_CONTEXT:1,2c --keyword=_L_PLURAL:1,2 --add-comments=TRN --from-code=UTF-8 --no-location --debug --boost -f ./localization/i18n/list.txt -o ./localization/i18n/OrcaSlicer.pot + build/src/hints/Release/hintsToPot ./resources ./localization/i18n +) REM Print the current directory echo %cd% set pot_file="./localization/i18n/OrcaSlicer.pot" @@ -19,6 +27,9 @@ goto :eof set "dir=%~dp1" set "name=%~n1" set "lang=%name:OrcaSlicer_=%" - msgmerge -N -o "%file%" "%file%" "%pot_file%" - msgfmt --check-format -o "./resources/i18n/%lang%/OrcaSlicer.mo" "%file%" + if %FULL_MODE%==1 ( + msgmerge -N -o "%file%" "%file%" "%pot_file%" + ) + if not exist ./resources/i18n/%lang% mkdir ./resources/i18n/%lang% + msgfmt -o "./resources/i18n/%lang%/OrcaSlicer.mo" "%file%" goto :eof diff --git a/run_gettext.sh b/run_gettext.sh index 77d518c954..f3d6b708a2 100755 --- a/run_gettext.sh +++ b/run_gettext.sh @@ -3,8 +3,20 @@ # OrcaSlicer gettext # Created by SoftFever on 27/5/23. # -xgettext --keyword=L --keyword=_L --keyword=_u8L --keyword=L_CONTEXT:1,2c --keyword=_L_PLURAL:1,2 --add-comments=TRN --from-code=UTF-8 --no-location --debug --boost -f ./localization/i18n/list.txt -o ./localization/i18n/OrcaSlicer.pot -./build_arm64/src/hints/Release/hintsToPot.app/Contents/MacOS/hintsToPot ./resources ./localization/i18n + +# Check for --full argument +FULL_MODE=false +for arg in "$@" +do + if [ "$arg" == "--full" ]; then + FULL_MODE=true + fi +done + +if $FULL_MODE; then + xgettext --keyword=L --keyword=_L --keyword=_u8L --keyword=L_CONTEXT:1,2c --keyword=_L_PLURAL:1,2 --add-comments=TRN --from-code=UTF-8 --no-location --debug --boost -f ./localization/i18n/list.txt -o ./localization/i18n/OrcaSlicer.pot + ./build_arm64/src/hints/Release/hintsToPot.app/Contents/MacOS/hintsToPot ./resources ./localization/i18n +fi echo $PWD @@ -15,7 +27,10 @@ do lang=${dir##*/} # extract the language identifier if [ -f "$dir/OrcaSlicer_${lang}.po" ]; then - msgmerge -N -o $dir/OrcaSlicer_${lang}.po $dir/OrcaSlicer_${lang}.po $pot_file + if $FULL_MODE; then + msgmerge -N -o $dir/OrcaSlicer_${lang}.po $dir/OrcaSlicer_${lang}.po $pot_file + fi + mkdir -p ./resources/i18n/${lang}/ msgfmt --check-format -o ./resources/i18n/${lang}/OrcaSlicer.mo $dir/OrcaSlicer_${lang}.po fi done