Browse Source

Improve language scripts
- Add German `äöüß` support
- Add/improve checks
- Check for syntax errors
- Output for translators
- gitignore more temporary files

3d-gussner 3 years ago
parent
commit
c3347dd2cb
10 changed files with 513 additions and 382 deletions
  1. 7 0
      .gitignore
  2. 10 1
      lang/fw-clean.sh
  3. 28 2
      lang/lang-build.sh
  4. 50 11
      lang/lang-check.py
  5. 18 2
      lang/lang-clean.sh
  6. 19 2
      lang/lang-export.sh
  7. 49 32
      lang/lang-import.sh
  8. 115 115
      lang/lang_en_de.txt
  9. 51 51
      lang/po/Firmware_de.po
  10. 166 166
      lang/po/new/de.po

+ 7 - 0
.gitignore

@@ -55,3 +55,10 @@ Firmware/Doc
 /Firmware/variants/printers.h
 Configuration.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

+ 10 - 1
lang/fw-clean.sh

@@ -1,6 +1,6 @@
 #!/bin/bash
 #
-# Version 1.0.1 Build 10
+# Version 1.0.1 Build 11
 #
 # fw-clean.sh - multi-language support script
 #  Remove all firmware output files from lang folder.
@@ -8,11 +8,20 @@
 #############################################################################
 # 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:
 if [ -z "$CONFIG_OK" ]; then eval "$(cat config.sh)"; fi

+ 28 - 2
lang/lang-build.sh

@@ -1,6 +1,6 @@
 #!/bin/bash
 #
-# Version 1.0.2 Build 24
+# Version 1.0.2 Build 25
 #
 # lang-build.sh - multi-language support script
 #  generate lang_xx.bin (language binary file)
@@ -23,13 +23,39 @@
 #############################################################################
 # 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:
@@ -135,7 +161,7 @@ generate_binary()
  #check lang dictionary
  ./lang-check.py $1 #--no-warning
  #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
   cat lang_en.txt | sed '/^$/d;/^#/d'
   #calculate number of strings

+ 50 - 11
lang/lang-check.py

@@ -1,19 +1,31 @@
 #!/usr/bin/env python3
 #
-# Version 1.0.2 - Build 37
+# Version 1.0.2 - Build 38
 #############################################################################
 # Change log:
-#  7 May  2019, Ondrej Tuma, Initial
-#  9 June 2020, 3d-gussner, Added version and Change log
-#  9 June 2020, 3d-gussner, Wrap text to 20 char and rows
-#  9 June 2020, 3d-gussner, colored output
+#  7 May  2019, ondratu   , Initial
+# 13 June 2019, 3d-gussner, Fix length false positives
+# 14 Sep. 2019, 3d-gussner, Prepare adding new language
+# 18 Sep. 2020, 3d-gussner, Fix execution of lang-check.py
 #  2 Apr. 2021, 3d-gussner, Fix and improve text warp
 # 22 Apr. 2021, DRracer   , add English source to output
 # 23 Apr. 2021, wavexx    , improve
 # 24 Apr. 2021, wavexx    , improve
-# 26 Apr. 2021, 3d-gussner, add character ruler
-# 07 Jan. 2022, 3d-gussner, Check for Syntax errors and exit with error
+# 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
@@ -112,12 +124,15 @@ def ign_char_first(c):
 def ign_char_last(c):
     return c.isalnum() or c in {'.', "'"}
 
-def parse_txt(lang, no_warning, warn_empty):
+def parse_txt(lang, no_warning, warn_empty, information, import_check):
     """Parse txt file and check strings to display definition."""
     if lang == "en":
         file_path = "lang_en.txt"
     else:
-        file_path = "lang_en_%s.txt" % lang
+        if import_check:
+            file_path = "po/new/lang_en_%s.txt" % lang
+        else:
+            file_path = "lang_en_%s.txt" % lang
 
     print(green("Start %s lang-check" % lang))
 
@@ -208,7 +223,7 @@ def parse_txt(lang, no_warning, warn_empty):
             source = unescape(source)
             if lang != "en":
                 translation = unescape(translation)
-
+            
             #print (translation) #Debug
             wrapped_source = wrap_text(source, cols)
             rows_count_source = len(wrapped_source)
@@ -271,6 +286,12 @@ def parse_txt(lang, no_warning, warn_empty):
                             print_source_translation(source, translation,
                                                     wrapped_source, wrapped_translation,
                                                     rows, cols)
+                    #elif information:
+                    #    print(green('[I]: %s' % (message)))
+                    #    print_source_translation(source, translation,
+                    #                            wrapped_source, wrapped_translation,
+                    #                            rows, cols)
+
 
                     # Short translation
                     if not no_warning and len(source) > 0 and len(translation) > 0:
