Merge pull request #2223 from 3d-gussner/MK3_Dutch
PFW-1212: Add Dutch language
This commit is contained in:
commit
a5a83038fe
@ -68,5 +68,12 @@
|
||||
|
||||
#define LANG_SIZE_RESERVED 0x3000 // reserved space for secondary language (12288 bytes)
|
||||
|
||||
//Community language support
|
||||
#define COMMUNITY_LANG_NL // Community Dutch language
|
||||
//#define COMMUNITY_LANG_QR // Community new language //..use this as a template and replace 'QR'
|
||||
|
||||
#if defined(COMMUNITY_LANG_NL) //|| defined(COMMUNITY_LANG_QR) //..use last part as a template and replace 'QR'
|
||||
#define COMMUNITY_LANG_SUPPORT
|
||||
#endif
|
||||
|
||||
#endif //_CONFIG_H
|
||||
|
@ -210,6 +210,16 @@ const char* lang_get_name_by_code(uint16_t code)
|
||||
case LANG_CODE_FR: return _n("Francais");
|
||||
case LANG_CODE_IT: return _n("Italiano");
|
||||
case LANG_CODE_PL: return _n("Polski");
|
||||
#ifdef COMMUNITY_LANG_SUPPORT //Community language support
|
||||
#ifdef COMMUNITY_LANG_NL
|
||||
case LANG_CODE_NL: return _n("Nederlands"); //community contribution
|
||||
#endif // COMMUNITY_LANG_NL
|
||||
|
||||
//Use the 3 lines below as a template and replace 'QR' and 'New language'
|
||||
//#ifdef COMMUNITY_LANG_QR
|
||||
// case LANG_CODE_QR: return _n("New language"); //community contribution
|
||||
//#endif // COMMUNITY_LANG_QR
|
||||
#endif // COMMUNITY_LANG_SUPPORT
|
||||
}
|
||||
return _n("??");
|
||||
}
|
||||
|
@ -96,6 +96,15 @@ typedef struct
|
||||
#define LANG_CODE_FR 0x6672 //!<'fr'
|
||||
#define LANG_CODE_IT 0x6974 //!<'it'
|
||||
#define LANG_CODE_PL 0x706c //!<'pl'
|
||||
#ifdef COMMUNITY_LANG_SUPPORT //Community language support
|
||||
#ifdef COMMUNITY_LANG_NL
|
||||
#define LANG_CODE_NL 0x6e6c //!<'nl'
|
||||
#endif // COMMUNITY_LANG_NL
|
||||
//Use the 3 lines below as a template and replace 'QR', '0X7172' and 'qr'
|
||||
//#ifdef COMMUNITY_LANG_QR
|
||||
//#define LANG_CODE_QR 0x7172 //!<'qr'
|
||||
//#endif // COMMUNITY_LANG_QR
|
||||
#endif // COMMUNITY_LANG_SUPPORT
|
||||
///@}
|
||||
|
||||
#if defined(__cplusplus)
|
||||
|
@ -21,6 +21,7 @@ const char MSG_CALIBRATE_Z_AUTO[] PROGMEM_I1 = ISTR("Calibrating Z"); ////c=20 r
|
||||
const char MSG_CARD_MENU[] PROGMEM_I1 = ISTR("Print from SD"); ////
|
||||
const char MSG_CHECKING_X[] PROGMEM_I1 = ISTR("Checking X axis"); ////c=20
|
||||
const char MSG_CHECKING_Y[] PROGMEM_I1 = ISTR("Checking Y axis"); ////c=20
|
||||
const char MSG_COMMUNITY_MADE[] PROGMEM_I1 = ISTR("Community made"); ////c=18
|
||||
const char MSG_CONFIRM_NOZZLE_CLEAN[] PROGMEM_I1 = ISTR("Please clean the nozzle for calibration. Click when done."); ////c=20 r=8
|
||||
const char MSG_COOLDOWN[] PROGMEM_I1 = ISTR("Cooldown"); ////
|
||||
const char MSG_CRASH[] PROGMEM_I1 = ISTR("Crash"); ////c=7
|
||||
|
@ -22,6 +22,7 @@ extern const char MSG_CALIBRATE_Z_AUTO[];
|
||||
extern const char MSG_CARD_MENU[];
|
||||
extern const char MSG_CHECKING_X[];
|
||||
extern const char MSG_CHECKING_Y[];
|
||||
extern const char MSG_COMMUNITY_MADE[];
|
||||
extern const char MSG_CONFIRM_NOZZLE_CLEAN[];
|
||||
extern const char MSG_COOLDOWN[];
|
||||
extern const char MSG_CRASH[];
|
||||
|
@ -4538,6 +4538,26 @@ void menu_setlang(unsigned char lang)
|
||||
}
|
||||
}
|
||||
|
||||
#ifdef COMMUNITY_LANG_SUPPORT
|
||||
#ifdef W25X20CL
|
||||
static void lcd_community_language_menu()
|
||||
{
|
||||
MENU_BEGIN();
|
||||
uint8_t cnt = lang_get_count();
|
||||
MENU_ITEM_BACK_P(_i("Select language")); //Back to previous Menu
|
||||
for (int i = 8; i < cnt; i++) //all community languages
|
||||
if (menu_item_text_P(lang_get_name_by_code(lang_get_code(i))))
|
||||
{
|
||||
menu_setlang(i);
|
||||
return;
|
||||
}
|
||||
MENU_END();
|
||||
}
|
||||
#endif //W25X20CL
|
||||
#endif //COMMUNITY_LANG_SUPPORT && W52X20CL
|
||||
|
||||
|
||||
|
||||
static void lcd_language_menu()
|
||||
{
|
||||
MENU_BEGIN();
|
||||
@ -4558,7 +4578,7 @@ static void lcd_language_menu()
|
||||
}
|
||||
}
|
||||
else
|
||||
for (int i = 2; i < cnt; i++) //skip seconday language - solved in lang_select (MK3)
|
||||
for (int i = 2; i < 8; i++) //skip seconday language - solved in lang_select (MK3) 'i < 8' for 7 official languages
|
||||
#else //W25X20CL
|
||||
for (int i = 1; i < cnt; i++) //all seconday languages (MK2/25)
|
||||
#endif //W25X20CL
|
||||
@ -4567,6 +4587,13 @@ static void lcd_language_menu()
|
||||
menu_setlang(i);
|
||||
return;
|
||||
}
|
||||
|
||||
#ifdef COMMUNITY_LANG_SUPPORT
|
||||
#ifdef W25X20CL
|
||||
MENU_ITEM_SUBMENU_P(_T(MSG_COMMUNITY_MADE), lcd_community_language_menu); ////MSG_COMMUNITY_MADE c=18
|
||||
#endif //W25X20CL
|
||||
#endif //COMMUNITY_LANG_SUPPORT && W52X20CL
|
||||
|
||||
MENU_END();
|
||||
}
|
||||
#endif //(LANG_MODE != 0)
|
||||
|
32
PF-build.sh
32
PF-build.sh
@ -56,7 +56,7 @@
|
||||
# Some may argue that this is only used by a script, BUT as soon someone accidentally or on purpose starts Arduino IDE
|
||||
# it will use the default Arduino IDE folders and so can corrupt the build environment.
|
||||
#
|
||||
# Version: 1.0.6-Build_36
|
||||
# Version: 1.0.6-Build_37
|
||||
# Change log:
|
||||
# 12 Jan 2019, 3d-gussner, Fixed "compiler.c.elf.flags=-w -Os -Wl,-u,vfprintf -lprintf_flt -lm -Wl,--gc-sections" in 'platform.txt'
|
||||
# 16 Jan 2019, 3d-gussner, Build_2, Added development check to modify 'Configuration.h' to prevent unwanted LCD messages that Firmware is unknown
|
||||
@ -136,6 +136,7 @@
|
||||
# 08 Jan 2021, 3d-gussner, Comment out 'sudo' auto installation
|
||||
# Add '-?' '-h' help option
|
||||
# 27 Jan 2021, 3d-gussner, Add `-c`, `-p` and `-n` options
|
||||
# 27 Feb 2021, 3d-gussner, Add './lang-community.sh' and update exits
|
||||
|
||||
#### Start check if OSTYPE is supported
|
||||
OS_FOUND=$( command -v uname)
|
||||
@ -237,7 +238,7 @@ if ! type gawk > /dev/null; then
|
||||
echo "$(tput setaf 1)Missing 'gawk' which is important to run this script"
|
||||
echo "install it with the command $(tput setaf 2)'sudo apt-get install gawk'."
|
||||
#sudo apt-get update && apt-get install gawk
|
||||
exit 4
|
||||
exit 5
|
||||
fi
|
||||
fi
|
||||
|
||||
@ -278,10 +279,10 @@ echo ""
|
||||
|
||||
#Check if build exists and creates it if not
|
||||
if [ ! -d "../PF-build-dl" ]; then
|
||||
mkdir ../PF-build-dl || exit 5
|
||||
mkdir ../PF-build-dl || exit 6
|
||||
fi
|
||||
|
||||
cd ../PF-build-dl || exit 6
|
||||
cd ../PF-build-dl || exit 7
|
||||
BUILD_ENV_PATH="$( cd "$(dirname "$0")" ; pwd -P )"
|
||||
|
||||
# Check if PF-build-env-<version> exists and downloads + creates it if not
|
||||
@ -298,13 +299,13 @@ if [ $TARGET_OS == "windows" ]; then
|
||||
if [ ! -f "arduino-$ARDUINO_ENV-windows.zip" ]; then
|
||||
echo "$(tput setaf 6)Downloading Windows 32/64-bit Arduino IDE portable...$(tput setaf 2)"
|
||||
sleep 2
|
||||
wget https://downloads.arduino.cc/arduino-$ARDUINO_ENV-windows.zip || exit 7
|
||||
wget https://downloads.arduino.cc/arduino-$ARDUINO_ENV-windows.zip || exit 8
|
||||
echo "$(tput sgr 0)"
|
||||
fi
|
||||
if [[ ! -d "../PF-build-env-$BUILD_ENV/$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor" && ! -e "../PF-build-env-$BUILD_ENV/arduino-$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor.txt" ]]; then
|
||||
echo "$(tput setaf 6)Unzipping Windows 32/64-bit Arduino IDE portable...$(tput setaf 2)"
|
||||
sleep 2
|
||||
unzip arduino-$ARDUINO_ENV-windows.zip -d ../PF-build-env-$BUILD_ENV || exit 7
|
||||
unzip arduino-$ARDUINO_ENV-windows.zip -d ../PF-build-env-$BUILD_ENV || exit 8
|
||||
mv ../PF-build-env-$BUILD_ENV/arduino-$ARDUINO_ENV ../PF-build-env-$BUILD_ENV/$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor
|
||||
echo "# arduino-$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor" >> ../PF-build-env-$BUILD_ENV/arduino-$ARDUINO_ENV-$BOARD_VERSION-$TARGET_OS-$Processor.txt
|
||||
echo "$(tput sgr0)"
|
||||
@ -507,7 +508,7 @@ echo " Will build MK3S multi language final GOLD firmware "
|
||||
echo " with current commit count number and output extra information,"
|
||||
echo " not delete lang build temporary files, keep Configuration_prusa.h and build with new fresh build folder."
|
||||
echo
|
||||
exit
|
||||
exit 14
|
||||
|
||||
fi
|
||||
|
||||
@ -824,7 +825,7 @@ do
|
||||
rm -r -f $BUILD_PATH/* || exit 36
|
||||
fi
|
||||
|
||||
#$BUILD_ENV_PATH/arduino-builder -dump-prefs -debug-level 10 -compile -hardware $ARDUINO/hardware -hardware $ARDUINO/portable/packages -tools $ARDUINO/tools-builder -tools $ARDUINO/hardware/tools/avr -tools $ARDUINO/portable/packages -built-in-libraries $ARDUINO/libraries -libraries $ARDUINO/portable/sketchbook/libraries -fqbn=$BOARD_PACKAGE_NAME:avr:$BOARD -build-path=$BUILD_PATH -warnings=all $SCRIPT_PATH/Firmware/Firmware.ino || exit 14
|
||||
#$BUILD_ENV_PATH/arduino-builder -dump-prefs -debug-level 10 -compile -hardware $ARDUINO/hardware -hardware $ARDUINO/portable/packages -tools $ARDUINO/tools-builder -tools $ARDUINO/hardware/tools/avr -tools $ARDUINO/portable/packages -built-in-libraries $ARDUINO/libraries -libraries $ARDUINO/portable/sketchbook/libraries -fqbn=$BOARD_PACKAGE_NAME:avr:$BOARD -build-path=$BUILD_PATH -warnings=all $SCRIPT_PATH/Firmware/Firmware.ino || exit 30
|
||||
$BUILD_ENV_PATH/arduino-builder -compile -hardware $ARDUINO/hardware -hardware $ARDUINO/portable/packages -tools $ARDUINO/tools-builder -tools $ARDUINO/hardware/tools/avr -tools $ARDUINO/portable/packages -built-in-libraries $ARDUINO/libraries -libraries $ARDUINO/portable/sketchbook/libraries -fqbn=$BOARD_PACKAGE_NAME:avr:$BOARD -build-path=$BUILD_PATH -warnings=all $SCRIPT_PATH/Firmware/Firmware.ino || exit 30
|
||||
echo "$(tput sgr 0)"
|
||||
|
||||
@ -864,8 +865,10 @@ do
|
||||
# build languages
|
||||
echo "$(tput setaf 3)"
|
||||
./lang-build.sh || exit 32
|
||||
#Community language support
|
||||
./lang-community.sh || exit 33
|
||||
# Combine compiled firmware with languages
|
||||
./fw-build.sh || exit 33
|
||||
./fw-build.sh || exit 34
|
||||
cp not_tran.txt not_tran_$VARIANT.txt
|
||||
cp not_used.txt not_used_$VARIANT.txt
|
||||
echo "$(tput sgr 0)"
|
||||
@ -883,6 +886,7 @@ do
|
||||
cp -f firmware_fr.hex $SCRIPT_PATH/../$OUTPUT_FOLDER/FW$FW-Build$BUILD-$VARIANT-fr.hex
|
||||
cp -f firmware_it.hex $SCRIPT_PATH/../$OUTPUT_FOLDER/FW$FW-Build$BUILD-$VARIANT-it.hex
|
||||
cp -f firmware_pl.hex $SCRIPT_PATH/../$OUTPUT_FOLDER/FW$FW-Build$BUILD-$VARIANT-pl.hex
|
||||
cp -f firmware_nl.hex $SCRIPT_PATH/../$OUTPUT_FOLDER/FW$FW-Build$BUILD-$VARIANT-nl.hex
|
||||
if [ $TARGET_OS == "windows" ]; then
|
||||
zip a $SCRIPT_PATH/../$OUTPUT_FOLDER/FW$FW-Build$BUILD-$VARIANT.zip $SCRIPT_PATH/../$OUTPUT_FOLDER/FW$FW-Build$BUILD-$VARIANT-??.hex
|
||||
rm $SCRIPT_PATH/../$OUTPUT_FOLDER/FW$FW-Build$BUILD-$VARIANT-??.hex
|
||||
@ -893,18 +897,18 @@ do
|
||||
# Cleanup after build
|
||||
if [[ -z "$clean_flag" || "$clean_flag" == "0" ]]; then
|
||||
echo "$(tput setaf 3)"
|
||||
./fw-clean.sh || exit 34
|
||||
./lang-clean.sh || exit 35
|
||||
./fw-clean.sh || exit 35
|
||||
./lang-clean.sh || exit 36
|
||||
echo "$(tput sgr 0)"
|
||||
fi
|
||||
else
|
||||
echo "$(tput setaf 2)Copying English only firmware to PF-build-hex folder$(tput sgr 0)"
|
||||
cp -f $BUILD_PATH/Firmware.ino.hex $SCRIPT_PATH/../$OUTPUT_FOLDER/FW$FW-Build$BUILD-$VARIANT-EN_ONLY.hex || exit 34
|
||||
cp -f $BUILD_PATH/Firmware.ino.hex $SCRIPT_PATH/../$OUTPUT_FOLDER/FW$FW-Build$BUILD-$VARIANT-EN_ONLY.hex || exit 37
|
||||
fi
|
||||
|
||||
# Cleanup Firmware
|
||||
if [[ -z "$prusa_flag" || "$prusa_flag" == "0" ]]; then
|
||||
rm $SCRIPT_PATH/Firmware/Configuration_prusa.h || exit 36
|
||||
rm $SCRIPT_PATH/Firmware/Configuration_prusa.h || exit 38
|
||||
fi
|
||||
if find $SCRIPT_PATH/lang/ -name '*RAMBo10a*.txt' -printf 1 -quit | grep -q 1
|
||||
then
|
||||
@ -925,7 +929,7 @@ do
|
||||
|
||||
#New fresh PF-Firmware-build
|
||||
if [ "$new_build_flag" == "1" ]; then
|
||||
rm -r -f $BUILD_PATH/* || exit 36
|
||||
rm -r -f $BUILD_PATH/* || exit 39
|
||||
fi
|
||||
|
||||
# Restore files to previous state
|
||||
|
3
build.sh
3
build.sh
@ -38,4 +38,5 @@ export ARDUINO=$BUILD_ENV_PATH
|
||||
|
||||
cd $SCRIPT_PATH/lang
|
||||
./lang-build.sh || exit 10
|
||||
./fw-build.sh || exit 11
|
||||
./lang-community.sh || exit 11
|
||||
./fw-build.sh || exit 12
|
||||
|
194
lang/Add_new_language.md
Normal file
194
lang/Add_new_language.md
Normal file
@ -0,0 +1,194 @@
|
||||
# How-to add a new language to Prusa Firmware
|
||||
|
||||
We will use Dutch as an example here.
|
||||
|
||||
## Prepare Prusa Firmware
|
||||
|
||||
QR = palceholder for language in upper case
|
||||
|
||||
qr = placehodler for language in lower case
|
||||
|
||||
AB = palceholder for hexadecial
|
||||
|
||||
Files needs to be modified
|
||||
- `../Firmware/language.h`
|
||||
|
||||
In section `/** @name Language codes (ISO639-1)*/` add the new `#define LANG_CODE_QR 0xABAB //!<'qr'`following ISO639-1 convention for QR.
|
||||
https://en.wikipedia.org/wiki/List_of_ISO_639-1_codes
|
||||
|
||||
Example:
|
||||
`#define LANG_CODE_NL 0x6e6c //!<'nl'` where the hex value `0x6e6c` is in ascii `nl`
|
||||
|
||||
- `../Firmware/language.c`
|
||||
|
||||
In section `const char* lang_get_name_by_code(uint16_t code)` add `case LANG_CODE_NL: return _n("Language");`
|
||||
|
||||
Example:
|
||||
|
||||
`case LANG_CODE_NL: return _n("Nederlands");` Where `Language` is native spoken version, here `Nederlands` (Netherlands) or `Vlaams` (Belgium). This will be displayed on the LCD menu.
|
||||
|
||||
- `../lang/lang-add.sh`
|
||||
|
||||
In section `cat lang_add.txt | sed 's/^/"/;s/$/"/' | while read new_s; do` add `insert_qr "$new_s" 'qr'`where qr
|
||||
|
||||
Example:
|
||||
`insert_qr "$new_s" 'nl'` with qr value `nl`for Dutch
|
||||
|
||||
- `../lang/lang-build.sh`
|
||||
|
||||
In section `#returns hexadecial data for lang code` add a case `*qr*) echo '0x71\0x72'`
|
||||
|
||||
Example:
|
||||
`*nl*) echo '\x6c\x6e' ;;` !!! IMPORTANT that the hex values are switched so 'nl' is here in 'ln' !!!
|
||||
|
||||
In generate "all" section add `generate_binary 'qr'
|
||||
|
||||
Example:
|
||||
`generate_binary 'nl'`
|
||||
|
||||
- `../lang/lang-check.py`
|
||||
|
||||
Add in `help` the new language `qr`
|
||||
|
||||
Example:
|
||||
From `help="Check lang file (en|cs|de|es|fr|it|pl)")` to `help="Check lang file (en|cs|de|es|fr|nl|it|pl)")`
|
||||
|
||||
- In `../lang/lang-clean.sh`
|
||||
|
||||
In section echo `"lang-clean.sh started" >&2` add `clean_lang qr`
|
||||
|
||||
Example:
|
||||
`clean_lang nl`
|
||||
|
||||
|
||||
- `../lang/lang-export.sh`
|
||||
|
||||
In section `# if 'all' is selected, script will generate all po files and also pot file` add `./lang-export.sh qr`
|
||||
|
||||
Example:
|
||||
|
||||
`./lang-export.sh nl`
|
||||
|
||||
In section ` # language name in english` add `*qr*) echo "Language-in-English" ;;`
|
||||
|
||||
Example:
|
||||
`*nl*) echo "Dutch" ;;`
|
||||
|
||||
|
||||
|
||||
|
||||
- `../lang/lang-import.sh`
|
||||
|
||||
In section `#replace in languages translation` add new rule set for the language.
|
||||
As the LCD screen doesn't not support äöüßéè and other special characters, it makes sense to "normalize" these.
|
||||
|
||||
Example:
|
||||
```
|
||||
#replace in dutch translation according to https://nl.wikipedia.org/wiki/Accenttekens_in_de_Nederlandse_spelling
|
||||
if [ "$LNG" = "nl" ]; then
|
||||
#replace 'ë' with 'e'
|
||||
sed -i 's/\xc3\xab/e/g' $LNG'_filtered.po'
|
||||
#replace 'ï' with 'i'
|
||||
sed -i 's/\xc3\xaf/i/g' $LNG'_filtered.po'
|
||||
#replace 'é' with 'e'
|
||||
sed -i 's/\xc3\xa9/e/g' $LNG'_filtered.po'
|
||||
#replace 'è' with 'e' (left)
|
||||
sed -i 's/\xc3\xa8/e/g' $LNG'_filtered.po'
|
||||
#replace 'ö' with 'o' (left)
|
||||
sed -i 's/\xc3\xb6/o/g' $LNG'_filtered.po'
|
||||
#replace 'ê' with 'e' (left)
|
||||
sed -i 's/\xc3\xaa/e/g' $LNG'_filtered.po'
|
||||
#replace 'ü' with 'u' (left)
|
||||
sed -i 's/\xc3\xbc/u/g' $LNG'_filtered.po'
|
||||
#replace 'ç' with 'c' (left)
|
||||
sed -i 's/\xc3\xa7/c/g' $LNG'_filtered.po'
|
||||
#replace 'á' with 'a' (left)
|
||||
sed -i 's/\xc3\xa1/a/g' $LNG'_filtered.po'
|
||||
#replace 'à' with 'a' (left)
|
||||
sed -i 's/\xc3\xa0/a/g' $LNG'_filtered.po'
|
||||
#replace 'ä' with 'a' (left)
|
||||
sed -i 's/\xc3\xa4/a/g' $LNG'_filtered.po'
|
||||
#replace 'û' with 'u' (left)
|
||||
sed -i 's/\xc3\xbc/u/g' $LNG'_filtered.po'
|
||||
#replace 'î' with 'i' (left)
|
||||
sed -i 's/\xc3\xae/i/g' $LNG'_filtered.po'
|
||||
#replace 'í' with 'i' (left)
|
||||
sed -i 's/\xc3\xad/i/g' $LNG'_filtered.po'
|
||||
#replace 'ô' with 'o' (left)
|
||||
sed -i 's/\xc3\xb4/o/g' $LNG'_filtered.po'
|
||||
#replace 'ú' with 'u' (left)
|
||||
sed -i 's/\xc3\xba/u/g' $LNG'_filtered.po'
|
||||
#replace 'ñ' with 'n' (left)
|
||||
sed -i 's/\xc3\xb1/n/g' $LNG'_filtered.po'
|
||||
#replace 'â' with 'a' (left)
|
||||
sed -i 's/\xc3\xa2/a/g' $LNG'_filtered.po'
|
||||
#replace 'Å' with 'A' (left)
|
||||
sed -i 's/\xc3\x85/A/g' $LNG'_filtered.po'
|
||||
fi
|
||||
```
|
||||
|
||||
- `../lang/fw-build.sh`
|
||||
|
||||
In section `#update _SEC_LANG in binary file if language is selected` add
|
||||
```
|
||||
if [ -e lang_qr.bin ]; then
|
||||
echo -n " Language-in-English : " >&2
|
||||
./update_lang.sh qr 2>./update_lang_qr.out 1>/dev/null
|
||||
if [ $? -eq 0 ]; then echo 'OK' >&2; else echo 'NG!' >&2; fi
|
||||
fi
|
||||
```
|
||||
|
||||
Example:
|
||||
```
|
||||
if [ -e lang_nl.bin ]; then
|
||||
echo -n " Dutch : " >&2
|
||||
./update_lang.sh nl 2>./update_lang_nl.out 1>/dev/null
|
||||
if [ $? -eq 0 ]; then echo 'OK' >&2; else echo 'NG!' >&2; fi
|
||||
fi
|
||||
```
|
||||
|
||||
In section `#create binary file with all languages` add `if [ -e lang_qr.bin ]; then cat lang_qr.bin >> lang.bin; fi`
|
||||
|
||||
Example:
|
||||
|
||||
`if [ -e lang_nl.bin ]; then cat lang_nl.bin >> lang.bin; fi`
|
||||
|
||||
- `../lang/fw-clean.sh`
|
||||
|
||||
In section `echo "fw-clean.sh started" >&2` add
|
||||
|
||||
```
|
||||
rm_if_exists firmware_qr.hex
|
||||
...
|
||||
...
|
||||
rm_if_exists update_lang_qr.out
|
||||
```
|
||||
|
||||
Example:
|
||||
`rm_if_exists firmware_nl.hex`
|
||||
|
||||
and
|
||||
|
||||
`rm_if_exists update_lang_nl.out`
|
||||
|
||||
|
||||
## Prepare language part
|
||||
|
||||
To prepare the acutal language translation files we need create the `lang_en_qr.txt` file.
|
||||
1. Copy and `lang_en.txt` as `lang_en_qr.txt`
|
||||
2. run `../lang/lang-export.sh`
|
||||
3. copy `../lang/po/Firmware_qr.po` file to `../lang/po/new/qr.po`
|
||||
4. translate all messages using POEdit or other tools.
|
||||
5. use `lang/lang-import.sh qr` to generate `lang_en_qr.txt` from translated po files
|
||||
6. move `../lang/po/new/lang_en_qr.txt` to `../lang/lang_en_qr.txt`
|
||||
7. cleanup `../lang/po/new` folder by deleting
|
||||
```
|
||||
qr_filtered.po
|
||||
qr_new.po
|
||||
noasci.txt
|
||||
```
|
||||
|
||||
|
||||
|
||||
|
||||
##
|
@ -163,6 +163,22 @@ else
|
||||
./update_lang.sh pl 2>./update_lang_pl.out 1>/dev/null
|
||||
if [ $? -eq 0 ]; then echo 'OK' >&2; else echo 'NG!' >&2; finish 1; fi
|
||||
fi
|
||||
#Community language support
|
||||
#Dutch
|
||||
if [ -e lang_nl.bin ]; then
|
||||
echo -n " Dutch : " >&2
|
||||
./update_lang.sh nl 2>./update_lang_nl.out 1>/dev/null
|
||||
if [ $? -eq 0 ]; then echo 'OK' >&2; else echo 'NG!' >&2; fi
|
||||
fi
|
||||
|
||||
#Use the 6 lines below as a template and replace 'qr' and 'New language'
|
||||
#New language
|
||||
# if [ -e lang_qr.bin ]; then
|
||||
# echo -n " New language : " >&2
|
||||
# ./update_lang.sh qr 2>./update_lang_qr.out 1>/dev/null
|
||||
# if [ $? -eq 0 ]; then echo 'OK' >&2; else echo 'NG!' >&2; fi
|
||||
# fi
|
||||
|
||||
# echo "skipped" >&2
|
||||
fi
|
||||
|
||||
@ -174,6 +190,13 @@ if [ -e lang_es.bin ]; then cat lang_es.bin >> lang.bin; fi
|
||||
if [ -e lang_fr.bin ]; then cat lang_fr.bin >> lang.bin; fi
|
||||
if [ -e lang_it.bin ]; then cat lang_it.bin >> lang.bin; fi
|
||||
if [ -e lang_pl.bin ]; then cat lang_pl.bin >> lang.bin; fi
|
||||
#Community language support
|
||||
# Dutch
|
||||
if [ -e lang_nl.bin ]; then cat lang_nl.bin >> lang.bin; fi
|
||||
|
||||
#Use the 2 lines below as a template and replace 'qr'
|
||||
## New language
|
||||
#if [ -e lang_qr.bin ]; then cat lang_qr.bin >> lang.bin; fi
|
||||
|
||||
#convert lang.bin to lang.hex
|
||||
echo -n " converting to hex..." >&2
|
||||
|
@ -45,9 +45,17 @@ rm_if_exists update_lang_de.out
|
||||
rm_if_exists update_lang_es.out
|
||||
rm_if_exists update_lang_fr.out
|
||||
rm_if_exists update_lang_it.out
|
||||
rm_if_exists update_lang_nl.out
|
||||
rm_if_exists update_lang_pl.out
|
||||
rm_if_exists lang.bin
|
||||
rm_if_exists lang.hex
|
||||
#Community language support
|
||||
#Dutch
|
||||
rm_if_exists firmware_nl.hex
|
||||
|
||||
#Use the 2 lines below as a template and replace 'qr'
|
||||
##New language
|
||||
#rm_if_exists firmware_qr.hex
|
||||
|
||||
echo -n "fw-clean.sh finished" >&2
|
||||
if [ $result -eq 0 ]; then
|
||||
|
@ -66,6 +66,13 @@ cat lang_add.txt | sed 's/^/"/;s/$/"/' | while read new_s; do
|
||||
insert_xx "$new_s" 'fr'
|
||||
insert_xx "$new_s" 'it'
|
||||
insert_xx "$new_s" 'pl'
|
||||
#Community language support
|
||||
#Dutch
|
||||
insert_xx "$new_s" 'nl'
|
||||
|
||||
#Use the 2 lines below as a template and replace 'qr'
|
||||
##New language
|
||||
# insert_xx "$new_s" 'qr'
|
||||
fi
|
||||
done
|
||||
|
||||
|
@ -43,6 +43,12 @@ lang_code_hex_data()
|
||||
*fr*) echo '\x72\x66' ;;
|
||||
*it*) echo '\x74\x69' ;;
|
||||
*pl*) echo '\x6c\x70' ;;
|
||||
#Community language support
|
||||
#Dutch
|
||||
*nl*) echo '\x6c\x6e' ;;
|
||||
#Use the 2 lines below as a template and replace 'qr' and `\x71\x72`
|
||||
##New language
|
||||
# *qr*) echo '\x71\x72' ;;
|
||||
esac
|
||||
echo '??'
|
||||
}
|
||||
@ -135,6 +141,7 @@ if [ "$1" = "all" ]; then
|
||||
generate_binary 'fr'
|
||||
generate_binary 'it'
|
||||
generate_binary 'pl'
|
||||
#DO NOT add Community languages here !!!
|
||||
else
|
||||
generate_binary $1
|
||||
fi
|
||||
|
@ -56,7 +56,7 @@ def main():
|
||||
usage="$(prog)s lang")
|
||||
parser.add_argument(
|
||||
"lang", nargs='?', default="en", type=str,
|
||||
help="Check lang file (en|cs|de|es|fr|it|pl)")
|
||||
help="Check lang file (en|cs|de|es|fr|nl|it|pl)")
|
||||
parser.add_argument(
|
||||
"--no-warning", action="store_true",
|
||||
help="Disable warnings")
|
||||
|
@ -46,6 +46,13 @@ clean_lang es
|
||||
clean_lang fr
|
||||
clean_lang it
|
||||
clean_lang pl
|
||||
#Community language support
|
||||
#Dutch
|
||||
clean_lang nl
|
||||
|
||||
#Use the 2 lines below as a template and replace 'qr'
|
||||
##New language
|
||||
#clean_lang_qr
|
||||
|
||||
echo -n "lang-clean.sh finished" >&2
|
||||
if [ $result -eq 0 ]; then
|
||||
|
53
lang/lang-community.sh
Executable file
53
lang/lang-community.sh
Executable file
@ -0,0 +1,53 @@
|
||||
#!/bin/sh
|
||||
#
|
||||
# lang-community.sh - Community language support script
|
||||
# Check community languages are defined in `config.h`
|
||||
#
|
||||
|
||||
# Root path
|
||||
if [ -z "$ROOT_PATH" ]; then
|
||||
export ROOT_PATH=".."
|
||||
fi
|
||||
|
||||
# Check community language NL = Dutch
|
||||
COMMUNITY_LANG_NL=$(grep --max-count=1 "^#define COMMUNITY_LANG_NL" $ROOT_PATH/Firmware/config.h| cut -d '_' -f3 |cut -d ' ' -f1)
|
||||
export NL=$COMMUNITY_LANG_NL
|
||||
|
||||
# Use the lines below as a template and replace 'QR' and 'new language'
|
||||
# Check comminity language QR = new language
|
||||
#COMMUNITY_LANG_QR=$(grep --max-count=1 "^#define COMMUNITY_LANG_QR" $ROOT_PATH/Firmware/config.h| cut -d '_' -f3 |cut -d ' ' -f1)
|
||||
#export QR=$COMMUNITY_LANG_QR
|
||||
|
||||
#startup message
|
||||
echo "lang-community.sh started" >&2
|
||||
echo -n " Source code path: " >&2
|
||||
if [ -e $ROOT_PATH ]; then echo 'OK' >&2; else echo 'NG!' >&2; _err=1; fi
|
||||
|
||||
echo " Found: " >&2
|
||||
if [ "$COMMUNITY_LANG_NL" = "NL" ]; then
|
||||
echo " $COMMUNITY_LANG_NL" >&2
|
||||
echo
|
||||
./lang-build.sh nl
|
||||
fi
|
||||
|
||||
# Use the 5 lines below as a template and replace 'QR' and 'qr'
|
||||
#if [ "$COMMUNITY_LANG_QR" = "QR" ]; then
|
||||
# echo " $COMMUNITY_LANG_QR" >&2
|
||||
# echo
|
||||
# ./lang-build.sh qr
|
||||
#fi
|
||||
|
||||
|
||||
#exiting function
|
||||
finish()
|
||||
{
|
||||
if [ $1 -eq 0 ]; then
|
||||
echo "lang-community.sh finished with success" >&2
|
||||
else
|
||||
echo "lang-community.sh finished with errors!" >&2
|
||||
fi
|
||||
echo
|
||||
exit $1
|
||||
}
|
||||
|
||||
finish 0
|
@ -22,6 +22,12 @@ if [ "$LNG" = "all" ]; then
|
||||
./lang-export.sh fr
|
||||
./lang-export.sh it
|
||||
./lang-export.sh pl
|
||||
#Community language support
|
||||
#Dutch
|
||||
./lang-export.sh nl
|
||||
#Use the 2 lines below as a template and replace 'qr' and 'New language'
|
||||
##New language
|
||||
# ./lang-export.sh qr
|
||||
exit 0
|
||||
fi
|
||||
|
||||
@ -48,6 +54,12 @@ else
|
||||
*fr*) echo "French" ;;
|
||||
*it*) echo "Italian" ;;
|
||||
*pl*) echo "Polish" ;;
|
||||
#Community language support
|
||||
#Dutch
|
||||
*nl*) echo "Dutch" ;;
|
||||
#Use the 2 lines below as a template and replace 'qr' and 'New language'
|
||||
##New language
|
||||
# *qr*) echo "New language" ;;
|
||||
esac)
|
||||
# unknown language - error
|
||||
if [ -z "LNGNAME" ]; then
|
||||
|
@ -15,6 +15,7 @@ if [ "$LNG" = "all" ]; then
|
||||
./lang-import.sh fr
|
||||
./lang-import.sh it
|
||||
./lang-import.sh pl
|
||||
#DO NOT add Community languages here !!!
|
||||
exit 0
|
||||
fi
|
||||
|
||||
@ -40,51 +41,51 @@ sed -i 's/ \\n/ /g;s/\\n/ /g' $LNG'_filtered.po'
|
||||
|
||||
#replace in czech translation
|
||||
if [ "$LNG" = "cz" ]; then
|
||||
#replace 'ž' with 'z'
|
||||
#replace 'ž' with 'z'
|
||||
sed -i 's/\xc5\xbe/z/g' $LNG'_filtered.po'
|
||||
#replace 'ì' with 'e'
|
||||
#replace 'ì' with 'e'
|
||||
sed -i 's/\xc4\x9b/e/g' $LNG'_filtered.po'
|
||||
#replace 'í' with 'i'
|
||||
#replace 'í' with 'i'
|
||||
sed -i 's/\xc3\xad/i/g' $LNG'_filtered.po'
|
||||
#replace 'ø' with 'r'
|
||||
#replace 'ø' with 'r'
|
||||
sed -i 's/\xc5\x99/r/g' $LNG'_filtered.po'
|
||||
#replace 'è' with 'c'
|
||||
#replace 'è' with 'c'
|
||||
sed -i 's/\xc4\x8d/c/g' $LNG'_filtered.po'
|
||||
#replace 'á' with 'a'
|
||||
#replace 'á' with 'a'
|
||||
sed -i 's/\xc3\xa1/a/g' $LNG'_filtered.po'
|
||||
#replace 'é' with 'e'
|
||||
#replace 'é' with 'e'
|
||||
sed -i 's/\xc3\xa9/e/g' $LNG'_filtered.po'
|
||||
fi
|
||||
|
||||
#replace in german translation https://en.wikipedia.org/wiki/German_orthography
|
||||
if [ "$LNG" = "de" ]; then
|
||||
#replace 'ä' with 'ae'
|
||||
#replace 'ä' with 'ae'
|
||||
sed -i 's/\xc3\xa4/ae/g' $LNG'_filtered.po'
|
||||
#replace 'Ä' with 'Ae'
|
||||
#replace 'Ä' with 'Ae'
|
||||
sed -i 's/\xc3\x84/Ae/g' $LNG'_filtered.po'
|
||||
#replace 'ü' with 'ue'
|
||||
#replace 'ü' with 'ue'
|
||||
sed -i 's/\xc3\xbc/ue/g' $LNG'_filtered.po'
|
||||
#replace 'Ü' with 'Ue'
|
||||
#replace 'Ü' with 'Ue'
|
||||
sed -i 's/\xc3\x9c/Ue/g' $LNG'_filtered.po'
|
||||
#replace 'ö' with 'oe'
|
||||
#replace 'ö' with 'oe'
|
||||
sed -i 's/\xc3\xb6/oe/g' $LNG'_filtered.po'
|
||||
#replace 'Ö' with 'Oe'
|
||||
#replace 'Ö' with 'Oe'
|
||||
sed -i 's/\xc3\x96/Oe/g' $LNG'_filtered.po'
|
||||
#replace 'ß' with 'ss'
|
||||
#replace 'ß' with 'ss'
|
||||
sed -i 's/\xc3\x9f/ss/g' $LNG'_filtered.po'
|
||||
fi
|
||||
|
||||
#replace in spain translation
|
||||
if [ "$LNG" = "es" ]; then
|
||||
#replace 'á' with 'a'
|
||||
#replace 'á' with 'a'
|
||||
sed -i 's/\xc3\xa1/a/g' $LNG'_filtered.po'
|
||||
#replace '¿' with '?'
|
||||
#replace '¿' with '?'
|
||||
sed -i 's/\xc2\xbf/?/g' $LNG'_filtered.po'
|
||||
#replace 'ó' with 'o'
|
||||
#replace 'ó' with 'o'
|
||||
sed -i 's/\xc3\xb3/o/g' $LNG'_filtered.po'
|
||||
#replace 'é' with 'e'
|
||||
#replace 'é' with 'e'
|
||||
sed -i 's/\xc3\xa9/e/g' $LNG'_filtered.po'
|
||||
#replace 'í' with 'i'
|
||||
#replace 'í' with 'i'
|
||||
sed -i 's/\xc3\xad/i/g' $LNG'_filtered.po'
|
||||
#replace '!' with '!'
|
||||
sed -i 's/\xc2\xa1/!/g' $LNG'_filtered.po'
|
||||
@ -94,40 +95,82 @@ fi
|
||||
|
||||
#replace in french translation https://en.wikipedia.org/wiki/French_orthography
|
||||
if [ "$LNG" = "fr" ]; then
|
||||
#replace 'á' with 'a' (right)
|
||||
#replace 'á' with 'a' (right)
|
||||
sed -i 's/\xc3\xa1/a/g' $LNG'_filtered.po'
|
||||
#replace 'Á' with 'A' (right)
|
||||
#replace 'Á' with 'A' (right)
|
||||
sed -i 's/\xc3\x81/A/g' $LNG'_filtered.po'
|
||||
#replace 'à' with 'a' (left)
|
||||
#replace 'à' with 'a' (left)
|
||||
sed -i 's/\xc3\xa0/a/g' $LNG'_filtered.po'
|
||||
#replace 'À' with 'A' (left)
|
||||
#replace 'À' with 'A' (left)
|
||||
sed -i 's/\xc3\x80/A/g' $LNG'_filtered.po'
|
||||
#replace 'é' with 'e' (right)
|
||||
#replace 'é' with 'e' (right)
|
||||
sed -i 's/\xc3\xa9/e/g' $LNG'_filtered.po'
|
||||
#replace 'É' with 'E' (right)
|
||||
#replace 'É' with 'E' (right)
|
||||
sed -i 's/\xc3\x89/E/g' $LNG'_filtered.po'
|
||||
#replace 'è' with 'e' (left)
|
||||
#replace 'è' with 'e' (left)
|
||||
sed -i 's/\xc3\xa8/e/g' $LNG'_filtered.po'
|
||||
#replace 'È' with 'E' (left)
|
||||
#replace 'È' with 'E' (left)
|
||||
sed -i 's/\xc3\x88/E/g' $LNG'_filtered.po'
|
||||
fi
|
||||
|
||||
#replace in italian translation
|
||||
if [ "$LNG" = "it" ]; then
|
||||
#replace 'é' with 'e' (left)
|
||||
#replace 'é' with 'e' (left)
|
||||
sed -i 's/\xc3\xa8/e/g' $LNG'_filtered.po'
|
||||
#replace 'á' with 'a' (left)
|
||||
#replace 'á' with 'a' (left)
|
||||
sed -i 's/\xc3\xa0/a/g' $LNG'_filtered.po'
|
||||
#replace 'ó' with 'o' (left)
|
||||
#replace 'ó' with 'o' (left)
|
||||
sed -i 's/\xc3\xb2/o/g' $LNG'_filtered.po'
|
||||
#replace 'ú' with 'u' (left)
|
||||
#replace 'ú' with 'u' (left)
|
||||
sed -i 's/\xc3\xb9/u/g' $LNG'_filtered.po'
|
||||
#replace 'é' with 'e'
|
||||
#replace 'é' with 'e'
|
||||
sed -i 's/\xc3\xa9/e/g' $LNG'_filtered.po'
|
||||
#replace 'É' with 'E' (left)
|
||||
#replace 'É' with 'E' (left)
|
||||
sed -i 's/\xc3\x88/E/g' $LNG'_filtered.po'
|
||||
fi
|
||||
|
||||
#replace in dutch translation according to https://nl.wikipedia.org/wiki/Accenttekens_in_de_Nederlandse_spelling
|
||||
if [ "$LNG" = "nl" ]; then
|
||||
#replace 'ë' with 'e'
|
||||
sed -i 's/\xc3\xab/e/g' $LNG'_filtered.po'
|
||||
#replace 'ï' with 'i'
|
||||
sed -i 's/\xc3\xaf/i/g' $LNG'_filtered.po'
|
||||
#replace 'é' with 'e'
|
||||
sed -i 's/\xc3\xa9/e/g' $LNG'_filtered.po'
|
||||
#replace 'è' with 'e' (left)
|
||||
sed -i 's/\xc3\xa8/e/g' $LNG'_filtered.po'
|
||||
#replace 'ö' with 'o' (left)
|
||||
sed -i 's/\xc3\xb6/o/g' $LNG'_filtered.po'
|
||||
#replace 'ê' with 'e' (left)
|
||||
sed -i 's/\xc3\xaa/e/g' $LNG'_filtered.po'
|
||||
#replace 'ü' with 'u' (left)
|
||||
sed -i 's/\xc3\xbc/u/g' $LNG'_filtered.po'
|
||||
#replace 'ç' with 'c' (left)
|
||||
sed -i 's/\xc3\xa7/c/g' $LNG'_filtered.po'
|
||||
#replace 'á' with 'a' (left)
|
||||
sed -i 's/\xc3\xa1/a/g' $LNG'_filtered.po'
|
||||
#replace 'à' with 'a' (left)
|
||||
sed -i 's/\xc3\xa0/a/g' $LNG'_filtered.po'
|
||||
#replace 'ä' with 'a' (left)
|
||||
sed -i 's/\xc3\xa4/a/g' $LNG'_filtered.po'
|
||||
#replace 'û' with 'u' (left)
|
||||
sed -i 's/\xc3\xbc/u/g' $LNG'_filtered.po'
|
||||
#replace 'î' with 'i' (left)
|
||||
sed -i 's/\xc3\xae/i/g' $LNG'_filtered.po'
|
||||
#replace 'í' with 'i' (left)
|
||||
sed -i 's/\xc3\xad/i/g' $LNG'_filtered.po'
|
||||
#replace 'ô' with 'o' (left)
|
||||
sed -i 's/\xc3\xb4/o/g' $LNG'_filtered.po'
|
||||
#replace 'ú' with 'u' (left)
|
||||
sed -i 's/\xc3\xba/u/g' $LNG'_filtered.po'
|
||||
#replace 'ñ' with 'n' (left)
|
||||
sed -i 's/\xc3\xb1/n/g' $LNG'_filtered.po'
|
||||
#replace 'â' with 'a' (left)
|
||||
sed -i 's/\xc3\xa2/a/g' $LNG'_filtered.po'
|
||||
#replace 'Å' with 'A' (left)
|
||||
sed -i 's/\xc3\x85/A/g' $LNG'_filtered.po'
|
||||
fi
|
||||
|
||||
#replace in polish translation
|
||||
#if [ "$LNG" = "pl" ]; then
|
||||
#fi
|
||||
|
@ -175,6 +175,9 @@
|
||||
#MSG_DATE c=17 r=1
|
||||
"Date:"
|
||||
|
||||
#MSG_COMMUNITY_MADE c=18
|
||||
"Community made"
|
||||
|
||||
#MSG_DISABLE_STEPPERS
|
||||
"Disable steppers"
|
||||
|
||||
|
@ -234,6 +234,10 @@
|
||||
"Date:"
|
||||
"Datum:"
|
||||
|
||||
#MSG_COMMUNITY_MADE c=18
|
||||
"Community made"
|
||||
"\x00"
|
||||
|
||||
#MSG_DISABLE_STEPPERS
|
||||
"Disable steppers"
|
||||
"Vypnout motory"
|
||||
|
@ -234,6 +234,10 @@
|
||||
"Date:"
|
||||
"Datum:"
|
||||
|
||||
#MSG_COMMUNITY_MADE c=18
|
||||
"Community made"
|
||||
"\x00"
|
||||
|
||||
#MSG_DISABLE_STEPPERS
|
||||
"Disable steppers"
|
||||
"Motoren aus"
|
||||
|
@ -234,6 +234,10 @@
|
||||
"Date:"
|
||||
"Fecha:"
|
||||
|
||||
#MSG_COMMUNITY_MADE c=18
|
||||
"Community made"
|
||||
"\x00"
|
||||
|
||||
#MSG_DISABLE_STEPPERS
|
||||
"Disable steppers"
|
||||
"Apagar motores"
|
||||
|
@ -234,6 +234,10 @@
|
||||
"Date:"
|
||||
"Date:"
|
||||
|
||||
#MSG_COMMUNITY_MADE c=18
|
||||
"Community made"
|
||||
"\x00"
|
||||
|
||||
#MSG_DISABLE_STEPPERS
|
||||
"Disable steppers"
|
||||
"Desactiver moteurs"
|
||||
|
@ -234,6 +234,10 @@
|
||||
"Date:"
|
||||
"Data:"
|
||||
|
||||
#MSG_COMMUNITY_MADE c=18
|
||||
"Community made"
|
||||
"\x00"
|
||||
|
||||
#MSG_DISABLE_STEPPERS
|
||||
"Disable steppers"
|
||||
"Disabilita motori"
|
||||
|
1480
lang/lang_en_nl.txt
Normal file
1480
lang/lang_en_nl.txt
Normal file
File diff suppressed because it is too large
Load Diff
@ -234,6 +234,10 @@
|
||||
"Date:"
|
||||
"Data:"
|
||||
|
||||
#MSG_COMMUNITY_MADE c=18
|
||||
"Community made"
|
||||
"\x00"
|
||||
|
||||
#MSG_DISABLE_STEPPERS
|
||||
"Disable steppers"
|
||||
"Wylacz silniki"
|
||||
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
1867
lang/po/Firmware_nl.po
Normal file
1867
lang/po/Firmware_nl.po
Normal file
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
1850
lang/po/new/cs.po
1850
lang/po/new/cs.po
File diff suppressed because it is too large
Load Diff
1842
lang/po/new/nl.po
Normal file
1842
lang/po/new/nl.po
Normal file
File diff suppressed because it is too large
Load Diff
@ -4,22 +4,22 @@
|
||||
|
||||
- Build firmware
|
||||
- using `build.sh`
|
||||
- using `PF-build.sh` with a `break` before `# build languages`
|
||||
- using `PF-build.sh` with a parameter `-c 1` to keep lang build files after compiling
|
||||
- change to `lang` folder
|
||||
- check if lang scripts being able to run with `config.sh`
|
||||
- if you get `Arduino main folder: NG` message change in `config.sh` `export ARDUINO=C:/arduino-1.8.5` to `export ARDUINO=<Path to your Arduino IDE folder>`
|
||||
-example: `export ARDUINO=D:/Github/Prusa-Firmware/PF-build-env-1.0.6/windows-64`
|
||||
- run `lang-build.sh en` to create english `lang_en.tmp`, `lang_en.dat` and `lang_en.bin` files
|
||||
- change in `fw-build.sh` `IGNORE_MISSING_TEXT=1` to `IGNORE_MISSING_TEXT=0` so it stops with error and generates `not_used.txt` and `not_tran.txt`
|
||||
- change in `fw-build.sh` `IGNORE_MISSING_TEXT=1` to `IGNORE_MISSING_TEXT=0` so it stops with error and generates `not_used<variant>.txt` and `not_tran<variant>.txt`
|
||||
- run modified `fw-build.sh`
|
||||
- `not_tran.txt` should be reviewed and added as these are potential missing translations
|
||||
- copy `not_tran.txt` as `lang_add.txt`
|
||||
- `not_tran<variant>.txt` should be reviewed and added as these are potential missing translations
|
||||
- copy `not_tran<variant>.txt` as `lang_add.txt`
|
||||
- check if there are things you don't want to translate or must be modifed
|
||||
- als check that the strings do not start with `spaces` as the scripts doesn't handle these well at this moment.
|
||||
- run `lang-add.sh lang_add.txt` to add the missing translations to `lang_en.txt` and `lang_en_??.txt`
|
||||
- `not_used.txt` should only contain mesages that aren't used in this variant like MK2.5 vs MK3
|
||||
- `not_used<variant>.txt` should only contain messages that aren't used in this variant like MK2.5/S vs MK3/S
|
||||
- run `fw-clean.sh` to cleanup firmware related files
|
||||
- delete `not_used.txt` and `not_tran.txt`
|
||||
- delete `not_used<variant>.txt` and `not_tran<variant>.txt`
|
||||
- run `lang-clean.sh` to cleanup language related files
|
||||
- run `lang-export.sh all` to create PO files for translation these are stored in `/lang/po` folder
|
||||
- Send them to translators and reviewers or
|
||||
@ -30,13 +30,12 @@
|
||||
- run `lang-import.sh <language code (iso639-1)>` for each newly translated language
|
||||
- script improvement to import "all" and other things would be great.
|
||||
- Double check if something is missing or faulty
|
||||
- run `lang-build.sh` to to create `lang_en.tmp/.dat/.bin` and `lang_en_??.tmp/.dat/.bin` files
|
||||
- run `fw-build.sh` and check if there are still some messages in `not_tran.txt` that need attention
|
||||
- run `PF-build.sh -v all -n 1 -c 1` to compile for all variants files
|
||||
- check if there are still some messages in `not_tran<variant>.txt` that need attention
|
||||
- After approval
|
||||
- run `fw-clean.sh` to cleanup firmware related files
|
||||
- run `lang-clean.sh` to cleanup language related files
|
||||
- change in `fw-build.sh` back to `IGNORE_MISSING_TEXT=1`
|
||||
- remove `break` from `PF-build.sh` script if that has been modified
|
||||
- build your firmware with `build.sh`, `PF-build.sh` or how you normally do it.
|
||||
- Check/Test firmware on printer
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user