Prusa-Firmware/lang_upgrade
Robert Pelnar 4e14e6cdbb New ML support - dictionary generators (scripts) and dictionaries:
make_lang_en.sh - english dictionary generator script
 make_lang - english dictionary generator script (new)
 lang_en.txt - english dictionary (format changed)
 lang_en_cz.txt - czech dictionary (new file)
2018-05-23 14:17:23 +02:00
..
src New ML support - upgrade scripts and source 2018-05-22 02:42:07 +02:00
!upgrade.sh New ML support - upgrade scripts and source 2018-05-22 02:42:07 +02:00
clean.sh New ML support - upgrade scripts and source 2018-05-22 02:42:07 +02:00
find_msgs.sh New ML support - upgrade scripts and source 2018-05-22 02:42:07 +02:00
make_lang_en_cz.sh New ML support - dictionary generators (scripts) and dictionaries: 2018-05-23 14:17:23 +02:00
make_lang_en.sh New ML support - dictionary generators (scripts) and dictionaries: 2018-05-23 14:17:23 +02:00
make_msgs.out New ML support - migration - generated files 2018-05-22 03:15:50 +02:00
make_msgs.sh New ML support - upgrade scripts and source 2018-05-22 02:42:07 +02:00
make_source.sh Upgrade script make_source.sh 2018-05-22 03:08:05 +02:00
msgs_common_unused.txt New ML support - migration - generated files 2018-05-22 03:15:50 +02:00
msgs_common_used_more.txt New ML support - migration - generated files 2018-05-22 03:15:50 +02:00
msgs_common_used_once.txt New ML support - migration - generated files 2018-05-22 03:15:50 +02:00
msgs_common.txt New ML support - migration - generated files 2018-05-22 03:15:50 +02:00
msgs_cz.txt New ML support - migration - generated files 2018-05-22 03:15:50 +02:00
msgs_de.txt New ML support - migration - generated files 2018-05-22 03:15:50 +02:00
msgs_en_unused.txt New ML support - migration - generated files 2018-05-22 03:15:50 +02:00
msgs_en_used_more.txt New ML support - migration - generated files 2018-05-22 03:15:50 +02:00
msgs_en_used_once.txt New ML support - migration - generated files 2018-05-22 03:15:50 +02:00
msgs_en.txt New ML support - migration - generated files 2018-05-22 03:15:50 +02:00
msgs_es.txt New ML support - migration - generated files 2018-05-22 03:15:50 +02:00
msgs_it.txt New ML support - migration - generated files 2018-05-22 03:15:50 +02:00
msgs_pl.txt New ML support - migration - generated files 2018-05-22 03:15:50 +02:00
msgs_usage.txt New ML support - migration - generated files 2018-05-22 03:15:50 +02:00
readme.txt New ML support - upgrade scripts and source 2018-05-22 02:42:07 +02:00
replace_common.out New ML support - migration - generated files 2018-05-22 03:15:50 +02:00
replace_en.out New ML support - migration - generated files 2018-05-22 03:15:50 +02:00

lang_upgrade - scripts for migration to new multilanguage support design

upgrade.sh - entire process:
Run scripts: clean.sh, make_msgs.sh, find_msgs.sh, make_source.sh.
Backup (move) all language*.h and language*.cpp files from source to folder '../lang_backup'.
Copy folder ./source/*.* to ../Firmware, new files will be messages.h, messages.c, language.h, language.c and other source will be replaced.
After this step should be source compilable in english version, LANG_MODE in config.h is set to 0 (primary language only)


0. clean.sh
delete all output files

1. make_msgs.sh
Process all language_xx.h files and extract informations to msgs_xx.txt files in simple format.
Every line in msgs_en.txt has following format: MSG_xx c=cc r=rr "text". 
Every line in other msgs_xx.txt has simpler format: MSG_xx "text".
MSG_xx is original message identifier, cc is column count (originaly length) and rr is row count (originaly lines).
Output files msgs_xx.txt are sorted by message identifier (ascending order).
make_msgs.sh also reports number of messages in each language_xx.h file and total number of characters in program memory.

2. find_msgs.sh
Find usage of each message and output listing in to file msgs_usage.txt in format: MSG_xx nn.
MSG_xx is identifier, nn is number of occurrences. Output is sorted by number of occurrences (ascending order).
Generate filtered msgs_en.txt and msgs_common.txt files. Each file is sorted to three output files - unused, used once and used more.
Output files will be:
 msgs_common_unused.txt, msgs_common_used_more.txt, msgs_common_used_once.txt
 msgs_en_unused.txt, msgs_en_used_more.txt, msgs_en_used_once.txt

3. make_source.sh
Copy all source files to folder ./source
Replace all messages used once in all ./source/*.c* files directly with the english version string constant and comment at end of line.
Generate messages.h and messages.c source files with messages used twice and more.
Replace line '' in Marlin_main.cpp with comment.