@@ -279,6 +300,11 @@ def parse_txt(lang, no_warning, warn_empty):
                             print_source_translation(source, translation,
                                                     wrapped_source, wrapped_translation,
                                                     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
                     if not no_warning and len(translation) > 0 and \
@@ -292,6 +318,13 @@ def parse_txt(lang, no_warning, warn_empty):
                         print_source_translation(source, translation,
                                                 wrapped_source, wrapped_translation,
                                                 rows, cols)
+                    elif information:
+                        print(green('[I]: %s' % (message)))
+                        print_source_translation(source, translation,
+                                                wrapped_source, wrapped_translation,
+                                                rows, cols)
+
+
             delimiter = src.readline()
             lines += 1
             if ("" == delimiter):
@@ -316,10 +349,16 @@ def main():
     parser.add_argument(
         "--warn-empty", action="store_true",
         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()
     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
     except Exception as exc:
         print_exc()

+ 18 - 2
lang/lang-clean.sh

@@ -1,6 +1,6 @@
 #!/bin/bash
 #
-# Version 1.0.1 Build 9
+# Version 1.0.1 Build 10
 #
 # clean.sh - multi-language support script
 #  Remove all language output files from lang folder.
@@ -8,7 +8,15 @@
 #############################################################################
 # Change log:
 #  1 Nov. 2018, XPila,      Initial
-# 17 Dec. 2021, 3d-gussner, Use one config file for all languages
+# 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
@@ -16,6 +24,7 @@
 #                           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:
 if [ -z "$CONFIG_OK" ]; then eval "$(cat config.sh)"; fi
@@ -52,12 +61,19 @@ clean_lang()
   rm_if_exists lang_en_$1.dif
   rm_if_exists lang_$1.ofs
   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
  rm_if_exists lang_$1_check.dif
  rm_if_exists lang_$1.bin
  rm_if_exists lang_$1.dat
  rm_if_exists lang_$1_1.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

+ 19 - 2
lang/lang-export.sh

@@ -1,14 +1,16 @@
 #!/bin/bash
 #
-# Version 1.0.1 Build 17
+# Version 1.0.1 Build 18
 #
 # lang-export.sh - multi-language support script
 #  for generating lang_xx.po
 #
 #############################################################################
 # Change log:
-#  9 Nov  2018, XPila,      Initial
+#  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
@@ -16,11 +18,13 @@
 # 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:
 if [ -z "$CONFIG_OK" ]; then eval "$(cat config.sh)"; fi
@@ -185,6 +189,19 @@ done >>$OUTFILE) 2>&1
 #replace LF with CRLF
 sync
 sed -i 's/$/\r/' $OUTFILE
+
+#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

+ 49 - 32
lang/lang-import.sh

@@ -1,13 +1,18 @@
 #!/bin/bash
 #
-# Version 1.0.1 Build 23
+# Version 1.0.1 Build 24
 #
 # lang-import.sh - multi-language support script
 #  for importing translated xx.po
 #
 #############################################################################
 # Change log:
-#  9 Nov  2018, XPila,      Initial
+#  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
@@ -18,11 +23,16 @@
 # 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`
+#                           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:
 if [ -z "$CONFIG_OK" ]; then eval "$(cat config.sh)"; fi
@@ -30,15 +40,17 @@ if [ -z "$CONFIG_OK" ] | [ $CONFIG_OK -eq 0 ]; then echo "$(tput setaf 1)Config
 
 echo "$(tput setaf 2)lang-import.sh started$(tput sgr 0)" >&2
 
-if [ ! -z "$COMMUNITY_LANGUAGES" ]; then
-  LANGUAGES+=" $COMMUNITY_LANGUAGES"
-fi
-echo "$(tput setaf 2)lang-import languages:$LANGUAGES$(tput sgr 0)" >&2
-
 LNG=$1
 # if no arguments, 'all' is selected (all po and also pot will be generated)
 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 [ "$LNG" = "all" ]; then
   for lang in $LANGUAGES; do
@@ -87,20 +99,21 @@ fi
 
 #replace in german translation https://en.wikipedia.org/wiki/German_orthography
 if [ "$LNG" = "de" ]; then
- #replace 'ä' with 'ae'
- sed -i 's/\xc3\xa4/ae/g' $LNG'_filtered.po'
- #replace 'Ä' with 'Ae'
- sed -i 's/\xc3\x84/Ae/g' $LNG'_filtered.po'
- #replace 'ü' with 'ue'
- sed -i 's/\xc3\xbc/ue/g' $LNG'_filtered.po'
- #replace 'Ü' with 'Ue'
- sed -i 's/\xc3\x9c/Ue/g' $LNG'_filtered.po'
- #replace 'ö' with 'oe'
- sed -i 's/\xc3\xb6/oe/g' $LNG'_filtered.po'
- #replace 'Ö' with 'Oe'
- sed -i 's/\xc3\x96/Oe/g' $LNG'_filtered.po'
- #replace 'ß' with 'ss'
- sed -i 's/\xc3\x9f/ss/g' $LNG'_filtered.po'
+#replace UTF-8 'äöüß' to HD44780 A00 'äöüß'
+ #replace 'ä' with 'A00 ROM ä'
+ sed -i 's/\xc3\xa4/\\xe1/g' $LNG'_filtered.po'
+ #replace 'Ä' with 'A00 ROM ä'
+ sed -i 's/\xc3\x84/\\xe1/g' $LNG'_filtered.po'
+ #replace 'ü' with 'A00 ROM ü'
+ sed -i 's/\xc3\xbc/\\xf5/g' $LNG'_filtered.po'
+ #replace 'Ü' with 'A00 ROM ü'
+ sed -i 's/\xc3\x9c/\\xf5/g' $LNG'_filtered.po'
+ #replace 'ö' with 'A00 ROM ö'
+ sed -i 's/\xc3\xb6/\\xef/g' $LNG'_filtered.po'
+ #replace 'Ö' with 'A00 ROM ö'
+ sed -i 's/\xc3\x96/\\xef/g' $LNG'_filtered.po'
+ #replace 'ß' with 'A00 ROM ß'
+ sed -i 's/\xc3\x9f/\\xe2/g' $LNG'_filtered.po'
 fi
 
 #replace in spain translation
@@ -199,21 +212,21 @@ if [ "$LNG" = "nl" ]; then
  sed -i 's/\xc3\x85/A/g' $LNG'_filtered.po'
 fi
 
-if [ "$LGN" = "sv" ]; then
+if [ "$LNG" = "sv" ]; then
 #repace 'Å' with 'Aa'
 sed -i 's/\xc3\x85/Aa/g' $LNG'_filtered.po'
 #repace 'å' with 'aa'
 sed -i 's/\xc3\xA5/aa/g' $LNG'_filtered.po'
 fi
 
-if [ "$LGN" = "da" ]; then
+if [ "$LNG" = "da" ]; then
 #repace 'Å' with 'Aa'
 sed -i 's/\xc3\x85/Aa/g' $LNG'_filtered.po'
 #repace 'å' with 'aa'
 sed -i 's/\xc3\xA5/aa/g' $LNG'_filtered.po'
 fi
 
-if [ "$LGN" = "sl" ]; then
+if [ "$LNG" = "sl" ]; then
  #replace 'ë' with 'e'
  sed -i 's/\xc3\xab/e/g' $LNG'_filtered.po'
  #replace 'ä' with 'a' (left)
@@ -222,7 +235,7 @@ if [ "$LGN" = "sl" ]; then
  sed -i 's/\xc3\xa9/e/g' $LNG'_filtered.po'
 fi
 
-if [ "$LGN" = "hu" ]; then
+if [ "$LNG" = "hu" ]; then
  #replace 'ë' with 'e'
  sed -i 's/\xc3\xab/e/g' $LNG'_filtered.po'
  #replace 'ä' with 'a'
@@ -231,7 +244,7 @@ if [ "$LGN" = "hu" ]; then
  sed -i 's/\xc3\xa9/e/g' $LNG'_filtered.po'
 fi
 
-if [ "$LGN" = "lb" ]; then
+if [ "$LNG" = "lb" ]; then
  #replace 'ë' with 'e'
  sed -i 's/\xc3\xab/e/g' $LNG'_filtered.po'
  #replace 'ä' with 'a'
@@ -240,7 +253,7 @@ if [ "$LGN" = "lb" ]; then
  sed -i 's/\xc3\xa9/e/g' $LNG'_filtered.po'
 fi
 
-if [ "$LGN" = "hr" ]; then
+if [ "$LNG" = "hr" ]; then
  #replace 'ë' with 'e'
  sed -i 's/\xc3\xab/e/g' $LNG'_filtered.po'
  #replace 'ä' with 'a'
@@ -249,7 +262,7 @@ if [ "$LGN" = "hr" ]; then
  sed -i 's/\xc3\xa9/e/g' $LNG'_filtered.po'
 fi
 
-if [ "$LGN" = "lt" ]; then
+if [ "$LNG" = "lt" ]; then
  #replace 'ë' with 'e'
  sed -i 's/\xc3\xab/e/g' $LNG'_filtered.po'
  #replace 'ä' with 'a'
@@ -261,8 +274,8 @@ fi
 #if [ "$LNG" = "pl" ]; then
 #fi
 
-#check for nonasci characters
-if grep --color='auto' -P -n '[^\x00-\x7F]' $LNG'_filtered.po' >nonasci.txt; then
+#check for nonasci characters excpet HD44780 ROM A00 'äöüß'
+if grep --color='auto' -P -n '[^\x00-\x7F]' $LNG'_filtered.po' >nonascii.txt; then
  exit
 fi
 
@@ -302,5 +315,9 @@ echo "$(tput setaf 2)Finished with $LNGISO$(tput sgr 0)" >&2
 sed -i 's/""/"\\x00"/g' lang_en_$LNG.txt
 #remove CR
 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
+echo "$(tput setaf 2)lang-import.sh finished$(tput sgr 0)">&2
+

+ 115 - 115
lang/lang_en_de.txt

@@ -1,10 +1,10 @@
 #MSG_IR_03_OR_OLDER c=18
 " 0.3 or older"
-" 0.3 oder aelter"
+" 0.3 oder \xe1lter"
 
 #MSG_FS_V_03_OR_OLDER c=18
 "FS v0.3 or older"
-"FS 0.3 oder aelter"
+"FS v0.3 oder \xe1lter"
 
 #MSG_IR_04_OR_NEWER c=18
 " 0.4 or newer"
@@ -12,7 +12,7 @@
 
 #MSG_FS_V_04_OR_NEWER c=18
 "FS v0.4 or newer"
-"FS 0.4 oder neuer"
+"FS v0.4 oder neuer"
 
 #MSG_IR_UNKNOWN c=18
 "unknown state"
@@ -40,7 +40,7 @@
 
 #MSG_WIZARD_DONE c=20 r=8
 "All is done. Happy printing!"
-"Alles abgeschlossen. Viel Spass beim Drucken!"
+"Alles abgeschlossen. Viel Spa\xe2 beim Drucken!"
 
 #MSG_AMBIENT c=14
 "Ambient"
@@ -52,7 +52,7 @@
 
 #MSG_PRESS c=20 r=2
 "and press the knob"
-"und Knopf druecken"
+"und Knopf dr\xf5cken"
 
 #MSG_CONFIRM_CARRIAGE_AT_THE_TOP c=20 r=2
 "Are left and right Z~carriages all up?"
@@ -68,15 +68,15 @@
 
 #MSG_AUTOLOADING_ONLY_IF_FSENS_ON c=20 r=4
 "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
 "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
 "Axis length"
-"Achsenlaenge"
+"Achsenl\xe1nge"
 
 #MSG_SELFTEST_AXIS c=16
 "Axis"
@@ -92,7 +92,7 @@
 
 #MSG_BED_HEATING c=20
 "Bed Heating"
-"Bett aufwaermen"
+"Bett aufw\xe1rmen"
 
 #MSG_BED_CORRECTION_MENU c=18
 "Bed level correct"
@@ -104,7 +104,7 @@
 
 #MSG_BED_LEVELING_FAILED_POINT_LOW c=20 r=6
 "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
 "Bright"
@@ -148,7 +148,7 @@
 
 #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."
-"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
 "Calibrating Z"
@@ -156,7 +156,7 @@
 
 #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."
-"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
 "Calibration done"
@@ -172,7 +172,7 @@
 
 #MSG_CHECKING_FILE c=17
 "Checking file"
-"Ueberpruefe Datei"
+"\xf5berpr\xf5fe Datei"
 
 #MSG_NOT_COLOR c=19
 "Color not correct"
@@ -180,11 +180,11 @@
 
 #MSG_COOLDOWN c=18
 "Cooldown"
-"Abkuehlen"
+"Abk\xf5hlen"
 
 #MSG_COPY_SEL_LANG c=20 r=3
 "Copy selected language?"
-"Gewaehlte Sprache kopieren?"
+"Gew\xe1hlte Sprache kopieren?"
 
 #MSG_CRASHDETECT c=13
 "Crash det."
@@ -192,7 +192,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."
-"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
 "Crash detected."
@@ -200,7 +200,7 @@
 
 #MSG_CRASH_RESUME c=20 r=3
 "Crash detected. Resume print?"
-"Crash erkannt. Druck fortfuehren?"
+"Crash erkannt. Druck fortf\xf5hren?"
 
 #MSG_CRASH c=7
 "Crash"
@@ -224,7 +224,7 @@
 
 #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."
-"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
 "Cont."
@@ -232,7 +232,7 @@
 
 #MSG_WIZARD_REPEAT_V2_CAL c=20 r=7
 "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
 "E-correct:"
@@ -260,7 +260,7 @@
 
 #MSG_STACK_ERROR c=20 r=4
 "Error - static memory has been overwritten"
-"Fehler - statischer Speicher wurde ueberschrieben"
+"Fehler - statischer Speicher wurde \xf5berschrieben"
 
 #MSG_CUT_FILAMENT c=16
 "Cut filament"
@@ -276,7 +276,7 @@
 
 #MSG_FSENS_NOT_RESPONDING c=20 r=4
 "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
 "Dim"
@@ -288,7 +288,7 @@
 
 #MSG_SELFTEST_EXTRUDER_FAN_SPEED c=18
 "Extruder fan:"
-"Extruder Luefter:"
+"Extruderl\xf5fter:"
 
 #MSG_INFO_EXTRUDER c=18
 "Extruder info"
@@ -312,15 +312,15 @@
 
 #MSG_FAN_SPEED c=14
 "Fan speed"
-"Luefter-Tempo"
+"L\xf5fter-Tempo"
 
 #MSG_SELFTEST_FAN c=20
 "Fan test"
-"Lueftertest"
+"L\xf5ftertest"
 
 #MSG_FANS_CHECK c=13
 "Fans check"
-"Luefter Chk."
+"L\xf5fter Check"
 
 #MSG_FSENSOR c=12
 "Fil. sensor"
@@ -328,7 +328,7 @@
 
 #MSG_FIL_RUNOUTS c=15
 "Fil. runouts"
-"Fil. Maengel"
+"Fil. M\xe1ngel"
 
 #MSG_FILAMENT_CLEAN c=20 r=2
 "Filament extruding & with correct color?"
@@ -356,7 +356,7 @@
 
 #MSG_FILE_INCOMPLETE c=20 r=3
 "File incomplete. Continue anyway?"
-"Datei unvollstaendig Trotzdem fortfahren?"
+"Datei unvollst\xe1ndig Trotzdem fortfahren?"
 
 #MSG_FINISHING_MOVEMENTS c=20
 "Finishing movements"
@@ -368,11 +368,11 @@
 
 #MSG_WIZARD_SELFTEST c=20 r=8
 "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
 "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
 "Flow"
@@ -380,7 +380,7 @@
 
 #MSG_SELFTEST_COOLING_FAN c=20
 "Front print fan?"
-"Teile Luefter?"
+"Druckl\xf5fter?"
 
 #MSG_BED_CORRECTION_FRONT c=14
 "Front side[um]"
@@ -388,7 +388,7 @@
 
 #MSG_SELFTEST_FANS c=20
 "Front/left fans"
-"Teile/Extr. Luefter"
+"Druck/Extr. L\xf5fter"
 
 #MSG_SELFTEST_HEATERTHERMISTOR c=20
 "Heater/Thermistor"
@@ -400,15 +400,15 @@
 
 #MSG_HEATING_COMPLETE c=20
 "Heating done."
-"Aufwaermen OK."
+"Aufw\xe1rmen OK."
 
 #MSG_HEATING c=20
 "Heating"
-"Aufwaermen"
+"Aufw\xe1rmen"
 
 #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?"
-"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
 "Change filament"
@@ -424,39 +424,39 @@
 
 #MSG_SELFTEST_CHECK_BED c=20
 "Checking bed"
-"Pruefe Bett"
+"Pr\xf5fe Bett"
 
 #MSG_SELFTEST_CHECK_ENDSTOPS c=20
 "Checking endstops"
-"Pruefe Endschalter"
+"Pr\xf5fe Endschalter"
 
 #MSG_SELFTEST_CHECK_HOTEND c=20
 "Checking hotend"
-"Pruefe Duese"
+"Pr\xf5fe D\xf5se"
 
 #MSG_SELFTEST_CHECK_FSENSOR c=20
 "Checking sensors"
-"Pruefe Sensoren"
+"Pr\xf5fe Sensoren"
 
 #MSG_CHECKING_X c=20
 "Checking X axis"
-"Pruefe X Achse"
+"Pr\xf5fe X Achse"
 
 #MSG_CHECKING_Y c=20
 "Checking Y axis"
-"Pruefe Y Achse"
+"Pr\xf5fe Y Achse"
 
 #MSG_SELFTEST_CHECK_Z c=20
 "Checking Z axis"
-"Pruefe Z Achse"
+"Pr\xf5fe Z Achse"
 
 #MSG_CHOOSE_EXTRUDER c=20
 "Choose extruder:"
-"Extruder waehlen:"
+"Extruder w\xe1hlen:"
 
 #MSG_CHOOSE_FILAMENT c=20
 "Choose filament:"
-"Waehle Filament:"
+"W\xe1hle Filament:"
 
 #MSG_FILAMENT c=17
 "Filament"
@@ -464,11 +464,11 @@
 
 #MSG_WIZARD_XYZ_CAL c=20 r=8
 "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
 "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
 "Info screen"
@@ -492,11 +492,11 @@
 
 #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."
-"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
 "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
 "Last print"
@@ -504,7 +504,7 @@
 
 #MSG_SELFTEST_EXTRUDER_FAN c=20
 "Left hotend fan?"
-"Extruder Luefter?"
+"Extruderl\xf5fter?"
 
 #MSG_LEFT c=10
 "Left"
@@ -524,7 +524,7 @@
 
 #MSG_INSERT_FIL c=20 r=6
 "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
 "Load filament"
@@ -536,7 +536,7 @@
 
 #MSG_LOADING_FILAMENT c=20
 "Loading filament"
-"Filament laedt"
+"Filament l\xe1dt"
 
 #MSG_ITERATION c=12
 "Iteration"
@@ -556,7 +556,7 @@
 
 #MSG_MAIN c=18
 "Main"
-"Hauptmenue"
+"Hauptmen\xf5"
 
 #MSG_BL_HIGH c=12
 "Level Bright"
@@ -568,7 +568,7 @@
 
 #MSG_MEASURE_BED_REFERENCE_HEIGHT_LINE1 c=20 r=3
 "Measuring reference height of calibration point"
-"Messen der Referenzhoehe des Kalibrierpunktes"
+"Messen der Referenzh\xefhe des Kalibrierpunktes"
 
 #MSG_MESH_BED_LEVELING c=18
 "Mesh Bed Leveling"
@@ -584,7 +584,7 @@
 
 #MSG_MEASURED_SKEW c=14
 "Measured skew"
-"Schraeglauf"
+"Schr\xe1glauf"
 
 #MSG_MMU_FAILS c=15
 "MMU fails"
@@ -684,7 +684,7 @@
 
 #MSG_NEW_FIRMWARE_AVAILABLE c=20 r=2
 "New firmware version available:"
-"Neue Firmware- Version verfuegbar:"
+"Neue Firmware- Version verf\xf5gbar:"
 
 #MSG_SELFTEST_FAN_NO c=19
 "Not spinning"
@@ -692,15 +692,15 @@
 
 #MSG_WIZARD_V2_CAL c=20 r=8
 "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
 "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
 "Nozzle"
-"Duese"
+"D\xf5se"
 
 #MSG_DEFAULT_SETTINGS_LOADED c=20 r=6
 "Old settings found. Default PID, Esteps etc. will be set."
@@ -712,7 +712,7 @@
 
 #MSG_NOZZLE_FAN c=10
 "Nozzle FAN"
-"Duesevent."
+"Druckl\xf5ft."
 
 #MSG_PAUSE_PRINT c=18
 "Pause print"
@@ -732,23 +732,23 @@
 
 #MSG_PINDA_PREHEAT c=20
 "PINDA Heating"
-"PINDA erwaermen"
+"PINDA erw\xe1rmen"
 
 #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."
-"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
 "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
 "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
 "Please check:"
-"Bitte pruefe:"
+"Bitte pr\xf5fen:"
 
 #MSG_WIZARD_CALIBRATION_FAILED c=20 r=8
 "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
 "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
 "Please place steel sheet on heatbed."
@@ -764,7 +764,7 @@
 
 #MSG_PRESS_TO_UNLOAD c=20 r=4
 "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
 "Please pull out filament immediately"
@@ -772,7 +772,7 @@
 
 #MSG_EJECT_REMOVE c=20 r=4
 "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
 "Please remove steel sheet from heatbed."
@@ -780,7 +780,7 @@
 
 #MSG_RUN_XYZ c=20 r=4
 "Please run XYZ calibration first."
-"Bitte zuerst XYZ Kalibrierung ausfuehren."
+"Bitte zuerst XYZ Kalibrierung ausf\xf5hren."
 
 #MSG_UPDATE_MMU2_FW c=20 r=4
 "Please update firmware in your MMU2. Waiting for reset."
@@ -796,7 +796,7 @@
 
 #MSG_PREHEAT_NOZZLE c=20
 "Preheat the nozzle!"
-"Duese vorheizen!"
+"D\xf5se vorheizen!"
 
 #MSG_PREHEAT c=18
 "Preheat"
@@ -804,7 +804,7 @@
 
 #MSG_WIZARD_HEATING c=20 r=3
 "Preheating nozzle. Please wait."
-"Vorheizen der Duese. Bitte warten."
+"Vorheizen der D\xf5se. Bitte warten."
 
 #MSG_NEW_FIRMWARE_PLEASE_UPGRADE c=20
 "Please upgrade."
@@ -812,7 +812,7 @@
 
 #MSG_PRESS_TO_PREHEAT c=20 r=4
 "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
 "Pause"
@@ -836,7 +836,7 @@
 
 #MSG_SELFTEST_PRINT_FAN_SPEED c=18
 "Print fan:"
-"Druckvent.:"
+"Druckl\xf5fter:"
 
 #MSG_CARD_MENU c=18
 "Print from SD"
@@ -844,7 +844,7 @@
 
 #MSG_PRESS_KNOB c=20
 "Press the knob"
-"Knopf druecken zum"
+"Knopf dr\xf5cken zum"
 
 #MSG_PRINT_PAUSED c=20
 "Print paused"
@@ -852,7 +852,7 @@
 
 #MSG_RESUME_NOZZLE_TEMP c=20 r=4
 "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
 "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
 "Print FAN"
-"Druckvent."
+"Druckl\xf5ft."
 
 #MSG_WIZARD_LOAD_FILAMENT c=20 r=6
 "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
 "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
 "Please load filament first."
@@ -884,7 +884,7 @@
 
 #MSG_CHECK_IR_CONNECTION c=20 r=4
 "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
 "Recovering print"
@@ -892,7 +892,7 @@
 
 #MSG_REMOVE_OLD_FILAMENT c=20 r=5
 "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
 "Reset XYZ calibr."
@@ -900,7 +900,7 @@
 
 #MSG_RESET c=14
 "Reset"
-"Ruecksetzen"
+"R\xf5cksetzen"
 
 #MSG_RESUME_PRINT c=18
 "Resume print"
@@ -920,7 +920,7 @@
 
 #MSG_WIZARD_RERUN c=20 r=7
 "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
 "SD card"
@@ -936,7 +936,7 @@
 
 #MSG_LANGUAGE_SELECT c=18
 "Select language"
-"Waehle Sprache"
+"W\xe1hle Sprache"
 
 #MSG_SELFTEST_OK c=20
 "Self test OK"
@@ -960,11 +960,11 @@
 
 #MSG_FORCE_SELFTEST c=20 r=8
 "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
 "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
 "Set temperature:"
@@ -996,7 +996,7 @@
 
 #MSG_SEVERE_SKEW c=14
 "Severe skew"
-"Sehr Schraeg"
+"Sehr schr\xe1g"
 
 #MSG_SORT_ALPHA c=8
 "Alphabet"
@@ -1012,7 +1012,7 @@
 
 #MSG_SLIGHT_SKEW c=14
 "Slight skew"
-"Leicht Schraeg"
+"Leicht schr\xe1g"
 
 #MSG_SOUND c=7
 "Sound"
@@ -1020,7 +1020,7 @@
 
 #MSG_RUNOUTS c=7
 "Runouts"
-"Maengel"
+"M\xe1ngel"
 
 #MSG_Z-LEVELING_ENFORCED c=20 r=4
 "Some problem encountered, Z-leveling enforced ..."
@@ -1040,7 +1040,7 @@
 
 #MSG_TEMP_CAL_WARNING c=20 r=4
 "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
 "Statistics"
@@ -1064,7 +1064,7 @@
 
 #MSG_SELECT_FILAMENT c=20
 "Select filament:"
-"Filament auswaehlen:"
+"Filament ausw\xe1hlen:"
 
 #MSG_TEMP_CALIBRATION c=14
 "Temp. cal."
@@ -1072,7 +1072,7 @@
 
 #MSG_SELECT_TEMP_MATCHES_MATERIAL c=20 r=4
 "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
 "Temp. calibration"
@@ -1088,7 +1088,7 @@
 
 #MSG_FS_VERIFIED c=20 r=3
 "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
 "Temperature"
@@ -1100,7 +1100,7 @@
 
 #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."
-"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
 "Total filament"
@@ -1156,23 +1156,23 @@
 
 #MSG_WAITING_TEMP c=20 r=4
 "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
 "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
 "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
 "Warning: motherboard type changed."
-"Warnung: Platinentyp wurde geaendert."
+"Warnung: Platinentyp wurde ge\xe1ndert."
 
 #MSG_CHANGED_PRINTER c=20 r=4
 "Warning: printer type changed."
-"Warnung: Druckertyp wurde geaendert."
+"Warnung: Druckertyp wurde ge\xe1ndert."
 
 #MSG_UNLOAD_SUCCESSFUL c=20 r=2
 "Was filament unload successful?"
@@ -1200,19 +1200,19 @@
 
 #MSG_WIZARD_QUIT c=20 r=8
 "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
 "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
 "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
 "Timeout"
-"Verzoegerung"
+"\x00"
 
 #MSG_X_CORRECTION c=13
 "X-correct:"
@@ -1220,15 +1220,15 @@
 
 #MSG_BED_SKEW_OFFSET_DETECTION_PERFECT c=20 r=8
 "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
 "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
 "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
 "Load all"
@@ -1252,11 +1252,11 @@
 
 #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)."
-"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
 "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
 "Y-correct:"
@@ -1272,7 +1272,7 @@
 
 #MSG_BACK c=18
 "Back"
-"Zurueck"
+"Zur\xf5ck"
 
 #MSG_CHECKS c=18
 "Checks"
@@ -1320,31 +1320,31 @@
 
 #MSG_NOZZLE_DIAMETER c=10
 "Nozzle d."
-"Duese D."
+"D\xf5sen Dia."
 
 #MSG_GCODE_DIFF_CONTINUE c=20 r=4
 "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
 "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
 "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
 "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
 "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
 "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
 "Preheating to cut"
@@ -1356,11 +1356,11 @@
 
 #MSG_NOZZLE_DIFFERS_CONTINUE c=20 r=5
 "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
 "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
 "%s level expected"

+ 51 - 51
lang/po/Firmware_de.po

@@ -7,8 +7,8 @@ msgstr ""
 "Content-Transfer-Encoding: 8bit\n"
 "Language: de\n"
 "Project-Id-Version: Prusa-Firmware\n"
-"POT-Creation-Date: Sun 19 Dec 2021 07:17:27 PM CET\n"
-"PO-Revision-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: Wed 26 Jan 2022 05:40:56 PM CET\n"
 "Language-Team: \n"
 "X-Generator: Poedit 2.0.7\n"
 "X-Poedit-SourceCharset: UTF-8\n"
@@ -21,7 +21,7 @@ msgid " 0.3 or older"
 msgstr " 0.3 oder aelter"
 
 # MSG_FS_V_03_OR_OLDER c=18
-#: Marlin_main.cpp:9884
+#: Marlin_main.cpp:9887
 msgid "FS v0.3 or older"
 msgstr "FS 0.3 oder aelter"
 
@@ -31,7 +31,7 @@ msgid " 0.4 or newer"
 msgstr " 0.4 oder neuer"
 
 # MSG_FS_V_04_OR_NEWER c=18
-#: Marlin_main.cpp:9883
+#: Marlin_main.cpp:9886
 msgid "FS v0.4 or newer"
 msgstr "FS 0.4 oder neuer"
 
@@ -61,7 +61,7 @@ msgid "Adjusting Z:"
 msgstr "Z Anpassen:"
 
 # MSG_SELFTEST_CHECK_ALLCORRECT c=20
-#: ultralcd.cpp:8490
+#: ultralcd.cpp:8411
 msgid "All correct"
 msgstr "Alles richtig"
 
@@ -96,7 +96,7 @@ msgid "Auto home"
 msgstr "Startposition"
 
 # MSG_AUTOLOAD_FILAMENT c=18
-#: ultralcd.cpp:6732
+#: ultralcd.cpp:6653
 msgid "AutoLoad 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..."
 
 # MSG_SELFTEST_AXIS_LENGTH c=20
-#: ultralcd.cpp:8173
+#: ultralcd.cpp:8094
 msgid "Axis length"
 msgstr "Achsenlaenge"
 
 # MSG_SELFTEST_AXIS c=16
-#: ultralcd.cpp:8174
+#: ultralcd.cpp:8095
 msgid "Axis"
 msgstr "Achse"
 
 # MSG_SELFTEST_BEDHEATER c=20
-#: ultralcd.cpp:8131
+#: ultralcd.cpp:8052
 msgid "Bed/Heater"
 msgstr "Bett/Heizung"
 
@@ -176,7 +176,7 @@ msgid "Blackout occurred. Recover print?"
 msgstr "Stromausfall! Druck wiederherstellen?"
 
 # MSG_CALIBRATING_HOME c=20
-#: ultralcd.cpp:8492
+#: ultralcd.cpp:8413
 msgid "Calibrating home"
 msgstr "Kalibriere Start"
 
@@ -226,12 +226,12 @@ msgid "Calibration"
 msgstr "Kalibrierung"
 
 # MSG_SD_REMOVED c=20
-#: ultralcd.cpp:8939
+#: ultralcd.cpp:8860
 msgid "Card removed"
 msgstr "SD Karte entfernt"
 
 # MSG_CHECKING_FILE c=17
-#: ultralcd.cpp:8580
+#: ultralcd.cpp:8501
 msgid "Checking file"
 msgstr "Ueberpruefe Datei"
 
@@ -326,17 +326,17 @@ msgid "Ejecting filament"
 msgstr "werfe Filament aus"
 
 # MSG_SELFTEST_ENDSTOP_NOTHIT c=20
-#: ultralcd.cpp:8149
+#: ultralcd.cpp:8070
 msgid "Endstop not hit"
 msgstr "Ende nicht getroffen"
 
 # MSG_SELFTEST_ENDSTOP c=16
-#: ultralcd.cpp:8144
+#: ultralcd.cpp:8065
 msgid "Endstop"
 msgstr "Endanschlag"
 
 # MSG_SELFTEST_ENDSTOPS c=20
-#: ultralcd.cpp:8135
+#: ultralcd.cpp:8056
 msgid "Endstops"
 msgstr "Endschalter"
 
@@ -376,7 +376,7 @@ msgid "ERROR:"
 msgstr "FEHLER:"
 
 # MSG_SELFTEST_EXTRUDER_FAN_SPEED c=18
-#: ultralcd.cpp:8498
+#: ultralcd.cpp:8419
 msgid "Extruder fan:"
 msgstr "Extruder Luefter:"
 
@@ -391,7 +391,7 @@ msgid "Extruder"
 msgstr ""
 
 # MSG_MMU_FAIL_STATS c=18
-#: ultralcd.cpp:6754
+#: ultralcd.cpp:6675
 msgid "Fail stats MMU"
 msgstr "MMU-Fehler"
 
@@ -401,7 +401,7 @@ msgid "F. autoload"
 msgstr "F. autoladen"
 
 # MSG_FAIL_STATS c=18
-#: ultralcd.cpp:6751
+#: ultralcd.cpp:6672
 msgid "Fail stats"
 msgstr "Fehlerstatistik"
 
@@ -461,7 +461,7 @@ msgid "FS Action"
 msgstr "FS Aktion"
 
 # MSG_FILE_INCOMPLETE c=20 r=3
-#: ultralcd.cpp:8634
+#: ultralcd.cpp:8555
 msgid "File incomplete. Continue anyway?"
 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."
 
 # MSG_FLOW c=15
-#: ultralcd.cpp:6888
+#: ultralcd.cpp:6809
 msgid "Flow"
 msgstr "Durchfluss"
 
@@ -501,17 +501,17 @@ msgid "Front side[um]"
 msgstr "Vorne [um]"
 
 # MSG_SELFTEST_FANS c=20
-#: ultralcd.cpp:8179
+#: ultralcd.cpp:8100
 msgid "Front/left fans"
 msgstr "Teile/Extr. Luefter"
 
 # MSG_SELFTEST_HEATERTHERMISTOR c=20
-#: ultralcd.cpp:8127
+#: ultralcd.cpp:8048
 msgid "Heater/Thermistor"
 msgstr "Heizung/Thermistor"
 
 # MSG_BED_HEATING_SAFETY_DISABLED c=20 r=4
-#: Marlin_main.cpp:9874
+#: Marlin_main.cpp:9877
 msgid "Heating disabled by safety timer."
 msgstr "Heizung durch Sicherheitstimer deaktiviert."
 
@@ -551,12 +551,12 @@ msgid "Checking bed"
 msgstr "Pruefe Bett"
 
 # MSG_SELFTEST_CHECK_ENDSTOPS c=20
-#: ultralcd.cpp:8481
+#: ultralcd.cpp:8402
 msgid "Checking endstops"
 msgstr "Pruefe Endschalter"
 
 # MSG_SELFTEST_CHECK_HOTEND c=20
-#: ultralcd.cpp:8487
+#: ultralcd.cpp:8408
 msgid "Checking hotend"
 msgstr "Pruefe Duese"
 
@@ -576,7 +576,7 @@ msgid "Checking Y axis"
 msgstr "Pruefe Y Achse"
 
 # MSG_SELFTEST_CHECK_Z c=20
-#: ultralcd.cpp:8484
+#: ultralcd.cpp:8405
 msgid "Checking Z axis"
 msgstr "Pruefe Z Achse"
 
@@ -671,7 +671,7 @@ msgid "Live adjust Z"
 msgstr "Z einstellen"
 
 # 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."
 msgstr "Stecken Sie das Filament (nicht laden) in den Extruder und druecken Sie dann den Knopf."
 
@@ -696,12 +696,12 @@ msgid "Iteration"
 msgstr "Wiederholung"
 
 # MSG_LOOSE_PULLEY c=20
-#: ultralcd.cpp:8167
+#: ultralcd.cpp:8088
 msgid "Loose pulley"
 msgstr "Lose Riemenscheibe"
 
 # MSG_LOAD_TO_NOZZLE c=18
-#: ultralcd.cpp:6717
+#: ultralcd.cpp:6638
 msgid "Load to nozzle"
 msgstr "In Nozzle laden"
 
@@ -851,7 +851,7 @@ msgid "No move."
 msgstr "Keine Bewegung."
 
 # MSG_NO_CARD c=18
-#: ultralcd.cpp:6697
+#: ultralcd.cpp:6618
 msgid "No SD card"
 msgstr "Keine SD Karte"
 
@@ -866,7 +866,7 @@ msgid "No"
 msgstr "Nein"
 
 # MSG_SELFTEST_NOTCONNECTED c=20
-#: ultralcd.cpp:8128
+#: ultralcd.cpp:8049
 msgid "Not connected"
 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."
 
 # MSG_SELFTEST_PLEASECHECK c=20
-#: ultralcd.cpp:8122
+#: ultralcd.cpp:8043
 msgid "Please check:"
 msgstr "Bitte pruefe:"
 
@@ -1016,7 +1016,7 @@ msgid "Preheat the nozzle!"
 msgstr "Duese vorheizen!"
 
 # MSG_PREHEAT c=18
-#: ultralcd.cpp:6655
+#: ultralcd.cpp:6576
 msgid "Preheat"
 msgstr "Vorheizen"
 
@@ -1031,7 +1031,7 @@ msgid "Please upgrade."
 msgstr "Bitte aktualisieren."
 
 # 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."
 msgstr "Bitte druecken Sie den Knopf um die Duese vorzuheizen und fortzufahren."
 
@@ -1061,7 +1061,7 @@ msgid "Preheating to unload"
 msgstr "Heizen zum Entladen"
 
 # MSG_SELFTEST_PRINT_FAN_SPEED c=18
-#: ultralcd.cpp:8501
+#: ultralcd.cpp:8422
 msgid "Print fan:"
 msgstr "Druckvent.:"
 
@@ -1116,17 +1116,17 @@ msgid "Rear side [um]"
 msgstr "Hinten [um]"
 
 # MSG_UNLOAD_FILAMENT_REPEAT c=20 r=4
-#: ultralcd.cpp:7404
+#: ultralcd.cpp:7325
 msgid "Please unload the filament first, then repeat this action."
 msgstr "Bitte entladen Sie erst das Filament und versuchen Sie es nochmal."
 
 # 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."
 msgstr "Bitte IR Sensor Verbindungen ueber- pruefen und Filament entladen ist."
 
 # MSG_RECOVERING_PRINT c=20
-#: Marlin_main.cpp:11393
+#: Marlin_main.cpp:11396
 msgid "Recovering print"
 msgstr "Druck wiederherst"
 
@@ -1191,12 +1191,12 @@ msgid "Select language"
 msgstr "Waehle Sprache"
 
 # MSG_SELFTEST_OK c=20
-#: ultralcd.cpp:7679
+#: ultralcd.cpp:7600
 msgid "Self test OK"
 msgstr "Selbsttest OK"
 
 # MSG_SELFTEST_START c=20
-#: ultralcd.cpp:7447
+#: ultralcd.cpp:7368
 msgid "Self test start"
 msgstr "Selbsttest start"
 
@@ -1206,7 +1206,7 @@ msgid "Selftest"
 msgstr "Selbsttest"
 
 # MSG_SELFTEST_ERROR c=20
-#: ultralcd.cpp:8121
+#: ultralcd.cpp:8042
 msgid "Selftest error!"
 msgstr "Selbsttest Fehler!"
 
@@ -1306,7 +1306,7 @@ msgid "Once"
 msgstr "Einmal"
 
 # MSG_SPEED c=15
-#: ultralcd.cpp:6882
+#: ultralcd.cpp:6803
 msgid "Speed"
 msgstr "Geschwindigkeit"
 
@@ -1336,12 +1336,12 @@ msgid "STOPPED."
 msgstr "GESTOPPT."
 
 # MSG_SUPPORT c=18
-#: ultralcd.cpp:6756
+#: ultralcd.cpp:6677
 msgid "Support"
 msgstr ""
 
 # MSG_SELFTEST_SWAPPED c=16
-#: ultralcd.cpp:8180
+#: ultralcd.cpp:8101
 msgid "Swapped"
 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."
 
 # MSG_FS_VERIFIED c=20 r=3
-#: ultralcd.cpp:7411
+#: ultralcd.cpp:7332
 msgid "Sensor verified, remove the filament now."
 msgstr "Sensor ueberprueft, entladen Sie jetzt das Filament."
 
@@ -1406,7 +1406,7 @@ msgid "Total print time"
 msgstr "Gesamte Druckzeit"
 
 # MSG_TUNE c=18
-#: ultralcd.cpp:6653
+#: ultralcd.cpp:6574
 msgid "Tune"
 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)."
 
 # MSG_FIL_FAILED c=20 r=5
