Merge pull request #3342 from 3d-gussner/MK3_improve_translations
Improve language scripts
This commit is contained in:
commit
546eafae8b
17
.gitignore
vendored
17
.gitignore
vendored
@ -55,3 +55,20 @@ Firmware/Doc
|
|||||||
/Firmware/variants/printers.h
|
/Firmware/variants/printers.h
|
||||||
Configuration.tmp
|
Configuration.tmp
|
||||||
config.tmp
|
config.tmp
|
||||||
|
/lang/lang_en.max
|
||||||
|
/lang/po/new/*_new.po
|
||||||
|
/lang/po/new/*_filered.po
|
||||||
|
/lang/po/new/nonascii.txt
|
||||||
|
/lang/po/new/lang_en*.txt
|
||||||
|
/lang/po/new/*-output.txt
|
||||||
|
/lang/po/new/*.mo
|
||||||
|
.DS_Store
|
||||||
|
**/.DS_Store
|
||||||
|
Firmware/.DS_Store
|
||||||
|
Firmware/variant/.DS_Store
|
||||||
|
lang/.DS_Store
|
||||||
|
lang/po/.DS_Store
|
||||||
|
lang/po/new/.DS_Store
|
||||||
|
Tests/.DS_Store
|
||||||
|
tools/.DS_Store
|
||||||
|
tools/lib/.DS_Store
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
dist: trusty
|
dist: focal
|
||||||
before_install:
|
before_install:
|
||||||
- sudo apt-get install -y ninja-build
|
- sudo apt-get install -y ninja-build
|
||||||
# Arduino IDE adds a lot of noise caused by network traffic, trying to firewall it off
|
# Arduino IDE adds a lot of noise caused by network traffic, trying to firewall it off
|
||||||
|
@ -65,14 +65,14 @@
|
|||||||
|
|
||||||
#if (COMMUNITY_LANG_GROUP == 1)
|
#if (COMMUNITY_LANG_GROUP == 1)
|
||||||
#define COMMUNITY_LANG_GROUP1_NL // Community Dutch language
|
#define COMMUNITY_LANG_GROUP1_NL // Community Dutch language
|
||||||
#define COMMUNITY_LANG_GROUP1_SV // Community Swedish language
|
|
||||||
#define COMMUNITY_LANG_GROUP1_DA // Community Danish language
|
|
||||||
#define COMMUNITY_LANG_GROUP1_SL // Community Slovanian language
|
|
||||||
#define COMMUNITY_LANG_GROUP1_HU // Community Hungarian language
|
|
||||||
#define COMMUNITY_LANG_GROUP1_LB // Community Luxembourgish language
|
|
||||||
#define COMMUNITY_LANG_GROUP1_HR // Community Croatian language
|
|
||||||
#define COMMUNITY_LANG_GROUP1_LT // Community Lithuanian language
|
|
||||||
#define COMMUNITY_LANG_GROUP1_RO // Community Romanian language
|
#define COMMUNITY_LANG_GROUP1_RO // Community Romanian language
|
||||||
|
#define COMMUNITY_LANG_GROUP1_HU // Community Hungarian language
|
||||||
|
#define COMMUNITY_LANG_GROUP1_HR // Community Croatian language
|
||||||
|
//#define COMMUNITY_LANG_GROUP1_SV // Community Swedish language
|
||||||
|
//#define COMMUNITY_LANG_GROUP1_DA // Community Danish language
|
||||||
|
//#define COMMUNITY_LANG_GROUP1_SL // Community Slovanian language
|
||||||
|
//#define COMMUNITY_LANG_GROUP1_LB // Community Luxembourgish language
|
||||||
|
//#define COMMUNITY_LANG_GROUP1_LT // Community Lithuanian language
|
||||||
//#define COMMUNITY_LANG_GROUP1_QR // Community new language //..use this as a template and replace 'QR'
|
//#define COMMUNITY_LANG_GROUP1_QR // Community new language //..use this as a template and replace 'QR'
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
@ -10,7 +10,7 @@
|
|||||||
# 3. Install latest updates with 'sudo apt-get upgrade'
|
# 3. Install latest updates with 'sudo apt-get upgrade'
|
||||||
#
|
#
|
||||||
#
|
#
|
||||||
# Version: 1.0.0-Build_13
|
# Version: 1.0.0-Build_14
|
||||||
# Change log:
|
# Change log:
|
||||||
# 11 Feb 2021, 3d-gussner, Inital
|
# 11 Feb 2021, 3d-gussner, Inital
|
||||||
# 11 Feb 2021, 3d-gussner, Optional flags to check for updates
|
# 11 Feb 2021, 3d-gussner, Optional flags to check for updates
|
||||||
@ -22,6 +22,8 @@
|
|||||||
# 18 Jun 2021, 3d-gussner, Added -g 3 and 4 for more details extrusion lines
|
# 18 Jun 2021, 3d-gussner, Added -g 3 and 4 for more details extrusion lines
|
||||||
# 18 Jun 2021, 3d-gussner, Check for updates is default. Fix update if internet connection is lost.
|
# 18 Jun 2021, 3d-gussner, Check for updates is default. Fix update if internet connection is lost.
|
||||||
# 21 Jun 2021, 3d-gussner, Change board_flash argument to 'y' and firmware_version to 'f'
|
# 21 Jun 2021, 3d-gussner, Change board_flash argument to 'y' and firmware_version to 'f'
|
||||||
|
# 25 Jan 2021, 3d-gussner, Allow upper and lower case in selection
|
||||||
|
# Add update option to release OR devel
|
||||||
|
|
||||||
#### Start: Failures
|
#### Start: Failures
|
||||||
failures()
|
failures()
|
||||||
@ -74,7 +76,7 @@ while getopts c:f:g:m:n:p:u:x:y:?h flag
|
|||||||
# '?' 'h' argument usage and help
|
# '?' 'h' argument usage and help
|
||||||
if [ "$help_flag" == "1" ] ; then
|
if [ "$help_flag" == "1" ] ; then
|
||||||
echo "***************************************"
|
echo "***************************************"
|
||||||
echo "* MK404-build.sh Version: 1.0.0-Build_13 *"
|
echo "* MK404-build.sh Version: 1.0.0-Build_14 *"
|
||||||
echo "***************************************"
|
echo "***************************************"
|
||||||
echo "Arguments:"
|
echo "Arguments:"
|
||||||
echo "$(tput setaf 2)-c$(tput sgr0) Check for update"
|
echo "$(tput setaf 2)-c$(tput sgr0) Check for update"
|
||||||
@ -98,7 +100,7 @@ echo " -g : '$(tput setaf 2)0$(tput sgr0)' no, '$(tput setaf 2)1$(tput sgr0)' l
|
|||||||
echo " -m : '$(tput setaf 2)0$(tput sgr0)' no, '$(tput setaf 2)1$(tput sgr0)' yes '$(tput setaf 2)2$(tput sgr0)' with MMU2"
|
echo " -m : '$(tput setaf 2)0$(tput sgr0)' no, '$(tput setaf 2)1$(tput sgr0)' yes '$(tput setaf 2)2$(tput sgr0)' with MMU2"
|
||||||
echo " -n : '$(tput setaf 2)0$(tput sgr0)' no, '$(tput setaf 2)1$(tput sgr0)' yes"
|
echo " -n : '$(tput setaf 2)0$(tput sgr0)' no, '$(tput setaf 2)1$(tput sgr0)' yes"
|
||||||
echo " -p : '$(tput setaf 2)MK25$(tput sgr0)', '$(tput setaf 2)MK25S$(tput sgr0)', '$(tput setaf 2)MK3$(tput sgr0)' or '$(tput setaf 2)MK3S$(tput sgr0)'"
|
echo " -p : '$(tput setaf 2)MK25$(tput sgr0)', '$(tput setaf 2)MK25S$(tput sgr0)', '$(tput setaf 2)MK3$(tput sgr0)' or '$(tput setaf 2)MK3S$(tput sgr0)'"
|
||||||
echo " -u : '$(tput setaf 2)0$(tput sgr0)' no, '$(tput setaf 2)1$(tput sgr0)' yes '"
|
echo " -u : '$(tput setaf 2)0$(tput sgr0)' no, '$(tput setaf 2)1$(tput sgr0)' release ', '$(tput setaf 2)2$(tput sgr0)' devel '"
|
||||||
echo " -x : '$(tput setaf 2)8$(tput sgr0)',$(tput setaf 2)16$(tput sgr0)',$(tput setaf 2)32$(tput sgr0)' or '$(tput setaf 2)64$(tput sgr0)' Kb."
|
echo " -x : '$(tput setaf 2)8$(tput sgr0)',$(tput setaf 2)16$(tput sgr0)',$(tput setaf 2)32$(tput sgr0)' or '$(tput setaf 2)64$(tput sgr0)' Kb."
|
||||||
echo " -y : '$(tput setaf 2)256$(tput sgr0)','$(tput setaf 2)384$(tput sgr0)','$(tput setaf 2)512$(tput sgr0)','$(tput setaf 2)1024$(tput sgr0)''$(tput setaf 2)32M$(tput sgr0)'"
|
echo " -y : '$(tput setaf 2)256$(tput sgr0)','$(tput setaf 2)384$(tput sgr0)','$(tput setaf 2)512$(tput sgr0)','$(tput setaf 2)1024$(tput sgr0)''$(tput setaf 2)32M$(tput sgr0)'"
|
||||||
echo
|
echo
|
||||||
@ -170,9 +172,8 @@ fi
|
|||||||
#Start: Check if new build is selected
|
#Start: Check if new build is selected
|
||||||
if [ "$new_build_flag" == "1" ]; then
|
if [ "$new_build_flag" == "1" ]; then
|
||||||
check_flag=1
|
check_flag=1
|
||||||
update_flag=1
|
|
||||||
fi
|
fi
|
||||||
if [ "$update_flag" == "1" ]; then
|
if [[ "$update_flag" == "1" || "$update_flag" == "2" ]]; then
|
||||||
check_flag=1
|
check_flag=1
|
||||||
fi
|
fi
|
||||||
#End: Check if new build is selected
|
#End: Check if new build is selected
|
||||||
@ -196,11 +197,13 @@ if [ ! -z $firmware_version_flag ]; then
|
|||||||
if [ ! -z $MK404_PRINTER_TEMP ]; then
|
if [ ! -z $MK404_PRINTER_TEMP ]; then
|
||||||
MK404_PRINTER=MK25S
|
MK404_PRINTER=MK25S
|
||||||
fi
|
fi
|
||||||
|
elif [[ ! -z $new_build_flag || ! -z $update_flag || ! -z $check_flag ]]; then
|
||||||
|
echo "continue"
|
||||||
else
|
else
|
||||||
failures 8
|
failures 8
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [ -z "$MK404_PRINTER" ]; then
|
if [[ -z $MK404_PRINTER && -z $new_build_flag && -z $update_flag && -z $check_flag ]]; then
|
||||||
failures 9
|
failures 9
|
||||||
fi
|
fi
|
||||||
|
|
||||||
@ -232,7 +235,7 @@ if [ ! -z $mk404_printer_flag ]; then
|
|||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [ -z $MK404_PRINTER ]; then
|
if [[ -z $MK404_PRINTER && -z $new_build_flag && -z $update_flag && -z $check_flag ]]; then
|
||||||
failures 10
|
failures 10
|
||||||
fi
|
fi
|
||||||
|
|
||||||
@ -399,38 +402,58 @@ if [ "$check_flag" == "1" ]; then
|
|||||||
# Get latest release
|
# Get latest release
|
||||||
MK404_release_url=$(curl -Ls -o /dev/null -w %{url_effective} https://github.com/$MK404_owner/$MK404_project/releases/latest)
|
MK404_release_url=$(curl -Ls -o /dev/null -w %{url_effective} https://github.com/$MK404_owner/$MK404_project/releases/latest)
|
||||||
MK404_release_tag=$(basename $MK404_release_url)
|
MK404_release_tag=$(basename $MK404_release_url)
|
||||||
# Get remote Commit_Hash
|
# Get release Commit_Hash
|
||||||
#MK404_remote_GIT_COMMIT_HASH=$(git ls-remote --heads $(git config --get remote.origin.url) | grep "refs/heads/master" | cut -f 1)
|
MK404_release_GIT_COMMIT_HASH=$(git ls-remote | grep "refs/tags/$MK404_release_tag" | cut -f 1)
|
||||||
MK404_remote_GIT_COMMIT_HASH=$(git ls-remote | grep "refs/tags/$MK404_release_tag" | cut -f 1)
|
# Get release Commit_Number
|
||||||
# Get remote Commit_Number
|
MK404_release_GIT_COMMIT_NUMBER=$(git rev-list $MK404_release_tag --count)
|
||||||
MK404_remote_GIT_COMMIT_NUMBER=$(git rev-list $MK404_release_tag --count)
|
# Get latest development Commit_Hash
|
||||||
|
MK404_devel_GIT_COMMIT_HASH=$(git for-each-ref refs/remotes/origin/master | cut -d" " -f 1)
|
||||||
|
# Get latest development Commit_Number
|
||||||
|
MK404_devel_GIT_COMMIT_NUMBER=$(git rev-list refs/remotes/origin/master --count)
|
||||||
# Output
|
# Output
|
||||||
echo ""
|
echo ""
|
||||||
echo "Current version : $MK404_current_version"
|
echo "Current version : $MK404_current_version"
|
||||||
echo ""
|
echo ""
|
||||||
echo "Current local hash : $MK404_local_GIT_COMMIT_HASH"
|
echo "Current local hash : $MK404_local_GIT_COMMIT_HASH"
|
||||||
echo "Current local commit nr : $MK404_local_GIT_COMMIT_NUMBER"
|
echo "Current local commit nr : $MK404_local_GIT_COMMIT_NUMBER"
|
||||||
if [ "$MK404_local_GIT_COMMIT_HASH" != "$MK404_remote_GIT_COMMIT_HASH" ]; then
|
if [ "$MK404_local_GIT_COMMIT_HASH" != "$MK404_release_GIT_COMMIT_HASH" ]; then
|
||||||
echo "$(tput setaf 1)"
|
echo "$(tput setaf 1)"
|
||||||
else
|
else
|
||||||
echo "$(tput setaf 2)"
|
echo "$(tput setaf 2)"
|
||||||
fi
|
fi
|
||||||
echo "Latest release tag : $MK404_release_tag"
|
echo "Latest release tag : $MK404_release_tag"
|
||||||
echo "Latest release hash : $MK404_remote_GIT_COMMIT_HASH"
|
echo "Latest release hash : $MK404_release_GIT_COMMIT_HASH"
|
||||||
echo "Latest remote commit nr : $MK404_remote_GIT_COMMIT_NUMBER"
|
echo "Latest release commit nr: $MK404_release_GIT_COMMIT_NUMBER"
|
||||||
|
if [ "$MK404_local_GIT_COMMIT_HASH" != "$MK404_devel_GIT_COMMIT_HASH" ]; then
|
||||||
|
echo "$(tput setaf 1)"
|
||||||
|
else
|
||||||
|
echo "$(tput setaf 2)"
|
||||||
|
fi
|
||||||
|
echo "Latest devel hash : $MK404_devel_GIT_COMMIT_HASH"
|
||||||
|
echo "Latest devel commit nr : $MK404_devel_GIT_COMMIT_NUMBER"
|
||||||
echo "$(tput sgr 0)"
|
echo "$(tput sgr 0)"
|
||||||
|
|
||||||
# Check for updates
|
# Check for updates
|
||||||
if [ ! -z $MK404_remote_GIT_COMMIT_HASH ]; then
|
if [ ! -z $MK404_release_GIT_COMMIT_HASH ]; then
|
||||||
if [[ "$MK404_local_GIT_COMMIT_HASH" != "$MK404_remote_GIT_COMMIT_HASH" && -z "$update_flag" ]]; then
|
if [[ "$MK404_local_GIT_COMMIT_HASH" != "$MK404_release_GIT_COMMIT_HASH" && -z "$update_flag" ]]; then
|
||||||
echo "$(tput setaf 2)Update is availible.$(tput sgr 0)"
|
echo "$(tput setaf 2)Update to release is availible.$(tput sgr 0)"
|
||||||
read -t 10 -n 1 -p "$(tput setaf 3)Update now Y/n$(tput sgr 0)" update_answer
|
read -t 10 -n 1 -p "$(tput setaf 3)Update to release now Y/n$(tput sgr 0)" update_answer
|
||||||
if [ "$update_answer" == "Y" ]; then
|
if [[ "$update_answer" == "Y" || "$update_answer" == "y" ]]; then
|
||||||
update_flag=1
|
update_flag=1
|
||||||
fi
|
fi
|
||||||
echo ""
|
echo ""
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
if [ ! -z $MK404_devel_GIT_COMMIT_HASH ]; then
|
||||||
|
if [[ "$MK404_local_GIT_COMMIT_HASH" != "$MK404_devel_GIT_COMMIT_HASH" && -z "$update_flag" ]]; then
|
||||||
|
echo "$(tput setaf 2)Update to devel is availible.$(tput sgr 0)"
|
||||||
|
read -t 10 -n 1 -p "$(tput setaf 3)Update to devel now Y/n$(tput sgr 0)" update_answer
|
||||||
|
if [[ "$update_answer" == "Y" || "$update_answer" == "y" ]]; then
|
||||||
|
update_flag=2
|
||||||
|
fi
|
||||||
|
echo ""
|
||||||
|
fi
|
||||||
|
fi
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
#### End: Check for updates
|
#### End: Check for updates
|
||||||
@ -439,14 +462,27 @@ fi
|
|||||||
fetch_updates()
|
fetch_updates()
|
||||||
{
|
{
|
||||||
if [ "$update_flag" == "1" ]; then
|
if [ "$update_flag" == "1" ]; then
|
||||||
if [ ! -z $MK404_remote_GIT_COMMIT_HASH ]; then
|
if [ ! -z $MK404_release_GIT_COMMIT_HASH ]; then
|
||||||
if [ "$MK404_local_GIT_COMMIT_HASH" != "$MK404_remote_GIT_COMMIT_HASH" ]; then
|
if [ "$MK404_local_GIT_COMMIT_HASH" != "$MK404_release_GIT_COMMIT_HASH" ]; then
|
||||||
echo ""
|
echo ""
|
||||||
git fetch --all
|
git fetch --all
|
||||||
read -t 10 -p "$(tput setaf 2)Updating MK404 !$(tput sgr 0)"
|
read -t 5 -p "$(tput setaf 2)Updating MK404 to release!$(tput sgr 0)"
|
||||||
echo ""
|
echo ""
|
||||||
git reset --hard $MK404_release_tag
|
git reset --hard $MK404_release_tag
|
||||||
read -t 10 -p "$(tput setaf 2)Compiling MK404 !$(tput sgr 0)"
|
read -t 5 -p "$(tput setaf 2)Compiling MK404 release!$(tput sgr 0)"
|
||||||
|
echo ""
|
||||||
|
new_build_flag=1
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
elif [ "$update_flag" == "2" ]; then
|
||||||
|
if [ ! -z $MK404_devel_GIT_COMMIT_HASH ]; then
|
||||||
|
if [ "$MK404_local_GIT_COMMIT_HASH" != "$MK404_devel_GIT_COMMIT_HASH" ]; then
|
||||||
|
echo ""
|
||||||
|
git fetch --all
|
||||||
|
read -t 5 -p "$(tput setaf 2)Updating MK404 to devel!$(tput sgr 0)"
|
||||||
|
echo ""
|
||||||
|
git reset --hard origin/master
|
||||||
|
read -t 5 -p "$(tput setaf 2)Compiling MK404 devel!$(tput sgr 0)"
|
||||||
echo ""
|
echo ""
|
||||||
new_build_flag=1
|
new_build_flag=1
|
||||||
fi
|
fi
|
||||||
|
16
PF-build.sh
16
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
|
# 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.
|
# it will use the default Arduino IDE folders and so can corrupt the build environment.
|
||||||
#
|
#
|
||||||
# Version: 2.0.0-Build_66
|
# Version: 2.0.0-Build_67
|
||||||
# Change log:
|
# 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'
|
# 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
|
# 16 Jan 2019, 3d-gussner, Build_2, Added development check to modify 'Configuration.h' to prevent unwanted LCD messages that Firmware is unknown
|
||||||
@ -166,6 +166,9 @@
|
|||||||
# 24 Jun 2021, 3d-gussner, Fix MK404 user interaction not to show if compiling 'All' variants
|
# 24 Jun 2021, 3d-gussner, Fix MK404 user interaction not to show if compiling 'All' variants
|
||||||
# 24 Jun 2021, 3d-gussner, MK404 is only supported on Linux at this moment.
|
# 24 Jun 2021, 3d-gussner, MK404 is only supported on Linux at this moment.
|
||||||
# 03 Jan 2022, 3d-gussner, Remove calling lang-community.sh as not needed anymore
|
# 03 Jan 2022, 3d-gussner, Remove calling lang-community.sh as not needed anymore
|
||||||
|
# 21 Jan 2022, 3d-gussner, Sort variants
|
||||||
|
# Add Arduino 1.8.19 as an option
|
||||||
|
# 25 Jan 2022, 3d-gussner, Allow upper and lower case for MK404
|
||||||
|
|
||||||
SCRIPT_PATH="$( cd "$(dirname "$0")" ; pwd -P )"
|
SCRIPT_PATH="$( cd "$(dirname "$0")" ; pwd -P )"
|
||||||
|
|
||||||
@ -221,7 +224,7 @@ while getopts b:c:d:g:h:i:j:l:m:n:o:p:v:x:y:?h flag
|
|||||||
# '?' 'h' argument usage and help
|
# '?' 'h' argument usage and help
|
||||||
if [ "$help_flag" == "1" ] ; then
|
if [ "$help_flag" == "1" ] ; then
|
||||||
echo "***************************************"
|
echo "***************************************"
|
||||||
echo "* PF-build.sh Version: 2.0.0-Build_66 *"
|
echo "* PF-build.sh Version: 2.0.0-Build_67 *"
|
||||||
echo "***************************************"
|
echo "***************************************"
|
||||||
echo "Arguments:"
|
echo "Arguments:"
|
||||||
echo "$(tput setaf 2)-b$(tput sgr0) Build/commit number"
|
echo "$(tput setaf 2)-b$(tput sgr0) Build/commit number"
|
||||||
@ -247,7 +250,7 @@ echo " -b : '$(tput setaf 2)Auto$(tput sgr0)' needs git or a number"
|
|||||||
echo " -c : '$(tput setaf 2)0$(tput sgr0)' clean up, '$(tput setaf 2)1$(tput sgr0)' keep"
|
echo " -c : '$(tput setaf 2)0$(tput sgr0)' clean up, '$(tput setaf 2)1$(tput sgr0)' keep"
|
||||||
echo " -d : '$(tput setaf 2)GOLD$(tput sgr0)', '$(tput setaf 2)RC$(tput sgr0)', '$(tput setaf 2)BETA$(tput sgr0)', '$(tput setaf 2)ALPHA$(tput sgr0)', '$(tput setaf 2)DEBUG$(tput sgr0)', '$(tput setaf 2)DEVEL$(tput sgr0)' and '$(tput setaf 2)UNKNOWN$(tput sgr0)'"
|
echo " -d : '$(tput setaf 2)GOLD$(tput sgr0)', '$(tput setaf 2)RC$(tput sgr0)', '$(tput setaf 2)BETA$(tput sgr0)', '$(tput setaf 2)ALPHA$(tput sgr0)', '$(tput setaf 2)DEBUG$(tput sgr0)', '$(tput setaf 2)DEVEL$(tput sgr0)' and '$(tput setaf 2)UNKNOWN$(tput sgr0)'"
|
||||||
echo " -g : '$(tput setaf 2)0$(tput sgr0)' no '$(tput setaf 2)1$(tput sgr0)' lite '$(tput setaf 2)2$(tput sgr0)' fancy '$(tput setaf 2)3$(tput sgr0)' lite with Quad_HR '$(tput setaf 2)4$(tput sgr0)' fancy with Quad_HR"
|
echo " -g : '$(tput setaf 2)0$(tput sgr0)' no '$(tput setaf 2)1$(tput sgr0)' lite '$(tput setaf 2)2$(tput sgr0)' fancy '$(tput setaf 2)3$(tput sgr0)' lite with Quad_HR '$(tput setaf 2)4$(tput sgr0)' fancy with Quad_HR"
|
||||||
echo " -i : '$(tput setaf 2)1.8.5$(tput sgr0)', '$(tput setaf 2)1.8.13$(tput sgr0)'"
|
echo " -i : '$(tput setaf 2)1.8.5$(tput sgr0)', '$(tput setaf 2)1.8.13$(tput sgr0)', '$(tput setaf 2)1.8.19$(tput sgr0)'"
|
||||||
echo " -j : '$(tput setaf 2)0$(tput sgr0)' no, '$(tput setaf 2)1$(tput sgr0)' yes"
|
echo " -j : '$(tput setaf 2)0$(tput sgr0)' no, '$(tput setaf 2)1$(tput sgr0)' yes"
|
||||||
echo " -l : '$(tput setaf 2)ALL$(tput sgr0)' for multi language or '$(tput setaf 2)EN_ONLY$(tput sgr0)' for English only"
|
echo " -l : '$(tput setaf 2)ALL$(tput sgr0)' for multi language or '$(tput setaf 2)EN_ONLY$(tput sgr0)' for English only"
|
||||||
echo " -m : '$(tput setaf 2)0$(tput sgr0)' no, '$(tput setaf 2)1$(tput sgr0)' yes '$(tput setaf 2)2$(tput sgr0)' with MMU2"
|
echo " -m : '$(tput setaf 2)0$(tput sgr0)' no, '$(tput setaf 2)1$(tput sgr0)' yes '$(tput setaf 2)2$(tput sgr0)' with MMU2"
|
||||||
@ -343,7 +346,7 @@ fi
|
|||||||
|
|
||||||
#Start: Check if Arduino IDE version is correct
|
#Start: Check if Arduino IDE version is correct
|
||||||
if [ ! -z "$IDE_flag" ]; then
|
if [ ! -z "$IDE_flag" ]; then
|
||||||
if [[ "$IDE_flag" == "1.8.5" || "$IDE_flag" == "1.8.13" ]]; then
|
if [[ "$IDE_flag" == "1.8.5" || "$IDE_flag" == "1.8.13" || "$IDE_flag" == "1.8.19" ]]; then
|
||||||
ARDUINO_ENV="${IDE_flag}"
|
ARDUINO_ENV="${IDE_flag}"
|
||||||
else
|
else
|
||||||
ARDUINO_ENV="1.8.5"
|
ARDUINO_ENV="1.8.5"
|
||||||
@ -818,7 +821,8 @@ if [ -z "$variant_flag" ] ; then
|
|||||||
while IFS= read -r -d $'\0' f; do
|
while IFS= read -r -d $'\0' f; do
|
||||||
options[i++]="$f"
|
options[i++]="$f"
|
||||||
done < <(find Firmware/variants/ -maxdepth 1 -type f -name "*.h" -print0 )
|
done < <(find Firmware/variants/ -maxdepth 1 -type f -name "*.h" -print0 )
|
||||||
select opt in "${options[@]}" "All" "Quit"; do
|
IFS=$'\n' sorted=($(sort -n <<<"${options[*]}")); unset IFS
|
||||||
|
select opt in "${sorted[@]}" "All" "Quit"; do
|
||||||
case $opt in
|
case $opt in
|
||||||
*.h)
|
*.h)
|
||||||
VARIANT=$(basename "$opt" ".h")
|
VARIANT=$(basename "$opt" ".h")
|
||||||
@ -1453,7 +1457,7 @@ if [[ "$output_flag" == "1" || -z "$output_flag" ]]; then
|
|||||||
if [[ -z "$mk404_flag" && "$variant_flag" != "All" ]]; then
|
if [[ -z "$mk404_flag" && "$variant_flag" != "All" ]]; then
|
||||||
echo
|
echo
|
||||||
read -t 10 -n 1 -p "Do you want to start MK404? Y/$(tput setaf 2)n$(tput sgr 0)" mk404_start
|
read -t 10 -n 1 -p "Do you want to start MK404? Y/$(tput setaf 2)n$(tput sgr 0)" mk404_start
|
||||||
if [ "$mk404_start" == "Y" ]; then
|
if [[ "$mk404_start" == "Y" || "$mk404_start" == "y" ]]; then
|
||||||
echo
|
echo
|
||||||
read -t 10 -n 1 -p "Do you want to start MK404 with or without MMU2S? $(tput setaf 2)1$(tput sgr 0)/2" mk404_choose1
|
read -t 10 -n 1 -p "Do you want to start MK404 with or without MMU2S? $(tput setaf 2)1$(tput sgr 0)/2" mk404_choose1
|
||||||
if [ "$mk404_choose1" == "1" ]; then
|
if [ "$mk404_choose1" == "1" ]; then
|
||||||
|
@ -1,20 +1,43 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
#
|
#
|
||||||
|
# Version 1.0.1 Build 9
|
||||||
|
#
|
||||||
# config.sh - multi-language support configuration script
|
# config.sh - multi-language support configuration script
|
||||||
# Definition of absolute paths etc.
|
# Definition of absolute paths etc.
|
||||||
# This file is 'included' in all scripts.
|
# This file is 'included' in all scripts.
|
||||||
#
|
#
|
||||||
|
#############################################################################
|
||||||
|
# Change log:
|
||||||
|
# 31 May 2018, XPila, Initial
|
||||||
|
# 17 Dec. 2021, 3d-gussner, Change default Arduino path to by PF-build.sh
|
||||||
|
# created one
|
||||||
|
# Prepare to use one config file for all languages
|
||||||
|
# 11 Jan. 2022, 3d-gussner, Added version and Change log colored output
|
||||||
|
# Use `git rev-list --count HEAD config.sh`
|
||||||
|
# to get Build Nr
|
||||||
|
# Check if variables are set by other scripts
|
||||||
|
# and use these. More flexible for different build
|
||||||
|
# scripts
|
||||||
|
# Check correctly if files or dirs exist
|
||||||
|
#############################################################################
|
||||||
|
#
|
||||||
# Arduino main folder:
|
# Arduino main folder:
|
||||||
if [ -z "$ARDUINO" ]; then
|
if [ -z "$ARDUINO" ]; then
|
||||||
export ARDUINO=../../PF-build-env-1.0.6/1.8.5-1.0.4-linux-64 #C:/arduino-1.8.5
|
export ARDUINO=../../PF-build-env-1.0.6/1.8.5-1.0.4-linux-64 #C:/arduino-1.8.5
|
||||||
fi
|
fi
|
||||||
#
|
#
|
||||||
# Arduino builder:
|
# Arduino builder:
|
||||||
export BUILDER=$ARDUINO/arduino-builder
|
if [ -z "$BUILDER" ]; then
|
||||||
|
export BUILDER=$ARDUINO/arduino-builder
|
||||||
|
fi
|
||||||
#
|
#
|
||||||
# AVR gcc tools:
|
# AVR gcc tools:
|
||||||
export OBJCOPY=$ARDUINO/hardware/tools/avr/bin/avr-objcopy
|
if [ -z "$OBJCOPY" ]; then
|
||||||
export OBJDUMP=$ARDUINO/hardware/tools/avr/bin/avr-objdump
|
export OBJCOPY=$ARDUINO/hardware/tools/avr/bin/avr-objcopy
|
||||||
|
fi
|
||||||
|
if [ -z "$OBJDUMP" ]; then
|
||||||
|
export OBJDUMP=$ARDUINO/hardware/tools/avr/bin/avr-objdump
|
||||||
|
fi
|
||||||
#
|
#
|
||||||
# Output folder:
|
# Output folder:
|
||||||
if [ -z "$OUTDIR" ]; then
|
if [ -z "$OUTDIR" ]; then
|
||||||
@ -22,13 +45,19 @@ if [ -z "$OUTDIR" ]; then
|
|||||||
fi
|
fi
|
||||||
#
|
#
|
||||||
# Objects folder:
|
# Objects folder:
|
||||||
export OBJDIR="$OUTDIR/sketch"
|
if [ -z "$OBJDIR" ]; then
|
||||||
|
export OBJDIR="$OUTDIR/sketch"
|
||||||
|
fi
|
||||||
#
|
#
|
||||||
# Generated elf file:
|
# Generated elf file:
|
||||||
export INOELF="$OUTDIR/Firmware.ino.elf"
|
if [ -z "$INOELF" ]; then
|
||||||
|
export INOELF="$OUTDIR/Firmware.ino.elf"
|
||||||
|
fi
|
||||||
#
|
#
|
||||||
# Generated hex file:
|
# Generated hex file:
|
||||||
export INOHEX="$OUTDIR/Firmware.ino.hex"
|
if [ -z "$INOHEX" ]; then
|
||||||
|
export INOHEX="$OUTDIR/Firmware.ino.hex"
|
||||||
|
fi
|
||||||
#
|
#
|
||||||
# Set default languages
|
# Set default languages
|
||||||
if [ -z "$LANGUAGES" ]; then
|
if [ -z "$LANGUAGES" ]; then
|
||||||
@ -54,44 +83,44 @@ if [ -z "$COMMUNITY_LANGUAGES" ]; then
|
|||||||
export COMMUNITY_LANGUAGES="$COMMUNITY_LANGUAGES"
|
export COMMUNITY_LANGUAGES="$COMMUNITY_LANGUAGES"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
echo "config.sh started" >&2
|
echo "$(tput setaf 2)config.sh started$(tput sgr0)" >&2
|
||||||
|
|
||||||
_err=0
|
_err=0
|
||||||
|
|
||||||
echo -n " Arduino main folder: " >&2
|
echo -n " Arduino main folder: " >&2
|
||||||
if [ -e $ARDUINO ]; then echo 'OK' >&2; else echo 'NG!' >&2; _err=1; fi
|
if [ -d $ARDUINO ]; then echo "$(tput setaf 2)OK$(tput sgr0)" >&2; else echo "$(tput setaf 1)NG!$(tput sgr0)" >&2; _err=1; fi
|
||||||
|
|
||||||
echo -n " Arduino builder: " >&2
|
echo -n " Arduino builder: " >&2
|
||||||
if [ -e $BUILDER ]; then echo 'OK' >&2; else echo 'NG!' >&2; _err=2; fi
|
if [ -e $BUILDER ]; then echo "$(tput setaf 2)OK$(tput sgr0)" >&2; else echo "$(tput setaf 1)NG!$(tput sgr0)" >&2; _err=2; fi
|
||||||
|
|
||||||
echo " AVR gcc tools:" >&2
|
echo " AVR gcc tools:" >&2
|
||||||
echo -n " objcopy " >&2
|
echo -n " objcopy " >&2
|
||||||
if [ -e $OBJCOPY ]; then echo 'OK' >&2; else echo 'NG!' >&2; _err=3; fi
|
if [ -e $OBJCOPY ]; then echo "$(tput setaf 2)OK$(tput sgr0)" >&2; else echo "$(tput setaf 1)NG!$(tput sgr0)" >&2; _err=3; fi
|
||||||
echo -n " objdump " >&2
|
echo -n " objdump " >&2
|
||||||
if [ -e $OBJDUMP ]; then echo 'OK' >&2; else echo 'NG!' >&2; _err=4; fi
|
if [ -e $OBJDUMP ]; then echo "$(tput setaf 2)OK$(tput sgr0)" >&2; else echo "$(tput setaf 1)NG!$(tput sgr0)" >&2; _err=4; fi
|
||||||
|
|
||||||
echo -n " Output folder: " >&2
|
echo -n " Output folder: " >&2
|
||||||
if [ -e $OUTDIR ]; then echo 'OK' >&2; else echo 'NG!' >&2; _err=5; fi
|
if [ -d $OUTDIR ]; then echo "$(tput setaf 2)OK$(tput sgr0)" >&2; else echo "$(tput setaf 1)NG!$(tput sgr0)" >&2; _err=5; fi
|
||||||
|
|
||||||
echo -n " Objects folder: " >&2
|
echo -n " Objects folder: " >&2
|
||||||
if [ -e $OBJDIR ]; then echo 'OK' >&2; else echo 'NG!' >&2; _err=6; fi
|
if [ -d $OBJDIR ]; then echo "$(tput setaf 2)OK$(tput sgr0)" >&2; else echo "$(tput setaf 1)NG!$(tput sgr0)" >&2; _err=6; fi
|
||||||
|
|
||||||
echo -n " Generated elf file: " >&2
|
echo -n " Generated elf file: " >&2
|
||||||
if [ -e $INOELF ]; then echo 'OK' >&2; else echo 'NG!' >&2; _err=7; fi
|
if [ -e $INOELF ]; then echo "$(tput setaf 2)OK$(tput sgr0)" >&2; else echo "$(tput setaf 1)NG!$(tput sgr0)" >&2; _err=7; fi
|
||||||
|
|
||||||
echo -n " Generated hex file: " >&2
|
echo -n " Generated hex file: " >&2
|
||||||
if [ -e $INOHEX ]; then echo 'OK' >&2; else echo 'NG!' >&2; _err=8; fi
|
if [ -e $INOHEX ]; then echo "$(tput setaf 2)OK$(tput sgr0)" >&2; else echo "$(tput setaf 1)NG!$(tput sgr0)" >&2; _err=8; fi
|
||||||
|
|
||||||
echo -n " Languages: " >&2
|
echo -n " Languages: " >&2
|
||||||
echo "$LANGUAGES" >&2
|
echo "$(tput setaf 2)$LANGUAGES$(tput sgr0)" >&2
|
||||||
|
|
||||||
echo -n " Community languages: " >&2
|
echo -n " Community languages: " >&2
|
||||||
echo "$COMMUNITY_LANGUAGES" >&2
|
echo "$(tput setaf 2)$COMMUNITY_LANGUAGES$(tput sgr0)" >&2
|
||||||
|
|
||||||
if [ $_err -eq 0 ]; then
|
if [ $_err -eq 0 ]; then
|
||||||
echo "config.sh finished with success" >&2
|
echo "$(tput setaf 2)config.sh finished with success$(tput sgr0)" >&2
|
||||||
export CONFIG_OK=1
|
export CONFIG_OK=1
|
||||||
else
|
else
|
||||||
echo "config.sh finished with errors!" >&2
|
echo "$(tput setaf 1)config.sh finished with errors!$(tput sgr0)" >&2
|
||||||
export CONFIG_OK=0
|
export CONFIG_OK=0
|
||||||
fi
|
fi
|
||||||
|
105
lang/fw-build.sh
105
lang/fw-build.sh
@ -1,5 +1,7 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
#
|
#
|
||||||
|
# Version 1.0.2 Build 12
|
||||||
|
#
|
||||||
# postbuild.sh - multi-language support script
|
# postbuild.sh - multi-language support script
|
||||||
# Generate binary with secondary language.
|
# Generate binary with secondary language.
|
||||||
#
|
#
|
||||||
@ -17,17 +19,32 @@
|
|||||||
# $PROGMEM.txt
|
# $PROGMEM.txt
|
||||||
# textaddr.txt
|
# textaddr.txt
|
||||||
#
|
#
|
||||||
|
#############################################################################
|
||||||
|
# Change log:
|
||||||
|
# 31 May 2018, XPila, Initial
|
||||||
|
# 17 Dec. 2021, 3d-gussner, Use one config file for all languages
|
||||||
|
# 11 Jan. 2022, 3d-gussner, Add check for not translated messages using a
|
||||||
|
# parameter
|
||||||
|
# Added version and Change log
|
||||||
|
# colored output
|
||||||
|
# Add Community language support
|
||||||
|
# Use `git rev-list --count HEAD fw-build.sh`
|
||||||
|
# to get Build Nr
|
||||||
|
#############################################################################
|
||||||
#
|
#
|
||||||
# Config:
|
# Config:
|
||||||
if [ -z "$CONFIG_OK" ]; then eval "$(cat config.sh)"; fi
|
if [ -z "$CONFIG_OK" ]; then eval "$(cat config.sh)"; fi
|
||||||
if [ -z "$CONFIG_OK" ] | [ $CONFIG_OK -eq 0 ]; then echo 'Config NG!' >&2; exit 1; fi
|
if [ -z "$CONFIG_OK" ] | [ $CONFIG_OK -eq 0 ]; then echo "$(tput setaf 1)Config NG!$(tput sgr0)" >&2; exit 1; fi
|
||||||
#
|
#
|
||||||
# Selected language:
|
# Selected language:
|
||||||
LNG=$1
|
LNG=$1
|
||||||
#if [ -z "$LNG" ]; then LNG='cz'; fi
|
|
||||||
#
|
#Set default to ignore missing text
|
||||||
# Params:
|
CHECK_MISSING_TEXT=0
|
||||||
IGNORE_MISSING_TEXT=1
|
#Check if script should check for missing messages in the source code aren't translated by using parameter "--check-missing-text"
|
||||||
|
if [ "$1" = "--check-missing-text" ]; then
|
||||||
|
CHECK_MISSING_TEXT=1
|
||||||
|
fi
|
||||||
|
|
||||||
# List of supported languages
|
# List of supported languages
|
||||||
if [ -z "$LANGUAGES" ]; then
|
if [ -z "$LANGUAGES" ]; then
|
||||||
@ -38,15 +55,16 @@ fi
|
|||||||
if [ ! -z "$COMMUNITY_LANGUAGES" ]; then
|
if [ ! -z "$COMMUNITY_LANGUAGES" ]; then
|
||||||
LANGUAGES+=" $COMMUNITY_LANGUAGES"
|
LANGUAGES+=" $COMMUNITY_LANGUAGES"
|
||||||
fi
|
fi
|
||||||
echo "fw-build languages:$LANGUAGES" >&2
|
echo "$(tput setaf 2)fw-build.sh started$(tput sgr 0)" >&2
|
||||||
|
echo "fw-build languages:$(tput setaf 2)$LANGUAGES$(tput sgr 0)" >&2
|
||||||
|
|
||||||
finish()
|
finish()
|
||||||
{
|
{
|
||||||
echo
|
echo
|
||||||
if [ "$1" = "0" ]; then
|
if [ "$1" = "0" ]; then
|
||||||
echo "postbuild.sh finished with success" >&2
|
echo "$(tput setaf 2)fw-build.sh finished with success$(tput sgr 0)" >&2
|
||||||
else
|
else
|
||||||
echo "postbuild.sh finished with errors!" >&2
|
echo "$(tput setaf 1)fw-build.sh finished with errors!$(tput sgr 0)" >&2
|
||||||
fi
|
fi
|
||||||
case "$-" in
|
case "$-" in
|
||||||
*i*) echo "press enter key"; read ;;
|
*i*) echo "press enter key"; read ;;
|
||||||
@ -54,48 +72,48 @@ finish()
|
|||||||
exit $1
|
exit $1
|
||||||
}
|
}
|
||||||
|
|
||||||
echo "postbuild.sh started" >&2
|
|
||||||
|
|
||||||
#check input files
|
#check input files
|
||||||
echo " checking files:" >&2
|
echo " checking files:" >&2
|
||||||
if [ ! -e $OUTDIR ]; then echo " folder '$OUTDIR' not found!" >&2; finish 1; fi
|
if [ ! -e $OUTDIR ]; then echo "$(tput setaf 1) folder '$OUTDIR' not found!$(tput sgr 0)" >&2; finish 1; fi
|
||||||
echo " folder OK" >&2
|
echo "$(tput setaf 2) folder OK$(tput sgr 0)" >&2
|
||||||
if [ ! -e $INOELF ]; then echo " elf file '$INOELF' not found!" >&2; finish 1; fi
|
if [ ! -e $INOELF ]; then echo "$(tput setaf 1) elf file '$INOELF' not found!$(tput sgr 0)" >&2; finish 1; fi
|
||||||
echo " elf OK" >&2
|
echo "$(tput setaf 2) elf OK$(tput sgr 0)" >&2
|
||||||
if ! ls $OBJDIR/*.o >/dev/null 2>&1; then echo " no object files in '$OBJDIR/'!" >&2; finish 1; fi
|
if ! ls $OBJDIR/*.o >/dev/null 2>&1; then echo "$(tput setaf 1) no object files in '$OBJDIR/'!$(tput sgr 0)" >&2; finish 1; fi
|
||||||
echo " objects OK" >&2
|
echo "$(tput setaf 2) objects OK$(tput sgr 0)" >&2
|
||||||
|
|
||||||
#run progmem.sh - examine content of progmem1
|
#run progmem.sh - examine content of progmem1
|
||||||
echo -n " running progmem.sh..." >&2
|
echo -n " running progmem.sh..." >&2
|
||||||
./progmem.sh 1 2>progmem.out
|
./progmem.sh 1 2>progmem.out
|
||||||
if [ $? -ne 0 ]; then echo "NG! - check progmem.out file" >&2; finish 1; fi
|
if [ $? -ne 0 ]; then echo "$(tput setaf 1)NG! - check progmem.out file$(tput sgr 0)" >&2; finish 1; fi
|
||||||
echo "OK" >&2
|
echo "$(tput setaf 2)OK$(tput sgr 0)" >&2
|
||||||
|
|
||||||
#run textaddr.sh - map progmem addreses to text identifiers
|
#run textaddr.sh - map progmem addreses to text identifiers
|
||||||
echo -n " running textaddr.sh..." >&2
|
echo -n " running textaddr.sh..." >&2
|
||||||
./textaddr.sh 2>textaddr.out
|
./textaddr.sh 2>textaddr.out
|
||||||
if [ $? -ne 0 ]; then echo "NG! - check progmem.out file" >&2; finish 1; fi
|
if [ $? -ne 0 ]; then echo "$(tput setaf 1)NG! - check progmem.out file$(tput sgr 0)" >&2; finish 1; fi
|
||||||
echo "OK" >&2
|
echo "$(tput setaf 2)OK$(tput sgr 0)" >&2
|
||||||
|
|
||||||
#check for messages declared in progmem1, but not found in lang_en.txt
|
#check for messages declared in progmem1, but not found in lang_en.txt
|
||||||
echo -n " checking textaddr.txt..." >&2
|
echo -n " checking textaddr.txt..." >&2
|
||||||
cat textaddr.txt | grep "^TEXT NF" | sed "s/[^\"]*\"//;s/\"$//" >not_used.txt
|
cat textaddr.txt | grep "^TEXT NF" | sed "s/[^\"]*\"//;s/\"$//" >not_used.txt
|
||||||
cat textaddr.txt | grep "^ADDR NF" | sed "s/[^\"]*\"//;s/\"$//" >not_tran.txt
|
cat textaddr.txt | grep "^ADDR NF" | sed "s/[^\"]*\"//;s/\"$//" >not_tran.txt
|
||||||
if cat textaddr.txt | grep "^ADDR NF" >/dev/null; then
|
if cat textaddr.txt | grep "^ADDR NF" >/dev/null; then
|
||||||
echo "NG! - some texts not found in lang_en.txt!"
|
echo "$(tput setaf 1)NG! - some texts not found in lang_en.txt!$(tput sgr 0)"
|
||||||
if [ $IGNORE_MISSING_TEXT -eq 0 ]; then
|
if [ $CHECK_MISSING_TEXT -eq 1 ]; then
|
||||||
|
echo "$(tput setaf 1)Missing text found, please update the language files!$(tput setaf 6)" >&2
|
||||||
|
cat not_tran.txt >&2
|
||||||
finish 1
|
finish 1
|
||||||
else
|
else
|
||||||
echo " missing text ignored!" >&2
|
echo "$(tput setaf 3) missing text ignored!$(tput sgr 0)" >&2
|
||||||
fi
|
fi
|
||||||
else
|
else
|
||||||
echo "OK" >&2
|
echo "$(tput setaf 2)OK$(tput sgr 0)" >&2
|
||||||
fi
|
fi
|
||||||
|
|
||||||
#extract binary file
|
#extract binary file
|
||||||
echo -n " extracting binary..." >&2
|
echo -n " extracting binary..." >&2
|
||||||
$OBJCOPY -I ihex -O binary $INOHEX ./firmware.bin
|
$OBJCOPY -I ihex -O binary $INOHEX ./firmware.bin
|
||||||
echo "OK" >&2
|
echo "$(tput setaf 2)OK$(tput sgr 0)" >&2
|
||||||
|
|
||||||
#update binary file
|
#update binary file
|
||||||
echo " updating binary:" >&2
|
echo " updating binary:" >&2
|
||||||
@ -107,14 +125,14 @@ cat textaddr.txt | grep "^ADDR OK" | cut -f3- -d' ' | sed "s/^0000/0x/" |\
|
|||||||
while read addr data; do
|
while read addr data; do
|
||||||
/bin/echo -n -e $data | dd of=./firmware.bin bs=1 count=2 seek=$addr conv=notrunc oflag=nonblock 2>/dev/null
|
/bin/echo -n -e $data | dd of=./firmware.bin bs=1 count=2 seek=$addr conv=notrunc oflag=nonblock 2>/dev/null
|
||||||
done
|
done
|
||||||
echo "OK" >&2
|
echo "$(tput setaf 2)OK$(tput sgr 0)" >&2
|
||||||
|
|
||||||
#update primary language signature in binary file
|
#update primary language signature in binary file
|
||||||
echo -n " primary language signature..." >&2
|
echo -n " primary language signature..." >&2
|
||||||
if [ -e lang_en.bin ]; then
|
if [ -e lang_en.bin ]; then
|
||||||
#find symbol _PRI_LANG_SIGNATURE in section '.text'
|
#find symbol _PRI_LANG_SIGNATURE in section '.text'
|
||||||
pri_lang=$(cat text.sym | grep -E "\b_PRI_LANG_SIGNATURE\b")
|
pri_lang=$(cat text.sym | grep -E "\b_PRI_LANG_SIGNATURE\b")
|
||||||
if [ -z "$pri_lang" ]; then echo "NG!\n symbol _PRI_LANG_SIGNATURE not found!" >&2; finish 1; fi
|
if [ -z "$pri_lang" ]; then echo "$(tput setaf 1)NG!\n symbol _PRI_LANG_SIGNATURE not found!$(tput sgr 0)" >&2; finish 1; fi
|
||||||
#get pri_lang address
|
#get pri_lang address
|
||||||
pri_lang_addr='0x'$(echo $pri_lang | cut -f1 -d' ')
|
pri_lang_addr='0x'$(echo $pri_lang | cut -f1 -d' ')
|
||||||
#read header from primary language binary file
|
#read header from primary language binary file
|
||||||
@ -123,31 +141,32 @@ if [ -e lang_en.bin ]; then
|
|||||||
chscnt=$(echo $header | cut -c18-29 | sed "s/ /\\\\x/g")
|
chscnt=$(echo $header | cut -c18-29 | sed "s/ /\\\\x/g")
|
||||||
/bin/echo -e -n "$chscnt" |\
|
/bin/echo -e -n "$chscnt" |\
|
||||||
dd of=firmware.bin bs=1 count=4 seek=$(($pri_lang_addr)) conv=notrunc 2>/dev/null
|
dd of=firmware.bin bs=1 count=4 seek=$(($pri_lang_addr)) conv=notrunc 2>/dev/null
|
||||||
echo "OK" >&2
|
echo "$(tput setaf 2)OK$(tput sgr 0)" >&2
|
||||||
else
|
else
|
||||||
echo "NG! - file lang_en.bin not found!" >&2;
|
echo "$(tput setaf 1)NG! - file lang_en.bin not found!$(tput sgr 0)" >&2;
|
||||||
finish 1
|
finish 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
#convert bin to hex
|
#convert bin to hex
|
||||||
echo -n " converting to hex..." >&2
|
echo -n " converting primary to hex..." >&2
|
||||||
$OBJCOPY -I binary -O ihex ./firmware.bin ./firmware.hex
|
$OBJCOPY -I binary -O ihex ./firmware.bin ./firmware.hex
|
||||||
echo "OK" >&2
|
echo "$(tput setaf 2)OK$(tput sgr 0)" >&2
|
||||||
|
|
||||||
#update _SEC_LANG in binary file if language is selected
|
#update _SEC_LANG in binary file if language is selected
|
||||||
echo -n " secondary language data..." >&2
|
echo -n " secondary language data..." >&2
|
||||||
if [ ! -z "$LNG" ]; then
|
if [ ! -z "$LNG" ]; then
|
||||||
./update_lang.sh $LNG 2>./update_lang.out
|
./update_lang.sh $LNG 2>./update_lang.out
|
||||||
if [ $? -ne 0 ]; then echo "NG! - check update_lang.out file" >&2; finish 1; fi
|
if [ $? -ne 0 ]; then echo "$(tput setaf 1)NG! - check update_lang.out file$(tput sgr 0)" >&2; finish 1; fi
|
||||||
echo "OK" >&2
|
echo "$(tput setaf 2)OK$(tput sgr 0)" >&2
|
||||||
finish 0
|
finish 0
|
||||||
else
|
else
|
||||||
echo "Updating languages:" >&2
|
echo >&2
|
||||||
|
echo " Updating languages:" >&2
|
||||||
for lang in $LANGUAGES; do
|
for lang in $LANGUAGES; do
|
||||||
if [ -e lang_$lang.bin ]; then
|
if [ -e lang_$lang.bin ]; then
|
||||||
echo -n " $lang : " >&2
|
echo -n " $lang : " >&2
|
||||||
./update_lang.sh $lang 2>./update_lang_$lang.out 1>/dev/null
|
./update_lang.sh $lang 2>./update_lang_$lang.out 1>/dev/null
|
||||||
if [ $? -eq 0 ]; then echo 'OK' >&2; else echo 'NG!' >&2; finish 1; fi
|
if [ $? -eq 0 ]; then echo "$(tput setaf 2)OK$(tput sgr 0)" >&2; else echo "$(tput setaf 1)NG!$(tput sgr 0)" >&2; finish 1; fi
|
||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
fi
|
fi
|
||||||
@ -166,17 +185,23 @@ lang_size_pad=$(( ($lang_size+4096-1) / 4096 * 4096 ))
|
|||||||
# TODO: hard-coded! get value by preprocessing LANG_SIZE from xflash_layout.h!
|
# TODO: hard-coded! get value by preprocessing LANG_SIZE from xflash_layout.h!
|
||||||
lang_reserved=249856
|
lang_reserved=249856
|
||||||
|
|
||||||
echo " total size usage: $lang_size_pad ($lang_size)"
|
echo -n " total size usage: " >&2
|
||||||
echo " reserved size: $lang_reserved"
|
|
||||||
if [ $lang_size_pad -gt $lang_reserved ]; then
|
if [ $lang_size_pad -gt $lang_reserved ]; then
|
||||||
echo "NG! - language data too large" >&2
|
echo -n "$(tput setaf 1)" >&2
|
||||||
|
else
|
||||||
|
echo -n "$(tput setaf 2)" >&2
|
||||||
|
fi
|
||||||
|
echo "$lang_size_pad ($lang_size)$(tput sgr 0)" >&2
|
||||||
|
echo " reserved size: $(tput setaf 2)$lang_reserved$(tput sgr 0)" >&2
|
||||||
|
if [ $lang_size_pad -gt $lang_reserved ]; then
|
||||||
|
echo "$(tput setaf 1)NG! - language data too large$(tput sgr 0)" >&2
|
||||||
finish 1
|
finish 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
#convert lang.bin to lang.hex
|
#convert lang.bin to lang.hex
|
||||||
echo -n " converting to hex..." >&2
|
echo -n " converting multi language to hex..." >&2
|
||||||
$OBJCOPY -I binary -O ihex ./lang.bin ./lang.hex
|
$OBJCOPY -I binary -O ihex ./lang.bin ./lang.hex
|
||||||
echo "OK" >&2
|
echo "$(tput setaf 2)OK$(tput sgr 0)" >&2
|
||||||
|
|
||||||
#append languages to hex file
|
#append languages to hex file
|
||||||
cat ./lang.hex >> firmware.hex
|
cat ./lang.hex >> firmware.hex
|
||||||
|
@ -1,34 +1,53 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
#
|
#
|
||||||
|
# Version 1.0.1 Build 11
|
||||||
|
#
|
||||||
# fw-clean.sh - multi-language support script
|
# fw-clean.sh - multi-language support script
|
||||||
# Remove all firmware output files from lang folder.
|
# Remove all firmware output files from lang folder.
|
||||||
#
|
#
|
||||||
|
#############################################################################
|
||||||
|
# Change log:
|
||||||
|
# 21 June 2018, XPila, Initial
|
||||||
|
# 11 Sep. 2018, XPila, Lang update, french translation
|
||||||
|
# resized reserved space
|
||||||
|
# 18 Oct. 2018, XPila, New lang, arduino 1.8.5 - fw-clean.sh and lang-clean.sh fix
|
||||||
|
# 10 Dec. 2018, jhoblitt, make all shell scripts executable
|
||||||
|
# 26 Jul. 2019, leptun, Fix shifted languages. Use \n and \x0a
|
||||||
|
# 14 Sep. 2019, 3d-gussner, Prepare adding new language
|
||||||
|
# 01 Mar. 2021, 3d-gussner, Move `Dutch` language parts
|
||||||
|
# 22 Mar. 2021, 3d-gussner, Move Dutch removing part to correct loaction
|
||||||
|
# 17 Dec. 2021, 3d-gussner, Use one config file for all languages
|
||||||
|
# 11 Jan. 2022, 3d-gussner, Added version and Change log
|
||||||
|
# colored output
|
||||||
|
# Use `git rev-list --count HEAD fw-clean.sh`
|
||||||
|
# to get Build Nr
|
||||||
|
# 25 Jan. 2022, 3d-gussner, Update documentation
|
||||||
|
#############################################################################
|
||||||
# Config:
|
# Config:
|
||||||
if [ -z "$CONFIG_OK" ]; then eval "$(cat config.sh)"; fi
|
if [ -z "$CONFIG_OK" ]; then eval "$(cat config.sh)"; fi
|
||||||
if [ -z "$CONFIG_OK" ] | [ $CONFIG_OK -eq 0 ]; then echo 'Config NG!' >&2; exit 1; fi
|
if [ -z "$CONFIG_OK" ] | [ $CONFIG_OK -eq 0 ]; then echo "$(tput setaf 1)Config NG!$(tput sgr0)" >&2; exit 1; fi
|
||||||
|
|
||||||
if [ ! -z "$COMMUNITY_LANGUAGES" ]; then
|
if [ ! -z "$COMMUNITY_LANGUAGES" ]; then
|
||||||
LANGUAGES+=" $COMMUNITY_LANGUAGES"
|
LANGUAGES+=" $COMMUNITY_LANGUAGES"
|
||||||
fi
|
fi
|
||||||
echo "fw-clean languages:$LANGUAGES" >&2
|
echo "$(tput setaf 2)fw-clean.sh started$(tput sgr0)" >&2
|
||||||
|
echo "fw-clean languages:$(tput setaf 2)$LANGUAGES$(tput sgr0)" >&2
|
||||||
|
|
||||||
result=0
|
result=0
|
||||||
|
|
||||||
rm_if_exists()
|
rm_if_exists()
|
||||||
{
|
{
|
||||||
if [ -e $1 ]; then
|
if [ -e $1 ]; then
|
||||||
echo -n " removing '$1'..." >&2
|
echo -n "$(tput sgr0) removing $(tput sgr0) '$1'..." >&2
|
||||||
if rm $1; then
|
if rm $1; then
|
||||||
echo "OK" >&2
|
echo "$(tput setaf 2)OK$(tput sgr0)" >&2
|
||||||
else
|
else
|
||||||
echo "NG!" >&2
|
echo "$(tput setaf 1)NG!$(tput sgr0)" >&2
|
||||||
result=1
|
result=1
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
echo "fw-clean.sh started" >&2
|
|
||||||
|
|
||||||
rm_if_exists text.sym
|
rm_if_exists text.sym
|
||||||
rm_if_exists progmem1.sym
|
rm_if_exists progmem1.sym
|
||||||
@ -52,11 +71,10 @@ for lang in $LANGUAGES; do
|
|||||||
rm_if_exists update_lang_$lang.out
|
rm_if_exists update_lang_$lang.out
|
||||||
done
|
done
|
||||||
|
|
||||||
echo -n "fw-clean.sh finished" >&2
|
|
||||||
if [ $result -eq 0 ]; then
|
if [ $result -eq 0 ]; then
|
||||||
echo " with success" >&2
|
echo "$(tput setaf 2)fw-clean.sh finished with success$(tput sgr0)" >&2
|
||||||
else
|
else
|
||||||
echo " with errors!" >&2
|
echo "$(tput setaf 1)fw-clean.sh finished with errors!$(tput sgr0)" >&2
|
||||||
fi
|
fi
|
||||||
|
|
||||||
case "$-" in
|
case "$-" in
|
||||||
|
@ -1,5 +1,7 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
#
|
#
|
||||||
|
# Version 1.0.2 Build 25
|
||||||
|
#
|
||||||
# lang-build.sh - multi-language support script
|
# lang-build.sh - multi-language support script
|
||||||
# generate lang_xx.bin (language binary file)
|
# generate lang_xx.bin (language binary file)
|
||||||
#
|
#
|
||||||
@ -9,21 +11,65 @@
|
|||||||
# Output files:
|
# Output files:
|
||||||
# lang_xx.bin
|
# lang_xx.bin
|
||||||
#
|
#
|
||||||
|
# Depending on files:
|
||||||
|
# ../Firmware/config.h to read the max allowed size for translations
|
||||||
|
#
|
||||||
# Temporary files:
|
# Temporary files:
|
||||||
|
# lang_en.cnt //calculated number of messages in english
|
||||||
|
# lang_en.max //maximum size determined by reading "../Firmware/config.h"
|
||||||
# lang_xx.tmp
|
# lang_xx.tmp
|
||||||
# lang_xx.dat
|
# lang_xx.dat
|
||||||
#
|
#
|
||||||
|
#############################################################################
|
||||||
|
# Change log:
|
||||||
|
# 18 June 2018, XPila, Initial
|
||||||
|
# 19 June 2018, XPila, New ML support
|
||||||
|
# 18 Oct. 2018, XPila, New lang French
|
||||||
|
# 26 Nov. 2018, mkbel, Automate secondary language support build.
|
||||||
|
# 7 May 2019, ondratu Check translation dictionary files to display definition
|
||||||
|
# 19 June 2019, mkbel Disable language check warnings of type "[W]: No display definition on line".
|
||||||
|
# Those warnings were masking all other much more useful build process output.
|
||||||
|
# 14 Sep. 2019, 3d-gussner, Prepare adding new language
|
||||||
|
# 18 Sep. 2020, 3d-gussner, Update new messages and their translations, fix translations
|
||||||
|
# Update CZ, FR, IT, ES translations
|
||||||
|
# CZ thanks to @DRracer
|
||||||
|
# FR thanks to Carlin Dcustom
|
||||||
|
# ES
|
||||||
|
# IT thanks to @wavexx
|
||||||
|
# Co-authored-by: @DRracer, @wavexx
|
||||||
|
# 1 Mar. 2021, 3d-gussner, Add Dutch translation
|
||||||
|
# 17 Dec. 2021, 3d-gussner, Use one config file for all languages
|
||||||
|
# 21 Dec. 2021, 3d-gussner, Prepare more community languages
|
||||||
|
# Swedish
|
||||||
|
# Danish
|
||||||
|
# Slovanian
|
||||||
|
# Hungarian
|
||||||
|
# Luxembourgian
|
||||||
|
# Croatian
|
||||||
|
# 3 Jan. 2022, 3d-gussner, Prepare Lithuanian
|
||||||
|
# Cleanup outdated code
|
||||||
|
# 11 Jan. 2022, 3d-gussner, Add message and size count comparison
|
||||||
|
# Added version and Change log
|
||||||
|
# colored output
|
||||||
|
# Add Community language support
|
||||||
|
# Use `git rev-list --count HEAD lang-build.sh`
|
||||||
|
# to get Build Nr
|
||||||
|
# 25 Jan. 2022, 3d-gussner, Fix check
|
||||||
|
# Update documentation
|
||||||
|
#############################################################################
|
||||||
|
#
|
||||||
# Config:
|
# Config:
|
||||||
#startup message
|
|
||||||
echo "lang-build.sh started" >&2
|
|
||||||
|
|
||||||
if [ -z "$CONFIG_OK" ]; then eval "$(cat config.sh)"; fi
|
if [ -z "$CONFIG_OK" ]; then eval "$(cat config.sh)"; fi
|
||||||
if [ -z "$CONFIG_OK" ] | [ $CONFIG_OK -eq 0 ]; then echo 'Config NG!' >&2; exit 1; fi
|
if [ -z "$CONFIG_OK" ] | [ $CONFIG_OK -eq 0 ]; then echo "$(tput setaf 1)Config NG!$(tput sgr 0)" >&2; exit 1; fi
|
||||||
|
|
||||||
if [ ! -z "$COMMUNITY_LANGUAGES" ]; then
|
if [ ! -z "$COMMUNITY_LANGUAGES" ]; then
|
||||||
LANGUAGES+=" $COMMUNITY_LANGUAGES"
|
LANGUAGES+=" $COMMUNITY_LANGUAGES"
|
||||||
fi
|
fi
|
||||||
echo "lang-build languages:$LANGUAGES" >&2
|
|
||||||
|
#startup message
|
||||||
|
echo "$(tput setaf 2)lang-build.sh started$(tput sgr 0)" >&2
|
||||||
|
echo "lang-build languages:$(tput setaf 2)$LANGUAGES$(tput sgr 0)" >&2
|
||||||
|
|
||||||
#awk code to format ui16 variables for dd
|
#awk code to format ui16 variables for dd
|
||||||
awk_ui16='{ h=int($1/256); printf("\\x%02x\\x%02x\n", int($1-256*h), h); }'
|
awk_ui16='{ h=int($1/256); printf("\\x%02x\\x%02x\n", int($1-256*h), h); }'
|
||||||
@ -33,9 +79,9 @@ awk_ui16='{ h=int($1/256); printf("\\x%02x\\x%02x\n", int($1-256*h), h); }'
|
|||||||
finish()
|
finish()
|
||||||
{
|
{
|
||||||
if [ $1 -eq 0 ]; then
|
if [ $1 -eq 0 ]; then
|
||||||
echo "lang-build.sh finished with success" >&2
|
echo "$(tput setaf 2)lang-build.sh finished with success$(tput sgr 0)" >&2
|
||||||
else
|
else
|
||||||
echo "lang-build.sh finished with errors!" >&2
|
echo "$(tput setaf 1)lang-build.sh finished with errors!$(tput sgr 0)" >&2
|
||||||
fi
|
fi
|
||||||
exit $1
|
exit $1
|
||||||
}
|
}
|
||||||
@ -106,7 +152,7 @@ write_header()
|
|||||||
generate_binary()
|
generate_binary()
|
||||||
# $1 - language code ('en', 'cz'...)
|
# $1 - language code ('en', 'cz'...)
|
||||||
{
|
{
|
||||||
echo "lang="$1 >&2
|
echo "lang=$(tput setaf 2)$1$(tput sgr 0)" >&2
|
||||||
#remove output and temporary files
|
#remove output and temporary files
|
||||||
rm -f lang_$1.bin
|
rm -f lang_$1.bin
|
||||||
rm -f lang_$1.tmp
|
rm -f lang_$1.tmp
|
||||||
@ -115,9 +161,19 @@ generate_binary()
|
|||||||
#check lang dictionary
|
#check lang dictionary
|
||||||
./lang-check.py $1 #--no-warning
|
./lang-check.py $1 #--no-warning
|
||||||
#create lang_xx.tmp - different processing for 'en' language
|
#create lang_xx.tmp - different processing for 'en' language
|
||||||
if [ "$1" = "en" ]; then
|
if [[ "$1" = "en" || ! -f "lang_en.max" ]]; then
|
||||||
#remove comments and empty lines
|
#remove comments and empty lines
|
||||||
cat lang_en.txt | sed '/^$/d;/^#/d'
|
cat lang_en.txt | sed '/^$/d;/^#/d'
|
||||||
|
#calculate number of strings
|
||||||
|
count=$(grep -c '^"' lang_en.txt)
|
||||||
|
echo "count="$count >&2
|
||||||
|
#Calculate the number of strings and save to temporary file
|
||||||
|
echo $count >lang_en.cnt
|
||||||
|
#read the allowed maxsize from "../Firmware/config.h" and save to temporary file
|
||||||
|
maxsize=$(($(grep "#define LANG_SIZE_RESERVED" ../Firmware/config.h|sed -e's/ */ /g' |cut -d ' ' -f3)))
|
||||||
|
|
||||||
|
echo "maxsize="$maxsize >&2
|
||||||
|
echo $maxsize >lang_en.max
|
||||||
else
|
else
|
||||||
#remove comments and empty lines, print lines with translated text only
|
#remove comments and empty lines, print lines with translated text only
|
||||||
cat lang_en_$1.txt | sed '/^$/d;/^#/d' | sed -n 'n;p'
|
cat lang_en_$1.txt | sed '/^$/d;/^#/d' | sed -n 'n;p'
|
||||||
@ -128,12 +184,29 @@ generate_binary()
|
|||||||
#calculate number of strings
|
#calculate number of strings
|
||||||
count=$(grep -c '^"' lang_$1.tmp)
|
count=$(grep -c '^"' lang_$1.tmp)
|
||||||
echo "count="$count >&2
|
echo "count="$count >&2
|
||||||
|
# read string count of English and compare it with the translation
|
||||||
|
encount=$(cat lang_en.cnt)
|
||||||
|
if [ "$count" -eq "$encount" ]; then
|
||||||
|
echo "$(tput setaf 2)OK:"$1"="$count"$(tput sgr 0) is equal to $(tput setaf 2)en="$encount"$(tput sgr 0)" >&2
|
||||||
|
else
|
||||||
|
echo "$(tput setaf 1)Error:"$1"="$count"$(tput sgr 0) is NOT equal to $(tput setaf 1)en="$encount"$(tput sgr 0)" >&2
|
||||||
|
finish 1
|
||||||
|
fi
|
||||||
#calculate text data offset
|
#calculate text data offset
|
||||||
offs=$((16 + 2 * $count))
|
offs=$((16 + 2 * $count))
|
||||||
echo "offs="$offs >&2
|
echo "offs="$offs >&2
|
||||||
#calculate text data size
|
#calculate text data size
|
||||||
size=$(($offs + $(wc -c lang_$1.dat | cut -f1 -d' ')))
|
size=$(($offs + $(wc -c lang_$1.dat | cut -f1 -d' ')))
|
||||||
echo "size="$size >&2
|
echo "size="$size >&2
|
||||||
|
# read maxsize and compare with the translation
|
||||||
|
maxsize=$(cat lang_en.max)
|
||||||
|
if [ "$size" -lt "$maxsize" ]; then
|
||||||
|
free_space=$(($maxsize - $size))
|
||||||
|
echo "$(tput setaf 2)OK:"$1"="$size"$(tput sgr 0) is less than $(tput setaf 2)"$maxsize"$(tput sgr 0). Free space:$(tput setaf 2)"$free_space"$(tput sgr 0)" >&2
|
||||||
|
else
|
||||||
|
echo "$(tput setaf 1)Error:"$1"="$size"$(tput sgr 0) is higer than $(tput setaf 3)"$maxsize"$(tput sgr 0)" >&2
|
||||||
|
finish 1
|
||||||
|
fi
|
||||||
#write header with empty signature and checksum
|
#write header with empty signature and checksum
|
||||||
write_header $1 $size $count 0x0000 0x00000000
|
write_header $1 $size $count 0x0000 0x00000000
|
||||||
#write offset table
|
#write offset table
|
||||||
|
@ -1,24 +1,49 @@
|
|||||||
#!/usr/bin/env python3
|
#!/usr/bin/env python3
|
||||||
#
|
#
|
||||||
# Version 1.0.1
|
# Version 1.0.2 - Build 38
|
||||||
#
|
|
||||||
#############################################################################
|
#############################################################################
|
||||||
# Change log:
|
# Change log:
|
||||||
# 7 May 2019, Ondrej Tuma, Initial
|
# 7 May 2019, ondratu , Initial
|
||||||
# 9 June 2020, 3d-gussner, Added version and Change log
|
# 13 June 2019, 3d-gussner, Fix length false positives
|
||||||
# 9 June 2020, 3d-gussner, Wrap text to 20 char and rows
|
# 14 Sep. 2019, 3d-gussner, Prepare adding new language
|
||||||
# 9 June 2020, 3d-gussner, colored output
|
# 18 Sep. 2020, 3d-gussner, Fix execution of lang-check.py
|
||||||
# 2 Apr. 2021, 3d-gussner, Fix and improve text warp
|
# 2 Apr. 2021, 3d-gussner, Fix and improve text warp
|
||||||
# 22 Apr. 2021, DRracer , add English source to output
|
# 22 Apr. 2021, DRracer , add English source to output
|
||||||
# 23 Apr. 2021, wavexx , improve
|
# 23 Apr. 2021, wavexx , improve
|
||||||
# 24 Apr. 2021, wavexx , improve
|
# 24 Apr. 2021, wavexx , improve
|
||||||
# 26 Apr. 2021, 3d-gussner, add character ruler
|
# 26 Apr. 2021, wavexx , add character ruler
|
||||||
|
# 21 Dec. 2021, 3d-gussner, Prepare more community languages
|
||||||
|
# Swedish
|
||||||
|
# Danish
|
||||||
|
# Slovanian
|
||||||
|
# Hungarian
|
||||||
|
# Luxembourgian
|
||||||
|
# Croatian
|
||||||
|
# 3 Jan. 2022, 3d-gussner, Prepare Lithuanian
|
||||||
|
# 7 Jan. 2022, 3d-gussner, Check for Syntax errors and exit with error
|
||||||
|
# , add Build number 'git rev-list --count HEAD lang-check.py'
|
||||||
|
# 30 Jan. 2022, 3d-gussner, Add arguments. Requested by @AttilaSVK
|
||||||
|
# --information == output all source and translated messages
|
||||||
|
# --import-check == used by `lang-import.sh`to verify
|
||||||
|
# newly import `lang_en_??.txt` files
|
||||||
#############################################################################
|
#############################################################################
|
||||||
#
|
#
|
||||||
|
# Expected syntax of the files, which other scripts depend on
|
||||||
|
# 'lang_en.txt'
|
||||||
|
# 1st line: '#MSG_'<some text>' c='<max chars in a column>' r='<max rows> ; '#MSG' is mandentory while 'c=' and 'r=' aren't but should be there
|
||||||
|
# 2nd line: '"'<origin message used in the source code>'"' ; '"' double quotes at the beginning and end of message are mandentory
|
||||||
|
# 3rd line: LF ; Line feed is mandantory between messages
|
||||||
|
#
|
||||||
|
# 'lang_en_??.txt'
|
||||||
|
# 1st line: '#MSG_'<some text>' c='<max chars in a column>' r='<max rows> ; '#MSG' is mandentory while 'c=' and 'r=' aren't but should be there
|
||||||
|
# 2nd line: '"'<origin message used in the source code>'"' ; '"' double quotes at the beginning and end of message are mandentory
|
||||||
|
# 3rd line: '"'<translated message>'"' ; '"' double quotes at the beginning and end of message are mandentory
|
||||||
|
# 4th line: LF ; Line feed is mandantory between messages
|
||||||
|
#
|
||||||
"""Check lang files."""
|
"""Check lang files."""
|
||||||
from argparse import ArgumentParser
|
from argparse import ArgumentParser
|
||||||
from traceback import print_exc
|
from traceback import print_exc
|
||||||
from sys import stdout, stderr
|
from sys import stdout, stderr, exit
|
||||||
import textwrap
|
import textwrap
|
||||||
import re
|
import re
|
||||||
|
|
||||||
@ -99,22 +124,31 @@ def ign_char_first(c):
|
|||||||
def ign_char_last(c):
|
def ign_char_last(c):
|
||||||
return c.isalnum() or c in {'.', "'"}
|
return c.isalnum() or c in {'.', "'"}
|
||||||
|
|
||||||
|
def parse_txt(lang, no_warning, warn_empty, information, import_check):
|
||||||
def parse_txt(lang, no_warning, warn_empty):
|
|
||||||
"""Parse txt file and check strings to display definition."""
|
"""Parse txt file and check strings to display definition."""
|
||||||
if lang == "en":
|
if lang == "en":
|
||||||
file_path = "lang_en.txt"
|
file_path = "lang_en.txt"
|
||||||
|
else:
|
||||||
|
if import_check:
|
||||||
|
file_path = "po/new/lang_en_%s.txt" % lang
|
||||||
else:
|
else:
|
||||||
file_path = "lang_en_%s.txt" % lang
|
file_path = "lang_en_%s.txt" % lang
|
||||||
|
|
||||||
print(green("Start %s lang-check" % lang))
|
print(green("Start %s lang-check" % lang))
|
||||||
|
|
||||||
lines = 1
|
lines = 0
|
||||||
with open(file_path) as src:
|
with open(file_path) as src:
|
||||||
while True:
|
while True:
|
||||||
comment = src.readline().split(' ')
|
message = src.readline()
|
||||||
#print (comment) #Debug
|
lines += 1
|
||||||
|
#print(message) #Debug
|
||||||
|
#check syntax 1st line starts with `#MSG`
|
||||||
|
if (message[0:4] != '#MSG'):
|
||||||
|
print(red("[E]: Critical syntax error: 1st line doesn't start with #MSG on line %d" % lines))
|
||||||
|
print(red(message))
|
||||||
|
exit(1)
|
||||||
|
#Check if columns and rows are defined
|
||||||
|
comment = message.split(' ')
|
||||||
#Check if columns and rows are defined
|
#Check if columns and rows are defined
|
||||||
cols = None
|
cols = None
|
||||||
rows = None
|
rows = None
|
||||||
@ -133,27 +167,67 @@ def parse_txt(lang, no_warning, warn_empty):
|
|||||||
if cols is None and rows is None:
|
if cols is None and rows is None:
|
||||||
if not no_warning:
|
if not no_warning:
|
||||||
print(yellow("[W]: No display definition on line %d" % lines))
|
print(yellow("[W]: No display definition on line %d" % lines))
|
||||||
cols = len(translation) # propably fullscreen
|
cols = len(source) # propably fullscreen
|
||||||
if rows is None:
|
if rows is None:
|
||||||
rows = 1
|
rows = 1
|
||||||
elif rows > 1 and cols != 20:
|
elif rows > 1 and cols != 20:
|
||||||
print(yellow("[W]: Multiple rows with odd number of columns on line %d" % lines))
|
print(yellow("[W]: Multiple rows with odd number of columns on line %d" % lines))
|
||||||
|
|
||||||
#Wrap text to 20 chars and rows
|
#Wrap text to 20 chars and rows
|
||||||
source = src.readline()[:-1].strip('"')
|
source = src.readline()[:-1] #read whole line
|
||||||
#print (source) #Debug
|
lines += 1
|
||||||
translation = src.readline()[:-1].strip('"')
|
#check if 2nd line of origin message beginns and ends with " double quote
|
||||||
|
if (source[0]!="\""):
|
||||||
|
print(red('[E]: Critical syntax error: Missing " double quotes at beginning of message in source on line %d' % lines))
|
||||||
|
print(red(source))
|
||||||
|
exit(1)
|
||||||
|
if (source[-1]=="\""):
|
||||||
|
source = source.strip('"') #remove " double quotes from message
|
||||||
|
else:
|
||||||
|
print(red('[E]: Critical syntax error: Missing " double quotes at end of message in source on line %d' % lines))
|
||||||
|
print(red(source))
|
||||||
|
exit(1)
|
||||||
|
#print(source) #Debug
|
||||||
|
if lang != "en":
|
||||||
|
translation = src.readline()[:-1]#read whole line
|
||||||
|
lines += 1
|
||||||
|
#check if 3rd line of translation message beginns and ends with " double quote
|
||||||
|
if (translation[0]!="\""):
|
||||||
|
print(red('[E]: Critical syntax error: Missing " double quotes at beginning of message in translation on line %d' % lines))
|
||||||
|
print(red(translation))
|
||||||
|
exit(1)
|
||||||
|
if (translation[-1]=="\""):
|
||||||
|
#print ("End ok")
|
||||||
|
translation = translation.strip('"') #remove " double quote from message
|
||||||
|
else:
|
||||||
|
print(red('[E]: Critical syntax error: Missing " double quotes at end of message in translation on line %d' % lines))
|
||||||
|
print(red(translation))
|
||||||
|
exit(1)
|
||||||
|
#print(translation) #Debug
|
||||||
if translation == '\\x00':
|
if translation == '\\x00':
|
||||||
# crude hack to handle intentionally-empty translations
|
# crude hack to handle intentionally-empty translations
|
||||||
translation = ''
|
translation = ''
|
||||||
|
#check if source is ascii only
|
||||||
|
if source.isascii() == False:
|
||||||
|
print(red('[E]: Critical syntax: Non ascii chars found on line %d' % lines))
|
||||||
|
print(red(source))
|
||||||
|
exit(1)
|
||||||
|
#check if translation is ascii only
|
||||||
|
if lang != "en":
|
||||||
|
if translation.isascii() == False:
|
||||||
|
print(red('[E]: Critical syntax: Non ascii chars found on line %d' % lines))
|
||||||
|
print(red(translation))
|
||||||
|
exit(1)
|
||||||
|
|
||||||
# handle backslash sequences
|
# handle backslash sequences
|
||||||
source = unescape(source)
|
source = unescape(source)
|
||||||
|
if lang != "en":
|
||||||
translation = unescape(translation)
|
translation = unescape(translation)
|
||||||
|
|
||||||
#print (translation) #Debug
|
#print (translation) #Debug
|
||||||
wrapped_source = wrap_text(source, cols)
|
wrapped_source = wrap_text(source, cols)
|
||||||
rows_count_source = len(wrapped_source)
|
rows_count_source = len(wrapped_source)
|
||||||
|
if lang != "en":
|
||||||
wrapped_translation = wrap_text(translation, cols)
|
wrapped_translation = wrap_text(translation, cols)
|
||||||
rows_count_translation = len(wrapped_translation)
|
rows_count_translation = len(wrapped_translation)
|
||||||
|
|
||||||
@ -172,6 +246,7 @@ def parse_txt(lang, no_warning, warn_empty):
|
|||||||
print()
|
print()
|
||||||
|
|
||||||
# Missing translation
|
# Missing translation
|
||||||
|
if lang != "en":
|
||||||
if len(translation) == 0 and (warn_empty or rows > 1):
|
if len(translation) == 0 and (warn_empty or rows > 1):
|
||||||
if rows == 1:
|
if rows == 1:
|
||||||
print(yellow("[W]: Empty translation for \"%s\" on line %d" % (source, lines)))
|
print(yellow("[W]: Empty translation for \"%s\" on line %d" % (source, lines)))
|
||||||
@ -211,6 +286,12 @@ def parse_txt(lang, no_warning, warn_empty):
|
|||||||
print_source_translation(source, translation,
|
print_source_translation(source, translation,
|
||||||
wrapped_source, wrapped_translation,
|
wrapped_source, wrapped_translation,
|
||||||
rows, cols)
|
rows, cols)
|
||||||
|
#elif information:
|
||||||
|
# print(green('[I]: %s' % (message)))
|
||||||
|
# print_source_translation(source, translation,
|
||||||
|
# wrapped_source, wrapped_translation,
|
||||||
|
# rows, cols)
|
||||||
|
|
||||||
|
|
||||||
# Short translation
|
# Short translation
|
||||||
if not no_warning and len(source) > 0 and len(translation) > 0:
|
if not no_warning and len(source) > 0 and len(translation) > 0:
|
||||||
@ -219,6 +300,11 @@ def parse_txt(lang, no_warning, warn_empty):
|
|||||||
print_source_translation(source, translation,
|
print_source_translation(source, translation,
|
||||||
wrapped_source, wrapped_translation,
|
wrapped_source, wrapped_translation,
|
||||||
rows, cols)
|
rows, cols)
|
||||||
|
#elif information:
|
||||||
|
# print(green('[I]: %s' % (message)))
|
||||||
|
# print_source_translation(source, translation,
|
||||||
|
# wrapped_source, wrapped_translation,
|
||||||
|
# rows, cols)
|
||||||
|
|
||||||
# Incorrect trailing whitespace in translation
|
# Incorrect trailing whitespace in translation
|
||||||
if not no_warning and len(translation) > 0 and \
|
if not no_warning and len(translation) > 0 and \
|
||||||
@ -232,10 +318,20 @@ def parse_txt(lang, no_warning, warn_empty):
|
|||||||
print_source_translation(source, translation,
|
print_source_translation(source, translation,
|
||||||
wrapped_source, wrapped_translation,
|
wrapped_source, wrapped_translation,
|
||||||
rows, cols)
|
rows, cols)
|
||||||
|
elif information:
|
||||||
|
print(green('[I]: %s' % (message)))
|
||||||
|
print_source_translation(source, translation,
|
||||||
|
wrapped_source, wrapped_translation,
|
||||||
|
rows, cols)
|
||||||
|
|
||||||
if len(src.readline()) != 1: # empty line
|
|
||||||
|
delimiter = src.readline()
|
||||||
|
lines += 1
|
||||||
|
if ("" == delimiter):
|
||||||
|
break
|
||||||
|
elif len(delimiter) != 1: # empty line
|
||||||
|
print(red('[E]: Critical Syntax error: Missing empty line between messages between lines: %d and %d' % (lines-1,lines)))
|
||||||
break
|
break
|
||||||
lines += 4
|
|
||||||
print(green("End %s lang-check" % lang))
|
print(green("End %s lang-check" % lang))
|
||||||
|
|
||||||
|
|
||||||
@ -253,10 +349,16 @@ def main():
|
|||||||
parser.add_argument(
|
parser.add_argument(
|
||||||
"--warn-empty", action="store_true",
|
"--warn-empty", action="store_true",
|
||||||
help="Warn about empty translations")
|
help="Warn about empty translations")
|
||||||
|
parser.add_argument(
|
||||||
|
"--information", action="store_true",
|
||||||
|
help="Output all translations")
|
||||||
|
parser.add_argument(
|
||||||
|
"--import-check", action="store_true",
|
||||||
|
help="Check import file and save informational to file")
|
||||||
|
|
||||||
args = parser.parse_args()
|
args = parser.parse_args()
|
||||||
try:
|
try:
|
||||||
parse_txt(args.lang, args.no_warning, args.warn_empty)
|
parse_txt(args.lang, args.no_warning, args.warn_empty, args.information, args.import_check)
|
||||||
return 0
|
return 0
|
||||||
except Exception as exc:
|
except Exception as exc:
|
||||||
print_exc()
|
print_exc()
|
||||||
|
@ -1,13 +1,34 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
#
|
#
|
||||||
|
# Version 1.0.1 Build 10
|
||||||
|
#
|
||||||
# clean.sh - multi-language support script
|
# clean.sh - multi-language support script
|
||||||
# Remove all language output files from lang folder.
|
# Remove all language output files from lang folder.
|
||||||
#
|
#
|
||||||
|
#############################################################################
|
||||||
|
# Change log:
|
||||||
|
# 1 Nov. 2018, XPila, Initial
|
||||||
|
# 18 Oct. 2018, XPila, New lang, arduino 1.8.5 - fw-clean.sh and lang-clean.sh fix
|
||||||
|
# 25 Oct. 2018, XPila, New lang - fixed french langcode and comparsion in lang-clean script
|
||||||
|
# 10 Dec. 2018, jhoblitt, make all shell scripts executable
|
||||||
|
# 26 Jul. 2019, leptun, Fix shifted languages. Use \n and \x0a
|
||||||
|
# 14 Sep. 2019, 3d-gussner, Prepare adding new language
|
||||||
|
# 01 Mar. 2021, 3d-gussner, Move `Dutch` language parts
|
||||||
|
# 22 Mar. 2021, 3d-gussner, Move Dutch removing part to correct loaction
|
||||||
|
# 21 Dec. 2021, 3d-gussner, Use one config file for all languages
|
||||||
|
# 03 Jan. 2022, 3d-gussner, Cleanup outdated code
|
||||||
|
# 11 Jan. 2022, 3d-gussner, Also remove temporally files which have been
|
||||||
|
# generated for message and size count comparison
|
||||||
|
# Added version and Change log
|
||||||
|
# colored output
|
||||||
|
# Add Community language support
|
||||||
|
# Use `git rev-list --count HEAD lang-clean.sh`
|
||||||
|
# to get Build Nr
|
||||||
|
# 25 Jan. 2022, 3d-gussner, clean up lang-import.sh temproray files
|
||||||
|
#############################################################################
|
||||||
# Config:
|
# Config:
|
||||||
echo "CONFIG: $CONFIG_OK"
|
|
||||||
if [ -z "$CONFIG_OK" ]; then eval "$(cat config.sh)"; fi
|
if [ -z "$CONFIG_OK" ]; then eval "$(cat config.sh)"; fi
|
||||||
if [ -z "$CONFIG_OK" ] | [ $CONFIG_OK -eq 0 ]; then echo 'Config NG!' >&2; exit 1; fi
|
if [ -z "$CONFIG_OK" ] | [ $CONFIG_OK -eq 0 ]; then echo "$(tput setaf 1)Config NG!$(tput sgr0)" >&2; exit 1; fi
|
||||||
|
|
||||||
if [ ! -z "$COMMUNITY_LANGUAGES" ]; then
|
if [ ! -z "$COMMUNITY_LANGUAGES" ]; then
|
||||||
LANGUAGES+=" $COMMUNITY_LANGUAGES"
|
LANGUAGES+=" $COMMUNITY_LANGUAGES"
|
||||||
@ -18,11 +39,11 @@ result=0
|
|||||||
rm_if_exists()
|
rm_if_exists()
|
||||||
{
|
{
|
||||||
if [ -e $1 ]; then
|
if [ -e $1 ]; then
|
||||||
echo -n " removing '$1'..." >&2
|
echo -n "$(tput sgr0) removing $(tput setaf 3)'$1'$(tput sgr0)..." >&2
|
||||||
if rm $1; then
|
if rm $1; then
|
||||||
echo "OK" >&2
|
echo "$(tput setaf 2)OK$(tput sgr0)" >&2
|
||||||
else
|
else
|
||||||
echo "NG!" >&2
|
echo "$(tput setaf 1)NG!$(tput sgr0)" >&2
|
||||||
result=1
|
result=1
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
@ -32,35 +53,43 @@ clean_lang()
|
|||||||
{
|
{
|
||||||
if [ "$1" = "en" ]; then
|
if [ "$1" = "en" ]; then
|
||||||
rm_if_exists lang_$1.tmp
|
rm_if_exists lang_$1.tmp
|
||||||
|
rm_if_exists lang_$1.cnt
|
||||||
|
rm_if_exists lang_$1.max
|
||||||
else
|
else
|
||||||
rm_if_exists lang_$1.tmp
|
rm_if_exists lang_$1.tmp
|
||||||
rm_if_exists lang_en_$1.tmp
|
rm_if_exists lang_en_$1.tmp
|
||||||
rm_if_exists lang_en_$1.dif
|
rm_if_exists lang_en_$1.dif
|
||||||
rm_if_exists lang_$1.ofs
|
rm_if_exists lang_$1.ofs
|
||||||
rm_if_exists lang_$1.txt
|
rm_if_exists lang_$1.txt
|
||||||
|
rm_if_exists po/new/$1_new.po
|
||||||
|
rm_if_exists po/new/$1.mo
|
||||||
|
rm_if_exists po/new/$1_filtered.po
|
||||||
|
rm_if_exists po/new/lang_en_$1.txt
|
||||||
|
rm_if_exists po/new/$1-output.txt
|
||||||
fi
|
fi
|
||||||
rm_if_exists lang_$1_check.dif
|
rm_if_exists lang_$1_check.dif
|
||||||
rm_if_exists lang_$1.bin
|
rm_if_exists lang_$1.bin
|
||||||
rm_if_exists lang_$1.dat
|
rm_if_exists lang_$1.dat
|
||||||
rm_if_exists lang_$1_1.tmp
|
rm_if_exists lang_$1_1.tmp
|
||||||
rm_if_exists lang_$1_2.tmp
|
rm_if_exists lang_$1_2.tmp
|
||||||
|
rm_if_exists po/new/nonascii.txt
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
echo "$(tput setaf 2)lang-clean.sh started$(tput sgr0)" >&2
|
||||||
#Clean English
|
#Clean English
|
||||||
clean_lang en
|
clean_lang en
|
||||||
|
|
||||||
#Clean languages
|
#Clean languages
|
||||||
echo "lang-clean.sh started" >&2
|
echo "lang-clean languages:$(tput setaf 2)$LANGUAGES$(tput sgr0)" >&2
|
||||||
echo "lang-clean languages:$LANGUAGES" >&2
|
|
||||||
for lang in $LANGUAGES; do
|
for lang in $LANGUAGES; do
|
||||||
clean_lang $lang
|
clean_lang $lang
|
||||||
done
|
done
|
||||||
|
|
||||||
echo -n "lang-clean.sh finished" >&2
|
|
||||||
if [ $result -eq 0 ]; then
|
if [ $result -eq 0 ]; then
|
||||||
echo " with success" >&2
|
echo "$(tput setaf 2) lang-clean.sh with success$(tput sgr0)" >&2
|
||||||
else
|
else
|
||||||
echo " with errors!" >&2
|
echo "$(tput setaf 1) lang-clean.sh with errors!$(tput sgr0)" >&2
|
||||||
fi
|
fi
|
||||||
|
|
||||||
case "$-" in
|
case "$-" in
|
||||||
|
@ -1,16 +1,41 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
#
|
#
|
||||||
|
# Version 1.0.1 Build 18
|
||||||
|
#
|
||||||
# lang-export.sh - multi-language support script
|
# lang-export.sh - multi-language support script
|
||||||
# for generating lang_xx.po
|
# for generating lang_xx.po
|
||||||
#
|
#
|
||||||
|
#############################################################################
|
||||||
|
# Change log:
|
||||||
|
# 9 Nov. 2018, XPila, Initial
|
||||||
|
# 10 Dec. 2018, jhoblitt, make all shell scripts executable
|
||||||
|
# 14 Sep. 2019, 3d-gussner, Prepare adding new language
|
||||||
|
# 6 Sep. 2019, DRracer, change to bash
|
||||||
|
# 1 Mar. 2019, 3d-gussner, Move `Dutch` language parts
|
||||||
|
# Add templates for future community languages
|
||||||
|
# 17 Dec. 2021, 3d-gussner, Use one config file for all languages
|
||||||
|
# Fix missing last translation
|
||||||
|
# 21 Dec. 2021, 3d-gussner, Add Swedish, Danish, Slovanian, Hungarian,
|
||||||
|
# Luxembourgish, Croatian
|
||||||
|
# 3 Jan. 2022, 3d-gussner, Add Lithuanian
|
||||||
|
# Cleanup outaded code
|
||||||
|
# 11 Jan. 2022, 3d-gussner, Added version and Change log
|
||||||
|
# colored output
|
||||||
|
# Add Community language support
|
||||||
|
# Use `git rev-list --count HEAD lang-export.sh`
|
||||||
|
# to get Build Nr
|
||||||
|
# 25 Jan. 2022, 3d-gussner, Replace German HD44780 A00 ROM 'äöüß' to UTF-8 'äöüß'
|
||||||
|
#############################################################################
|
||||||
# Config:
|
# Config:
|
||||||
if [ -z "$CONFIG_OK" ]; then eval "$(cat config.sh)"; fi
|
if [ -z "$CONFIG_OK" ]; then eval "$(cat config.sh)"; fi
|
||||||
if [ -z "$CONFIG_OK" ] | [ $CONFIG_OK -eq 0 ]; then echo 'Config NG!' >&2; exit 1; fi
|
if [ -z "$CONFIG_OK" ] | [ $CONFIG_OK -eq 0 ]; then echo "$(tput setaf 1)Config NG!$(tput sgr 0)" >&2; exit 1; fi
|
||||||
|
|
||||||
|
echo "$(tput setaf 2)lang-export.sh started$(tput sgr 0)" >&2
|
||||||
|
|
||||||
if [ ! -z "$COMMUNITY_LANGUAGES" ]; then
|
if [ ! -z "$COMMUNITY_LANGUAGES" ]; then
|
||||||
LANGUAGES+=" $COMMUNITY_LANGUAGES"
|
LANGUAGES+=" $COMMUNITY_LANGUAGES"
|
||||||
fi
|
fi
|
||||||
echo "lang-export languages:$LANGUAGES" >&2
|
echo "$(tput setaf 2)lang-export languages:$LANGUAGES$(tput sgr 0)" >&2
|
||||||
|
|
||||||
# relative path to source folder
|
# relative path to source folder
|
||||||
SRCDIR="../Firmware"
|
SRCDIR="../Firmware"
|
||||||
@ -78,7 +103,7 @@ else
|
|||||||
esac)
|
esac)
|
||||||
# unknown language - error
|
# unknown language - error
|
||||||
if [ -z "LNGNAME" ]; then
|
if [ -z "LNGNAME" ]; then
|
||||||
echo "Invalid argument '$LNG'."
|
echo "Invalid argument $(tput setaf 1)'$LNG'$(tput sgr 0).">&2
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
INFILE=lang_en_$LNG.txt
|
INFILE=lang_en_$LNG.txt
|
||||||
@ -88,18 +113,16 @@ fi
|
|||||||
# remove output file if exists
|
# remove output file if exists
|
||||||
if [ -e $OUTFILE ]; then rm -f -v $OUTFILE; fi
|
if [ -e $OUTFILE ]; then rm -f -v $OUTFILE; fi
|
||||||
|
|
||||||
echo "lang-export.sh started"
|
|
||||||
|
|
||||||
#total strings
|
#total strings
|
||||||
CNTTXT=$(grep '^#' -c $INFILE)
|
CNTTXT=$(grep '^#' -c $INFILE)
|
||||||
#not translated strings
|
#not translated strings
|
||||||
CNTNT=$(grep '^\"\\x00\"' -c $INFILE)
|
CNTNT=$(grep '^\"\\x00\"' -c $INFILE)
|
||||||
echo " $CNTTXT texts, $CNTNT not translated"
|
echo " $(tput setaf 2)$CNTTXT$(tput sgr 0) texts, $(tput setaf 3)$CNTNT$(tput sgr 0) not translated" >&2
|
||||||
|
|
||||||
# list .cpp, .c and .h files from source folder
|
# list .cpp, .c and .h files from source folder
|
||||||
SRCFILES=$(ls "$SRCDIR"/*.cpp "$SRCDIR"/*.c "$SRCDIR"/*.h)
|
SRCFILES=$(ls "$SRCDIR"/*.cpp "$SRCDIR"/*.c "$SRCDIR"/*.h)
|
||||||
|
|
||||||
echo " selected language=$LNGNAME"
|
echo " selected language=$(tput setaf 2)$LNGNAME$(tput sgr 0)" >&2
|
||||||
|
|
||||||
# write po/pot header
|
# write po/pot header
|
||||||
(
|
(
|
||||||
@ -138,7 +161,7 @@ num=1
|
|||||||
#end debug
|
#end debug
|
||||||
if [ "${s:0:1}" = "\"" ]; then
|
if [ "${s:0:1}" = "\"" ]; then
|
||||||
if [[ "${s0:0:1}" = "\"" || "$LNG" = "en" ]]; then
|
if [[ "${s0:0:1}" = "\"" || "$LNG" = "en" ]]; then
|
||||||
echo " processing $num of $CNTTXT" >&2
|
echo -ne " processing $num of $CNTTXT\033[0K\r" >&2
|
||||||
# write po/pot item
|
# write po/pot item
|
||||||
(
|
(
|
||||||
if [ "$LNG" = "en" ]; then s1=$s0; s0=$s; fi
|
if [ "$LNG" = "en" ]; then s1=$s0; s0=$s; fi
|
||||||
@ -167,5 +190,18 @@ done >>$OUTFILE) 2>&1
|
|||||||
sync
|
sync
|
||||||
sed -i 's/$/\r/' $OUTFILE
|
sed -i 's/$/\r/' $OUTFILE
|
||||||
|
|
||||||
echo "lang-export.sh finished"
|
#replace HD44780 A00 'äöüß' to UTF-8 'äöüß'
|
||||||
|
if [ "$LNG" = "de" ]; then
|
||||||
|
#replace 'A00 ROM ä' with 'ä'
|
||||||
|
sed -i 's/\\xe1/\xc3\xa4/g' $OUTFILE
|
||||||
|
#replace 'A00 ROM ü' with 'ü'
|
||||||
|
sed -i 's/\\xf5/\xc3\xbc/g' $OUTFILE
|
||||||
|
#replace 'A00 ROM ö' with 'ö'
|
||||||
|
sed -i 's/\\xef/\xc3\xb6/g' $OUTFILE
|
||||||
|
#replace 'A00 ROM ß' with 'ß'
|
||||||
|
sed -i 's/\\xe2/\xc3\x9f/g' $OUTFILE
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo >&2
|
||||||
|
echo "$(tput setaf 2)lang-export.sh finished$(tput sgr 0)">&2
|
||||||
exit 0
|
exit 0
|
||||||
|
@ -1,20 +1,56 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
#
|
#
|
||||||
|
# Version 1.0.1 Build 24
|
||||||
|
#
|
||||||
# lang-import.sh - multi-language support script
|
# lang-import.sh - multi-language support script
|
||||||
# for importing translated xx.po
|
# for importing translated xx.po
|
||||||
|
#
|
||||||
|
#############################################################################
|
||||||
|
# Change log:
|
||||||
|
# 9 Nov. 2018, XPila, Initial
|
||||||
|
# 21 Nov. 2018, XPila, fix - replace '\n' with space in all languages
|
||||||
|
# 10 Dec. 2018, jhoblitt, make all shell scripts executable
|
||||||
|
# 21 Aug. 2019, 3d-gussner, Added "All" argument and it is default in nothing is chosen
|
||||||
|
# Added few German/French diacritical characters
|
||||||
|
# 6 Sep. 2019, DRracer, change to bash
|
||||||
|
# 14 Sep. 2019, 3d-gussner, Prepare adding new language
|
||||||
|
# 1 Mar. 2019, 3d-gussner, Move `Dutch` language parts
|
||||||
|
# Add templates for future community languages
|
||||||
|
# 17 Dec. 2021, 3d-gussner, Use one config file for all languages
|
||||||
|
# Fix missing last translation
|
||||||
|
# Add counter
|
||||||
|
# replace two double quotes with `\x00`
|
||||||
|
# 21 Dec. 2021, 3d-gussner, Add Swedish, Danish, Slovanian, Hungarian,
|
||||||
|
# Luxembourgish, Croatian
|
||||||
|
# 3 Jan. 2022, 3d-gussner, Add Lithuanian
|
||||||
|
# Cleanup outaded code
|
||||||
|
# 11 Jan. 2022, 3d-gussner, Added version and Change log
|
||||||
|
# colored output
|
||||||
|
# Add Community language support
|
||||||
|
# Use `git rev-list --count HEAD lang-import.sh`
|
||||||
|
# to get Build Nr
|
||||||
|
# 14 Jan. 2022, 3d-gussner, Replace German UTF-8 'äöÿÿ' to HD44780 A00 ROM 'äöÿÿ'
|
||||||
|
# 28 Jan. 2022, 3d-gussner, Run lang-check and output `xx-output.txt` file to review
|
||||||
|
# translations
|
||||||
|
# new argruments `--information` `--import-check`
|
||||||
|
#############################################################################
|
||||||
# Config:
|
# Config:
|
||||||
if [ -z "$CONFIG_OK" ]; then eval "$(cat config.sh)"; fi
|
if [ -z "$CONFIG_OK" ]; then eval "$(cat config.sh)"; fi
|
||||||
if [ -z "$CONFIG_OK" ] | [ $CONFIG_OK -eq 0 ]; then echo 'Config NG!' >&2; exit 1; fi
|
if [ -z "$CONFIG_OK" ] | [ $CONFIG_OK -eq 0 ]; then echo "$(tput setaf 1)Config NG!$(tput sgr 0)" >&2; exit 1; fi
|
||||||
|
|
||||||
if [ ! -z "$COMMUNITY_LANGUAGES" ]; then
|
echo "$(tput setaf 2)lang-import.sh started$(tput sgr 0)" >&2
|
||||||
LANGUAGES+=" $COMMUNITY_LANGUAGES"
|
|
||||||
fi
|
|
||||||
echo "lang-import languages:$LANGUAGES" >&2
|
|
||||||
|
|
||||||
LNG=$1
|
LNG=$1
|
||||||
# if no arguments, 'all' is selected (all po and also pot will be generated)
|
# if no arguments, 'all' is selected (all po and also pot will be generated)
|
||||||
if [ -z "$LNG" ]; then LNG=all; fi
|
if [ -z "$LNG" ]; then LNG=all; fi
|
||||||
|
|
||||||
|
if [[ ! -z "$COMMUNITY_LANGUAGES" && "$LNG" = "all" ]]; then
|
||||||
|
LANGUAGES+=" $COMMUNITY_LANGUAGES"
|
||||||
|
else
|
||||||
|
LANGUAGES="$LNG"
|
||||||
|
fi
|
||||||
|
echo "$(tput setaf 2)lang-import languages:$LANGUAGES$(tput sgr 0)" >&2
|
||||||
|
|
||||||
# if 'all' is selected, script will generate all po files and also pot file
|
# if 'all' is selected, script will generate all po files and also pot file
|
||||||
if [ "$LNG" = "all" ]; then
|
if [ "$LNG" = "all" ]; then
|
||||||
for lang in $LANGUAGES; do
|
for lang in $LANGUAGES; do
|
||||||
@ -33,7 +69,7 @@ cd po/new
|
|||||||
|
|
||||||
# check if input file exists
|
# check if input file exists
|
||||||
if ! [ -e $LNGISO.po ]; then
|
if ! [ -e $LNGISO.po ]; then
|
||||||
echo "Input file $LNGISO.po not found!" >&2
|
echo "$(tput setaf 1)Input file $LNGISO.po not found!$(tput sgr 0)" >&2
|
||||||
exit -1
|
exit -1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
@ -45,51 +81,98 @@ sed -i 's/ \\n/ /g;s/\\n/ /g' $LNG'_filtered.po'
|
|||||||
|
|
||||||
#replace in czech translation
|
#replace in czech translation
|
||||||
if [ "$LNG" = "cz" ]; then
|
if [ "$LNG" = "cz" ]; then
|
||||||
#replace 'ž' with 'z'
|
#replace 'Á' with 'A'
|
||||||
sed -i 's/\xc5\xbe/z/g' $LNG'_filtered.po'
|
sed -i 's/\xc3\x81/A/g' $LNG'_filtered.po'
|
||||||
#replace 'ì' with 'e'
|
#replace 'á' with 'a'
|
||||||
sed -i 's/\xc4\x9b/e/g' $LNG'_filtered.po'
|
|
||||||
#replace 'í' with 'i'
|
|
||||||
sed -i 's/\xc3\xad/i/g' $LNG'_filtered.po'
|
|
||||||
#replace 'ø' with 'r'
|
|
||||||
sed -i 's/\xc5\x99/r/g' $LNG'_filtered.po'
|
|
||||||
#replace 'è' with 'c'
|
|
||||||
sed -i 's/\xc4\x8d/c/g' $LNG'_filtered.po'
|
|
||||||
#replace 'á' with 'a'
|
|
||||||
sed -i 's/\xc3\xa1/a/g' $LNG'_filtered.po'
|
sed -i 's/\xc3\xa1/a/g' $LNG'_filtered.po'
|
||||||
#replace 'é' with 'e'
|
#replace 'Č' with 'C'
|
||||||
|
sed -i 's/\xc4\x8c/C/g' $LNG'_filtered.po'
|
||||||
|
#replace 'č' with 'c'
|
||||||
|
sed -i 's/\xc4\x8d/c/g' $LNG'_filtered.po'
|
||||||
|
#replace 'Ď' with 'D'
|
||||||
|
sed -i 's/\xc4\x8e/D/g' $LNG'_filtered.po'
|
||||||
|
#replace 'ď' with 'd'
|
||||||
|
sed -i 's/\xc4\x8f/d/g' $LNG'_filtered.po'
|
||||||
|
#replace 'É' with 'E'
|
||||||
|
sed -i 's/\xc3\x89/E/g' $LNG'_filtered.po'
|
||||||
|
#replace 'é' with 'e'
|
||||||
sed -i 's/\xc3\xa9/e/g' $LNG'_filtered.po'
|
sed -i 's/\xc3\xa9/e/g' $LNG'_filtered.po'
|
||||||
|
#replace 'Ě' with 'E'
|
||||||
|
sed -i 's/\xc4\x9a/E/g' $LNG'_filtered.po'
|
||||||
|
#replace 'ě' with 'e'
|
||||||
|
sed -i 's/\xc4\x9b/e/g' $LNG'_filtered.po'
|
||||||
|
#replace 'Í' with 'I'
|
||||||
|
sed -i 's/\xc3\x8d/I/g' $LNG'_filtered.po'
|
||||||
|
#replace 'í' with 'i'
|
||||||
|
sed -i 's/\xc3\xad/i/g' $LNG'_filtered.po'
|
||||||
|
#replace 'Ň' with 'N'
|
||||||
|
sed -i 's/\xc5\x87/N/g' $LNG'_filtered.po'
|
||||||
|
#replace 'ň' with 'n'
|
||||||
|
sed -i 's/\xc5\x88/n/g' $LNG'_filtered.po'
|
||||||
|
#replace 'Ó' with 'O'
|
||||||
|
sed -i 's/\xc3\x93/O/g' $LNG'_filtered.po'
|
||||||
|
#replace 'ó' with 'o'
|
||||||
|
sed -i 's/\xc3\xb3/o/g' $LNG'_filtered.po'
|
||||||
|
#replace 'Ř' with 'R'
|
||||||
|
sed -i 's/\xc5\x98/R/g' $LNG'_filtered.po'
|
||||||
|
#replace 'ř' with 'r'
|
||||||
|
sed -i 's/\xc5\x99/r/g' $LNG'_filtered.po'
|
||||||
|
#replace 'Š' with 'S'
|
||||||
|
sed -i 's/\xc5\xa0/S/g' $LNG'_filtered.po'
|
||||||
|
#replace 'š' with 's'
|
||||||
|
sed -i 's/\xc5\xa1/s/g' $LNG'_filtered.po'
|
||||||
|
#replace 'Ť' with 'T'
|
||||||
|
sed -i 's/\xc5\xa4/T/g' $LNG'_filtered.po'
|
||||||
|
#replace 'ť' with 't'
|
||||||
|
sed -i 's/\xc5\xa5/t/g' $LNG'_filtered.po'
|
||||||
|
#replace 'Ú' with 'U'
|
||||||
|
sed -i 's/\xc3\x9a/U/g' $LNG'_filtered.po'
|
||||||
|
#replace 'ú' with 'u'
|
||||||
|
sed -i 's/\xc3\xba/u/g' $LNG'_filtered.po'
|
||||||
|
#replace 'Ů' with 'U'
|
||||||
|
sed -i 's/\xc5\xae/U/g' $LNG'_filtered.po'
|
||||||
|
#replace 'ů' with 'u'
|
||||||
|
sed -i 's/\xc5\xaf/u/g' $LNG'_filtered.po'
|
||||||
|
#replace 'Ý' with 'Y'
|
||||||
|
sed -i 's/\xc3\x9d/Y/g' $LNG'_filtered.po'
|
||||||
|
#replace 'ý' with 'y'
|
||||||
|
sed -i 's/\xc3\xbd/y/g' $LNG'_filtered.po'
|
||||||
|
#replace 'Ž' with 'Z'
|
||||||
|
sed -i 's/\xc5\xbd/Z/g' $LNG'_filtered.po'
|
||||||
|
#replace 'ž' with 'z'
|
||||||
|
sed -i 's/\xc5\xbe/z/g' $LNG'_filtered.po'
|
||||||
fi
|
fi
|
||||||
|
|
||||||
#replace in german translation https://en.wikipedia.org/wiki/German_orthography
|
#replace in german translation https://en.wikipedia.org/wiki/German_orthography
|
||||||
if [ "$LNG" = "de" ]; then
|
if [ "$LNG" = "de" ]; then
|
||||||
#replace 'ä' with 'ae'
|
#replace UTF-8 'äöüß' to HD44780 A00 'äöüß'
|
||||||
sed -i 's/\xc3\xa4/ae/g' $LNG'_filtered.po'
|
#replace 'ä' with 'A00 ROM ä'
|
||||||
#replace 'Ä' with 'Ae'
|
sed -i 's/\xc3\xa4/\\xe1/g' $LNG'_filtered.po'
|
||||||
sed -i 's/\xc3\x84/Ae/g' $LNG'_filtered.po'
|
#replace 'Ä' with 'A00 ROM ä'
|
||||||
#replace 'ü' with 'ue'
|
sed -i 's/\xc3\x84/\\xe1/g' $LNG'_filtered.po'
|
||||||
sed -i 's/\xc3\xbc/ue/g' $LNG'_filtered.po'
|
#replace 'ü' with 'A00 ROM ü'
|
||||||
#replace 'Ü' with 'Ue'
|
sed -i 's/\xc3\xbc/\\xf5/g' $LNG'_filtered.po'
|
||||||
sed -i 's/\xc3\x9c/Ue/g' $LNG'_filtered.po'
|
#replace 'Ü' with 'A00 ROM ü'
|
||||||
#replace 'ö' with 'oe'
|
sed -i 's/\xc3\x9c/\\xf5/g' $LNG'_filtered.po'
|
||||||
sed -i 's/\xc3\xb6/oe/g' $LNG'_filtered.po'
|
#replace 'ö' with 'A00 ROM ö'
|
||||||
#replace 'Ö' with 'Oe'
|
sed -i 's/\xc3\xb6/\\xef/g' $LNG'_filtered.po'
|
||||||
sed -i 's/\xc3\x96/Oe/g' $LNG'_filtered.po'
|
#replace 'Ö' with 'A00 ROM ö'
|
||||||
#replace 'ß' with 'ss'
|
sed -i 's/\xc3\x96/\\xef/g' $LNG'_filtered.po'
|
||||||
sed -i 's/\xc3\x9f/ss/g' $LNG'_filtered.po'
|
#replace 'ß' with 'A00 ROM ß'
|
||||||
|
sed -i 's/\xc3\x9f/\\xe2/g' $LNG'_filtered.po'
|
||||||
fi
|
fi
|
||||||
|
|
||||||
#replace in spain translation
|
#replace in spain translation
|
||||||
if [ "$LNG" = "es" ]; then
|
if [ "$LNG" = "es" ]; then
|
||||||
#replace 'á' with 'a'
|
#replace 'á' with 'a'
|
||||||
sed -i 's/\xc3\xa1/a/g' $LNG'_filtered.po'
|
sed -i 's/\xc3\xa1/a/g' $LNG'_filtered.po'
|
||||||
#replace '¿' with '?'
|
#replace '¿' with '?'
|
||||||
sed -i 's/\xc2\xbf/?/g' $LNG'_filtered.po'
|
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'
|
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'
|
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'
|
sed -i 's/\xc3\xad/i/g' $LNG'_filtered.po'
|
||||||
#replace '!' with '!'
|
#replace '!' with '!'
|
||||||
sed -i 's/\xc2\xa1/!/g' $LNG'_filtered.po'
|
sed -i 's/\xc2\xa1/!/g' $LNG'_filtered.po'
|
||||||
@ -99,146 +182,176 @@ fi
|
|||||||
|
|
||||||
#replace in french translation https://en.wikipedia.org/wiki/French_orthography
|
#replace in french translation https://en.wikipedia.org/wiki/French_orthography
|
||||||
if [ "$LNG" = "fr" ]; then
|
if [ "$LNG" = "fr" ]; then
|
||||||
#replace 'á' with 'a' (right)
|
#replace 'á' with 'a' (right)
|
||||||
sed -i 's/\xc3\xa1/a/g' $LNG'_filtered.po'
|
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'
|
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'
|
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'
|
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'
|
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'
|
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'
|
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'
|
sed -i 's/\xc3\x88/E/g' $LNG'_filtered.po'
|
||||||
fi
|
fi
|
||||||
|
|
||||||
#replace in italian translation
|
#replace in italian translation
|
||||||
if [ "$LNG" = "it" ]; then
|
if [ "$LNG" = "it" ]; then
|
||||||
#replace 'é' with 'e' (left)
|
#replace 'é' with 'e' (left)
|
||||||
sed -i 's/\xc3\xa8/e/g' $LNG'_filtered.po'
|
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'
|
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'
|
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'
|
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'
|
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'
|
sed -i 's/\xc3\x88/E/g' $LNG'_filtered.po'
|
||||||
fi
|
fi
|
||||||
|
|
||||||
#replace in dutch translation according to https://nl.wikipedia.org/wiki/Accenttekens_in_de_Nederlandse_spelling
|
#replace in dutch translation according to https://nl.wikipedia.org/wiki/Accenttekens_in_de_Nederlandse_spelling
|
||||||
if [ "$LNG" = "nl" ]; then
|
if [ "$LNG" = "nl" ]; then
|
||||||
#replace 'ë' with 'e'
|
#replace 'ë' with 'e'
|
||||||
sed -i 's/\xc3\xab/e/g' $LNG'_filtered.po'
|
sed -i 's/\xc3\xab/e/g' $LNG'_filtered.po'
|
||||||
#replace 'ï' with 'i'
|
#replace 'ï' with 'i'
|
||||||
sed -i 's/\xc3\xaf/i/g' $LNG'_filtered.po'
|
sed -i 's/\xc3\xaf/i/g' $LNG'_filtered.po'
|
||||||
#replace 'é' with 'e'
|
#replace 'é' with 'e'
|
||||||
sed -i 's/\xc3\xa9/e/g' $LNG'_filtered.po'
|
sed -i 's/\xc3\xa9/e/g' $LNG'_filtered.po'
|
||||||
#replace 'è' with 'e' (left)
|
#replace 'è' with 'e' (left)
|
||||||
sed -i 's/\xc3\xa8/e/g' $LNG'_filtered.po'
|
sed -i 's/\xc3\xa8/e/g' $LNG'_filtered.po'
|
||||||
#replace 'ö' with 'o' (left)
|
#replace 'ö' with 'o' (left)
|
||||||
sed -i 's/\xc3\xb6/o/g' $LNG'_filtered.po'
|
sed -i 's/\xc3\xb6/o/g' $LNG'_filtered.po'
|
||||||
#replace 'ê' with 'e' (left)
|
#replace 'ê' with 'e' (left)
|
||||||
sed -i 's/\xc3\xaa/e/g' $LNG'_filtered.po'
|
sed -i 's/\xc3\xaa/e/g' $LNG'_filtered.po'
|
||||||
#replace 'ü' with 'u' (left)
|
#replace 'ü' with 'u' (left)
|
||||||
sed -i 's/\xc3\xbc/u/g' $LNG'_filtered.po'
|
sed -i 's/\xc3\xbc/u/g' $LNG'_filtered.po'
|
||||||
#replace 'ç' with 'c' (left)
|
#replace 'ç' with 'c' (left)
|
||||||
sed -i 's/\xc3\xa7/c/g' $LNG'_filtered.po'
|
sed -i 's/\xc3\xa7/c/g' $LNG'_filtered.po'
|
||||||
#replace 'á' with 'a' (left)
|
#replace 'á' with 'a' (left)
|
||||||
sed -i 's/\xc3\xa1/a/g' $LNG'_filtered.po'
|
sed -i 's/\xc3\xa1/a/g' $LNG'_filtered.po'
|
||||||
#replace 'à' with 'a' (left)
|
#replace 'à' with 'a' (left)
|
||||||
sed -i 's/\xc3\xa0/a/g' $LNG'_filtered.po'
|
sed -i 's/\xc3\xa0/a/g' $LNG'_filtered.po'
|
||||||
#replace 'ä' with 'a' (left)
|
#replace 'ä' with 'a' (left)
|
||||||
sed -i 's/\xc3\xa4/a/g' $LNG'_filtered.po'
|
sed -i 's/\xc3\xa4/a/g' $LNG'_filtered.po'
|
||||||
#replace 'û' with 'u' (left)
|
#replace 'û' with 'u' (left)
|
||||||
sed -i 's/\xc3\xbc/u/g' $LNG'_filtered.po'
|
sed -i 's/\xc3\xbc/u/g' $LNG'_filtered.po'
|
||||||
#replace 'î' with 'i' (left)
|
#replace 'î' with 'i' (left)
|
||||||
sed -i 's/\xc3\xae/i/g' $LNG'_filtered.po'
|
sed -i 's/\xc3\xae/i/g' $LNG'_filtered.po'
|
||||||
#replace 'í' with 'i' (left)
|
#replace 'í' with 'i' (left)
|
||||||
sed -i 's/\xc3\xad/i/g' $LNG'_filtered.po'
|
sed -i 's/\xc3\xad/i/g' $LNG'_filtered.po'
|
||||||
#replace 'ô' with 'o' (left)
|
#replace 'ô' with 'o' (left)
|
||||||
sed -i 's/\xc3\xb4/o/g' $LNG'_filtered.po'
|
sed -i 's/\xc3\xb4/o/g' $LNG'_filtered.po'
|
||||||
#replace 'ú' with 'u' (left)
|
#replace 'ú' with 'u' (left)
|
||||||
sed -i 's/\xc3\xba/u/g' $LNG'_filtered.po'
|
sed -i 's/\xc3\xba/u/g' $LNG'_filtered.po'
|
||||||
#replace 'ñ' with 'n' (left)
|
#replace 'ñ' with 'n' (left)
|
||||||
sed -i 's/\xc3\xb1/n/g' $LNG'_filtered.po'
|
sed -i 's/\xc3\xb1/n/g' $LNG'_filtered.po'
|
||||||
#replace 'â' with 'a' (left)
|
#replace 'â' with 'a' (left)
|
||||||
sed -i 's/\xc3\xa2/a/g' $LNG'_filtered.po'
|
sed -i 's/\xc3\xa2/a/g' $LNG'_filtered.po'
|
||||||
#replace 'Å' with 'A' (left)
|
#replace 'Å' with 'A' (left)
|
||||||
sed -i 's/\xc3\x85/A/g' $LNG'_filtered.po'
|
sed -i 's/\xc3\x85/A/g' $LNG'_filtered.po'
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [ "$LGN" = "sv" ]; then
|
if [ "$LNG" = "sv" ]; then
|
||||||
#repace 'Å' with 'Aa'
|
#repace 'Å' with 'Aa'
|
||||||
sed -i 's/\xc3\x85/Aa/g' $LNG'_filtered.po'
|
sed -i 's/\xc3\x85/Aa/g' $LNG'_filtered.po'
|
||||||
#repace 'å' with 'aa'
|
#repace 'å' with 'aa'
|
||||||
sed -i 's/\xc3\xA5/aa/g' $LNG'_filtered.po'
|
sed -i 's/\xc3\xA5/aa/g' $LNG'_filtered.po'
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [ "$LGN" = "da" ]; then
|
if [ "$LNG" = "da" ]; then
|
||||||
#repace 'Å' with 'Aa'
|
#repace 'Å' with 'Aa'
|
||||||
sed -i 's/\xc3\x85/Aa/g' $LNG'_filtered.po'
|
sed -i 's/\xc3\x85/Aa/g' $LNG'_filtered.po'
|
||||||
#repace 'å' with 'aa'
|
#repace 'å' with 'aa'
|
||||||
sed -i 's/\xc3\xA5/aa/g' $LNG'_filtered.po'
|
sed -i 's/\xc3\xA5/aa/g' $LNG'_filtered.po'
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [ "$LGN" = "sl" ]; then
|
if [ "$LNG" = "sl" ]; then
|
||||||
#replace 'ë' with 'e'
|
#replace 'ë' with 'e'
|
||||||
sed -i 's/\xc3\xab/e/g' $LNG'_filtered.po'
|
sed -i 's/\xc3\xab/e/g' $LNG'_filtered.po'
|
||||||
#replace 'ä' with 'a' (left)
|
#replace 'ä' with 'a' (left)
|
||||||
sed -i 's/\xc3\xa4/a/g' $LNG'_filtered.po'
|
sed -i 's/\xc3\xa4/a/g' $LNG'_filtered.po'
|
||||||
#replace 'é' with 'e'
|
#replace 'é' with 'e'
|
||||||
sed -i 's/\xc3\xa9/e/g' $LNG'_filtered.po'
|
sed -i 's/\xc3\xa9/e/g' $LNG'_filtered.po'
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [ "$LGN" = "hu" ]; then
|
if [ "$LNG" = "hu" ]; then # See https://www.fileformat.info/info/charset/UTF-8/list.htm
|
||||||
#replace 'ë' with 'e'
|
#replace 'Á' with 'A'(acute)
|
||||||
|
sed -i 's/\xc3\x81/A/g' $LNG'_filtered.po'
|
||||||
|
#replace 'á' with 'a'
|
||||||
|
sed -i 's/\xc3\xa1/a/g' $LNG'_filtered.po'
|
||||||
|
#replace 'É' with 'E' (acute)
|
||||||
|
sed -i 's/\xc3\x89/E/g' $LNG'_filtered.po'
|
||||||
|
#replace 'é' with 'e'
|
||||||
|
sed -i 's/\xc3\xa9/e/g' $LNG'_filtered.po'
|
||||||
|
#replace 'Í' with 'I' (acute)
|
||||||
|
sed -i 's/\xc3\x8d/I/g' $LNG'_filtered.po'
|
||||||
|
#replace 'i̇́' with 'i'
|
||||||
|
sed -i 's/\xc3\xad/i/g' $LNG'_filtered.po'
|
||||||
|
#replace 'Ó' with 'O' (acute)
|
||||||
|
sed -i 's/\xc3\x93/O/g' $LNG'_filtered.po'
|
||||||
|
#replace 'ó' with 'o'
|
||||||
|
sed -i 's/\xc3\xb3/o/g' $LNG'_filtered.po'
|
||||||
|
#replace 'Ö' with 'O' (diaresis)
|
||||||
|
sed -i 's/\xc3\x96/O/g' $LNG'_filtered.po'
|
||||||
|
#replace 'ö' with 'o'
|
||||||
|
sed -i 's/\xc3\xb6/o/g' $LNG'_filtered.po'
|
||||||
|
#replace 'Ő' with 'O' (double acute)
|
||||||
|
sed -i 's/\xc5\x90/O/g' $LNG'_filtered.po'
|
||||||
|
#replace 'ő' with 'o'
|
||||||
|
sed -i 's/\xc5\x91/o/g' $LNG'_filtered.po'
|
||||||
|
#replace 'Ú' with 'U' (acute)
|
||||||
|
sed -i 's/\xc3\x9a/U/g' $LNG'_filtered.po'
|
||||||
|
#replace 'ú' with 'u'
|
||||||
|
sed -i 's/\xc3\xba/u/g' $LNG'_filtered.po'
|
||||||
|
#replace 'Ü' with 'U' (diaersis)
|
||||||
|
sed -i 's/\xc3\x9c/U/g' $LNG'_filtered.po'
|
||||||
|
#replace 'ü' with 'u'
|
||||||
|
sed -i 's/\xc3\xbc/u/g' $LNG'_filtered.po'
|
||||||
|
#replace 'Ű' with 'U' (double acute)
|
||||||
|
sed -i 's/\xc5\xb0/U/g' $LNG'_filtered.po'
|
||||||
|
#replace 'ű' with 'u'
|
||||||
|
sed -i 's/\xc5\xb1/u/g' $LNG'_filtered.po'
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ "$LNG" = "lb" ]; then
|
||||||
|
#replace 'ë' with 'e'
|
||||||
sed -i 's/\xc3\xab/e/g' $LNG'_filtered.po'
|
sed -i 's/\xc3\xab/e/g' $LNG'_filtered.po'
|
||||||
#replace 'ä' with 'a'
|
#replace 'ä' with 'a'
|
||||||
sed -i 's/\xc3\xa4/a/g' $LNG'_filtered.po'
|
sed -i 's/\xc3\xa4/a/g' $LNG'_filtered.po'
|
||||||
#replace 'é' with 'e'
|
#replace 'é' with 'e'
|
||||||
sed -i 's/\xc3\xa9/e/g' $LNG'_filtered.po'
|
sed -i 's/\xc3\xa9/e/g' $LNG'_filtered.po'
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [ "$LGN" = "lb" ]; then
|
if [ "$LNG" = "hr" ]; then
|
||||||
#replace 'ë' with 'e'
|
#replace 'ë' with 'e'
|
||||||
sed -i 's/\xc3\xab/e/g' $LNG'_filtered.po'
|
sed -i 's/\xc3\xab/e/g' $LNG'_filtered.po'
|
||||||
#replace 'ä' with 'a'
|
#replace 'ä' with 'a'
|
||||||
sed -i 's/\xc3\xa4/a/g' $LNG'_filtered.po'
|
sed -i 's/\xc3\xa4/a/g' $LNG'_filtered.po'
|
||||||
#replace 'é' with 'e'
|
#replace 'é' with 'e'
|
||||||
sed -i 's/\xc3\xa9/e/g' $LNG'_filtered.po'
|
sed -i 's/\xc3\xa9/e/g' $LNG'_filtered.po'
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [ "$LGN" = "hr" ]; then
|
if [ "$LNG" = "lt" ]; then
|
||||||
#replace 'ë' with 'e'
|
#replace 'ë' with 'e'
|
||||||
sed -i 's/\xc3\xab/e/g' $LNG'_filtered.po'
|
sed -i 's/\xc3\xab/e/g' $LNG'_filtered.po'
|
||||||
#replace 'ä' with 'a'
|
#replace 'ä' with 'a'
|
||||||
sed -i 's/\xc3\xa4/a/g' $LNG'_filtered.po'
|
sed -i 's/\xc3\xa4/a/g' $LNG'_filtered.po'
|
||||||
#replace 'é' with 'e'
|
#replace 'é' with 'e'
|
||||||
sed -i 's/\xc3\xa9/e/g' $LNG'_filtered.po'
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ "$LGN" = "lt" ]; then
|
|
||||||
#replace 'ë' with 'e'
|
|
||||||
sed -i 's/\xc3\xab/e/g' $LNG'_filtered.po'
|
|
||||||
#replace 'ä' with 'a'
|
|
||||||
sed -i 's/\xc3\xa4/a/g' $LNG'_filtered.po'
|
|
||||||
#replace 'é' with 'e'
|
|
||||||
sed -i 's/\xc3\xa9/e/g' $LNG'_filtered.po'
|
sed -i 's/\xc3\xa9/e/g' $LNG'_filtered.po'
|
||||||
fi
|
fi
|
||||||
#replace in polish translation
|
#replace in polish translation
|
||||||
#if [ "$LNG" = "pl" ]; then
|
#if [ "$LNG" = "pl" ]; then
|
||||||
#fi
|
#fi
|
||||||
|
|
||||||
#check for nonasci characters
|
#check for nonasci characters except HD44780 ROM A00 'äöüß'
|
||||||
if grep --color='auto' -P -n '[^\x00-\x7F]' $LNG'_filtered.po' >nonasci.txt; then
|
if grep --color='auto' -P -n '[^\x00-\x7F]' $LNG'_filtered.po' >nonascii.txt; then
|
||||||
exit
|
exit
|
||||||
fi
|
fi
|
||||||
|
|
||||||
@ -249,7 +362,7 @@ cat $LNG'_filtered.po' | sed ':a;N;$!ba;s/\x22\n\x22//g' > $LNG'_new.po'
|
|||||||
|
|
||||||
CNTTXT=$(grep '^# MSG' -c $LNGISO.po)
|
CNTTXT=$(grep '^# MSG' -c $LNGISO.po)
|
||||||
num=1
|
num=1
|
||||||
echo " selected language=$LNGISO" >&2
|
echo " selected language=$(tput setaf 2)$LNGISO$(tput sgr 0)" >&2
|
||||||
#generate new dictionary
|
#generate new dictionary
|
||||||
cat ../../lang_en.txt | sed 's/\\/\\\\/g' | while read -r s; do
|
cat ../../lang_en.txt | sed 's/\\/\\\\/g' | while read -r s; do
|
||||||
/bin/echo -e "$s"
|
/bin/echo -e "$s"
|
||||||
@ -260,11 +373,11 @@ cat ../../lang_en.txt | sed 's/\\/\\\\/g' | while read -r s; do
|
|||||||
s=$(/bin/echo -e "$s")
|
s=$(/bin/echo -e "$s")
|
||||||
s2=$(grep -F -A1 -B0 "msgid $s" "$LNG"_new.po | tail -n1 | sed 's/^msgstr //')
|
s2=$(grep -F -A1 -B0 "msgid $s" "$LNG"_new.po | tail -n1 | sed 's/^msgstr //')
|
||||||
if [ -z "$s2" ]; then
|
if [ -z "$s2" ]; then
|
||||||
echo " processing $num of $CNTTXT" >&2
|
echo -ne " processing $num of $CNTTXT\033[0K\r" >&2
|
||||||
echo '"\x00"'
|
echo '"\x00"'
|
||||||
num=$((num+1))
|
num=$((num+1))
|
||||||
else
|
else
|
||||||
echo " processing $num of $CNTTXT" >&2
|
echo -ne " processing $num of $CNTTXT\033[0K\r" >&2
|
||||||
echo "$s2"
|
echo "$s2"
|
||||||
num=$((num+1))
|
num=$((num+1))
|
||||||
fi
|
fi
|
||||||
@ -272,8 +385,15 @@ cat ../../lang_en.txt | sed 's/\\/\\\\/g' | while read -r s; do
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
done > lang_en_$LNG.txt
|
done > lang_en_$LNG.txt
|
||||||
echo "Finished with $LNGISO" >&2
|
echo >&2
|
||||||
|
echo "$(tput setaf 2)Finished with $LNGISO$(tput sgr 0)" >&2
|
||||||
#replace two double quotes to "\x00"
|
#replace two double quotes to "\x00"
|
||||||
sed -i 's/""/"\\x00"/g' lang_en_$LNG.txt
|
sed -i 's/""/"\\x00"/g' lang_en_$LNG.txt
|
||||||
#remove CR
|
#remove CR
|
||||||
sed -i "s/\r//g" lang_en_$LNG.txt
|
sed -i "s/\r//g" lang_en_$LNG.txt
|
||||||
|
#check new lang
|
||||||
|
./../../lang-check.py $LNG --warn-empty
|
||||||
|
./../../lang-check.py $LNG --information >$LNG-output.txt
|
||||||
|
echo >&2
|
||||||
|
echo "$(tput setaf 2)lang-import.sh finished$(tput sgr 0)">&2
|
||||||
|
|
||||||
|
@ -1,10 +1,10 @@
|
|||||||
#MSG_IR_03_OR_OLDER c=18
|
#MSG_IR_03_OR_OLDER c=18
|
||||||
" 0.3 or older"
|
" 0.3 or older"
|
||||||
" 0.3 oder aelter"
|
" 0.3 oder \xe1lter"
|
||||||
|
|
||||||
#MSG_FS_V_03_OR_OLDER c=18
|
#MSG_FS_V_03_OR_OLDER c=18
|
||||||
"FS v0.3 or older"
|
"FS v0.3 or older"
|
||||||
"FS 0.3 oder aelter"
|
"FS v0.3 oder \xe1lter"
|
||||||
|
|
||||||
#MSG_IR_04_OR_NEWER c=18
|
#MSG_IR_04_OR_NEWER c=18
|
||||||
" 0.4 or newer"
|
" 0.4 or newer"
|
||||||
@ -12,7 +12,7 @@
|
|||||||
|
|
||||||
#MSG_FS_V_04_OR_NEWER c=18
|
#MSG_FS_V_04_OR_NEWER c=18
|
||||||
"FS v0.4 or newer"
|
"FS v0.4 or newer"
|
||||||
"FS 0.4 oder neuer"
|
"FS v0.4 oder neuer"
|
||||||
|
|
||||||
#MSG_IR_UNKNOWN c=18
|
#MSG_IR_UNKNOWN c=18
|
||||||
"unknown state"
|
"unknown state"
|
||||||
@ -40,7 +40,7 @@
|
|||||||
|
|
||||||
#MSG_WIZARD_DONE c=20 r=8
|
#MSG_WIZARD_DONE c=20 r=8
|
||||||
"All is done. Happy printing!"
|
"All is done. Happy printing!"
|
||||||
"Alles abgeschlossen. Viel Spass beim Drucken!"
|
"Alles abgeschlossen. Viel Spa\xe2 beim Drucken!"
|
||||||
|
|
||||||
#MSG_AMBIENT c=14
|
#MSG_AMBIENT c=14
|
||||||
"Ambient"
|
"Ambient"
|
||||||
@ -52,7 +52,7 @@
|
|||||||
|
|
||||||
#MSG_PRESS c=20 r=2
|
#MSG_PRESS c=20 r=2
|
||||||
"and press the knob"
|
"and press the knob"
|
||||||
"und Knopf druecken"
|
"und Knopf dr\xf5cken"
|
||||||
|
|
||||||
#MSG_CONFIRM_CARRIAGE_AT_THE_TOP c=20 r=2
|
#MSG_CONFIRM_CARRIAGE_AT_THE_TOP c=20 r=2
|
||||||
"Are left and right Z~carriages all up?"
|
"Are left and right Z~carriages all up?"
|
||||||
@ -68,15 +68,15 @@
|
|||||||
|
|
||||||
#MSG_AUTOLOADING_ONLY_IF_FSENS_ON c=20 r=4
|
#MSG_AUTOLOADING_ONLY_IF_FSENS_ON c=20 r=4
|
||||||
"Autoloading filament available only when filament sensor is turned on..."
|
"Autoloading filament available only when filament sensor is turned on..."
|
||||||
"Automatisches Laden Filament nur bei eingeschaltetem Fil. sensor verfuegbar..."
|
"Automatisches Laden Filament nur bei eingeschaltetem Fil. sensor verf\xf5gbar..."
|
||||||
|
|
||||||
#MSG_AUTOLOADING_ENABLED c=20 r=4
|
#MSG_AUTOLOADING_ENABLED c=20 r=4
|
||||||
"Autoloading filament is active, just press the knob and insert filament..."
|
"Autoloading filament is active, just press the knob and insert filament..."
|
||||||
"Automatisches Laden Filament ist aktiv, Knopf druecken und Filament einlegen..."
|
"Automatisches Laden Filament ist aktiv, Knopf dr\xf5cken und Filament einlegen..."
|
||||||
|
|
||||||
#MSG_SELFTEST_AXIS_LENGTH c=20
|
#MSG_SELFTEST_AXIS_LENGTH c=20
|
||||||
"Axis length"
|
"Axis length"
|
||||||
"Achsenlaenge"
|
"Achsenl\xe1nge"
|
||||||
|
|
||||||
#MSG_SELFTEST_AXIS c=16
|
#MSG_SELFTEST_AXIS c=16
|
||||||
"Axis"
|
"Axis"
|
||||||
@ -92,7 +92,7 @@
|
|||||||
|
|
||||||
#MSG_BED_HEATING c=20
|
#MSG_BED_HEATING c=20
|
||||||
"Bed Heating"
|
"Bed Heating"
|
||||||
"Bett aufwaermen"
|
"Bett aufw\xe1rmen"
|
||||||
|
|
||||||
#MSG_BED_CORRECTION_MENU c=18
|
#MSG_BED_CORRECTION_MENU c=18
|
||||||
"Bed level correct"
|
"Bed level correct"
|
||||||
@ -104,7 +104,7 @@
|
|||||||
|
|
||||||
#MSG_BED_LEVELING_FAILED_POINT_LOW c=20 r=6
|
#MSG_BED_LEVELING_FAILED_POINT_LOW c=20 r=6
|
||||||
"Bed leveling failed. Sensor didn't trigger. Debris on nozzle? Waiting for reset."
|
"Bed leveling failed. Sensor didn't trigger. Debris on nozzle? Waiting for reset."
|
||||||
"Z-Kal. fehlgeschlg. Sensor nicht ausgeloest. Schmutzige Duese? Warte auf Reset."
|
"Z-Kal. fehlgeschlg. Sensor nicht ausgel\xefst. Schmutzige D\xf5se? Warte auf Reset."
|
||||||
|
|
||||||
#MSG_BRIGHT c=6
|
#MSG_BRIGHT c=6
|
||||||
"Bright"
|
"Bright"
|
||||||
@ -148,7 +148,7 @@
|
|||||||
|
|
||||||
#MSG_MOVE_CARRIAGE_TO_THE_TOP c=20 r=8
|
#MSG_MOVE_CARRIAGE_TO_THE_TOP c=20 r=8
|
||||||
"Calibrating XYZ. Rotate the knob to move the Z carriage up to the end stoppers. Click when done."
|
"Calibrating XYZ. Rotate the knob to move the Z carriage up to the end stoppers. Click when done."
|
||||||
"XYZ Kalibrieren: Drehen Sie den Knopf bis der obere Anschlag erreicht wird. Anschliessend den Knopf druecken."
|
"XYZ Kalibrieren: Drehen Sie den Knopf bis der obere Anschlag erreicht wird. Anschliessend den Knopf dr\xf5cken."
|
||||||
|
|
||||||
#MSG_CALIBRATE_Z_AUTO c=20 r=2
|
#MSG_CALIBRATE_Z_AUTO c=20 r=2
|
||||||
"Calibrating Z"
|
"Calibrating Z"
|
||||||
@ -156,7 +156,7 @@
|
|||||||
|
|
||||||
#MSG_MOVE_CARRIAGE_TO_THE_TOP_Z c=20 r=8
|
#MSG_MOVE_CARRIAGE_TO_THE_TOP_Z c=20 r=8
|
||||||
"Calibrating Z. Rotate the knob to move the Z carriage up to the end stoppers. Click when done."
|
"Calibrating Z. Rotate the knob to move the Z carriage up to the end stoppers. Click when done."
|
||||||
"Z Kalibrieren: Drehen Sie den Knopf bis der obere Anschlag erreicht wird. Anschliessend den Knopf druecken."
|
"Z Kalibrieren: Drehen Sie den Knopf bis der obere Anschlag erreicht wird. Anschliessend den Knopf dr\xf5cken."
|
||||||
|
|
||||||
#MSG_HOMEYZ_DONE c=20
|
#MSG_HOMEYZ_DONE c=20
|
||||||
"Calibration done"
|
"Calibration done"
|
||||||
@ -172,7 +172,7 @@
|
|||||||
|
|
||||||
#MSG_CHECKING_FILE c=17
|
#MSG_CHECKING_FILE c=17
|
||||||
"Checking file"
|
"Checking file"
|
||||||
"Ueberpruefe Datei"
|
"\xf5berpr\xf5fe Datei"
|
||||||
|
|
||||||
#MSG_NOT_COLOR c=19
|
#MSG_NOT_COLOR c=19
|
||||||
"Color not correct"
|
"Color not correct"
|
||||||
@ -180,11 +180,11 @@
|
|||||||
|
|
||||||
#MSG_COOLDOWN c=18
|
#MSG_COOLDOWN c=18
|
||||||
"Cooldown"
|
"Cooldown"
|
||||||
"Abkuehlen"
|
"Abk\xf5hlen"
|
||||||
|
|
||||||
#MSG_COPY_SEL_LANG c=20 r=3
|
#MSG_COPY_SEL_LANG c=20 r=3
|
||||||
"Copy selected language?"
|
"Copy selected language?"
|
||||||
"Gewaehlte Sprache kopieren?"
|
"Gew\xe1hlte Sprache kopieren?"
|
||||||
|
|
||||||
#MSG_CRASHDETECT c=13
|
#MSG_CRASHDETECT c=13
|
||||||
"Crash det."
|
"Crash det."
|
||||||
@ -192,7 +192,7 @@
|
|||||||
|
|
||||||
#MSG_CHOOSE_FIL_1ST_LAYERCAL c=20 r=7
|
#MSG_CHOOSE_FIL_1ST_LAYERCAL c=20 r=7
|
||||||
"Choose a filament for the First Layer Calibration and select it in the on-screen menu."
|
"Choose a filament for the First Layer Calibration and select it in the on-screen menu."
|
||||||
"Waehlen Sie ein Filament fuer Erste Schichtkalibrierung aus und waehlen Sie es im On-Screen-Menu aus."
|
"W\xe1hlen Sie ein Filament f\xf5r Erste- Schichtkalibrierung aus und w\xe1hlen Sie es im On-Screen-Menu aus."
|
||||||
|
|
||||||
#MSG_CRASH_DETECTED c=20
|
#MSG_CRASH_DETECTED c=20
|
||||||
"Crash detected."
|
"Crash detected."
|
||||||
@ -200,7 +200,7 @@
|
|||||||
|
|
||||||
#MSG_CRASH_RESUME c=20 r=3
|
#MSG_CRASH_RESUME c=20 r=3
|
||||||
"Crash detected. Resume print?"
|
"Crash detected. Resume print?"
|
||||||
"Crash erkannt. Druck fortfuehren?"
|
"Crash erkannt. Druck fortf\xf5hren?"
|
||||||
|
|
||||||
#MSG_CRASH c=7
|
#MSG_CRASH c=7
|
||||||
"Crash"
|
"Crash"
|
||||||
@ -224,7 +224,7 @@
|
|||||||
|
|
||||||
#MSG_BABYSTEP_Z_NOT_SET c=20 r=12
|
#MSG_BABYSTEP_Z_NOT_SET c=20 r=12
|
||||||
"Distance between tip of the nozzle and the bed surface has not been set yet. Please follow the manual, chapter First steps, section First layer calibration."
|
"Distance between tip of the nozzle and the bed surface has not been set yet. Please follow the manual, chapter First steps, section First layer calibration."
|
||||||
"Der Abstand zwischen der Spitze der Duese und dem Bett ist noch nicht eingestellt. Bitte folgen Sie dem Handbuch, Kapitel Erste Schritte, Abschnitt Erste Schicht Kalibrierung."
|
"Der Abstand zwischen der Spitze der D\xf5se und dem Bett ist noch nicht eingestellt. Bitte folgen Sie dem Handbuch, Kapitel Erste Schritte, Abschnitt Erste Schicht Kalibrierung."
|
||||||
|
|
||||||
#MSG_FS_CONTINUE c=5
|
#MSG_FS_CONTINUE c=5
|
||||||
"Cont."
|
"Cont."
|
||||||
@ -232,7 +232,7 @@
|
|||||||
|
|
||||||
#MSG_WIZARD_REPEAT_V2_CAL c=20 r=7
|
#MSG_WIZARD_REPEAT_V2_CAL c=20 r=7
|
||||||
"Do you want to repeat last step to readjust distance between nozzle and heatbed?"
|
"Do you want to repeat last step to readjust distance between nozzle and heatbed?"
|
||||||
"Moechten Sie den letzten Schritt wiederholen, um den Abstand zwischen Duese und Druckbett neu einzustellen?"
|
"M\xefchten Sie den letzten Schritt wiederholen, um den Abstand zwischen D\xf5se und Druckbett neu einzustellen?"
|
||||||
|
|
||||||
#MSG_EXTRUDER_CORRECTION c=13
|
#MSG_EXTRUDER_CORRECTION c=13
|
||||||
"E-correct:"
|
"E-correct:"
|
||||||
@ -260,7 +260,7 @@
|
|||||||
|
|
||||||
#MSG_STACK_ERROR c=20 r=4
|
#MSG_STACK_ERROR c=20 r=4
|
||||||
"Error - static memory has been overwritten"
|
"Error - static memory has been overwritten"
|
||||||
"Fehler - statischer Speicher wurde ueberschrieben"
|
"Fehler - statischer Speicher wurde \xf5berschrieben"
|
||||||
|
|
||||||
#MSG_CUT_FILAMENT c=16
|
#MSG_CUT_FILAMENT c=16
|
||||||
"Cut filament"
|
"Cut filament"
|
||||||
@ -276,7 +276,7 @@
|
|||||||
|
|
||||||
#MSG_FSENS_NOT_RESPONDING c=20 r=4
|
#MSG_FSENS_NOT_RESPONDING c=20 r=4
|
||||||
"ERROR: Filament sensor is not responding, please check connection."
|
"ERROR: Filament sensor is not responding, please check connection."
|
||||||
"FEHLER: Filament- sensor reagiert nicht, bitte Verbindung pruefen."
|
"FEHLER: Filament- sensor reagiert nicht, bitte Verbindung pr\xf5fen."
|
||||||
|
|
||||||
#MSG_DIM c=6
|
#MSG_DIM c=6
|
||||||
"Dim"
|
"Dim"
|
||||||
@ -288,7 +288,7 @@
|
|||||||
|
|
||||||
#MSG_SELFTEST_EXTRUDER_FAN_SPEED c=18
|
#MSG_SELFTEST_EXTRUDER_FAN_SPEED c=18
|
||||||
"Extruder fan:"
|
"Extruder fan:"
|
||||||
"Extruder Luefter:"
|
"Extruderl\xf5fter:"
|
||||||
|
|
||||||
#MSG_INFO_EXTRUDER c=18
|
#MSG_INFO_EXTRUDER c=18
|
||||||
"Extruder info"
|
"Extruder info"
|
||||||
@ -312,15 +312,15 @@
|
|||||||
|
|
||||||
#MSG_FAN_SPEED c=14
|
#MSG_FAN_SPEED c=14
|
||||||
"Fan speed"
|
"Fan speed"
|
||||||
"Luefter-Tempo"
|
"L\xf5fter-Tempo"
|
||||||
|
|
||||||
#MSG_SELFTEST_FAN c=20
|
#MSG_SELFTEST_FAN c=20
|
||||||
"Fan test"
|
"Fan test"
|
||||||
"Lueftertest"
|
"L\xf5ftertest"
|
||||||
|
|
||||||
#MSG_FANS_CHECK c=13
|
#MSG_FANS_CHECK c=13
|
||||||
"Fans check"
|
"Fans check"
|
||||||
"Luefter Chk."
|
"L\xf5fter Check"
|
||||||
|
|
||||||
#MSG_FSENSOR c=12
|
#MSG_FSENSOR c=12
|
||||||
"Fil. sensor"
|
"Fil. sensor"
|
||||||
@ -328,7 +328,7 @@
|
|||||||
|
|
||||||
#MSG_FIL_RUNOUTS c=15
|
#MSG_FIL_RUNOUTS c=15
|
||||||
"Fil. runouts"
|
"Fil. runouts"
|
||||||
"Fil. Maengel"
|
"Fil. M\xe1ngel"
|
||||||
|
|
||||||
#MSG_FILAMENT_CLEAN c=20 r=2
|
#MSG_FILAMENT_CLEAN c=20 r=2
|
||||||
"Filament extruding & with correct color?"
|
"Filament extruding & with correct color?"
|
||||||
@ -356,7 +356,7 @@
|
|||||||
|
|
||||||
#MSG_FILE_INCOMPLETE c=20 r=3
|
#MSG_FILE_INCOMPLETE c=20 r=3
|
||||||
"File incomplete. Continue anyway?"
|
"File incomplete. Continue anyway?"
|
||||||
"Datei unvollstaendig Trotzdem fortfahren?"
|
"Datei unvollst\xe1ndig Trotzdem fortfahren?"
|
||||||
|
|
||||||
#MSG_FINISHING_MOVEMENTS c=20
|
#MSG_FINISHING_MOVEMENTS c=20
|
||||||
"Finishing movements"
|
"Finishing movements"
|
||||||
@ -368,11 +368,11 @@
|
|||||||
|
|
||||||
#MSG_WIZARD_SELFTEST c=20 r=8
|
#MSG_WIZARD_SELFTEST c=20 r=8
|
||||||
"First, I will run the selftest to check most common assembly problems."
|
"First, I will run the selftest to check most common assembly problems."
|
||||||
"Zunaechst fuehre ich den Selbsttest durch, um die haeufigsten Probleme beim Zusammenbau zu ueberpruefen."
|
"Zun\xe1chst f\xf5hre ich den Selbsttest durch, um die h\xe1ufigsten Probleme beim Zusammenbau zu \xf5berpr\xf5fen."
|
||||||
|
|
||||||
#MSG_MMU_FIX_ISSUE c=20 r=4
|
#MSG_MMU_FIX_ISSUE c=20 r=4
|
||||||
"Fix the issue and then press button on MMU unit."
|
"Fix the issue and then press button on MMU unit."
|
||||||
"Beseitigen Sie das Problem und druecken Sie dann den Knopf am MMU."
|
"Beseitigen Sie das Problem und dr\xf5cken Sie dann den Knopf am MMU."
|
||||||
|
|
||||||
#MSG_FLOW c=15
|
#MSG_FLOW c=15
|
||||||
"Flow"
|
"Flow"
|
||||||
@ -380,7 +380,7 @@
|
|||||||
|
|
||||||
#MSG_SELFTEST_COOLING_FAN c=20
|
#MSG_SELFTEST_COOLING_FAN c=20
|
||||||
"Front print fan?"
|
"Front print fan?"
|
||||||
"Teile Luefter?"
|
"Druckl\xf5fter?"
|
||||||
|
|
||||||
#MSG_BED_CORRECTION_FRONT c=14
|
#MSG_BED_CORRECTION_FRONT c=14
|
||||||
"Front side[um]"
|
"Front side[um]"
|
||||||
@ -388,7 +388,7 @@
|
|||||||
|
|
||||||
#MSG_SELFTEST_FANS c=20
|
#MSG_SELFTEST_FANS c=20
|
||||||
"Front/left fans"
|
"Front/left fans"
|
||||||
"Teile/Extr. Luefter"
|
"Druck/Extr. L\xf5fter"
|
||||||
|
|
||||||
#MSG_SELFTEST_HEATERTHERMISTOR c=20
|
#MSG_SELFTEST_HEATERTHERMISTOR c=20
|
||||||
"Heater/Thermistor"
|
"Heater/Thermistor"
|
||||||
@ -400,15 +400,15 @@
|
|||||||
|
|
||||||
#MSG_HEATING_COMPLETE c=20
|
#MSG_HEATING_COMPLETE c=20
|
||||||
"Heating done."
|
"Heating done."
|
||||||
"Aufwaermen OK."
|
"Aufw\xe1rmen OK."
|
||||||
|
|
||||||
#MSG_HEATING c=20
|
#MSG_HEATING c=20
|
||||||
"Heating"
|
"Heating"
|
||||||
"Aufwaermen"
|
"Aufw\xe1rmen"
|
||||||
|
|
||||||
#MSG_WIZARD_WELCOME c=20 r=7
|
#MSG_WIZARD_WELCOME c=20 r=7
|
||||||
"Hi, I am your Original Prusa i3 printer. Would you like me to guide you through the setup process?"
|
"Hi, I am your Original Prusa i3 printer. Would you like me to guide you through the setup process?"
|
||||||
"Hallo, ich bin Ihr Original Prusa i3 Drucker. Moechten Sie, dass ich Sie durch den Einrich- tungsablauf fuehre?"
|
"Hallo, ich bin Ihr Original Prusa i3 Drucker. M\xefchten Sie, dass ich Sie durch den Einricht- ungsablauf f\xf5hre?"
|
||||||
|
|
||||||
#MSG_FILAMENTCHANGE c=18
|
#MSG_FILAMENTCHANGE c=18
|
||||||
"Change filament"
|
"Change filament"
|
||||||
@ -424,39 +424,39 @@
|
|||||||
|
|
||||||
#MSG_SELFTEST_CHECK_BED c=20
|
#MSG_SELFTEST_CHECK_BED c=20
|
||||||
"Checking bed"
|
"Checking bed"
|
||||||
"Pruefe Bett"
|
"Pr\xf5fe Bett"
|
||||||
|
|
||||||
#MSG_SELFTEST_CHECK_ENDSTOPS c=20
|
#MSG_SELFTEST_CHECK_ENDSTOPS c=20
|
||||||
"Checking endstops"
|
"Checking endstops"
|
||||||
"Pruefe Endschalter"
|
"Pr\xf5fe Endschalter"
|
||||||
|
|
||||||
#MSG_SELFTEST_CHECK_HOTEND c=20
|
#MSG_SELFTEST_CHECK_HOTEND c=20
|
||||||
"Checking hotend"
|
"Checking hotend"
|
||||||
"Pruefe Duese"
|
"Pr\xf5fe D\xf5se"
|
||||||
|
|
||||||
#MSG_SELFTEST_CHECK_FSENSOR c=20
|
#MSG_SELFTEST_CHECK_FSENSOR c=20
|
||||||
"Checking sensors"
|
"Checking sensors"
|
||||||
"Pruefe Sensoren"
|
"Pr\xf5fe Sensoren"
|
||||||
|
|
||||||
#MSG_CHECKING_X c=20
|
#MSG_CHECKING_X c=20
|
||||||
"Checking X axis"
|
"Checking X axis"
|
||||||
"Pruefe X Achse"
|
"Pr\xf5fe X Achse"
|
||||||
|
|
||||||
#MSG_CHECKING_Y c=20
|
#MSG_CHECKING_Y c=20
|
||||||
"Checking Y axis"
|
"Checking Y axis"
|
||||||
"Pruefe Y Achse"
|
"Pr\xf5fe Y Achse"
|
||||||
|
|
||||||
#MSG_SELFTEST_CHECK_Z c=20
|
#MSG_SELFTEST_CHECK_Z c=20
|
||||||
"Checking Z axis"
|
"Checking Z axis"
|
||||||
"Pruefe Z Achse"
|
"Pr\xf5fe Z Achse"
|
||||||
|
|
||||||
#MSG_CHOOSE_EXTRUDER c=20
|
#MSG_CHOOSE_EXTRUDER c=20
|
||||||
"Choose extruder:"
|
"Choose extruder:"
|
||||||
"Extruder waehlen:"
|
"Extruder w\xe1hlen:"
|
||||||
|
|
||||||
#MSG_CHOOSE_FILAMENT c=20
|
#MSG_CHOOSE_FILAMENT c=20
|
||||||
"Choose filament:"
|
"Choose filament:"
|
||||||
"Waehle Filament:"
|
"W\xe1hle Filament:"
|
||||||
|
|
||||||
#MSG_FILAMENT c=17
|
#MSG_FILAMENT c=17
|
||||||
"Filament"
|
"Filament"
|
||||||
@ -464,11 +464,11 @@
|
|||||||
|
|
||||||
#MSG_WIZARD_XYZ_CAL c=20 r=8
|
#MSG_WIZARD_XYZ_CAL c=20 r=8
|
||||||
"I will run xyz calibration now. It will take approx. 12 mins."
|
"I will run xyz calibration now. It will take approx. 12 mins."
|
||||||
"Ich werde jetzt die XYZ-Kalibrierung durchfuehren. Es wird ca. 12 Minuten dauern."
|
"Ich werde jetzt die XYZ-Kalibrierung durchf\xf5hren. Es wird ca. 12 Minuten dauern."
|
||||||
|
|
||||||
#MSG_WIZARD_Z_CAL c=20 r=8
|
#MSG_WIZARD_Z_CAL c=20 r=8
|
||||||
"I will run z calibration now."
|
"I will run z calibration now."
|
||||||
"Ich werde jetzt die Z Kalibrierung durchfuehren."
|
"Ich werde jetzt die Z Kalibrierung durchf\xf5hren."
|
||||||
|
|
||||||
#MSG_WATCH c=18
|
#MSG_WATCH c=18
|
||||||
"Info screen"
|
"Info screen"
|
||||||
@ -492,11 +492,11 @@
|
|||||||
|
|
||||||
#MSG_WIZARD_WELCOME_SHIPPING c=20 r=16
|
#MSG_WIZARD_WELCOME_SHIPPING c=20 r=16
|
||||||
"Hi, I am your Original Prusa i3 printer. I will guide you through a short setup process, in which the Z-axis will be calibrated. Then, you will be ready to print."
|
"Hi, I am your Original Prusa i3 printer. I will guide you through a short setup process, in which the Z-axis will be calibrated. Then, you will be ready to print."
|
||||||
"Hallo, ich bin Ihr Original Prusa i3 Drucker. Ich werde Sie durch einen kurzen Einrichtungsprozess fuehren, bei dem die Z-Achse kalibriert wird. Danach sind Sie bereit fuer den Druck."
|
"Hallo, ich bin Ihr Original Prusa i3 Drucker. Ich werde Sie durch einen kurzen Einrichtungsprozess f\xf5hren, bei dem die Z-Achse kalibriert wird. Danach sind Sie bereit f\xf5r den Druck."
|
||||||
|
|
||||||
#MSG_ADDITIONAL_SHEETS c=20 r=9
|
#MSG_ADDITIONAL_SHEETS c=20 r=9
|
||||||
"If you have additional steel sheets, calibrate their presets in Settings - HW Setup - Steel sheets."
|
"If you have additional steel sheets, calibrate their presets in Settings - HW Setup - Steel sheets."
|
||||||
"Wenn Sie zusaetzliche Stahlbleche haben, kalibrieren Sie deren Voreinstellungen unter Einstellungen - HW Setup - Stahlbleche."
|
"Wenn Sie zus\xe1tzliche Stahlbleche haben, kalibrieren Sie deren Voreinstellungen unter Einstellungen - HW Setup - Stahlbleche."
|
||||||
|
|
||||||
#MSG_LAST_PRINT c=18
|
#MSG_LAST_PRINT c=18
|
||||||
"Last print"
|
"Last print"
|
||||||
@ -504,7 +504,7 @@
|
|||||||
|
|
||||||
#MSG_SELFTEST_EXTRUDER_FAN c=20
|
#MSG_SELFTEST_EXTRUDER_FAN c=20
|
||||||
"Left hotend fan?"
|
"Left hotend fan?"
|
||||||
"Extruder Luefter?"
|
"Extruderl\xf5fter?"
|
||||||
|
|
||||||
#MSG_LEFT c=10
|
#MSG_LEFT c=10
|
||||||
"Left"
|
"Left"
|
||||||
@ -524,7 +524,7 @@
|
|||||||
|
|
||||||
#MSG_INSERT_FIL c=20 r=6
|
#MSG_INSERT_FIL c=20 r=6
|
||||||
"Insert the filament (do not load it) into the extruder and then press the knob."
|
"Insert the filament (do not load it) into the extruder and then press the knob."
|
||||||
"Stecken Sie das Filament (nicht laden) in den Extruder und druecken Sie dann den Knopf."
|
"Stecken Sie das Filament (nicht laden) in den Extruder und dr\xf5cken Sie dann den Knopf."
|
||||||
|
|
||||||
#MSG_LOAD_FILAMENT c=17
|
#MSG_LOAD_FILAMENT c=17
|
||||||
"Load filament"
|
"Load filament"
|
||||||
@ -536,7 +536,7 @@
|
|||||||
|
|
||||||
#MSG_LOADING_FILAMENT c=20
|
#MSG_LOADING_FILAMENT c=20
|
||||||
"Loading filament"
|
"Loading filament"
|
||||||
"Filament laedt"
|
"Filament l\xe1dt"
|
||||||
|
|
||||||
#MSG_ITERATION c=12
|
#MSG_ITERATION c=12
|
||||||
"Iteration"
|
"Iteration"
|
||||||
@ -556,7 +556,7 @@
|
|||||||
|
|
||||||
#MSG_MAIN c=18
|
#MSG_MAIN c=18
|
||||||
"Main"
|
"Main"
|
||||||
"Hauptmenue"
|
"Hauptmen\xf5"
|
||||||
|
|
||||||
#MSG_BL_HIGH c=12
|
#MSG_BL_HIGH c=12
|
||||||
"Level Bright"
|
"Level Bright"
|
||||||
@ -568,7 +568,7 @@
|
|||||||
|
|
||||||
#MSG_MEASURE_BED_REFERENCE_HEIGHT_LINE1 c=20 r=3
|
#MSG_MEASURE_BED_REFERENCE_HEIGHT_LINE1 c=20 r=3
|
||||||
"Measuring reference height of calibration point"
|
"Measuring reference height of calibration point"
|
||||||
"Messen der Referenzhoehe des Kalibrierpunktes"
|
"Messen der Referenzh\xefhe des Kalibrierpunktes"
|
||||||
|
|
||||||
#MSG_MESH_BED_LEVELING c=18
|
#MSG_MESH_BED_LEVELING c=18
|
||||||
"Mesh Bed Leveling"
|
"Mesh Bed Leveling"
|
||||||
@ -584,7 +584,7 @@
|
|||||||
|
|
||||||
#MSG_MEASURED_SKEW c=14
|
#MSG_MEASURED_SKEW c=14
|
||||||
"Measured skew"
|
"Measured skew"
|
||||||
"Schraeglauf"
|
"Schr\xe1glauf"
|
||||||
|
|
||||||
#MSG_MMU_FAILS c=15
|
#MSG_MMU_FAILS c=15
|
||||||
"MMU fails"
|
"MMU fails"
|
||||||
@ -684,7 +684,7 @@
|
|||||||
|
|
||||||
#MSG_NEW_FIRMWARE_AVAILABLE c=20 r=2
|
#MSG_NEW_FIRMWARE_AVAILABLE c=20 r=2
|
||||||
"New firmware version available:"
|
"New firmware version available:"
|
||||||
"Neue Firmware- Version verfuegbar:"
|
"Neue Firmware- Version verf\xf5gbar:"
|
||||||
|
|
||||||
#MSG_SELFTEST_FAN_NO c=19
|
#MSG_SELFTEST_FAN_NO c=19
|
||||||
"Not spinning"
|
"Not spinning"
|
||||||
@ -692,15 +692,15 @@
|
|||||||
|
|
||||||
#MSG_WIZARD_V2_CAL c=20 r=8
|
#MSG_WIZARD_V2_CAL c=20 r=8
|
||||||
"Now I will calibrate distance between tip of the nozzle and heatbed surface."
|
"Now I will calibrate distance between tip of the nozzle and heatbed surface."
|
||||||
"Jetzt werde ich den Abstand zwischen Duesenspitze und Druckbett kalibrieren."
|
"Jetzt werde ich den Abstand zwischen D\xf5senspitze und Druckbett kalibrieren."
|
||||||
|
|
||||||
#MSG_WIZARD_WILL_PREHEAT c=20 r=4
|
#MSG_WIZARD_WILL_PREHEAT c=20 r=4
|
||||||
"Now I will preheat nozzle for PLA."
|
"Now I will preheat nozzle for PLA."
|
||||||
"Jetzt werde ich die Duese fuer PLA vorheizen."
|
"Jetzt werde ich die D\xf5se f\xf5r PLA vorheizen."
|
||||||
|
|
||||||
#MSG_NOZZLE c=12
|
#MSG_NOZZLE c=12
|
||||||
"Nozzle"
|
"Nozzle"
|
||||||
"Duese"
|
"D\xf5se"
|
||||||
|
|
||||||
#MSG_DEFAULT_SETTINGS_LOADED c=20 r=6
|
#MSG_DEFAULT_SETTINGS_LOADED c=20 r=6
|
||||||
"Old settings found. Default PID, Esteps etc. will be set."
|
"Old settings found. Default PID, Esteps etc. will be set."
|
||||||
@ -712,7 +712,7 @@
|
|||||||
|
|
||||||
#MSG_NOZZLE_FAN c=10
|
#MSG_NOZZLE_FAN c=10
|
||||||
"Nozzle FAN"
|
"Nozzle FAN"
|
||||||
"Duesevent."
|
"Druckl\xf5ft."
|
||||||
|
|
||||||
#MSG_PAUSE_PRINT c=18
|
#MSG_PAUSE_PRINT c=18
|
||||||
"Pause print"
|
"Pause print"
|
||||||
@ -732,23 +732,23 @@
|
|||||||
|
|
||||||
#MSG_PINDA_PREHEAT c=20
|
#MSG_PINDA_PREHEAT c=20
|
||||||
"PINDA Heating"
|
"PINDA Heating"
|
||||||
"PINDA erwaermen"
|
"PINDA erw\xe1rmen"
|
||||||
|
|
||||||
#MSG_PAPER c=20 r=10
|
#MSG_PAPER c=20 r=10
|
||||||
"Place a sheet of paper under the nozzle during the calibration of first 4 points. If the nozzle catches the paper, power off the printer immediately."
|
"Place a sheet of paper under the nozzle during the calibration of first 4 points. If the nozzle catches the paper, power off the printer immediately."
|
||||||
"Legen Sie ein Blatt Papier unter die Duese waehrend der Kalibrierung der ersten 4 Punkte. Wenn die Duese das Papier erfasst, den Drucker sofort ausschalten."
|
"Legen Sie ein Blatt Papier unter die D\xf5se w\xe1hrend der Kalibrierung der ersten 4 Punkte. Wenn die D\xf5se das Papier erfasst, den Drucker sofort ausschalten."
|
||||||
|
|
||||||
#MSG_WIZARD_CLEAN_HEATBED c=20 r=8
|
#MSG_WIZARD_CLEAN_HEATBED c=20 r=8
|
||||||
"Please clean heatbed and then press the knob."
|
"Please clean heatbed and then press the knob."
|
||||||
"Bitte reinigen Sie das Heizbett und druecken Sie dann den Knopf."
|
"Bitte reinigen Sie das Heizbett und dr\xf5cken Sie dann den Knopf."
|
||||||
|
|
||||||
#MSG_CONFIRM_NOZZLE_CLEAN c=20 r=8
|
#MSG_CONFIRM_NOZZLE_CLEAN c=20 r=8
|
||||||
"Please clean the nozzle for calibration. Click when done."
|
"Please clean the nozzle for calibration. Click when done."
|
||||||
"Bitte entfernen Sie ueberstehendes Filament von der Duese. Klicken wenn sauber."
|
"Bitte entfernen Sie \xf5berstehendes Filament von der D\xf5se. Klicken wenn sauber."
|
||||||
|
|
||||||
#MSG_SELFTEST_PLEASECHECK c=20
|
#MSG_SELFTEST_PLEASECHECK c=20
|
||||||
"Please check:"
|
"Please check:"
|
||||||
"Bitte pruefe:"
|
"Bitte pr\xf5fen:"
|
||||||
|
|
||||||
#MSG_WIZARD_CALIBRATION_FAILED c=20 r=8
|
#MSG_WIZARD_CALIBRATION_FAILED c=20 r=8
|
||||||
"Please check our handbook and fix the problem. Then resume the Wizard by rebooting the printer."
|
"Please check our handbook and fix the problem. Then resume the Wizard by rebooting the printer."
|
||||||
@ -756,7 +756,7 @@
|
|||||||
|
|
||||||
#MSG_CHECK_IDLER c=20 r=5
|
#MSG_CHECK_IDLER c=20 r=5
|
||||||
"Please open idler and remove filament manually."
|
"Please open idler and remove filament manually."
|
||||||
"Bitte Spannrolle oeffnen und Fila- ment von Hand entfernen"
|
"Bitte Spannrolle \xefffnen und Filament von Hand entfernen"
|
||||||
|
|
||||||
#MSG_PLACE_STEEL_SHEET c=20 r=5
|
#MSG_PLACE_STEEL_SHEET c=20 r=5
|
||||||
"Please place steel sheet on heatbed."
|
"Please place steel sheet on heatbed."
|
||||||
@ -764,7 +764,7 @@
|
|||||||
|
|
||||||
#MSG_PRESS_TO_UNLOAD c=20 r=4
|
#MSG_PRESS_TO_UNLOAD c=20 r=4
|
||||||
"Please press the knob to unload filament"
|
"Please press the knob to unload filament"
|
||||||
"Bitte druecken Sie den Knopf um das Filament zu entladen."
|
"Bitte dr\xf5cken Sie den Knopf um das Filament zu entladen."
|
||||||
|
|
||||||
#MSG_PULL_OUT_FILAMENT c=20 r=4
|
#MSG_PULL_OUT_FILAMENT c=20 r=4
|
||||||
"Please pull out filament immediately"
|
"Please pull out filament immediately"
|
||||||
@ -772,7 +772,7 @@
|
|||||||
|
|
||||||
#MSG_EJECT_REMOVE c=20 r=4
|
#MSG_EJECT_REMOVE c=20 r=4
|
||||||
"Please remove filament and then press the knob."
|
"Please remove filament and then press the knob."
|
||||||
"Bitte Filament entfernen und dann den Knopf druecken"
|
"Bitte Filament entfernen und dann den Knopf dr\xf5cken"
|
||||||
|
|
||||||
#MSG_REMOVE_STEEL_SHEET c=20 r=4
|
#MSG_REMOVE_STEEL_SHEET c=20 r=4
|
||||||
"Please remove steel sheet from heatbed."
|
"Please remove steel sheet from heatbed."
|
||||||
@ -780,7 +780,7 @@
|
|||||||
|
|
||||||
#MSG_RUN_XYZ c=20 r=4
|
#MSG_RUN_XYZ c=20 r=4
|
||||||
"Please run XYZ calibration first."
|
"Please run XYZ calibration first."
|
||||||
"Bitte zuerst XYZ Kalibrierung ausfuehren."
|
"Bitte zuerst XYZ Kalibrierung ausf\xf5hren."
|
||||||
|
|
||||||
#MSG_UPDATE_MMU2_FW c=20 r=4
|
#MSG_UPDATE_MMU2_FW c=20 r=4
|
||||||
"Please update firmware in your MMU2. Waiting for reset."
|
"Please update firmware in your MMU2. Waiting for reset."
|
||||||
@ -796,7 +796,7 @@
|
|||||||
|
|
||||||
#MSG_PREHEAT_NOZZLE c=20
|
#MSG_PREHEAT_NOZZLE c=20
|
||||||
"Preheat the nozzle!"
|
"Preheat the nozzle!"
|
||||||
"Duese vorheizen!"
|
"D\xf5se vorheizen!"
|
||||||
|
|
||||||
#MSG_PREHEAT c=18
|
#MSG_PREHEAT c=18
|
||||||
"Preheat"
|
"Preheat"
|
||||||
@ -804,7 +804,7 @@
|
|||||||
|
|
||||||
#MSG_WIZARD_HEATING c=20 r=3
|
#MSG_WIZARD_HEATING c=20 r=3
|
||||||
"Preheating nozzle. Please wait."
|
"Preheating nozzle. Please wait."
|
||||||
"Vorheizen der Duese. Bitte warten."
|
"Vorheizen der D\xf5se. Bitte warten."
|
||||||
|
|
||||||
#MSG_NEW_FIRMWARE_PLEASE_UPGRADE c=20
|
#MSG_NEW_FIRMWARE_PLEASE_UPGRADE c=20
|
||||||
"Please upgrade."
|
"Please upgrade."
|
||||||
@ -812,7 +812,7 @@
|
|||||||
|
|
||||||
#MSG_PRESS_TO_PREHEAT c=20 r=4
|
#MSG_PRESS_TO_PREHEAT c=20 r=4
|
||||||
"Press the knob to preheat nozzle and continue."
|
"Press the knob to preheat nozzle and continue."
|
||||||
"Bitte druecken Sie den Knopf um die Duese vorzuheizen und fortzufahren."
|
"Bitte dr\xf5cken Sie den Knopf um die D\xf5se vorzuheizen und fortzufahren."
|
||||||
|
|
||||||
#MSG_FS_PAUSE c=5
|
#MSG_FS_PAUSE c=5
|
||||||
"Pause"
|
"Pause"
|
||||||
@ -836,7 +836,7 @@
|
|||||||
|
|
||||||
#MSG_SELFTEST_PRINT_FAN_SPEED c=18
|
#MSG_SELFTEST_PRINT_FAN_SPEED c=18
|
||||||
"Print fan:"
|
"Print fan:"
|
||||||
"Druckvent.:"
|
"Druckl\xf5fter:"
|
||||||
|
|
||||||
#MSG_CARD_MENU c=18
|
#MSG_CARD_MENU c=18
|
||||||
"Print from SD"
|
"Print from SD"
|
||||||
@ -844,7 +844,7 @@
|
|||||||
|
|
||||||
#MSG_PRESS_KNOB c=20
|
#MSG_PRESS_KNOB c=20
|
||||||
"Press the knob"
|
"Press the knob"
|
||||||
"Knopf druecken zum"
|
"Knopf dr\xf5cken zum"
|
||||||
|
|
||||||
#MSG_PRINT_PAUSED c=20
|
#MSG_PRINT_PAUSED c=20
|
||||||
"Print paused"
|
"Print paused"
|
||||||
@ -852,7 +852,7 @@
|
|||||||
|
|
||||||
#MSG_RESUME_NOZZLE_TEMP c=20 r=4
|
#MSG_RESUME_NOZZLE_TEMP c=20 r=4
|
||||||
"Press the knob to resume nozzle temperature."
|
"Press the knob to resume nozzle temperature."
|
||||||
"Druecken Sie den Knopf um die Duesentemperatur wiederherzustellen"
|
"Dr\xf5cken Sie den Knopf um die D\xf5sentemperatur wiederherzustellen"
|
||||||
|
|
||||||
#MSG_FOLLOW_CALIBRATION_FLOW c=20 r=8
|
#MSG_FOLLOW_CALIBRATION_FLOW c=20 r=8
|
||||||
"Printer has not been calibrated yet. Please follow the manual, chapter First steps, section Calibration flow."
|
"Printer has not been calibrated yet. Please follow the manual, chapter First steps, section Calibration flow."
|
||||||
@ -860,15 +860,15 @@
|
|||||||
|
|
||||||
#MSG_PRINT_FAN c=10
|
#MSG_PRINT_FAN c=10
|
||||||
"Print FAN"
|
"Print FAN"
|
||||||
"Druckvent."
|
"Druckl\xf5ft."
|
||||||
|
|
||||||
#MSG_WIZARD_LOAD_FILAMENT c=20 r=6
|
#MSG_WIZARD_LOAD_FILAMENT c=20 r=6
|
||||||
"Please insert filament into the extruder, then press the knob to load it."
|
"Please insert filament into the extruder, then press the knob to load it."
|
||||||
"Bitte legen Sie das Filament in den Extruder ein und druecken Sie dann den Knopf, um es zu laden."
|
"Bitte legen Sie das Filament in den Extruder ein und dr\xf5cken Sie dann den Knopf, um es zu laden."
|
||||||
|
|
||||||
#MSG_MMU_INSERT_FILAMENT_FIRST_TUBE c=20 r=6
|
#MSG_MMU_INSERT_FILAMENT_FIRST_TUBE c=20 r=6
|
||||||
"Please insert filament into the first tube of the MMU, then press the knob to load it."
|
"Please insert filament into the first tube of the MMU, then press the knob to load it."
|
||||||
"Bitte stecken Sie das Filament in den ersten Schlauch der MMU und druecken Sie dann den Knopf, um es zu laden."
|
"Bitte stecken Sie das Filament in den ersten Schlauch der MMU und dr\xf5cken Sie dann den Knopf, um es zu laden."
|
||||||
|
|
||||||
#MSG_PLEASE_LOAD_PLA c=20 r=4
|
#MSG_PLEASE_LOAD_PLA c=20 r=4
|
||||||
"Please load filament first."
|
"Please load filament first."
|
||||||
@ -884,7 +884,7 @@
|
|||||||
|
|
||||||
#MSG_CHECK_IR_CONNECTION c=20 r=4
|
#MSG_CHECK_IR_CONNECTION c=20 r=4
|
||||||
"Please check the IR sensor connection, unload filament if present."
|
"Please check the IR sensor connection, unload filament if present."
|
||||||
"Bitte IR Sensor Verbindungen ueber- pruefen und Filament entladen ist."
|
"Bitte IR Sensor Verbindungen \xf5ber- pr\xf5fen und Filament entladen ist."
|
||||||
|
|
||||||
#MSG_RECOVERING_PRINT c=20
|
#MSG_RECOVERING_PRINT c=20
|
||||||
"Recovering print"
|
"Recovering print"
|
||||||
@ -892,7 +892,7 @@
|
|||||||
|
|
||||||
#MSG_REMOVE_OLD_FILAMENT c=20 r=5
|
#MSG_REMOVE_OLD_FILAMENT c=20 r=5
|
||||||
"Remove old filament and press the knob to start loading new filament."
|
"Remove old filament and press the knob to start loading new filament."
|
||||||
"Entfernen Sie das alte Filament und druecken Sie den Knopf, um das neue zu laden."
|
"Entfernen Sie das alte Filament und dr\xf5cken Sie den Knopf, um das neue zu laden."
|
||||||
|
|
||||||
#MSG_CALIBRATE_BED_RESET c=18
|
#MSG_CALIBRATE_BED_RESET c=18
|
||||||
"Reset XYZ calibr."
|
"Reset XYZ calibr."
|
||||||
@ -900,7 +900,7 @@
|
|||||||
|
|
||||||
#MSG_RESET c=14
|
#MSG_RESET c=14
|
||||||
"Reset"
|
"Reset"
|
||||||
"Ruecksetzen"
|
"R\xf5cksetzen"
|
||||||
|
|
||||||
#MSG_RESUME_PRINT c=18
|
#MSG_RESUME_PRINT c=18
|
||||||
"Resume print"
|
"Resume print"
|
||||||
@ -920,7 +920,7 @@
|
|||||||
|
|
||||||
#MSG_WIZARD_RERUN c=20 r=7
|
#MSG_WIZARD_RERUN c=20 r=7
|
||||||
"Running Wizard will delete current calibration results and start from the beginning. Continue?"
|
"Running Wizard will delete current calibration results and start from the beginning. Continue?"
|
||||||
"Der Assistent wird die aktuellen Kalibrierungsdaten loeschen und von vorne beginnen. Weiterfahren?"
|
"Der Assistent wird die aktuellen Kalibrierungsdaten l\xefschen und von vorne beginnen. Weiterfahren?"
|
||||||
|
|
||||||
#MSG_SD_CARD c=8
|
#MSG_SD_CARD c=8
|
||||||
"SD card"
|
"SD card"
|
||||||
@ -936,7 +936,7 @@
|
|||||||
|
|
||||||
#MSG_LANGUAGE_SELECT c=18
|
#MSG_LANGUAGE_SELECT c=18
|
||||||
"Select language"
|
"Select language"
|
||||||
"Waehle Sprache"
|
"W\xe1hle Sprache"
|
||||||
|
|
||||||
#MSG_SELFTEST_OK c=20
|
#MSG_SELFTEST_OK c=20
|
||||||
"Self test OK"
|
"Self test OK"
|
||||||
@ -960,11 +960,11 @@
|
|||||||
|
|
||||||
#MSG_FORCE_SELFTEST c=20 r=8
|
#MSG_FORCE_SELFTEST c=20 r=8
|
||||||
"Selftest will be run to calibrate accurate sensorless rehoming."
|
"Selftest will be run to calibrate accurate sensorless rehoming."
|
||||||
"Selbsttest im Gang, um die genaue Rueck- kehr zum Nullpunkt ohne Sensor zu kalibrieren"
|
"Selbsttest wird gestartet, um Startposition zu kalibrieren."
|
||||||
|
|
||||||
#MSG_SEL_PREHEAT_TEMP c=20 r=6
|
#MSG_SEL_PREHEAT_TEMP c=20 r=6
|
||||||
"Select nozzle preheat temperature which matches your material."
|
"Select nozzle preheat temperature which matches your material."
|
||||||
"Bitte Vorheiztemperatur auswaehlen, die Ihrem Material entspricht."
|
"Bitte Vorheiztemperatur ausw\xe1hlen, die Ihrem Material entspricht."
|
||||||
|
|
||||||
#MSG_SET_TEMPERATURE c=20
|
#MSG_SET_TEMPERATURE c=20
|
||||||
"Set temperature:"
|
"Set temperature:"
|
||||||
@ -996,7 +996,7 @@
|
|||||||
|
|
||||||
#MSG_SEVERE_SKEW c=14
|
#MSG_SEVERE_SKEW c=14
|
||||||
"Severe skew"
|
"Severe skew"
|
||||||
"Sehr Schraeg"
|
"Sehr schr\xe1g"
|
||||||
|
|
||||||
#MSG_SORT_ALPHA c=8
|
#MSG_SORT_ALPHA c=8
|
||||||
"Alphabet"
|
"Alphabet"
|
||||||
@ -1012,7 +1012,7 @@
|
|||||||
|
|
||||||
#MSG_SLIGHT_SKEW c=14
|
#MSG_SLIGHT_SKEW c=14
|
||||||
"Slight skew"
|
"Slight skew"
|
||||||
"Leicht Schraeg"
|
"Leicht schr\xe1g"
|
||||||
|
|
||||||
#MSG_SOUND c=7
|
#MSG_SOUND c=7
|
||||||
"Sound"
|
"Sound"
|
||||||
@ -1020,7 +1020,7 @@
|
|||||||
|
|
||||||
#MSG_RUNOUTS c=7
|
#MSG_RUNOUTS c=7
|
||||||
"Runouts"
|
"Runouts"
|
||||||
"Maengel"
|
"M\xe1ngel"
|
||||||
|
|
||||||
#MSG_Z-LEVELING_ENFORCED c=20 r=4
|
#MSG_Z-LEVELING_ENFORCED c=20 r=4
|
||||||
"Some problem encountered, Z-leveling enforced ..."
|
"Some problem encountered, Z-leveling enforced ..."
|
||||||
@ -1040,7 +1040,7 @@
|
|||||||
|
|
||||||
#MSG_TEMP_CAL_WARNING c=20 r=4
|
#MSG_TEMP_CAL_WARNING c=20 r=4
|
||||||
"Stable ambient temperature 21-26C is needed a rigid stand is required."
|
"Stable ambient temperature 21-26C is needed a rigid stand is required."
|
||||||
"Stabile Umgebungs- temperatur 21-26C und feste Stand- flaeche erforderlich"
|
"Stabile Umgebungs- temperatur 21-26C und feste Stand- fl\xe1che erforderlich"
|
||||||
|
|
||||||
#MSG_STATISTICS c=18
|
#MSG_STATISTICS c=18
|
||||||
"Statistics"
|
"Statistics"
|
||||||
@ -1064,7 +1064,7 @@
|
|||||||
|
|
||||||
#MSG_SELECT_FILAMENT c=20
|
#MSG_SELECT_FILAMENT c=20
|
||||||
"Select filament:"
|
"Select filament:"
|
||||||
"Filament auswaehlen:"
|
"Filament ausw\xe1hlen:"
|
||||||
|
|
||||||
#MSG_TEMP_CALIBRATION c=14
|
#MSG_TEMP_CALIBRATION c=14
|
||||||
"Temp. cal."
|
"Temp. cal."
|
||||||
@ -1072,7 +1072,7 @@
|
|||||||
|
|
||||||
#MSG_SELECT_TEMP_MATCHES_MATERIAL c=20 r=4
|
#MSG_SELECT_TEMP_MATCHES_MATERIAL c=20 r=4
|
||||||
"Select temperature which matches your material."
|
"Select temperature which matches your material."
|
||||||
"Waehlen Sie die Temperatur, die zu Ihrem Material passt."
|
"W\xe1hlen Sie die Temperatur, die zu Ihrem Material passt."
|
||||||
|
|
||||||
#MSG_CALIBRATION_PINDA_MENU c=17
|
#MSG_CALIBRATION_PINDA_MENU c=17
|
||||||
"Temp. calibration"
|
"Temp. calibration"
|
||||||
@ -1088,7 +1088,7 @@
|
|||||||
|
|
||||||
#MSG_FS_VERIFIED c=20 r=3
|
#MSG_FS_VERIFIED c=20 r=3
|
||||||
"Sensor verified, remove the filament now."
|
"Sensor verified, remove the filament now."
|
||||||
"Sensor ueberprueft, entladen Sie jetzt das Filament."
|
"Sensor \xf5berpr\xf5ft, entladen Sie jetzt das Filament."
|
||||||
|
|
||||||
#MSG_TEMPERATURE c=18
|
#MSG_TEMPERATURE c=18
|
||||||
"Temperature"
|
"Temperature"
|
||||||
@ -1100,7 +1100,7 @@
|
|||||||
|
|
||||||
#MSG_FOLLOW_Z_CALIBRATION_FLOW c=20 r=9
|
#MSG_FOLLOW_Z_CALIBRATION_FLOW c=20 r=9
|
||||||
"There is still a need to make Z calibration. Please follow the manual, chapter First steps, section Calibration flow."
|
"There is still a need to make Z calibration. Please follow the manual, chapter First steps, section Calibration flow."
|
||||||
"Es ist noch not- wendig die Z- Kalibrierung aus- zufuehren. Bitte befolgen Sie das Handbuch, Kapitel Erste Schritte, Abschnitt Kalibrierablauf."
|
"Es ist noch not- wendig die Z- Kalibrierung aus- zuf\xf5hren. Bitte befolgen Sie das Handbuch, Kapitel Erste Schritte, Abschnitt Kalibrierablauf."
|
||||||
|
|
||||||
#MSG_TOTAL_FILAMENT c=19
|
#MSG_TOTAL_FILAMENT c=19
|
||||||
"Total filament"
|
"Total filament"
|
||||||
@ -1156,23 +1156,23 @@
|
|||||||
|
|
||||||
#MSG_WAITING_TEMP c=20 r=4
|
#MSG_WAITING_TEMP c=20 r=4
|
||||||
"Waiting for nozzle and bed cooling"
|
"Waiting for nozzle and bed cooling"
|
||||||
"Warten bis Heizung und Bett abgekuehlt sind"
|
"Warten bis Heizung und Bett abgek\xf5hlt sind"
|
||||||
|
|
||||||
#MSG_WAITING_TEMP_PINDA c=20 r=3
|
#MSG_WAITING_TEMP_PINDA c=20 r=3
|
||||||
"Waiting for PINDA probe cooling"
|
"Waiting for PINDA probe cooling"
|
||||||
"Warten, bis PINDA- Sonde abgekuehlt ist"
|
"Warten, bis PINDA- Sonde abgek\xf5hlt ist"
|
||||||
|
|
||||||
#MSG_CHANGED_BOTH c=20 r=4
|
#MSG_CHANGED_BOTH c=20 r=4
|
||||||
"Warning: both printer type and motherboard type changed."
|
"Warning: both printer type and motherboard type changed."
|
||||||
"Warnung: Druckertyp und Platinentyp wurden beide geaendert."
|
"Warnung: Druckertyp und Platinentyp wurden beide ge\xe1ndert."
|
||||||
|
|
||||||
#MSG_CHANGED_MOTHERBOARD c=20 r=4
|
#MSG_CHANGED_MOTHERBOARD c=20 r=4
|
||||||
"Warning: motherboard type changed."
|
"Warning: motherboard type changed."
|
||||||
"Warnung: Platinentyp wurde geaendert."
|
"Warnung: Platinentyp wurde ge\xe1ndert."
|
||||||
|
|
||||||
#MSG_CHANGED_PRINTER c=20 r=4
|
#MSG_CHANGED_PRINTER c=20 r=4
|
||||||
"Warning: printer type changed."
|
"Warning: printer type changed."
|
||||||
"Warnung: Druckertyp wurde geaendert."
|
"Warnung: Druckertyp wurde ge\xe1ndert."
|
||||||
|
|
||||||
#MSG_UNLOAD_SUCCESSFUL c=20 r=2
|
#MSG_UNLOAD_SUCCESSFUL c=20 r=2
|
||||||
"Was filament unload successful?"
|
"Was filament unload successful?"
|
||||||
@ -1200,19 +1200,19 @@
|
|||||||
|
|
||||||
#MSG_WIZARD_QUIT c=20 r=8
|
#MSG_WIZARD_QUIT c=20 r=8
|
||||||
"You can always resume the Wizard from Calibration -> Wizard."
|
"You can always resume the Wizard from Calibration -> Wizard."
|
||||||
"Sie koennen den Assistenten immer im Menu neu starten: Kalibrierung -> Assistent"
|
"Sie k\xefnnen den Assistenten immer im Menu neu starten: Kalibrierung -> Assistent"
|
||||||
|
|
||||||
#MSG_BED_SKEW_OFFSET_DETECTION_SKEW_EXTREME c=20 r=8
|
#MSG_BED_SKEW_OFFSET_DETECTION_SKEW_EXTREME c=20 r=8
|
||||||
"XYZ calibration all right. Skew will be corrected automatically."
|
"XYZ calibration all right. Skew will be corrected automatically."
|
||||||
"XYZ Kalibrierung in Ordnung. Schraeglauf wird automatisch korrigiert."
|
"XYZ Kalibrierung in Ordnung. Schr\xe1glauf wird automatisch korrigiert."
|
||||||
|
|
||||||
#MSG_BED_SKEW_OFFSET_DETECTION_SKEW_MILD c=20 r=8
|
#MSG_BED_SKEW_OFFSET_DETECTION_SKEW_MILD c=20 r=8
|
||||||
"XYZ calibration all right. X/Y axes are slightly skewed. Good job!"
|
"XYZ calibration all right. X/Y axes are slightly skewed. Good job!"
|
||||||
"XYZ Kalibrierung in Ordnung. X/Y Achsen sind etwas schraeg. Gut gemacht!"
|
"XYZ Kalibrierung in Ordnung. X/Y Achsen sind etwas schr\xe1g. Gut gemacht!"
|
||||||
|
|
||||||
#MSG_TIMEOUT c=12
|
#MSG_TIMEOUT c=12
|
||||||
"Timeout"
|
"Timeout"
|
||||||
"Verzoegerung"
|
"\x00"
|
||||||
|
|
||||||
#MSG_X_CORRECTION c=13
|
#MSG_X_CORRECTION c=13
|
||||||
"X-correct:"
|
"X-correct:"
|
||||||
@ -1220,15 +1220,15 @@
|
|||||||
|
|
||||||
#MSG_BED_SKEW_OFFSET_DETECTION_PERFECT c=20 r=8
|
#MSG_BED_SKEW_OFFSET_DETECTION_PERFECT c=20 r=8
|
||||||
"XYZ calibration ok. X/Y axes are perpendicular. Congratulations!"
|
"XYZ calibration ok. X/Y axes are perpendicular. Congratulations!"
|
||||||
"XYZ-Kalibrierung ok. X/Y-Achsen sind senkrecht zueinander Glueckwunsch!"
|
"XYZ-Kalibrierung ok. X/Y-Achsen sind senkrecht zueinander Gl\xf5ckwunsch!"
|
||||||
|
|
||||||
#MSG_BED_SKEW_OFFSET_DETECTION_WARNING_FRONT_BOTH_FAR c=20 r=8
|
#MSG_BED_SKEW_OFFSET_DETECTION_WARNING_FRONT_BOTH_FAR c=20 r=8
|
||||||
"XYZ calibration compromised. Front calibration points not reachable."
|
"XYZ calibration compromised. Front calibration points not reachable."
|
||||||
"XYZ-Kalibrierung beeintraechtigt. Vordere Kalibrierpunkte nicht erreichbar."
|
"XYZ-Kalibrierung beeintr\xe1chtigt. Vordere Kalibrierpunkte nicht erreichbar."
|
||||||
|
|
||||||
#MSG_BED_SKEW_OFFSET_DETECTION_WARNING_FRONT_RIGHT_FAR c=20 r=8
|
#MSG_BED_SKEW_OFFSET_DETECTION_WARNING_FRONT_RIGHT_FAR c=20 r=8
|
||||||
"XYZ calibration compromised. Right front calibration point not reachable."
|
"XYZ calibration compromised. Right front calibration point not reachable."
|
||||||
"XYZ-Kalibrierung beeintraechtigt. Rechter vorderer Kalibrierpunkt nicht erreichbar."
|
"XYZ-Kalibrierung beeintr\xe1chtigt. Rechter vorderer Kalibrierpunkt nicht erreichbar."
|
||||||
|
|
||||||
#MSG_LOAD_ALL c=17
|
#MSG_LOAD_ALL c=17
|
||||||
"Load all"
|
"Load all"
|
||||||
@ -1252,11 +1252,11 @@
|
|||||||
|
|
||||||
#MSG_WIZARD_V2_CAL_2 c=20 r=12
|
#MSG_WIZARD_V2_CAL_2 c=20 r=12
|
||||||
"The printer will start printing a zig-zag line. Rotate the knob until you reach the optimal height. Check the pictures in the handbook (Calibration chapter)."
|
"The printer will start printing a zig-zag line. Rotate the knob until you reach the optimal height. Check the pictures in the handbook (Calibration chapter)."
|
||||||
"Der Drucker beginnt mit dem Drucken einer Zickzacklinie. Drehen Sie den Knopf, bis Sie die optimale Hoehe erreicht haben. Ueberpruefen Sie die Bilder im Handbuch (Kapitel Kalibrierung)."
|
"Der Drucker beginnt mit dem Drucken einer Zickzacklinie. Drehen Sie den Knopf, bis Sie die optimale H\xefhe erreicht haben. \xf5berpr\xf5fen Sie die Bilder im Handbuch (Kapitel Kalibrierung)."
|
||||||
|
|
||||||
#MSG_FIL_FAILED c=20 r=5
|
#MSG_FIL_FAILED c=20 r=5
|
||||||
"Verification failed, remove the filament and try again."
|
"Verification failed, remove the filament and try again."
|
||||||
"Ueberpruefung fehl- geschlagen, entladen Sie das Filament und versuchen Sie es erneut."
|
"\xf5berpr\xf5fung fehl- geschlagen, entladen Sie das Filament und versuchen Sie es erneut."
|
||||||
|
|
||||||
#MSG_Y_CORRECTION c=13
|
#MSG_Y_CORRECTION c=13
|
||||||
"Y-correct:"
|
"Y-correct:"
|
||||||
@ -1272,7 +1272,7 @@
|
|||||||
|
|
||||||
#MSG_BACK c=18
|
#MSG_BACK c=18
|
||||||
"Back"
|
"Back"
|
||||||
"Zurueck"
|
"Zur\xf5ck"
|
||||||
|
|
||||||
#MSG_CHECKS c=18
|
#MSG_CHECKS c=18
|
||||||
"Checks"
|
"Checks"
|
||||||
@ -1320,31 +1320,31 @@
|
|||||||
|
|
||||||
#MSG_NOZZLE_DIAMETER c=10
|
#MSG_NOZZLE_DIAMETER c=10
|
||||||
"Nozzle d."
|
"Nozzle d."
|
||||||
"Duese D."
|
"D\xf5sen Dia."
|
||||||
|
|
||||||
#MSG_GCODE_DIFF_CONTINUE c=20 r=4
|
#MSG_GCODE_DIFF_CONTINUE c=20 r=4
|
||||||
"G-code sliced for a different level. Continue?"
|
"G-code sliced for a different level. Continue?"
|
||||||
"G-Code ist fuer einen anderen Level geslict. Fortfahren?"
|
"G-Code ist f\xf5r einen anderen Level geslict. Fortfahren?"
|
||||||
|
|
||||||
#MSG_GCODE_DIFF_CANCELLED c=20 r=7
|
#MSG_GCODE_DIFF_CANCELLED c=20 r=7
|
||||||
"G-code sliced for a different level. Please re-slice the model again. Print cancelled."
|
"G-code sliced for a different level. Please re-slice the model again. Print cancelled."
|
||||||
"G-Code ist fuer einen anderen Level geslict. Bitte slicen Sie das Modell erneut. Druck abgebrochen."
|
"G-Code ist f\xf5r einen anderen Level geslict. Bitte slicen Sie das Modell erneut. Druck abgebrochen."
|
||||||
|
|
||||||
#MSG_GCODE_DIFF_PRINTER_CONTINUE c=20 r=5
|
#MSG_GCODE_DIFF_PRINTER_CONTINUE c=20 r=5
|
||||||
"G-code sliced for a different printer type. Continue?"
|
"G-code sliced for a different printer type. Continue?"
|
||||||
"G-Code ist fuer einen anderen Drucker geslict. Fortfahren?"
|
"G-Code ist f\xf5r einen anderen Drucker geslict. Fortfahren?"
|
||||||
|
|
||||||
#MSG_GCODE_DIFF_PRINTER_CANCELLED c=20 r=8
|
#MSG_GCODE_DIFF_PRINTER_CANCELLED c=20 r=8
|
||||||
"G-code sliced for a different printer type. Please re-slice the model again. Print cancelled."
|
"G-code sliced for a different printer type. Please re-slice the model again. Print cancelled."
|
||||||
"G-Code ist fuer einen anderen Drucker geslict. Bitte slicen Sie das Modell erneut. Druck abgebrochen."
|
"G-Code ist f\xf5r einen anderen Drucker geslict. Bitte slicen Sie das Modell erneut. Druck abgebrochen."
|
||||||
|
|
||||||
#MSG_GCODE_NEWER_FIRMWARE_CONTINUE c=20 r=5
|
#MSG_GCODE_NEWER_FIRMWARE_CONTINUE c=20 r=5
|
||||||
"G-code sliced for a newer firmware. Continue?"
|
"G-code sliced for a newer firmware. Continue?"
|
||||||
"G-Code ist fuer eine neuere Firmware geslict. Fortfahren?"
|
"G-Code ist f\xf5r eine neuere Firmware geslict. Fortfahren?"
|
||||||
|
|
||||||
#MSG_GCODE_NEWER_FIRMWARE_CANCELLED c=20 r=8
|
#MSG_GCODE_NEWER_FIRMWARE_CANCELLED c=20 r=8
|
||||||
"G-code sliced for a newer firmware. Please update the firmware. Print cancelled."
|
"G-code sliced for a newer firmware. Please update the firmware. Print cancelled."
|
||||||
"G-Code ist fuer eine neuere Firmware geslict. Bitte die Firmware updaten. Druck abgebrochen."
|
"G-Code ist f\xf5r eine neuere Firmware geslict. Bitte die Firmware updaten. Druck abgebrochen."
|
||||||
|
|
||||||
#MSG_PREHEATING_TO_CUT c=20
|
#MSG_PREHEATING_TO_CUT c=20
|
||||||
"Preheating to cut"
|
"Preheating to cut"
|
||||||
@ -1356,11 +1356,11 @@
|
|||||||
|
|
||||||
#MSG_NOZZLE_DIFFERS_CONTINUE c=20 r=5
|
#MSG_NOZZLE_DIFFERS_CONTINUE c=20 r=5
|
||||||
"Printer nozzle diameter differs from the G-code. Continue?"
|
"Printer nozzle diameter differs from the G-code. Continue?"
|
||||||
"Der Durchmesser der Druckerduese weicht vom G-Code ab. Fortfahren?"
|
"Der Durchmesser der Druckerd\xf5se weicht vom G-Code ab. Fortfahren?"
|
||||||
|
|
||||||
#MSG_NOZZLE_DIFFERS_CANCELLED c=20 r=9
|
#MSG_NOZZLE_DIFFERS_CANCELLED c=20 r=9
|
||||||
"Printer nozzle diameter differs from the G-code. Please check the value in settings. Print cancelled."
|
"Printer nozzle diameter differs from the G-code. Please check the value in settings. Print cancelled."
|
||||||
"Der Durchmesser der Druckerduese weicht vom G-Code ab. Bitte ueberpruefen Sie den Wert in den Einstellungen. Druck abgebrochen."
|
"Der Durchmesser der Druckerd\xf5se weicht vom G-Code ab. Bitte \xf5berpr\xf5fen Sie den Wert in den Einstellungen. Druck abgebrochen."
|
||||||
|
|
||||||
#MSG_SELFTEST_FS_LEVEL c=20
|
#MSG_SELFTEST_FS_LEVEL c=20
|
||||||
"%s level expected"
|
"%s level expected"
|
||||||
|
@ -7,8 +7,8 @@ msgstr ""
|
|||||||
"Content-Transfer-Encoding: 8bit\n"
|
"Content-Transfer-Encoding: 8bit\n"
|
||||||
"Language: de\n"
|
"Language: de\n"
|
||||||
"Project-Id-Version: Prusa-Firmware\n"
|
"Project-Id-Version: Prusa-Firmware\n"
|
||||||
"POT-Creation-Date: Sun 19 Dec 2021 07:17:27 PM CET\n"
|
"POT-Creation-Date: Wed 26 Jan 2022 05:40:56 PM CET\n"
|
||||||
"PO-Revision-Date: Sun 19 Dec 2021 07:17:27 PM CET\n"
|
"PO-Revision-Date: Wed 26 Jan 2022 05:40:56 PM CET\n"
|
||||||
"Language-Team: \n"
|
"Language-Team: \n"
|
||||||
"X-Generator: Poedit 2.0.7\n"
|
"X-Generator: Poedit 2.0.7\n"
|
||||||
"X-Poedit-SourceCharset: UTF-8\n"
|
"X-Poedit-SourceCharset: UTF-8\n"
|
||||||
@ -21,7 +21,7 @@ msgid " 0.3 or older"
|
|||||||
msgstr " 0.3 oder aelter"
|
msgstr " 0.3 oder aelter"
|
||||||
|
|
||||||
# MSG_FS_V_03_OR_OLDER c=18
|
# MSG_FS_V_03_OR_OLDER c=18
|
||||||
#: Marlin_main.cpp:9884
|
#: Marlin_main.cpp:9887
|
||||||
msgid "FS v0.3 or older"
|
msgid "FS v0.3 or older"
|
||||||
msgstr "FS 0.3 oder aelter"
|
msgstr "FS 0.3 oder aelter"
|
||||||
|
|
||||||
@ -31,7 +31,7 @@ msgid " 0.4 or newer"
|
|||||||
msgstr " 0.4 oder neuer"
|
msgstr " 0.4 oder neuer"
|
||||||
|
|
||||||
# MSG_FS_V_04_OR_NEWER c=18
|
# MSG_FS_V_04_OR_NEWER c=18
|
||||||
#: Marlin_main.cpp:9883
|
#: Marlin_main.cpp:9886
|
||||||
msgid "FS v0.4 or newer"
|
msgid "FS v0.4 or newer"
|
||||||
msgstr "FS 0.4 oder neuer"
|
msgstr "FS 0.4 oder neuer"
|
||||||
|
|
||||||
@ -61,7 +61,7 @@ msgid "Adjusting Z:"
|
|||||||
msgstr "Z Anpassen:"
|
msgstr "Z Anpassen:"
|
||||||
|
|
||||||
# MSG_SELFTEST_CHECK_ALLCORRECT c=20
|
# MSG_SELFTEST_CHECK_ALLCORRECT c=20
|
||||||
#: ultralcd.cpp:8490
|
#: ultralcd.cpp:8411
|
||||||
msgid "All correct"
|
msgid "All correct"
|
||||||
msgstr "Alles richtig"
|
msgstr "Alles richtig"
|
||||||
|
|
||||||
@ -96,7 +96,7 @@ msgid "Auto home"
|
|||||||
msgstr "Startposition"
|
msgstr "Startposition"
|
||||||
|
|
||||||
# MSG_AUTOLOAD_FILAMENT c=18
|
# MSG_AUTOLOAD_FILAMENT c=18
|
||||||
#: ultralcd.cpp:6732
|
#: ultralcd.cpp:6653
|
||||||
msgid "AutoLoad filament"
|
msgid "AutoLoad filament"
|
||||||
msgstr "AutoLaden Filament"
|
msgstr "AutoLaden Filament"
|
||||||
|
|
||||||
@ -111,17 +111,17 @@ msgid "Autoloading filament is active, just press the knob and insert filament..
|
|||||||
msgstr "Automatisches Laden Filament ist aktiv, Knopf druecken und Filament einlegen..."
|
msgstr "Automatisches Laden Filament ist aktiv, Knopf druecken und Filament einlegen..."
|
||||||
|
|
||||||
# MSG_SELFTEST_AXIS_LENGTH c=20
|
# MSG_SELFTEST_AXIS_LENGTH c=20
|
||||||
#: ultralcd.cpp:8173
|
#: ultralcd.cpp:8094
|
||||||
msgid "Axis length"
|
msgid "Axis length"
|
||||||
msgstr "Achsenlaenge"
|
msgstr "Achsenlaenge"
|
||||||
|
|
||||||
# MSG_SELFTEST_AXIS c=16
|
# MSG_SELFTEST_AXIS c=16
|
||||||
#: ultralcd.cpp:8174
|
#: ultralcd.cpp:8095
|
||||||
msgid "Axis"
|
msgid "Axis"
|
||||||
msgstr "Achse"
|
msgstr "Achse"
|
||||||
|
|
||||||
# MSG_SELFTEST_BEDHEATER c=20
|
# MSG_SELFTEST_BEDHEATER c=20
|
||||||
#: ultralcd.cpp:8131
|
#: ultralcd.cpp:8052
|
||||||
msgid "Bed/Heater"
|
msgid "Bed/Heater"
|
||||||
msgstr "Bett/Heizung"
|
msgstr "Bett/Heizung"
|
||||||
|
|
||||||
@ -176,7 +176,7 @@ msgid "Blackout occurred. Recover print?"
|
|||||||
msgstr "Stromausfall! Druck wiederherstellen?"
|
msgstr "Stromausfall! Druck wiederherstellen?"
|
||||||
|
|
||||||
# MSG_CALIBRATING_HOME c=20
|
# MSG_CALIBRATING_HOME c=20
|
||||||
#: ultralcd.cpp:8492
|
#: ultralcd.cpp:8413
|
||||||
msgid "Calibrating home"
|
msgid "Calibrating home"
|
||||||
msgstr "Kalibriere Start"
|
msgstr "Kalibriere Start"
|
||||||
|
|
||||||
@ -226,12 +226,12 @@ msgid "Calibration"
|
|||||||
msgstr "Kalibrierung"
|
msgstr "Kalibrierung"
|
||||||
|
|
||||||
# MSG_SD_REMOVED c=20
|
# MSG_SD_REMOVED c=20
|
||||||
#: ultralcd.cpp:8939
|
#: ultralcd.cpp:8860
|
||||||
msgid "Card removed"
|
msgid "Card removed"
|
||||||
msgstr "SD Karte entfernt"
|
msgstr "SD Karte entfernt"
|
||||||
|
|
||||||
# MSG_CHECKING_FILE c=17
|
# MSG_CHECKING_FILE c=17
|
||||||
#: ultralcd.cpp:8580
|
#: ultralcd.cpp:8501
|
||||||
msgid "Checking file"
|
msgid "Checking file"
|
||||||
msgstr "Ueberpruefe Datei"
|
msgstr "Ueberpruefe Datei"
|
||||||
|
|
||||||
@ -326,17 +326,17 @@ msgid "Ejecting filament"
|
|||||||
msgstr "werfe Filament aus"
|
msgstr "werfe Filament aus"
|
||||||
|
|
||||||
# MSG_SELFTEST_ENDSTOP_NOTHIT c=20
|
# MSG_SELFTEST_ENDSTOP_NOTHIT c=20
|
||||||
#: ultralcd.cpp:8149
|
#: ultralcd.cpp:8070
|
||||||
msgid "Endstop not hit"
|
msgid "Endstop not hit"
|
||||||
msgstr "Ende nicht getroffen"
|
msgstr "Ende nicht getroffen"
|
||||||
|
|
||||||
# MSG_SELFTEST_ENDSTOP c=16
|
# MSG_SELFTEST_ENDSTOP c=16
|
||||||
#: ultralcd.cpp:8144
|
#: ultralcd.cpp:8065
|
||||||
msgid "Endstop"
|
msgid "Endstop"
|
||||||
msgstr "Endanschlag"
|
msgstr "Endanschlag"
|
||||||
|
|
||||||
# MSG_SELFTEST_ENDSTOPS c=20
|
# MSG_SELFTEST_ENDSTOPS c=20
|
||||||
#: ultralcd.cpp:8135
|
#: ultralcd.cpp:8056
|
||||||
msgid "Endstops"
|
msgid "Endstops"
|
||||||
msgstr "Endschalter"
|
msgstr "Endschalter"
|
||||||
|
|
||||||
@ -376,7 +376,7 @@ msgid "ERROR:"
|
|||||||
msgstr "FEHLER:"
|
msgstr "FEHLER:"
|
||||||
|
|
||||||
# MSG_SELFTEST_EXTRUDER_FAN_SPEED c=18
|
# MSG_SELFTEST_EXTRUDER_FAN_SPEED c=18
|
||||||
#: ultralcd.cpp:8498
|
#: ultralcd.cpp:8419
|
||||||
msgid "Extruder fan:"
|
msgid "Extruder fan:"
|
||||||
msgstr "Extruder Luefter:"
|
msgstr "Extruder Luefter:"
|
||||||
|
|
||||||
@ -391,7 +391,7 @@ msgid "Extruder"
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
# MSG_MMU_FAIL_STATS c=18
|
# MSG_MMU_FAIL_STATS c=18
|
||||||
#: ultralcd.cpp:6754
|
#: ultralcd.cpp:6675
|
||||||
msgid "Fail stats MMU"
|
msgid "Fail stats MMU"
|
||||||
msgstr "MMU-Fehler"
|
msgstr "MMU-Fehler"
|
||||||
|
|
||||||
@ -401,7 +401,7 @@ msgid "F. autoload"
|
|||||||
msgstr "F. autoladen"
|
msgstr "F. autoladen"
|
||||||
|
|
||||||
# MSG_FAIL_STATS c=18
|
# MSG_FAIL_STATS c=18
|
||||||
#: ultralcd.cpp:6751
|
#: ultralcd.cpp:6672
|
||||||
msgid "Fail stats"
|
msgid "Fail stats"
|
||||||
msgstr "Fehlerstatistik"
|
msgstr "Fehlerstatistik"
|
||||||
|
|
||||||
@ -461,7 +461,7 @@ msgid "FS Action"
|
|||||||
msgstr "FS Aktion"
|
msgstr "FS Aktion"
|
||||||
|
|
||||||
# MSG_FILE_INCOMPLETE c=20 r=3
|
# MSG_FILE_INCOMPLETE c=20 r=3
|
||||||
#: ultralcd.cpp:8634
|
#: ultralcd.cpp:8555
|
||||||
msgid "File incomplete. Continue anyway?"
|
msgid "File incomplete. Continue anyway?"
|
||||||
msgstr "Datei unvollstaendig Trotzdem fortfahren?"
|
msgstr "Datei unvollstaendig Trotzdem fortfahren?"
|
||||||
|
|
||||||
@ -486,7 +486,7 @@ msgid "Fix the issue and then press button on MMU unit."
|
|||||||
msgstr "Beseitigen Sie das Problem und druecken Sie dann den Knopf am MMU."
|
msgstr "Beseitigen Sie das Problem und druecken Sie dann den Knopf am MMU."
|
||||||
|
|
||||||
# MSG_FLOW c=15
|
# MSG_FLOW c=15
|
||||||
#: ultralcd.cpp:6888
|
#: ultralcd.cpp:6809
|
||||||
msgid "Flow"
|
msgid "Flow"
|
||||||
msgstr "Durchfluss"
|
msgstr "Durchfluss"
|
||||||
|
|
||||||
@ -501,17 +501,17 @@ msgid "Front side[um]"
|
|||||||
msgstr "Vorne [um]"
|
msgstr "Vorne [um]"
|
||||||
|
|
||||||
# MSG_SELFTEST_FANS c=20
|
# MSG_SELFTEST_FANS c=20
|
||||||
#: ultralcd.cpp:8179
|
#: ultralcd.cpp:8100
|
||||||
msgid "Front/left fans"
|
msgid "Front/left fans"
|
||||||
msgstr "Teile/Extr. Luefter"
|
msgstr "Teile/Extr. Luefter"
|
||||||
|
|
||||||
# MSG_SELFTEST_HEATERTHERMISTOR c=20
|
# MSG_SELFTEST_HEATERTHERMISTOR c=20
|
||||||
#: ultralcd.cpp:8127
|
#: ultralcd.cpp:8048
|
||||||
msgid "Heater/Thermistor"
|
msgid "Heater/Thermistor"
|
||||||
msgstr "Heizung/Thermistor"
|
msgstr "Heizung/Thermistor"
|
||||||
|
|
||||||
# MSG_BED_HEATING_SAFETY_DISABLED c=20 r=4
|
# MSG_BED_HEATING_SAFETY_DISABLED c=20 r=4
|
||||||
#: Marlin_main.cpp:9874
|
#: Marlin_main.cpp:9877
|
||||||
msgid "Heating disabled by safety timer."
|
msgid "Heating disabled by safety timer."
|
||||||
msgstr "Heizung durch Sicherheitstimer deaktiviert."
|
msgstr "Heizung durch Sicherheitstimer deaktiviert."
|
||||||
|
|
||||||
@ -551,12 +551,12 @@ msgid "Checking bed"
|
|||||||
msgstr "Pruefe Bett"
|
msgstr "Pruefe Bett"
|
||||||
|
|
||||||
# MSG_SELFTEST_CHECK_ENDSTOPS c=20
|
# MSG_SELFTEST_CHECK_ENDSTOPS c=20
|
||||||
#: ultralcd.cpp:8481
|
#: ultralcd.cpp:8402
|
||||||
msgid "Checking endstops"
|
msgid "Checking endstops"
|
||||||
msgstr "Pruefe Endschalter"
|
msgstr "Pruefe Endschalter"
|
||||||
|
|
||||||
# MSG_SELFTEST_CHECK_HOTEND c=20
|
# MSG_SELFTEST_CHECK_HOTEND c=20
|
||||||
#: ultralcd.cpp:8487
|
#: ultralcd.cpp:8408
|
||||||
msgid "Checking hotend"
|
msgid "Checking hotend"
|
||||||
msgstr "Pruefe Duese"
|
msgstr "Pruefe Duese"
|
||||||
|
|
||||||
@ -576,7 +576,7 @@ msgid "Checking Y axis"
|
|||||||
msgstr "Pruefe Y Achse"
|
msgstr "Pruefe Y Achse"
|
||||||
|
|
||||||
# MSG_SELFTEST_CHECK_Z c=20
|
# MSG_SELFTEST_CHECK_Z c=20
|
||||||
#: ultralcd.cpp:8484
|
#: ultralcd.cpp:8405
|
||||||
msgid "Checking Z axis"
|
msgid "Checking Z axis"
|
||||||
msgstr "Pruefe Z Achse"
|
msgstr "Pruefe Z Achse"
|
||||||
|
|
||||||
@ -671,7 +671,7 @@ msgid "Live adjust Z"
|
|||||||
msgstr "Z einstellen"
|
msgstr "Z einstellen"
|
||||||
|
|
||||||
# MSG_INSERT_FIL c=20 r=6
|
# MSG_INSERT_FIL c=20 r=6
|
||||||
#: ultralcd.cpp:7380
|
#: ultralcd.cpp:7301
|
||||||
msgid "Insert the filament (do not load it) into the extruder and then press the knob."
|
msgid "Insert the filament (do not load it) into the extruder and then press the knob."
|
||||||
msgstr "Stecken Sie das Filament (nicht laden) in den Extruder und druecken Sie dann den Knopf."
|
msgstr "Stecken Sie das Filament (nicht laden) in den Extruder und druecken Sie dann den Knopf."
|
||||||
|
|
||||||
@ -696,12 +696,12 @@ msgid "Iteration"
|
|||||||
msgstr "Wiederholung"
|
msgstr "Wiederholung"
|
||||||
|
|
||||||
# MSG_LOOSE_PULLEY c=20
|
# MSG_LOOSE_PULLEY c=20
|
||||||
#: ultralcd.cpp:8167
|
#: ultralcd.cpp:8088
|
||||||
msgid "Loose pulley"
|
msgid "Loose pulley"
|
||||||
msgstr "Lose Riemenscheibe"
|
msgstr "Lose Riemenscheibe"
|
||||||
|
|
||||||
# MSG_LOAD_TO_NOZZLE c=18
|
# MSG_LOAD_TO_NOZZLE c=18
|
||||||
#: ultralcd.cpp:6717
|
#: ultralcd.cpp:6638
|
||||||
msgid "Load to nozzle"
|
msgid "Load to nozzle"
|
||||||
msgstr "In Nozzle laden"
|
msgstr "In Nozzle laden"
|
||||||
|
|
||||||
@ -851,7 +851,7 @@ msgid "No move."
|
|||||||
msgstr "Keine Bewegung."
|
msgstr "Keine Bewegung."
|
||||||
|
|
||||||
# MSG_NO_CARD c=18
|
# MSG_NO_CARD c=18
|
||||||
#: ultralcd.cpp:6697
|
#: ultralcd.cpp:6618
|
||||||
msgid "No SD card"
|
msgid "No SD card"
|
||||||
msgstr "Keine SD Karte"
|
msgstr "Keine SD Karte"
|
||||||
|
|
||||||
@ -866,7 +866,7 @@ msgid "No"
|
|||||||
msgstr "Nein"
|
msgstr "Nein"
|
||||||
|
|
||||||
# MSG_SELFTEST_NOTCONNECTED c=20
|
# MSG_SELFTEST_NOTCONNECTED c=20
|
||||||
#: ultralcd.cpp:8128
|
#: ultralcd.cpp:8049
|
||||||
msgid "Not connected"
|
msgid "Not connected"
|
||||||
msgstr "Nicht angeschlossen"
|
msgstr "Nicht angeschlossen"
|
||||||
|
|
||||||
@ -951,7 +951,7 @@ msgid "Please clean the nozzle for calibration. Click when done."
|
|||||||
msgstr "Bitte entfernen Sie ueberstehendes Filament von der Duese. Klicken wenn sauber."
|
msgstr "Bitte entfernen Sie ueberstehendes Filament von der Duese. Klicken wenn sauber."
|
||||||
|
|
||||||
# MSG_SELFTEST_PLEASECHECK c=20
|
# MSG_SELFTEST_PLEASECHECK c=20
|
||||||
#: ultralcd.cpp:8122
|
#: ultralcd.cpp:8043
|
||||||
msgid "Please check:"
|
msgid "Please check:"
|
||||||
msgstr "Bitte pruefe:"
|
msgstr "Bitte pruefe:"
|
||||||
|
|
||||||
@ -1016,7 +1016,7 @@ msgid "Preheat the nozzle!"
|
|||||||
msgstr "Duese vorheizen!"
|
msgstr "Duese vorheizen!"
|
||||||
|
|
||||||
# MSG_PREHEAT c=18
|
# MSG_PREHEAT c=18
|
||||||
#: ultralcd.cpp:6655
|
#: ultralcd.cpp:6576
|
||||||
msgid "Preheat"
|
msgid "Preheat"
|
||||||
msgstr "Vorheizen"
|
msgstr "Vorheizen"
|
||||||
|
|
||||||
@ -1031,7 +1031,7 @@ msgid "Please upgrade."
|
|||||||
msgstr "Bitte aktualisieren."
|
msgstr "Bitte aktualisieren."
|
||||||
|
|
||||||
# MSG_PRESS_TO_PREHEAT c=20 r=4
|
# MSG_PRESS_TO_PREHEAT c=20 r=4
|
||||||
#: Marlin_main.cpp:12049
|
#: Marlin_main.cpp:12052
|
||||||
msgid "Press the knob to preheat nozzle and continue."
|
msgid "Press the knob to preheat nozzle and continue."
|
||||||
msgstr "Bitte druecken Sie den Knopf um die Duese vorzuheizen und fortzufahren."
|
msgstr "Bitte druecken Sie den Knopf um die Duese vorzuheizen und fortzufahren."
|
||||||
|
|
||||||
@ -1061,7 +1061,7 @@ msgid "Preheating to unload"
|
|||||||
msgstr "Heizen zum Entladen"
|
msgstr "Heizen zum Entladen"
|
||||||
|
|
||||||
# MSG_SELFTEST_PRINT_FAN_SPEED c=18
|
# MSG_SELFTEST_PRINT_FAN_SPEED c=18
|
||||||
#: ultralcd.cpp:8501
|
#: ultralcd.cpp:8422
|
||||||
msgid "Print fan:"
|
msgid "Print fan:"
|
||||||
msgstr "Druckvent.:"
|
msgstr "Druckvent.:"
|
||||||
|
|
||||||
@ -1116,17 +1116,17 @@ msgid "Rear side [um]"
|
|||||||
msgstr "Hinten [um]"
|
msgstr "Hinten [um]"
|
||||||
|
|
||||||
# MSG_UNLOAD_FILAMENT_REPEAT c=20 r=4
|
# MSG_UNLOAD_FILAMENT_REPEAT c=20 r=4
|
||||||
#: ultralcd.cpp:7404
|
#: ultralcd.cpp:7325
|
||||||
msgid "Please unload the filament first, then repeat this action."
|
msgid "Please unload the filament first, then repeat this action."
|
||||||
msgstr "Bitte entladen Sie erst das Filament und versuchen Sie es nochmal."
|
msgstr "Bitte entladen Sie erst das Filament und versuchen Sie es nochmal."
|
||||||
|
|
||||||
# MSG_CHECK_IR_CONNECTION c=20 r=4
|
# MSG_CHECK_IR_CONNECTION c=20 r=4
|
||||||
#: ultralcd.cpp:7407
|
#: ultralcd.cpp:7328
|
||||||
msgid "Please check the IR sensor connection, unload filament if present."
|
msgid "Please check the IR sensor connection, unload filament if present."
|
||||||
msgstr "Bitte IR Sensor Verbindungen ueber- pruefen und Filament entladen ist."
|
msgstr "Bitte IR Sensor Verbindungen ueber- pruefen und Filament entladen ist."
|
||||||
|
|
||||||
# MSG_RECOVERING_PRINT c=20
|
# MSG_RECOVERING_PRINT c=20
|
||||||
#: Marlin_main.cpp:11393
|
#: Marlin_main.cpp:11396
|
||||||
msgid "Recovering print"
|
msgid "Recovering print"
|
||||||
msgstr "Druck wiederherst"
|
msgstr "Druck wiederherst"
|
||||||
|
|
||||||
@ -1191,12 +1191,12 @@ msgid "Select language"
|
|||||||
msgstr "Waehle Sprache"
|
msgstr "Waehle Sprache"
|
||||||
|
|
||||||
# MSG_SELFTEST_OK c=20
|
# MSG_SELFTEST_OK c=20
|
||||||
#: ultralcd.cpp:7679
|
#: ultralcd.cpp:7600
|
||||||
msgid "Self test OK"
|
msgid "Self test OK"
|
||||||
msgstr "Selbsttest OK"
|
msgstr "Selbsttest OK"
|
||||||
|
|
||||||
# MSG_SELFTEST_START c=20
|
# MSG_SELFTEST_START c=20
|
||||||
#: ultralcd.cpp:7447
|
#: ultralcd.cpp:7368
|
||||||
msgid "Self test start"
|
msgid "Self test start"
|
||||||
msgstr "Selbsttest start"
|
msgstr "Selbsttest start"
|
||||||
|
|
||||||
@ -1206,7 +1206,7 @@ msgid "Selftest"
|
|||||||
msgstr "Selbsttest"
|
msgstr "Selbsttest"
|
||||||
|
|
||||||
# MSG_SELFTEST_ERROR c=20
|
# MSG_SELFTEST_ERROR c=20
|
||||||
#: ultralcd.cpp:8121
|
#: ultralcd.cpp:8042
|
||||||
msgid "Selftest error!"
|
msgid "Selftest error!"
|
||||||
msgstr "Selbsttest Fehler!"
|
msgstr "Selbsttest Fehler!"
|
||||||
|
|
||||||
@ -1306,7 +1306,7 @@ msgid "Once"
|
|||||||
msgstr "Einmal"
|
msgstr "Einmal"
|
||||||
|
|
||||||
# MSG_SPEED c=15
|
# MSG_SPEED c=15
|
||||||
#: ultralcd.cpp:6882
|
#: ultralcd.cpp:6803
|
||||||
msgid "Speed"
|
msgid "Speed"
|
||||||
msgstr "Geschwindigkeit"
|
msgstr "Geschwindigkeit"
|
||||||
|
|
||||||
@ -1336,12 +1336,12 @@ msgid "STOPPED."
|
|||||||
msgstr "GESTOPPT."
|
msgstr "GESTOPPT."
|
||||||
|
|
||||||
# MSG_SUPPORT c=18
|
# MSG_SUPPORT c=18
|
||||||
#: ultralcd.cpp:6756
|
#: ultralcd.cpp:6677
|
||||||
msgid "Support"
|
msgid "Support"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
# MSG_SELFTEST_SWAPPED c=16
|
# MSG_SELFTEST_SWAPPED c=16
|
||||||
#: ultralcd.cpp:8180
|
#: ultralcd.cpp:8101
|
||||||
msgid "Swapped"
|
msgid "Swapped"
|
||||||
msgstr "Ausgetauscht"
|
msgstr "Ausgetauscht"
|
||||||
|
|
||||||
@ -1376,7 +1376,7 @@ msgid "Temperature calibration is finished and active. Temp. calibration can be
|
|||||||
msgstr "Temp.kalibrierung ist fertig + aktiv. Temp.kalibrierung kann ausgeschaltet werden im Menu Einstellungen -> Temp.kal."
|
msgstr "Temp.kalibrierung ist fertig + aktiv. Temp.kalibrierung kann ausgeschaltet werden im Menu Einstellungen -> Temp.kal."
|
||||||
|
|
||||||
# MSG_FS_VERIFIED c=20 r=3
|
# MSG_FS_VERIFIED c=20 r=3
|
||||||
#: ultralcd.cpp:7411
|
#: ultralcd.cpp:7332
|
||||||
msgid "Sensor verified, remove the filament now."
|
msgid "Sensor verified, remove the filament now."
|
||||||
msgstr "Sensor ueberprueft, entladen Sie jetzt das Filament."
|
msgstr "Sensor ueberprueft, entladen Sie jetzt das Filament."
|
||||||
|
|
||||||
@ -1406,7 +1406,7 @@ msgid "Total print time"
|
|||||||
msgstr "Gesamte Druckzeit"
|
msgstr "Gesamte Druckzeit"
|
||||||
|
|
||||||
# MSG_TUNE c=18
|
# MSG_TUNE c=18
|
||||||
#: ultralcd.cpp:6653
|
#: ultralcd.cpp:6574
|
||||||
msgid "Tune"
|
msgid "Tune"
|
||||||
msgstr "Feineinstellung"
|
msgstr "Feineinstellung"
|
||||||
|
|
||||||
@ -1586,7 +1586,7 @@ msgid "The printer will start printing a zig-zag line. Rotate the knob until you
|
|||||||
msgstr "Der Drucker beginnt mit dem Drucken einer Zickzacklinie. Drehen Sie den Knopf, bis Sie die optimale Hoehe erreicht haben. Ueberpruefen Sie die Bilder im Handbuch (Kapitel Kalibrierung)."
|
msgstr "Der Drucker beginnt mit dem Drucken einer Zickzacklinie. Drehen Sie den Knopf, bis Sie die optimale Hoehe erreicht haben. Ueberpruefen Sie die Bilder im Handbuch (Kapitel Kalibrierung)."
|
||||||
|
|
||||||
# MSG_FIL_FAILED c=20 r=5
|
# MSG_FIL_FAILED c=20 r=5
|
||||||
#: ultralcd.cpp:7415
|
#: ultralcd.cpp:7336
|
||||||
msgid "Verification failed, remove the filament and try again."
|
msgid "Verification failed, remove the filament and try again."
|
||||||
msgstr "Ueberpruefung fehl- geschlagen, entladen Sie das Filament und versuchen Sie es erneut."
|
msgstr "Ueberpruefung fehl- geschlagen, entladen Sie das Filament und versuchen Sie es erneut."
|
||||||
|
|
||||||
@ -1616,7 +1616,7 @@ msgid "Checks"
|
|||||||
msgstr "Kontrolle"
|
msgstr "Kontrolle"
|
||||||
|
|
||||||
# MSG_FALSE_TRIGGERING c=20
|
# MSG_FALSE_TRIGGERING c=20
|
||||||
#: ultralcd.cpp:8190
|
#: ultralcd.cpp:8111
|
||||||
msgid "False triggering"
|
msgid "False triggering"
|
||||||
msgstr "Falschtriggerung"
|
msgstr "Falschtriggerung"
|
||||||
|
|
||||||
@ -1721,17 +1721,17 @@ msgid "Printer nozzle diameter differs from the G-code. Please check the value i
|
|||||||
msgstr "Der Durchmesser der Druckerduese weicht vom G-Code ab. Bitte ueberpruefen Sie den Wert in den Einstellungen. Druck abgebrochen."
|
msgstr "Der Durchmesser der Druckerduese weicht vom G-Code ab. Bitte ueberpruefen Sie den Wert in den Einstellungen. Druck abgebrochen."
|
||||||
|
|
||||||
# MSG_SELFTEST_FS_LEVEL c=20
|
# MSG_SELFTEST_FS_LEVEL c=20
|
||||||
#: ultralcd.cpp:8195
|
#: ultralcd.cpp:8116
|
||||||
msgid "%s level expected"
|
msgid "%s level expected"
|
||||||
msgstr "%s Level erwartet"
|
msgstr "%s Level erwartet"
|
||||||
|
|
||||||
# MSG_RENAME c=18
|
# MSG_RENAME c=18
|
||||||
#: ultralcd.cpp:6579
|
#: ultralcd.cpp:6500
|
||||||
msgid "Rename"
|
msgid "Rename"
|
||||||
msgstr "Umbenennen"
|
msgstr "Umbenennen"
|
||||||
|
|
||||||
# MSG_SELECT c=18
|
# MSG_SELECT c=18
|
||||||
#: ultralcd.cpp:6572
|
#: ultralcd.cpp:6493
|
||||||
msgid "Select"
|
msgid "Select"
|
||||||
msgstr "Auswahl"
|
msgstr "Auswahl"
|
||||||
|
|
||||||
|
File diff suppressed because it is too large
Load Diff
@ -1,5 +1,7 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
#
|
#
|
||||||
|
# Version 1.0.1 Build 12
|
||||||
|
#
|
||||||
# progmem.sh - multi-language support script
|
# progmem.sh - multi-language support script
|
||||||
# Examine content of progmem sections (default is progmem1).
|
# Examine content of progmem sections (default is progmem1).
|
||||||
#
|
#
|
||||||
@ -16,14 +18,22 @@
|
|||||||
# $PROGMEM.var - variables - strings
|
# $PROGMEM.var - variables - strings
|
||||||
# $PROGMEM.txt - text data only (not used)
|
# $PROGMEM.txt - text data only (not used)
|
||||||
#
|
#
|
||||||
|
#############################################################################
|
||||||
|
# Change log:
|
||||||
|
# 31 May 2018, XPila, Initial
|
||||||
|
# 9 June 2020, 3d-gussner, Added version and Change log
|
||||||
|
# 9 June 2020, 3d-gussner, colored output
|
||||||
|
# 2 Apr. 2021, 3d-gussner, Use `git rev-list --count HEAD progmem.sh`
|
||||||
|
# to get Build Nr
|
||||||
|
#############################################################################
|
||||||
#
|
#
|
||||||
# Config:
|
# Config:
|
||||||
if [ -z "$CONFIG_OK" ]; then eval "$(cat config.sh)"; fi
|
if [ -z "$CONFIG_OK" ]; then eval "$(cat config.sh)"; fi
|
||||||
if [ -z "$OUTDIR" ]; then echo 'variable OUTDIR not set!' >&2; exit 1; fi
|
if [ -z "$OUTDIR" ]; then echo "$(tput setaf 1)variable OUTDIR not set!$(tput sgr0)" >&2; exit 1; fi
|
||||||
if [ -z "$OBJDIR" ]; then echo 'variable OBJDIR not set!' >&2; exit 1; fi
|
if [ -z "$OBJDIR" ]; then echo "$(tput setaf 1)variable OBJDIR not set!$(tput sgr0)" >&2; exit 1; fi
|
||||||
if [ -z "$INOELF" ]; then echo 'variable INOELF not set!' >&2; exit 1; fi
|
if [ -z "$INOELF" ]; then echo "$(tput setaf 1)variable INOELF not set!$(tput sgr0)" >&2; exit 1; fi
|
||||||
if [ -z "$OBJDUMP" ]; then echo 'variable OBJDUMP not set!' >&2; exit 1; fi
|
if [ -z "$OBJDUMP" ]; then echo "$(tput setaf 1)variable OBJDUMP not set!$(tput sgr0)" >&2; exit 1; fi
|
||||||
if [ -z "$CONFIG_OK" ] | [ $CONFIG_OK -eq 0 ]; then echo 'Config NG!' >&2; exit 1; fi
|
if [ -z "$CONFIG_OK" ] | [ $CONFIG_OK -eq 0 ]; then echo "$(tput setaf 1)Config NG!$(tput sgr0)" >&2; exit 1; fi
|
||||||
#
|
#
|
||||||
# Program memory used
|
# Program memory used
|
||||||
PROGMEM=progmem$1
|
PROGMEM=progmem$1
|
||||||
@ -39,11 +49,11 @@ if [ -z "$1" ]; then PROGMEM=progmem1; fi
|
|||||||
# 6. perform character check and conversion (output to $PROGMEM.var and $PROGMEM.txt)
|
# 6. perform character check and conversion (output to $PROGMEM.var and $PROGMEM.txt)
|
||||||
#
|
#
|
||||||
|
|
||||||
echo "progmem.sh started" >&2
|
echo "$(tput setaf 2)progmem.sh started$(tput sgr0)" >&2
|
||||||
|
|
||||||
# (0)
|
# (0)
|
||||||
echo " progmem.sh (0) - checking input files" >&2
|
echo " progmem.sh (0) - checking input files" >&2
|
||||||
if [ ! -e $OUTDIR ]; then echo "progmem.sh - file '$INOELF' not found!" >&2; exit 1; fi
|
if [ ! -e $OUTDIR ]; then echo "progmem.sh - file $(tput setaf 2)"$INOELF"$(tput sgr 0) not found!" >&2; exit 1; fi
|
||||||
|
|
||||||
# (1)
|
# (1)
|
||||||
echo " progmem.sh (1) - removing output files" >&2
|
echo " progmem.sh (1) - removing output files" >&2
|
||||||
@ -111,6 +121,6 @@ cat $PROGMEM.chr | \
|
|||||||
#this step can be omitted because .txt file is not used
|
#this step can be omitted because .txt file is not used
|
||||||
cat $PROGMEM.var | sed 's/\r/\n/g' | sed -E 's/^[0-9a-f]{8} [^ ]* //' >$PROGMEM.txt
|
cat $PROGMEM.var | sed 's/\r/\n/g' | sed -E 's/^[0-9a-f]{8} [^ ]* //' >$PROGMEM.txt
|
||||||
|
|
||||||
echo "progmem.sh finished" >&2
|
echo "$(tput setaf 2)progmem.sh finished$(tput sgr0)" >&2
|
||||||
|
|
||||||
exit 0
|
exit 0
|
@ -1,5 +1,7 @@
|
|||||||
#!/bin/sh
|
#!/bin/sh
|
||||||
#
|
#
|
||||||
|
# Version 1.0.1 Build 7
|
||||||
|
#
|
||||||
# textaddr.sh - multi-language support script
|
# textaddr.sh - multi-language support script
|
||||||
# Compile progmem1.var and lang_en.txt files to textaddr.txt file (mapping of progmem addreses to text idenifiers)
|
# Compile progmem1.var and lang_en.txt files to textaddr.txt file (mapping of progmem addreses to text idenifiers)
|
||||||
#
|
#
|
||||||
@ -19,11 +21,19 @@
|
|||||||
# after sort this will generate pairs of lines (line from progmem1 first)
|
# after sort this will generate pairs of lines (line from progmem1 first)
|
||||||
# result of sort is compiled with simple script and stored into file textaddr.txt
|
# result of sort is compiled with simple script and stored into file textaddr.txt
|
||||||
#
|
#
|
||||||
|
#############################################################################
|
||||||
|
# Change log:
|
||||||
|
# 30 May 2018, XPila, Initial
|
||||||
|
# 9 June 2020, 3d-gussner, Added version and Change log
|
||||||
|
# 9 June 2020, 3d-gussner, colored output
|
||||||
|
# 2 Apr. 2021, 3d-gussner, Use `git rev-list --count HEAD textaddr.sh`
|
||||||
|
# to get Build Nr
|
||||||
|
#############################################################################
|
||||||
|
|
||||||
echo "textaddr.sh started" >&2
|
echo "$(tput setaf 2)textaddr.sh started$(tput sgr0)" >&2
|
||||||
|
|
||||||
if [ ! -e progmem1.var ]; then echo 'textaddr.sh - file progmem1.var not found!' >&2; exit 1; fi
|
if [ ! -e progmem1.var ]; then echo "$(tput setaf 1)textaddr.sh - file progmem1.var not found!$(tput sgr0)" >&2; exit 1; fi
|
||||||
if [ ! -e lang_en.txt ]; then echo 'textaddr.sh - file lang_en.txt not found!' >&2; exit 1; fi
|
if [ ! -e lang_en.txt ]; then echo "$(tput setaf 1)textaddr.sh - file lang_en.txt not found!$(tput sgr0)" >&2; exit 1; fi
|
||||||
addr=''
|
addr=''
|
||||||
text=''
|
text=''
|
||||||
(cat progmem1.var | sed -E "s/^([^ ]*) ([^ ]*) (.*)/\1 \"\3\"/";\
|
(cat progmem1.var | sed -E "s/^([^ ]*) ([^ ]*) (.*)/\1 \"\3\"/";\
|
||||||
@ -63,6 +73,6 @@ text=''
|
|||||||
fi
|
fi
|
||||||
done > textaddr.txt
|
done > textaddr.txt
|
||||||
|
|
||||||
echo "textaddr.sh finished" >&2
|
echo "$(tput setaf 2)textaddr.sh finished$(tput sgr0)" >&2
|
||||||
|
|
||||||
exit 0
|
exit 0
|
@ -1,12 +1,23 @@
|
|||||||
#!/bin/sh
|
#!/bin/sh
|
||||||
#
|
#
|
||||||
|
# Version 1.0.1 Build 10
|
||||||
|
#
|
||||||
# update_lang.sh - multi-language support script
|
# update_lang.sh - multi-language support script
|
||||||
# Update secondary language in binary file.
|
# Update secondary language in binary file.
|
||||||
#
|
#
|
||||||
|
#############################################################################
|
||||||
|
# Change log:
|
||||||
|
# 17 June 2018, XPila, Initial
|
||||||
|
# 9 June 2020, 3d-gussner, Added version and Change log
|
||||||
|
# 9 June 2020, 3d-gussner, colored output
|
||||||
|
# 2 Apr. 2021, 3d-gussner, Use `git rev-list --count HEAD update_lang.sh`
|
||||||
|
# to get Build Nr
|
||||||
|
#############################################################################
|
||||||
|
#
|
||||||
# Config:
|
# Config:
|
||||||
if [ -z "$CONFIG_OK" ]; then eval "$(cat config.sh)"; fi
|
if [ -z "$CONFIG_OK" ]; then eval "$(cat config.sh)"; fi
|
||||||
if [ -z "$OBJCOPY" ]; then echo 'variable OBJCOPY not set!' >&2; exit 1; fi
|
if [ -z "$OBJCOPY" ]; then echo "$(tput setaf 1)variable OBJCOPY not set!$(tput sgr0)" >&2; exit 1; fi
|
||||||
if [ -z "$CONFIG_OK" ] | [ $CONFIG_OK -eq 0 ]; then echo 'Config NG!' >&2; exit 1; fi
|
if [ -z "$CONFIG_OK" ] | [ $CONFIG_OK -eq 0 ]; then echo "$(tput setaf 1)Config NG!$(tput sgr0)" >&2; exit 1; fi
|
||||||
#
|
#
|
||||||
# Selected language:
|
# Selected language:
|
||||||
LNG=$1
|
LNG=$1
|
||||||
@ -17,9 +28,9 @@ finish()
|
|||||||
{
|
{
|
||||||
echo
|
echo
|
||||||
if [ "$1" = "0" ]; then
|
if [ "$1" = "0" ]; then
|
||||||
echo "update_lang.sh finished with success" >&2
|
echo "$(tput setaf 2)update_lang.sh finished with success$(tput sgr0)" >&2
|
||||||
else
|
else
|
||||||
echo "update_lang.sh finished with errors!" >&2
|
echo "$(tput setaf 1)update_lang.sh finished with errors!$(tput sgr0)" >&2
|
||||||
fi
|
fi
|
||||||
case "$-" in
|
case "$-" in
|
||||||
*i*) echo "press enter key" >&2; read ;;
|
*i*) echo "press enter key" >&2; read ;;
|
||||||
@ -27,22 +38,22 @@ finish()
|
|||||||
exit $1
|
exit $1
|
||||||
}
|
}
|
||||||
|
|
||||||
echo "update_lang.sh started" >&2
|
echo "$(tput setaf 2)update_lang.sh started$(tput sgr0)" >&2
|
||||||
echo " selected language=$LNG" >&2
|
echo " selected language=$(tput setaf 2)$LNG$(tput sgr0)" >&2
|
||||||
|
|
||||||
echo -n " checking files..." >&2
|
echo -n " checking files..." >&2
|
||||||
if [ ! -e text.sym ]; then echo "NG! file text.sym not found!" >&2; finish 1; fi
|
if [ ! -e text.sym ]; then echo "$(tput setaf 1)NG! file text.sym not found!$(tput sgr0)" >&2; finish 1; fi
|
||||||
if [ ! -e lang_$LNG.bin ]; then echo "NG! file lang_$LNG.bin not found!" >&2; finish 1; fi
|
if [ ! -e lang_$LNG.bin ]; then echo "$(tput setaf 1)NG! file lang_$LNG.bin not found!$(tput sgr0)" >&2; finish 1; fi
|
||||||
if [ ! -e firmware.bin ]; then echo "NG! file firmware.bin not found!" >&2; finish 1; fi
|
if [ ! -e firmware.bin ]; then echo "$(tput setaf 1)NG! file firmware.bin not found!$(tput sgr0)" >&2; finish 1; fi
|
||||||
echo "OK" >&2
|
echo "OK" >&2
|
||||||
|
|
||||||
echo -n " checking symbols..." >&2
|
echo -n " checking symbols..." >&2
|
||||||
#find symbol _SEC_LANG in section '.text'
|
#find symbol _SEC_LANG in section '.text'
|
||||||
sec_lang=$(cat text.sym | grep -E "\b_SEC_LANG\b")
|
sec_lang=$(cat text.sym | grep -E "\b_SEC_LANG\b")
|
||||||
if [ -z "$sec_lang" ]; then echo "NG!\n symbol _SEC_LANG not found!" >&2; finish 1; fi
|
if [ -z "$sec_lang" ]; then echo "$(tput setaf 1)NG!\n symbol _SEC_LANG not found!$(tput sgr0)" >&2; finish 1; fi
|
||||||
#find symbol _PRI_LANG_SIGNATURE in section '.text'
|
#find symbol _PRI_LANG_SIGNATURE in section '.text'
|
||||||
pri_lang=$(cat text.sym | grep -E "\b_PRI_LANG_SIGNATURE\b")
|
pri_lang=$(cat text.sym | grep -E "\b_PRI_LANG_SIGNATURE\b")
|
||||||
if [ -z "$pri_lang" ]; then echo "NG!\n symbol _PRI_LANG_SIGNATURE not found!" >&2; finish 1; fi
|
if [ -z "$pri_lang" ]; then echo "$(tput setaf 1)NG!\n symbol _PRI_LANG_SIGNATURE not found!$(tput sgr0)" >&2; finish 1; fi
|
||||||
echo "OK" >&2
|
echo "OK" >&2
|
||||||
|
|
||||||
echo " calculating vars:" >&2
|
echo " calculating vars:" >&2
|
||||||
@ -65,7 +76,7 @@ printf " lang_table_size =0x%04x (=%d bytes)\n" $lang_table_size $lang_table_si
|
|||||||
lang_file_size=$(wc -c lang_$LNG.bin | cut -f1 -d' ')
|
lang_file_size=$(wc -c lang_$LNG.bin | cut -f1 -d' ')
|
||||||
printf " lang_file_size =0x%04x (=%d bytes)\n" $lang_file_size $lang_file_size >&2
|
printf " lang_file_size =0x%04x (=%d bytes)\n" $lang_file_size $lang_file_size >&2
|
||||||
|
|
||||||
if [ $lang_file_size -gt $lang_table_size ]; then echo "Lanaguage binary file size too big!" >&2; finish 1; fi
|
if [ $lang_file_size -gt $lang_table_size ]; then echo "$(tput setaf 1)Lanaguage binary file size too big!$(tput sgr0)" >&2; finish 1; fi
|
||||||
|
|
||||||
echo "updating 'firmware.bin'..." >&2
|
echo "updating 'firmware.bin'..." >&2
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user