-#: ultralcd.cpp:7415
+#: ultralcd.cpp:7336
 msgid "Verification failed, remove the filament and try again."
 msgstr "Ueberpruefung fehl- geschlagen, entladen Sie das Filament und versuchen Sie es erneut."
 
@@ -1616,7 +1616,7 @@ msgid "Checks"
 msgstr "Kontrolle"
 
 # MSG_FALSE_TRIGGERING c=20
-#: ultralcd.cpp:8190
+#: ultralcd.cpp:8111
 msgid "False triggering"
 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."
 
 # MSG_SELFTEST_FS_LEVEL c=20
-#: ultralcd.cpp:8195
+#: ultralcd.cpp:8116
 msgid "%s level expected"
 msgstr "%s Level erwartet"
 
 # MSG_RENAME c=18
-#: ultralcd.cpp:6579
+#: ultralcd.cpp:6500
 msgid "Rename"
 msgstr "Umbenennen"
 
 # MSG_SELECT c=18
-#: ultralcd.cpp:6572
+#: ultralcd.cpp:6493
 msgid "Select"
 msgstr "Auswahl"
 

+ 166 - 166
lang/po/new/de.po

@@ -7,8 +7,8 @@ msgstr ""
 "Content-Transfer-Encoding: 8bit\n"
 "Language: de\n"
 "Project-Id-Version: Prusa-Firmware\n"
-"POT-Creation-Date: Sun 19 Dec 2021 07:17:27 PM CET\n"
-"PO-Revision-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: Wed 26 Jan 2022 05:40:56 PM CET\n"
 "Language-Team: \n"
 "X-Generator: Poedit 2.0.7\n"
 "X-Poedit-SourceCharset: UTF-8\n"
@@ -18,12 +18,12 @@ msgstr ""
 # MSG_IR_03_OR_OLDER c=18
 #: messages.c:164
 msgid " 0.3 or older"
-msgstr " 0.3 oder aelter"
+msgstr " 0.3 oder älter"
 
 # MSG_FS_V_03_OR_OLDER c=18
-#: Marlin_main.cpp:9884
+#: Marlin_main.cpp:9887
 msgid "FS v0.3 or older"
-msgstr "FS 0.3 oder aelter"
+msgstr "FS v0.3 oder älter"
 
 # MSG_IR_04_OR_NEWER c=18
 #: messages.c:163
@@ -31,9 +31,9 @@ msgid " 0.4 or newer"
 msgstr " 0.4 oder neuer"
 
 # MSG_FS_V_04_OR_NEWER c=18
-#: Marlin_main.cpp:9883
+#: Marlin_main.cpp:9886
 msgid "FS v0.4 or newer"
-msgstr "FS 0.4 oder neuer"
+msgstr "FS v0.4 oder neuer"
 
 # MSG_IR_UNKNOWN c=18
 #: messages.c:165
@@ -61,14 +61,14 @@ msgid "Adjusting Z:"
 msgstr "Z Anpassen:"
 
 # MSG_SELFTEST_CHECK_ALLCORRECT c=20
-#: ultralcd.cpp:8490
+#: ultralcd.cpp:8411
 msgid "All correct"
 msgstr "Alles richtig"
 
 # MSG_WIZARD_DONE c=20 r=8
 #: messages.c:118
 msgid "All is done. Happy printing!"
-msgstr "Alles abgeschlossen. Viel Spass beim Drucken!"
+msgstr "Alles abgeschlossen. Viel Spaß beim Drucken!"
 
 # MSG_AMBIENT c=14
 #: ultralcd.cpp:1727
@@ -83,7 +83,7 @@ msgstr ""
 # MSG_PRESS c=20 r=2
 #: ultralcd.cpp:2485
 msgid "and press the knob"
-msgstr "und Knopf druecken"
+msgstr "und Knopf drücken"
 
 # MSG_CONFIRM_CARRIAGE_AT_THE_TOP c=20 r=2
 #: ultralcd.cpp:3355
@@ -96,32 +96,32 @@ msgid "Auto home"
 msgstr "Startposition"
 
 # MSG_AUTOLOAD_FILAMENT c=18
-#: ultralcd.cpp:6732
+#: ultralcd.cpp:6653
 msgid "AutoLoad filament"
 msgstr "AutoLaden Filament"
 
 # MSG_AUTOLOADING_ONLY_IF_FSENS_ON c=20 r=4
 #: ultralcd.cpp:4317
 msgid "Autoloading filament available only when filament sensor is turned on..."
-msgstr "Automatisches Laden Filament nur bei eingeschaltetem Fil. sensor verfuegbar..."
+msgstr "Automatisches Laden Filament nur bei eingeschaltetem Fil. sensor verfügbar..."
 
 # MSG_AUTOLOADING_ENABLED c=20 r=4
 #: ultralcd.cpp:2648
 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 drücken und Filament einlegen..."
 
 # MSG_SELFTEST_AXIS_LENGTH c=20
-#: ultralcd.cpp:8173
+#: ultralcd.cpp:8094
 msgid "Axis length"
-msgstr "Achsenlaenge"
+msgstr "Achsenlänge"
 
 # MSG_SELFTEST_AXIS c=16
-#: ultralcd.cpp:8174
+#: ultralcd.cpp:8095
 msgid "Axis"
 msgstr "Achse"
 
 # MSG_SELFTEST_BEDHEATER c=20
-#: ultralcd.cpp:8131
+#: ultralcd.cpp:8052
 msgid "Bed/Heater"
 msgstr "Bett/Heizung"
 
@@ -133,7 +133,7 @@ msgstr "Bett OK"
 # MSG_BED_HEATING c=20
 #: messages.c:16
 msgid "Bed Heating"
-msgstr "Bett aufwaermen"
+msgstr "Bett aufwärmen"
 
 # MSG_BED_CORRECTION_MENU c=18
 #: ultralcd.cpp:5798
@@ -148,7 +148,7 @@ msgstr "Riementest"
 # MSG_BED_LEVELING_FAILED_POINT_LOW c=20 r=6
 #: messages.c:17
 msgid "Bed leveling failed. Sensor didn't trigger. Debris on nozzle? Waiting for reset."
-msgstr "Z-Kal. fehlgeschlg. Sensor nicht ausgeloest. Schmutzige Duese? Warte auf Reset."
+msgstr "Z-Kal. fehlgeschlg. Sensor nicht ausgelöst. Schmutzige Düse? Warte auf Reset."
 
 # MSG_BRIGHT c=6
 #: messages.c:158
@@ -176,7 +176,7 @@ msgid "Blackout occurred. Recover print?"
 msgstr "Stromausfall! Druck wiederherstellen?"
 
 # MSG_CALIBRATING_HOME c=20
-#: ultralcd.cpp:8492
+#: ultralcd.cpp:8413
 msgid "Calibrating home"
 msgstr "Kalibriere Start"
 
@@ -203,7 +203,7 @@ msgstr ">Abbruch"
 # MSG_MOVE_CARRIAGE_TO_THE_TOP c=20 r=8
 #: ultralcd.cpp:3318
 msgid "Calibrating XYZ. Rotate the knob to move the Z carriage up to the end stoppers. Click when done."
-msgstr "XYZ Kalibrieren: Drehen Sie den Knopf bis der obere Anschlag erreicht wird. Anschliessend den Knopf druecken."
+msgstr "XYZ Kalibrieren: Drehen Sie den Knopf bis der obere Anschlag erreicht wird. Anschliessend den Knopf drücken."
 
 # MSG_CALIBRATE_Z_AUTO c=20 r=2
 #: messages.c:21
@@ -213,7 +213,7 @@ msgstr "Kalibrierung Z"
 # MSG_MOVE_CARRIAGE_TO_THE_TOP_Z c=20 r=8
 #: ultralcd.cpp:3318
 msgid "Calibrating Z. Rotate the knob to move the Z carriage up to the end stoppers. Click when done."
-msgstr "Z Kalibrieren: Drehen Sie den Knopf bis der obere Anschlag erreicht wird. Anschliessend den Knopf druecken."
+msgstr "Z Kalibrieren: Drehen Sie den Knopf bis der obere Anschlag erreicht wird. Anschliessend den Knopf drücken."
 
 # MSG_HOMEYZ_DONE c=20
 #: ultralcd.cpp:656
@@ -226,14 +226,14 @@ msgid "Calibration"
 msgstr "Kalibrierung"
 
 # MSG_SD_REMOVED c=20
-#: ultralcd.cpp:8939
+#: ultralcd.cpp:8860
 msgid "Card removed"
 msgstr "SD Karte entfernt"
 
 # MSG_CHECKING_FILE c=17
-#: ultralcd.cpp:8580
+#: ultralcd.cpp:8501
 msgid "Checking file"
-msgstr "Ueberpruefe Datei"
+msgstr "überprüfe Datei"
 
 # MSG_NOT_COLOR c=19
 #: ultralcd.cpp:2565
@@ -243,12 +243,12 @@ msgstr "Falsche Farbe"
 # MSG_COOLDOWN c=18
 #: messages.c:27
 msgid "Cooldown"
-msgstr "Abkuehlen"
+msgstr "Abkühlen"
 
 # MSG_COPY_SEL_LANG c=20 r=3
 #: ultralcd.cpp:4435
 msgid "Copy selected language?"
-msgstr "Gewaehlte Sprache kopieren?"
+msgstr "Gewählte Sprache kopieren?"
 
 # MSG_CRASHDETECT c=13
 #: messages.c:30
@@ -258,7 +258,7 @@ msgstr "Crash Erk."
 # MSG_CHOOSE_FIL_1ST_LAYERCAL c=20 r=7
 #: ultralcd.cpp:4842
 msgid "Choose a filament for the First Layer Calibration and select it in the on-screen menu."
-msgstr "Waehlen Sie ein Filament fuer Erste Schichtkalibrierung aus und waehlen Sie es im On-Screen-Menu aus."
+msgstr "Wählen Sie ein Filament für Erste- Schichtkalibrierung aus und wählen Sie es im On-Screen-Menu aus."
 
 # MSG_CRASH_DETECTED c=20
 #: messages.c:29
@@ -268,7 +268,7 @@ msgstr "Crash erkannt."
 # MSG_CRASH_RESUME c=20 r=3
 #: Marlin_main.cpp:651
 msgid "Crash detected. Resume print?"
-msgstr "Crash erkannt. Druck fortfuehren?"
+msgstr "Crash erkannt. Druck fortführen?"
 
 # MSG_CRASH c=7
 #: messages.c:28
@@ -298,7 +298,7 @@ msgstr "Motoren aus"
 # MSG_BABYSTEP_Z_NOT_SET c=20 r=12
 #: messages.c:13
 msgid "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."
-msgstr "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."
+msgstr "Der Abstand zwischen der Spitze der Düse und dem Bett ist noch nicht eingestellt. Bitte folgen Sie dem Handbuch, Kapitel Erste Schritte, Abschnitt Erste Schicht Kalibrierung."
 
 # MSG_FS_CONTINUE c=5
 #: messages.c:152
@@ -308,7 +308,7 @@ msgstr ""
 # MSG_WIZARD_REPEAT_V2_CAL c=20 r=7
 #: ultralcd.cpp:5021
 msgid "Do you want to repeat last step to readjust distance between nozzle and heatbed?"
-msgstr "Moechten Sie den letzten Schritt wiederholen, um den Abstand zwischen Duese und Druckbett neu einzustellen?"
+msgstr "Möchten Sie den letzten Schritt wiederholen, um den Abstand zwischen Düse und Druckbett neu einzustellen?"
 
 # MSG_EXTRUDER_CORRECTION c=13
 #: ultralcd.cpp:5090
@@ -326,24 +326,24 @@ msgid "Ejecting filament"
 msgstr "werfe Filament aus"
 
 # MSG_SELFTEST_ENDSTOP_NOTHIT c=20
-#: ultralcd.cpp:8149
+#: ultralcd.cpp:8070
 msgid "Endstop not hit"
 msgstr "Ende nicht getroffen"
 
 # MSG_SELFTEST_ENDSTOP c=16
-#: ultralcd.cpp:8144
+#: ultralcd.cpp:8065
 msgid "Endstop"
 msgstr "Endanschlag"
 
 # MSG_SELFTEST_ENDSTOPS c=20
-#: ultralcd.cpp:8135
+#: ultralcd.cpp:8056
 msgid "Endstops"
 msgstr "Endschalter"
 
 # MSG_STACK_ERROR c=20 r=4
 #: 
 msgid "Error - static memory has been overwritten"
-msgstr "Fehler - statischer Speicher wurde ueberschrieben"
+msgstr "Fehler - statischer Speicher wurde überschrieben"
 
 # MSG_CUT_FILAMENT c=16
 #: messages.c:61
@@ -363,7 +363,7 @@ msgstr "Schneide filament"
 # MSG_FSENS_NOT_RESPONDING c=20 r=4
 #: ultralcd.cpp:4330
 msgid "ERROR: Filament sensor is not responding, please check connection."
-msgstr "FEHLER: Filament- sensor reagiert nicht, bitte Verbindung pruefen."
+msgstr "FEHLER: Filament- sensor reagiert nicht, bitte Verbindung prüfen."
 
 # MSG_DIM c=6
 #: messages.c:159
@@ -376,9 +376,9 @@ msgid "ERROR:"
 msgstr "FEHLER:"
 
 # MSG_SELFTEST_EXTRUDER_FAN_SPEED c=18
-#: ultralcd.cpp:8498
+#: ultralcd.cpp:8419
 msgid "Extruder fan:"
-msgstr "Extruder Luefter:"
+msgstr "Extruderfter:"
 
 # MSG_INFO_EXTRUDER c=18
 #: ultralcd.cpp:2040
@@ -391,7 +391,7 @@ msgid "Extruder"
 msgstr ""
 
 # MSG_MMU_FAIL_STATS c=18
-#: ultralcd.cpp:6754
+#: ultralcd.cpp:6675
 msgid "Fail stats MMU"
 msgstr "MMU-Fehler"
 
@@ -401,24 +401,24 @@ msgid "F. autoload"
 msgstr "F. autoladen"
 
 # MSG_FAIL_STATS c=18
-#: ultralcd.cpp:6751
+#: ultralcd.cpp:6672
 msgid "Fail stats"
 msgstr "Fehlerstatistik"
 
 # MSG_FAN_SPEED c=14
 #: messages.c:36
 msgid "Fan speed"
-msgstr "Luefter-Tempo"
+msgstr "Lüfter-Tempo"
 
 # MSG_SELFTEST_FAN c=20
 #: messages.c:91
 msgid "Fan test"
-msgstr "Lueftertest"
+msgstr "Lüftertest"
 
 # MSG_FANS_CHECK c=13
 #: messages.c:33
 msgid "Fans check"
-msgstr "Luefter Chk."
+msgstr "Lüfter Check"
 
 # MSG_FSENSOR c=12
 #: messages.c:49
@@ -428,7 +428,7 @@ msgstr "Fil. Sensor"
 # MSG_FIL_RUNOUTS c=15
 #: messages.c:34
 msgid "Fil. runouts"
-msgstr "Fil. Maengel"
+msgstr "Fil. Mängel"
 
 # MSG_FILAMENT_CLEAN c=20 r=2
 #: messages.c:37
@@ -461,9 +461,9 @@ msgid "FS Action"
 msgstr "FS Aktion"
 
 # MSG_FILE_INCOMPLETE c=20 r=3
-#: ultralcd.cpp:8634
+#: ultralcd.cpp:8555
 msgid "File incomplete. Continue anyway?"
-msgstr "Datei unvollstaendig Trotzdem fortfahren?"
+msgstr "Datei unvollständig Trotzdem fortfahren?"
 
 # MSG_FINISHING_MOVEMENTS c=20
 #: messages.c:45
@@ -478,22 +478,22 @@ msgstr "Erste-Schicht Kal."
 # MSG_WIZARD_SELFTEST c=20 r=8
 #: ultralcd.cpp:4942
 msgid "First, I will run the selftest to check most common assembly problems."
-msgstr "Zunaechst fuehre ich den Selbsttest durch, um die haeufigsten Probleme beim Zusammenbau zu ueberpruefen."
+msgstr "Zunächst führe ich den Selbsttest durch, um die häufigsten Probleme beim Zusammenbau zu überprüfen."
 
 # MSG_MMU_FIX_ISSUE c=20 r=4
 #: mmu.cpp:727
 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 drücken Sie dann den Knopf am MMU."
 
 # MSG_FLOW c=15
-#: ultralcd.cpp:6888
+#: ultralcd.cpp:6809
 msgid "Flow"
 msgstr "Durchfluss"
 
 # MSG_SELFTEST_COOLING_FAN c=20
 #: messages.c:88
 msgid "Front print fan?"
-msgstr "Teile Luefter?"
+msgstr "Drucklüfter?"
 
 # MSG_BED_CORRECTION_FRONT c=14
 #: ultralcd.cpp:3116
@@ -501,34 +501,34 @@ msgid "Front side[um]"
 msgstr "Vorne [um]"
 
 # MSG_SELFTEST_FANS c=20
-#: ultralcd.cpp:8179
+#: ultralcd.cpp:8100
 msgid "Front/left fans"
-msgstr "Teile/Extr. Luefter"
+msgstr "Druck/Extr. Lüfter"
 
 # MSG_SELFTEST_HEATERTHERMISTOR c=20
-#: ultralcd.cpp:8127
+#: ultralcd.cpp:8048
 msgid "Heater/Thermistor"
 msgstr "Heizung/Thermistor"
 
 # MSG_BED_HEATING_SAFETY_DISABLED c=20 r=4
-#: Marlin_main.cpp:9874
+#: Marlin_main.cpp:9877
 msgid "Heating disabled by safety timer."
 msgstr "Heizung durch Sicherheitstimer deaktiviert."
 
 # MSG_HEATING_COMPLETE c=20
 #: messages.c:51
 msgid "Heating done."
-msgstr "Aufwaermen OK."
+msgstr "Aufwärmen OK."
 
 # MSG_HEATING c=20
 #: messages.c:50
 msgid "Heating"
-msgstr "Aufwaermen"
+msgstr "Aufwärmen"
 
 # MSG_WIZARD_WELCOME c=20 r=7
 #: messages.c:121
 msgid "Hi, I am your Original Prusa i3 printer. Would you like me to guide you through the setup process?"
-msgstr "Hallo, ich bin Ihr Original Prusa i3 Drucker. Moechten Sie, dass ich Sie durch den Einrich- tungsablauf fuehre?"
+msgstr "Hallo, ich bin Ihr Original Prusa i3 Drucker. Möchten Sie, dass ich Sie durch den Einricht- ungsablauf führe?"
 
 # MSG_FILAMENTCHANGE c=18
 #: messages.c:43
@@ -548,47 +548,47 @@ msgstr "Wechsel ok?"
 # MSG_SELFTEST_CHECK_BED c=20
 #: messages.c:94
 msgid "Checking bed"
-msgstr "Pruefe Bett"
+msgstr "Prüfe Bett"
 
 # MSG_SELFTEST_CHECK_ENDSTOPS c=20
-#: ultralcd.cpp:8481
+#: ultralcd.cpp:8402
 msgid "Checking endstops"
-msgstr "Pruefe Endschalter"
+msgstr "Prüfe Endschalter"
 
 # MSG_SELFTEST_CHECK_HOTEND c=20
-#: ultralcd.cpp:8487
+#: ultralcd.cpp:8408
 msgid "Checking hotend"
-msgstr "Pruefe Duese"
+msgstr "Prüfe Düse"
 
 # MSG_SELFTEST_CHECK_FSENSOR c=20
 #: messages.c:95
 msgid "Checking sensors"
-msgstr "Pruefe Sensoren"
+msgstr "Prüfe Sensoren"
 
 # MSG_CHECKING_X c=20
 #: messages.c:23
 msgid "Checking X axis"
-msgstr "Pruefe X Achse"
+msgstr "Prüfe X Achse"
 
 # MSG_CHECKING_Y c=20
 #: messages.c:24
 msgid "Checking Y axis"
-msgstr "Pruefe Y Achse"
+msgstr "Prüfe Y Achse"
 
 # MSG_SELFTEST_CHECK_Z c=20
-#: ultralcd.cpp:8484
+#: ultralcd.cpp:8405
 msgid "Checking Z axis"
-msgstr "Pruefe Z Achse"
+msgstr "Prüfe Z Achse"
 
 # MSG_CHOOSE_EXTRUDER c=20
 #: messages.c:54
 msgid "Choose extruder:"
-msgstr "Extruder waehlen:"
+msgstr "Extruder wählen:"
 
 # MSG_CHOOSE_FILAMENT c=20
 #: messages.c:55
 msgid "Choose filament:"
-msgstr "Waehle Filament:"
+msgstr "Wähle Filament:"
 
 # MSG_FILAMENT c=17
 #: messages.c:35
@@ -598,12 +598,12 @@ msgstr ""
 # MSG_WIZARD_XYZ_CAL c=20 r=8
 #: ultralcd.cpp:4951
 msgid "I will run xyz calibration now. It will take approx. 12 mins."
-msgstr "Ich werde jetzt die XYZ-Kalibrierung durchfuehren. Es wird ca. 12 Minuten dauern."
+msgstr "Ich werde jetzt die XYZ-Kalibrierung durchführen. Es wird ca. 12 Minuten dauern."
 
 # MSG_WIZARD_Z_CAL c=20 r=8
 #: ultralcd.cpp:4959
 msgid "I will run z calibration now."
-msgstr "Ich werde jetzt die Z Kalibrierung durchfuehren."
+msgstr "Ich werde jetzt die Z Kalibrierung durchführen."
 
 # MSG_WATCH c=18
 #: messages.c:116
@@ -633,12 +633,12 @@ msgstr "Letzte Druckfehler"
 # MSG_WIZARD_WELCOME_SHIPPING c=20 r=16
 #: messages.c:122
 msgid "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."
-msgstr "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."
+msgstr "Hallo, ich bin Ihr Original Prusa i3 Drucker. Ich werde Sie durch einen kurzen Einrichtungsprozess führen, bei dem die Z-Achse kalibriert wird. Danach sind Sie bereit für den Druck."
 
 # MSG_ADDITIONAL_SHEETS c=20 r=9
 #: ultralcd.cpp:5029
 msgid "If you have additional steel sheets, calibrate their presets in Settings - HW Setup - Steel sheets."
-msgstr "Wenn Sie zusaetzliche Stahlbleche haben, kalibrieren Sie deren Voreinstellungen unter Einstellungen - HW Setup - Stahlbleche."
+msgstr "Wenn Sie zusätzliche Stahlbleche haben, kalibrieren Sie deren Voreinstellungen unter Einstellungen - HW Setup - Stahlbleche."
 
 # MSG_LAST_PRINT c=18
 #: messages.c:56
@@ -648,7 +648,7 @@ msgstr "Letzter Druck"
 # MSG_SELFTEST_EXTRUDER_FAN c=20
 #: messages.c:89
 msgid "Left hotend fan?"
-msgstr "Extruder Luefter?"
+msgstr "Extruderfter?"
 
 # MSG_LEFT c=10
 #: ultralcd.cpp:2844
@@ -671,9 +671,9 @@ msgid "Live adjust Z"
 msgstr "Z einstellen"
 
 # 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."
-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 drücken Sie dann den Knopf."
 
 # MSG_LOAD_FILAMENT c=17
 #: messages.c:58
@@ -688,7 +688,7 @@ msgstr "Lade Farbe"
 # MSG_LOADING_FILAMENT c=20
 #: messages.c:59
 msgid "Loading filament"
-msgstr "Filament laedt"
+msgstr "Filament lädt"
 
 # MSG_ITERATION c=12
 #: messages.c:53
@@ -696,12 +696,12 @@ msgid "Iteration"
 msgstr "Wiederholung"
 
 # MSG_LOOSE_PULLEY c=20
-#: ultralcd.cpp:8167
+#: ultralcd.cpp:8088
 msgid "Loose pulley"
 msgstr "Lose Riemenscheibe"
 
 # MSG_LOAD_TO_NOZZLE c=18
-#: ultralcd.cpp:6717
+#: ultralcd.cpp:6638
 msgid "Load to nozzle"
 msgstr "In Nozzle laden"
 
@@ -713,7 +713,7 @@ msgstr "M117 Erste-Schicht Kal."
 # MSG_MAIN c=18
 #: messages.c:63
 msgid "Main"
-msgstr "Hauptmenue"
+msgstr "Hauptmenü"
 
 # MSG_BL_HIGH c=12
 #: messages.c:155
@@ -728,7 +728,7 @@ msgstr "Dimmwert"
 # MSG_MEASURE_BED_REFERENCE_HEIGHT_LINE1 c=20 r=3
 #: messages.c:67
 msgid "Measuring reference height of calibration point"
-msgstr "Messen der Referenzhoehe des Kalibrierpunktes"
+msgstr "Messen der Referenzhöhe des Kalibrierpunktes"
 
 # MSG_MESH_BED_LEVELING c=18
 #: messages.c:148
@@ -748,7 +748,7 @@ msgstr "MMU OK. Temperatur wiederherstellen..."
 # MSG_MEASURED_SKEW c=14
 #: ultralcd.cpp:2885
 msgid "Measured skew"
-msgstr "Schraeglauf"
+msgstr "Schräglauf"
 
 # MSG_MMU_FAILS c=15
 #: messages.c:69
@@ -851,7 +851,7 @@ msgid "No move."
 msgstr "Keine Bewegung."
 
 # MSG_NO_CARD c=18
-#: ultralcd.cpp:6697
+#: ultralcd.cpp:6618
 msgid "No SD card"
 msgstr "Keine SD Karte"
 
@@ -866,14 +866,14 @@ msgid "No"
 msgstr "Nein"
 
 # MSG_SELFTEST_NOTCONNECTED c=20
-#: ultralcd.cpp:8128
+#: ultralcd.cpp:8049
 msgid "Not connected"
 msgstr "Nicht angeschlossen"
 
 # MSG_NEW_FIRMWARE_AVAILABLE c=20 r=2
 #: util.cpp:195
 msgid "New firmware version available:"
-msgstr "Neue Firmware- Version verfuegbar:"
+msgstr "Neue Firmware- Version verfügbar:"
 
 # MSG_SELFTEST_FAN_NO c=19
 #: messages.c:92
@@ -883,17 +883,17 @@ msgstr "Dreht sich nicht"
 # MSG_WIZARD_V2_CAL c=20 r=8
 #: ultralcd.cpp:4838
 msgid "Now I will calibrate distance between tip of the nozzle and heatbed surface."
-msgstr "Jetzt werde ich den Abstand zwischen Duesenspitze und Druckbett kalibrieren."
+msgstr "Jetzt werde ich den Abstand zwischen Düsenspitze und Druckbett kalibrieren."
 
 # MSG_WIZARD_WILL_PREHEAT c=20 r=4
 #: ultralcd.cpp:4967
 msgid "Now I will preheat nozzle for PLA."
-msgstr "Jetzt werde ich die Duese fuer PLA vorheizen."
+msgstr "Jetzt werde ich die Düse für PLA vorheizen."
 
 # MSG_NOZZLE c=12
 #: messages.c:72
 msgid "Nozzle"
-msgstr "Duese"
+msgstr "Düse"
 
 # MSG_DEFAULT_SETTINGS_LOADED c=20 r=6
 #: Marlin_main.cpp:1605
@@ -908,7 +908,7 @@ msgstr "Testdruck jetzt von Stahlblech entfernen."
 # MSG_NOZZLE_FAN c=10
 #: ultralcd.cpp:1446
 msgid "Nozzle FAN"
-msgstr "Duesevent."
+msgstr "Drucklüft."
 
 # MSG_PAUSE_PRINT c=18
 #: messages.c:74
@@ -933,27 +933,27 @@ msgstr "PID Kalibrierung"
 # MSG_PINDA_PREHEAT c=20
 #: ultralcd.cpp:683
 msgid "PINDA Heating"
-msgstr "PINDA erwaermen"
+msgstr "PINDA erwärmen"
 
 # MSG_PAPER c=20 r=10
 #: messages.c:73
 msgid "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."
-msgstr "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."
+msgstr "Legen Sie ein Blatt Papier unter die Düse während der Kalibrierung der ersten 4 Punkte. Wenn die Düse das Papier erfasst, den Drucker sofort ausschalten."
 
 # MSG_WIZARD_CLEAN_HEATBED c=20 r=8
 #: ultralcd.cpp:5024
 msgid "Please clean heatbed and then press the knob."
-msgstr "Bitte reinigen Sie das Heizbett und druecken Sie dann den Knopf."
+msgstr "Bitte reinigen Sie das Heizbett und drücken Sie dann den Knopf."
 
 # MSG_CONFIRM_NOZZLE_CLEAN c=20 r=8
 #: messages.c:26
 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 überstehendes Filament von der Düse. Klicken wenn sauber."
 
 # MSG_SELFTEST_PLEASECHECK c=20
-#: ultralcd.cpp:8122
+#: ultralcd.cpp:8043
 msgid "Please check:"
-msgstr "Bitte pruefe:"
+msgstr "Bitte prüfen:"
 
 # MSG_WIZARD_CALIBRATION_FAILED c=20 r=8
 #: messages.c:117
@@ -963,7 +963,7 @@ msgstr "Bitte lesen Sie unser Handbuch und beheben Sie das Problem. Fahren Sie d
 # MSG_CHECK_IDLER c=20 r=5
 #: Marlin_main.cpp:3798
 msgid "Please open idler and remove filament manually."
-msgstr "Bitte Spannrolle oeffnen und Fila- ment von Hand entfernen"
+msgstr "Bitte Spannrolle öffnen und Filament von Hand entfernen"
 
 # MSG_PLACE_STEEL_SHEET c=20 r=5
 #: messages.c:75
@@ -973,7 +973,7 @@ msgstr "Bitte legen Sie das Stahlblech auf das Heizbett."
 # MSG_PRESS_TO_UNLOAD c=20 r=4
 #: messages.c:79
 msgid "Please press the knob to unload filament"
-msgstr "Bitte druecken Sie den Knopf um das Filament zu entladen."
+msgstr "Bitte drücken Sie den Knopf um das Filament zu entladen."
 
 # MSG_PULL_OUT_FILAMENT c=20 r=4
 #: messages.c:81
@@ -983,7 +983,7 @@ msgstr "Bitte ziehen Sie das Filament sofort heraus"
 # MSG_EJECT_REMOVE c=20 r=4
 #: mmu.cpp:1421
 msgid "Please remove filament and then press the knob."
-msgstr "Bitte Filament entfernen und dann den Knopf druecken"
+msgstr "Bitte Filament entfernen und dann den Knopf drücken"
 
 # MSG_REMOVE_STEEL_SHEET c=20 r=4
 #: messages.c:84
@@ -993,7 +993,7 @@ msgstr "Bitte entfernen Sie das Stahlblech vom Heizbett."
 # MSG_RUN_XYZ c=20 r=4
 #: Marlin_main.cpp:5338
 msgid "Please run XYZ calibration first."
-msgstr "Bitte zuerst XYZ Kalibrierung ausfuehren."
+msgstr "Bitte zuerst XYZ Kalibrierung ausführen."
 
 # MSG_UPDATE_MMU2_FW c=20 r=4
 #: mmu.cpp:1341
@@ -1013,17 +1013,17 @@ msgstr "Bitte zuerst Transportsicherungen entfernen."
 # MSG_PREHEAT_NOZZLE c=20
 #: messages.c:78
 msgid "Preheat the nozzle!"
-msgstr "Duese vorheizen!"
+msgstr "Düse vorheizen!"
 
 # MSG_PREHEAT c=18
-#: ultralcd.cpp:6655
+#: ultralcd.cpp:6576
 msgid "Preheat"
 msgstr "Vorheizen"
 
 # MSG_WIZARD_HEATING c=20 r=3
 #: messages.c:119
 msgid "Preheating nozzle. Please wait."
-msgstr "Vorheizen der Duese. Bitte warten."
+msgstr "Vorheizen der Düse. Bitte warten."
 
 # MSG_NEW_FIRMWARE_PLEASE_UPGRADE c=20
 #: util.cpp:199
@@ -1031,9 +1031,9 @@ msgid "Please upgrade."
 msgstr "Bitte aktualisieren."
 
 # 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."
-msgstr "Bitte druecken Sie den Knopf um die Duese vorzuheizen und fortzufahren."
+msgstr "Bitte drücken Sie den Knopf um die Düse vorzuheizen und fortzufahren."
 
 # MSG_FS_PAUSE c=5
 #: fsensor.cpp:730
@@ -1061,9 +1061,9 @@ msgid "Preheating to unload"
 msgstr "Heizen zum Entladen"
 
 # MSG_SELFTEST_PRINT_FAN_SPEED c=18
-#: ultralcd.cpp:8501
+#: ultralcd.cpp:8422
 msgid "Print fan:"
-msgstr "Druckvent.:"
+msgstr "Drucklüfter:"
 
 # MSG_CARD_MENU c=18
 #: messages.c:22
@@ -1073,7 +1073,7 @@ msgstr "Drucken von SD"
 # MSG_PRESS_KNOB c=20
 #: ultralcd.cpp:2130
 msgid "Press the knob"
-msgstr "Knopf druecken zum"
+msgstr "Knopf drücken zum"
 
 # MSG_PRINT_PAUSED c=20
 #: ultralcd.cpp:907
@@ -1083,7 +1083,7 @@ msgstr "Druck pausiert"
 # MSG_RESUME_NOZZLE_TEMP c=20 r=4
 #: mmu.cpp:726
 msgid "Press the knob to resume nozzle temperature."
-msgstr "Druecken Sie den Knopf um die Duesentemperatur wiederherzustellen"
+msgstr "Drücken Sie den Knopf um die Düsentemperatur wiederherzustellen"
 
 # MSG_FOLLOW_CALIBRATION_FLOW c=20 r=8
 #: messages.c:46
@@ -1093,17 +1093,17 @@ msgstr "Drucker wurde noch nicht kalibriert. Bitte folgen Sie dem Handbuch, Kapi
 # MSG_PRINT_FAN c=10
 #: ultralcd.cpp:1447
 msgid "Print FAN"
-msgstr "Druckvent."
+msgstr "Drucklüft."
 
 # MSG_WIZARD_LOAD_FILAMENT c=20 r=6
 #: ultralcd.cpp:4818
 msgid "Please insert filament into the extruder, then press the knob to load it."
-msgstr "Bitte legen Sie das Filament in den Extruder ein und druecken Sie dann den Knopf, um es zu laden."
+msgstr "Bitte legen Sie das Filament in den Extruder ein und drücken Sie dann den Knopf, um es zu laden."
 
 # MSG_MMU_INSERT_FILAMENT_FIRST_TUBE c=20 r=6
 #: ultralcd.cpp:4813
 msgid "Please insert filament into the first tube of the MMU, then press the knob to load it."
-msgstr "Bitte stecken Sie das Filament in den ersten Schlauch der MMU und druecken Sie dann den Knopf, um es zu laden."
+msgstr "Bitte stecken Sie das Filament in den ersten Schlauch der MMU und drücken Sie dann den Knopf, um es zu laden."
 
 # MSG_PLEASE_LOAD_PLA c=20 r=4
 #: ultralcd.cpp:4735
@@ -1116,24 +1116,24 @@ msgid "Rear side [um]"
 msgstr "Hinten [um]"
 
 # MSG_UNLOAD_FILAMENT_REPEAT c=20 r=4
-#: ultralcd.cpp:7404
+#: ultralcd.cpp:7325
 msgid "Please unload the filament first, then repeat this action."
 msgstr "Bitte entladen Sie erst das Filament und versuchen Sie es nochmal."
 
 # 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."
-msgstr "Bitte IR Sensor Verbindungen ueber- pruefen und Filament entladen ist."
+msgstr "Bitte IR Sensor Verbindungen über- prüfen und Filament entladen ist."
 
 # MSG_RECOVERING_PRINT c=20
-#: Marlin_main.cpp:11393
+#: Marlin_main.cpp:11396
 msgid "Recovering print"
 msgstr "Druck wiederherst"
 
 # MSG_REMOVE_OLD_FILAMENT c=20 r=5
 #: mmu.cpp:833
 msgid "Remove old filament and press the knob to start loading new filament."
-msgstr "Entfernen Sie das alte Filament und druecken Sie den Knopf, um das neue zu laden."
+msgstr "Entfernen Sie das alte Filament und drücken Sie den Knopf, um das neue zu laden."
 
 # MSG_CALIBRATE_BED_RESET c=18
 #: ultralcd.cpp:5804
@@ -1143,7 +1143,7 @@ msgstr "Reset XYZ Kalibr."
 # MSG_RESET c=14
 #: messages.c:85
 msgid "Reset"
-msgstr "Ruecksetzen"
+msgstr "Rücksetzen"
 
 # MSG_RESUME_PRINT c=18
 #: messages.c:86
@@ -1168,7 +1168,7 @@ msgstr ""
 # MSG_WIZARD_RERUN c=20 r=7
 #: ultralcd.cpp:4756
 msgid "Running Wizard will delete current calibration results and start from the beginning. Continue?"
-msgstr "Der Assistent wird die aktuellen Kalibrierungsdaten loeschen und von vorne beginnen. Weiterfahren?"
+msgstr "Der Assistent wird die aktuellen Kalibrierungsdaten löschen und von vorne beginnen. Weiterfahren?"
 
 # MSG_SD_CARD c=8
 #: messages.c:138
@@ -1188,15 +1188,15 @@ msgstr "Suche Bett Kalibrierpunkt"
 # MSG_LANGUAGE_SELECT c=18
 #: ultralcd.cpp:4451
 msgid "Select language"
-msgstr "Waehle Sprache"
+msgstr "Wähle Sprache"
 
 # MSG_SELFTEST_OK c=20
-#: ultralcd.cpp:7679
+#: ultralcd.cpp:7600
 msgid "Self test OK"
 msgstr "Selbsttest OK"
 
 # MSG_SELFTEST_START c=20
-#: ultralcd.cpp:7447
+#: ultralcd.cpp:7368
 msgid "Self test start"
 msgstr "Selbsttest start"
 
@@ -1206,7 +1206,7 @@ msgid "Selftest"
 msgstr "Selbsttest"
 
 # MSG_SELFTEST_ERROR c=20
-#: ultralcd.cpp:8121
+#: ultralcd.cpp:8042
 msgid "Selftest error!"
 msgstr "Selbsttest Fehler!"
 
@@ -1218,12 +1218,12 @@ msgstr "Selbsttest Error"
 # MSG_FORCE_SELFTEST c=20 r=8
 #: Marlin_main.cpp:1637
 msgid "Selftest will be run to calibrate accurate sensorless rehoming."
-msgstr "Selbsttest im Gang, um die genaue Rueck- kehr zum Nullpunkt ohne Sensor zu kalibrieren"
+msgstr "Selbsttest wird gestartet, um Startposition zu kalibrieren."
 
 # MSG_SEL_PREHEAT_TEMP c=20 r=6
 #: ultralcd.cpp:4998
 msgid "Select nozzle preheat temperature which matches your material."
-msgstr "Bitte Vorheiztemperatur auswaehlen, die Ihrem Material entspricht."
+msgstr "Bitte Vorheiztemperatur auswählen, die Ihrem Material entspricht."
 
 # MSG_SET_TEMPERATURE c=20
 #: ultralcd.cpp:3135
@@ -1263,7 +1263,7 @@ msgstr "Zeit"
 # MSG_SEVERE_SKEW c=14
 #: ultralcd.cpp:2888
 msgid "Severe skew"
-msgstr "Sehr Schraeg"
+msgstr "Sehr schräg"
 
 # MSG_SORT_ALPHA c=8
 #: messages.c:141
@@ -1283,7 +1283,7 @@ msgstr "Laut"
 # MSG_SLIGHT_SKEW c=14
 #: ultralcd.cpp:2887
 msgid "Slight skew"
-msgstr "Leicht Schraeg"
+msgstr "Leicht schräg"
 
 # MSG_SOUND c=7
 #: messages.c:143
@@ -1293,7 +1293,7 @@ msgstr "Ton"
 # MSG_RUNOUTS c=7
 #: ultralcd.cpp:1593
 msgid "Runouts"
-msgstr "Maengel"
+msgstr "Mängel"
 
 # MSG_Z-LEVELING_ENFORCED c=20 r=4
 #: Marlin_main.cpp:3303
@@ -1306,7 +1306,7 @@ msgid "Once"
 msgstr "Einmal"
 
 # MSG_SPEED c=15
-#: ultralcd.cpp:6882
+#: ultralcd.cpp:6803
 msgid "Speed"
 msgstr "Geschwindigkeit"
 
@@ -1318,7 +1318,7 @@ msgstr "Dreht sich"
 # MSG_TEMP_CAL_WARNING c=20 r=4
 #: Marlin_main.cpp:5351
 msgid "Stable ambient temperature 21-26C is needed a rigid stand is required."
-msgstr "Stabile Umgebungs- temperatur 21-26C und feste Stand- flaeche erforderlich"
+msgstr "Stabile Umgebungs- temperatur 21-26C und feste Stand- fläche erforderlich"
 
 # MSG_STATISTICS c=18
 #: ultralcd.cpp:6081
@@ -1336,19 +1336,19 @@ msgid "STOPPED."
 msgstr "GESTOPPT."
 
 # MSG_SUPPORT c=18
-#: ultralcd.cpp:6756
+#: ultralcd.cpp:6677
 msgid "Support"
 msgstr ""
 
 # MSG_SELFTEST_SWAPPED c=16
-#: ultralcd.cpp:8180
+#: ultralcd.cpp:8101
 msgid "Swapped"
 msgstr "Ausgetauscht"
 
 # MSG_SELECT_FILAMENT c=20
 #: ultralcd.cpp:4706
 msgid "Select filament:"
-msgstr "Filament auswaehlen:"
+msgstr "Filament auswählen:"
 
 # MSG_TEMP_CALIBRATION c=14
 #: messages.c:112
@@ -1358,7 +1358,7 @@ msgstr "Temp Kalib."
 # MSG_SELECT_TEMP_MATCHES_MATERIAL c=20 r=4
 #: ultralcd.cpp:4847
 msgid "Select temperature which matches your material."
-msgstr "Waehlen Sie die Temperatur, die zu Ihrem Material passt."
+msgstr "Wählen Sie die Temperatur, die zu Ihrem Material passt."
 
 # MSG_CALIBRATION_PINDA_MENU c=17
 #: ultralcd.cpp:5812
@@ -1376,9 +1376,9 @@ 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."
 
 # MSG_FS_VERIFIED c=20 r=3
-#: ultralcd.cpp:7411
+#: ultralcd.cpp:7332
 msgid "Sensor verified, remove the filament now."
-msgstr "Sensor ueberprueft, entladen Sie jetzt das Filament."
+msgstr "Sensor überprüft, entladen Sie jetzt das Filament."
 
 # MSG_TEMPERATURE c=18
 #: ultralcd.cpp:5673
@@ -1393,7 +1393,7 @@ msgstr "Temperaturen"
 # MSG_FOLLOW_Z_CALIBRATION_FLOW c=20 r=9
 #: messages.c:47
 msgid "There is still a need to make Z calibration. Please follow the manual, chapter First steps, section Calibration flow."
-msgstr "Es ist noch not- wendig die Z- Kalibrierung aus- zufuehren. Bitte befolgen Sie das Handbuch, Kapitel Erste Schritte, Abschnitt Kalibrierablauf."
+msgstr "Es ist noch not- wendig die Z- Kalibrierung aus- zuführen. Bitte befolgen Sie das Handbuch, Kapitel Erste Schritte, Abschnitt Kalibrierablauf."
 
 # MSG_TOTAL_FILAMENT c=19
 #: ultralcd.cpp:2735
@@ -1406,7 +1406,7 @@ msgid "Total print time"
 msgstr "Gesamte Druckzeit"
 
 # MSG_TUNE c=18
-#: ultralcd.cpp:6653
+#: ultralcd.cpp:6574
 msgid "Tune"
 msgstr "Feineinstellung"
 
@@ -1463,27 +1463,27 @@ msgstr "Warte auf Benutzer.."
 # MSG_WAITING_TEMP c=20 r=4
 #: ultralcd.cpp:3283
 msgid "Waiting for nozzle and bed cooling"
-msgstr "Warten bis Heizung und Bett abgekuehlt sind"
+msgstr "Warten bis Heizung und Bett abgekühlt sind"
 
 # MSG_WAITING_TEMP_PINDA c=20 r=3
 #: ultralcd.cpp:3244
 msgid "Waiting for PINDA probe cooling"
-msgstr "Warten, bis PINDA- Sonde abgekuehlt ist"
+msgstr "Warten, bis PINDA- Sonde abgekühlt ist"
 
 # MSG_CHANGED_BOTH c=20 r=4
 #: Marlin_main.cpp:1597
 msgid "Warning: both printer type and motherboard type changed."
-msgstr "Warnung: Druckertyp und Platinentyp wurden beide geaendert."
+msgstr "Warnung: Druckertyp und Platinentyp wurden beide geändert."
 
 # MSG_CHANGED_MOTHERBOARD c=20 r=4
 #: Marlin_main.cpp:1589
 msgid "Warning: motherboard type changed."
-msgstr "Warnung: Platinentyp wurde geaendert."
+msgstr "Warnung: Platinentyp wurde geändert."
 
 # MSG_CHANGED_PRINTER c=20 r=4
 #: Marlin_main.cpp:1593
 msgid "Warning: printer type changed."
-msgstr "Warnung: Druckertyp wurde geaendert."
+msgstr "Warnung: Druckertyp wurde geändert."
 
 # MSG_UNLOAD_SUCCESSFUL c=20 r=2
 #: Marlin_main.cpp:3789
@@ -1518,22 +1518,22 @@ msgstr "Ja"
 # MSG_WIZARD_QUIT c=20 r=8
 #: messages.c:120
 msgid "You can always resume the Wizard from Calibration -> Wizard."
-msgstr "Sie koennen den Assistenten immer im Menu neu starten: Kalibrierung -> Assistent"
+msgstr "Sie können den Assistenten immer im Menu neu starten: Kalibrierung -> Assistent"
 
 # MSG_BED_SKEW_OFFSET_DETECTION_SKEW_EXTREME c=20 r=8
 #: ultralcd.cpp:3743
 msgid "XYZ calibration all right. Skew will be corrected automatically."
-msgstr "XYZ Kalibrierung in Ordnung. Schraeglauf wird automatisch korrigiert."
+msgstr "XYZ Kalibrierung in Ordnung. Schräglauf wird automatisch korrigiert."
 
 # MSG_BED_SKEW_OFFSET_DETECTION_SKEW_MILD c=20 r=8
 #: ultralcd.cpp:3740
 msgid "XYZ calibration all right. X/Y axes are slightly skewed. Good job!"
-msgstr "XYZ Kalibrierung in Ordnung. X/Y Achsen sind etwas schraeg. Gut gemacht!"
+msgstr "XYZ Kalibrierung in Ordnung. X/Y Achsen sind etwas schräg. Gut gemacht!"
 
 # MSG_TIMEOUT c=12
 #: messages.c:157
 msgid "Timeout"
-msgstr "Verzoegerung"
+msgstr ""
 
 # MSG_X_CORRECTION c=13
 #: ultralcd.cpp:5086
@@ -1543,17 +1543,17 @@ msgstr "X-Korrektur:"
 # MSG_BED_SKEW_OFFSET_DETECTION_PERFECT c=20 r=8
 #: ultralcd.cpp:3737
 msgid "XYZ calibration ok. X/Y axes are perpendicular. Congratulations!"
-msgstr "XYZ-Kalibrierung ok. X/Y-Achsen sind senkrecht zueinander Glueckwunsch!"
+msgstr "XYZ-Kalibrierung ok. X/Y-Achsen sind senkrecht zueinander Glückwunsch!"
 
 # MSG_BED_SKEW_OFFSET_DETECTION_WARNING_FRONT_BOTH_FAR c=20 r=8
 #: ultralcd.cpp:3721
 msgid "XYZ calibration compromised. Front calibration points not reachable."
-msgstr "XYZ-Kalibrierung beeintraechtigt. Vordere Kalibrierpunkte nicht erreichbar."
+msgstr "XYZ-Kalibrierung beeinträchtigt. Vordere Kalibrierpunkte nicht erreichbar."
 
 # MSG_BED_SKEW_OFFSET_DETECTION_WARNING_FRONT_RIGHT_FAR c=20 r=8
 #: ultralcd.cpp:3724
 msgid "XYZ calibration compromised. Right front calibration point not reachable."
-msgstr "XYZ-Kalibrierung beeintraechtigt. Rechter vorderer Kalibrierpunkt nicht erreichbar."
+msgstr "XYZ-Kalibrierung beeinträchtigt. Rechter vorderer Kalibrierpunkt nicht erreichbar."
 
 # MSG_LOAD_ALL c=17
 #: ultralcd.cpp:6167
@@ -1583,12 +1583,12 @@ msgstr "Y Entfernung vom Min"
 # MSG_WIZARD_V2_CAL_2 c=20 r=12
 #: ultralcd.cpp:4850
 msgid "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)."
-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 Höhe erreicht haben. überprüfen Sie die Bilder im Handbuch (Kapitel Kalibrierung)."
 
 # MSG_FIL_FAILED c=20 r=5
-#: ultralcd.cpp:7415
+#: ultralcd.cpp:7336
 msgid "Verification failed, remove the filament and try again."
-msgstr "Ueberpruefung fehl- geschlagen, entladen Sie das Filament und versuchen Sie es erneut."
+msgstr "überprüfung fehl- geschlagen, entladen Sie das Filament und versuchen Sie es erneut."
 
 # MSG_Y_CORRECTION c=13
 #: ultralcd.cpp:5087
@@ -1608,7 +1608,7 @@ msgstr "An"
 # MSG_BACK c=18
 #: messages.c:64
 msgid "Back"
-msgstr "Zurueck"
+msgstr "Zurück"
 
 # MSG_CHECKS c=18
 #: ultralcd.cpp:5641
@@ -1616,7 +1616,7 @@ msgid "Checks"
 msgstr "Kontrolle"
 
 # MSG_FALSE_TRIGGERING c=20
-#: ultralcd.cpp:8190
+#: ultralcd.cpp:8111
 msgid "False triggering"
 msgstr "Falschtriggerung"
 
@@ -1668,37 +1668,37 @@ msgstr "Modell"
 # MSG_NOZZLE_DIAMETER c=10
 #: messages.c:136
 msgid "Nozzle d."
-msgstr "Duese D."
+msgstr "Düsendiam."
 
 # MSG_GCODE_DIFF_CONTINUE c=20 r=4
 #: util.cpp:414
 msgid "G-code sliced for a different level. Continue?"
-msgstr "G-Code ist fuer einen anderen Level geslict. Fortfahren?"
+msgstr "G-Code ist für einen anderen Level geslict. Fortfahren?"
 
 # MSG_GCODE_DIFF_CANCELLED c=20 r=7
 #: util.cpp:420
 msgid "G-code sliced for a different level. Please re-slice the model again. Print cancelled."
-msgstr "G-Code ist fuer einen anderen Level geslict. Bitte slicen Sie das Modell erneut. Druck abgebrochen."
+msgstr "G-Code ist für einen anderen Level geslict. Bitte slicen Sie das Modell erneut. Druck abgebrochen."
 
 # MSG_GCODE_DIFF_PRINTER_CONTINUE c=20 r=5
 #: messages.c:134
 msgid "G-code sliced for a different printer type. Continue?"
-msgstr "G-Code ist fuer einen anderen Drucker geslict. Fortfahren?"
+msgstr "G-Code ist für einen anderen Drucker geslict. Fortfahren?"
 
 # MSG_GCODE_DIFF_PRINTER_CANCELLED c=20 r=8
 #: messages.c:135
 msgid "G-code sliced for a different printer type. Please re-slice the model again. Print cancelled."
-msgstr "G-Code ist fuer einen anderen Drucker geslict. Bitte slicen Sie das Modell erneut. Druck abgebrochen."
+msgstr "G-Code ist für einen anderen Drucker geslict. Bitte slicen Sie das Modell erneut. Druck abgebrochen."
 
 # MSG_GCODE_NEWER_FIRMWARE_CONTINUE c=20 r=5
 #: util.cpp:381
 msgid "G-code sliced for a newer firmware. Continue?"
-msgstr "G-Code ist fuer eine neuere Firmware geslict. Fortfahren?"
+msgstr "G-Code ist für eine neuere Firmware geslict. Fortfahren?"
 
 # MSG_GCODE_NEWER_FIRMWARE_CANCELLED c=20 r=8
 #: util.cpp:387
 msgid "G-code sliced for a newer firmware. Please update the firmware. Print cancelled."
-msgstr "G-Code ist fuer eine neuere Firmware geslict. Bitte die Firmware updaten. Druck abgebrochen."
+msgstr "G-Code ist für eine neuere Firmware geslict. Bitte die Firmware updaten. Druck abgebrochen."
 
 # MSG_PREHEATING_TO_CUT c=20
 #: ultralcd.cpp:2309
@@ -1713,25 +1713,25 @@ msgstr "Heizen zum Auswurf"
 # MSG_NOZZLE_DIFFERS_CONTINUE c=20 r=5
 #: util.cpp:294
 msgid "Printer nozzle diameter differs from the G-code. Continue?"
-msgstr "Der Durchmesser der Druckerduese weicht vom G-Code ab. Fortfahren?"
+msgstr "Der Durchmesser der Druckerdüse weicht vom G-Code ab. Fortfahren?"
 
 # MSG_NOZZLE_DIFFERS_CANCELLED c=20 r=9
 #: util.cpp:301
 msgid "Printer nozzle diameter differs from the G-code. Please check the value in settings. Print cancelled."
-msgstr "Der Durchmesser der Druckerduese weicht vom G-Code ab. Bitte ueberpruefen Sie den Wert in den Einstellungen. Druck abgebrochen."
+msgstr "Der Durchmesser der Druckerdüse weicht vom G-Code ab. Bitte überprüfen Sie den Wert in den Einstellungen. Druck abgebrochen."
 
 # MSG_SELFTEST_FS_LEVEL c=20
-#: ultralcd.cpp:8195
+#: ultralcd.cpp:8116
 msgid "%s level expected"
 msgstr "%s Level erwartet"
 
 # MSG_RENAME c=18
-#: ultralcd.cpp:6579
+#: ultralcd.cpp:6500
 msgid "Rename"
 msgstr "Umbenennen"
 
 # MSG_SELECT c=18
-#: ultralcd.cpp:6572
+#: ultralcd.cpp:6493
 msgid "Select"
 msgstr "Auswahl"