]> git.ipfire.org Git - thirdparty/bash.git/commitdiff
fixes to printf for wide characters in single-byte locales; fixes to job notification...
authorChet Ramey <chet.ramey@case.edu>
Wed, 13 Mar 2024 13:33:32 +0000 (09:33 -0400)
committerChet Ramey <chet.ramey@case.edu>
Wed, 13 Mar 2024 13:33:32 +0000 (09:33 -0400)
CWRU/CWRU.chlog
builtins/printf.def
examples/loadables/getconf.c
jobs.c
lib/malloc/sbrk.c
po/de.gmo
po/de.po
po/fr.gmo
po/fr.po

index bc5476b041e166f29f45309f4708287927edd02c..8424184a4766557b4d67c433118e72fe3b0dfbf1 100644 (file)
@@ -8777,3 +8777,33 @@ subst.c
        - expand_word_internal: if CTLNUL is a IFS character, don't add quoted
          null strings to istring if we're going to be word splitting, since
          they will be treated as word delimiters
+
+                                   3/6
+                                   ---
+examples/loadables/getconf.c
+       - getconf_builtin,getconf_all: changes for POSIX interp 1808 proposal
+         to allow an optional pathname argument with -a that forces its use
+         for pathconf variables
+         https://www.austingroupbugs.net/view.php?id=1808
+
+                                  3/11
+                                  ----
+builtins/printf.def
+       - printf_builtin: %lc/%ls (%C/%S) should only work on wide characters
+         when in a locale where MB_CUR_MAX > 1.
+         Report by Emanuele Torre <torreemanuele6@gmail.com>
+
+                                  3/12
+                                  ----
+jobs.c
+       - notify_of_job_status: don't mark terminated background jobs or stopped
+         jobs as notified in shells started to run -c command
+         From a report by Greg Wooledge <greg@wooledge.org>
+       - notify_of_job_status: make the final marking the dead job as notified
+         a true catch-all so we can put a debugging message in there to see
+         if there are other missing cases
+       - notify_of_job_status: don't mark terminated jobs that died due to
+         a signal the shell trapped (on the assumption that the shell
+         received the signal, too) as notified, since we don't report on it
+         in the JDEAD case if the signal is trapped
+
index f7f4de34a7f25130759f8fb27664486991cafe50..49757f5cd0a7e4e96b46d2eba8b9a456219f88f7 100644 (file)
@@ -492,7 +492,7 @@ printf_builtin (WORD_LIST *list)
                char p;
 
 #if defined (HANDLE_MULTIBYTE)
-               if (longform || convch == 'C')
+               if ((longform || convch == 'C') && locale_mb_cur_max > 1)
                  {
                    wchar_t wc, ws[2];
                    int r;
@@ -522,7 +522,7 @@ printf_builtin (WORD_LIST *list)
              {
                char *p;
 #if defined (HANDLE_MULTIBYTE)
-               if (longform || convch == 'S')
+               if ((longform || convch == 'S') && locale_mb_cur_max > 1)
                  {
                    wchar_t *wp;
                    size_t slen;
index 6294d5ded19e4e08936b313b34f61ba98ca898d7..56ef257aa349e18995490bcb0d188f389663b35b 100644 (file)
@@ -941,7 +941,7 @@ static const struct conf vars[] =
   };
 
 static int getconf_print (const struct conf *, const char *, int);
-static int getconf_all (void);
+static int getconf_all (WORD_LIST *);
 static int getconf_one (WORD_LIST *);
 static int getconf_internal (const struct conf *, int);
 
@@ -1035,17 +1035,23 @@ getconf_internal (const struct conf *c, int all)
 }
     
 static int
-getconf_all (void)
+getconf_all (WORD_LIST *list)
 {
   const struct conf *c;
   char *path;
   int r;
 
   r = EXECUTION_SUCCESS;
+  path = list ? list->word->word : 0;
   for (c = vars; c->name != NULL; ++c)
     {
+      if (c->call == PATHCONF && path == 0)
+       continue;       /* Don't print pathconf vars if no path supplied */
+#if 0
+      if (c->call != PATHCONF && path)
+       continue;       /* Only print pathconf vars if path supplied */
+#endif
       printf("%-35s", c->name);
-      path = "/";              /* XXX for now */
       if (getconf_print (c, path, 1) == EXECUTION_FAILURE)
         r = EXECUTION_FAILURE;
     }
@@ -1189,13 +1195,19 @@ getconf_builtin (WORD_LIST *list)
     }
 
   list = loptend;
-  if ((aflag == 0 && list == 0) || (aflag && list) || list_length((GENERIC_LIST *)list) > 2)
+  if ((aflag == 0 && list == 0) || (list && list_length((GENERIC_LIST *)list) > 2))
+    {
+      builtin_usage();
+      return (EX_USAGE);
+    }
+  else if (aflag && list && (list->word == 0 || list->word->word == 0 || *list->word->word == 0))
     {
+      /* No null pathnames with -a */
       builtin_usage();
       return (EX_USAGE);
     }
 
-  r = aflag ? getconf_all () : getconf_one (list);
+  r = aflag ? getconf_all (list) : getconf_one (list);
   return r;
 }
 
@@ -1212,6 +1224,6 @@ struct builtin getconf_struct = {
        getconf_builtin,
        BUILTIN_ENABLED,
        getconf_doc,
-       "getconf -[ah] or getconf [-v spec] sysvar or getconf [-v spec] pathvar pathname",
+       "getconf -[ah] [file] or getconf [-v spec] sysvar or getconf [-v spec] pathvar pathname",
        0
 };
diff --git a/jobs.c b/jobs.c
index 7b30a0ce30747b4201c27e552c46247989a73dc6..683f71d5d528331fd6aa1c61add953655ed6b4ce 100644 (file)
--- a/jobs.c
+++ b/jobs.c
@@ -4288,10 +4288,11 @@ notify_of_job_status (void)
          if (startup_state == 0 && WIFSIGNALED (s) == 0 &&
                ((DEADJOB (job) && IS_FOREGROUND (job) == 0) || STOPPED (job)))
            continue;
-         
+
          /* Do the same thing and don't print anything or mark as notified
-            for the signals we're not going to report on */
-         else if (startup_state == 0 && DEADJOB (job) && IS_FOREGROUND (job) == 0 &&
+            for the signals we're not going to report on. This is the opposite
+            of the first two cases under case JDEAD below. */
+         else if (interactive_shell == 0 && DEADJOB (job) && IS_FOREGROUND (job) == 0 &&
                WIFSIGNALED (s) && (termsig == SIGINT
 #if defined (DONT_REPORT_SIGTERM)
                || termsig == SIGTERM
@@ -4299,7 +4300,13 @@ notify_of_job_status (void)
 #if defined (DONT_REPORT_SIGPIPE)
                || termsig == SIGPIPE
 #endif
-               ))
+               || signal_is_trapped (termsig)))
+           continue;
+
+         /* hang onto the status if the shell is running -c command */
+         else if (startup_state == 2 && subshell_environment == 0 &&
+               WIFSIGNALED (s) == 0 &&
+               ((DEADJOB (job) && IS_FOREGROUND (job) == 0) || STOPPED (job)))
            continue;
 
          /* If job control is disabled, don't print the status messages.
@@ -4376,7 +4383,11 @@ notify_of_job_status (void)
              /* Interactive shells without job control enabled are handled
                 above. */
              /* XXX - this is a catch-all in case we missed a state */
-             jobs[job]->flags |= J_NOTIFIED;
+             else
+{
+internal_debug("notify_of_job_status: catch-all setting J_NOTIFIED on job %d (%d), startup state = %d", job, jobs[job]->flags, startup_state);
+               jobs[job]->flags |= J_NOTIFIED;
+}
              break;
 
            case JSTOPPED:
index 3083cacaeb968fc5e44773cc9fc577f17dcdef17..7be3156d63c51cee316f854e8a37300c5475639c 100644 (file)
@@ -25,7 +25,7 @@ static void *initialbrk;
 static void *curbrk;
 
 static int
-brkinit (void)
+initbrk (void)
 {
   if (initialbrk == 0)
     {
index 388ad49eb559986846a748a5e6dda019c0ad6d92..fbf52b3d98ebe24a361df29dbd729e4cefd88f03 100644 (file)
Binary files a/po/de.gmo and b/po/de.gmo differ
index c73aef46feef4c6a528ffa516488dd32b8029e92..5070d8be79a5851650e177b9d3cd9ace7bef0dd1 100644 (file)
--- a/po/de.po
+++ b/po/de.po
@@ -1,15 +1,15 @@
-# qerman language file for GNU Bash 5.0
-# Copyright (C) 2019 Free Software Foundation, Inc.
+# qerman language file for GNU Bash 5.2-rc1
+# Copyright (C) 2023 Free Software Foundation, Inc.
 # This file is distributed under the same license as the bash package.
 # Roland Illig <roland.illig@gmx.de> 2019
-# Nils Naumann <nau@gmx.net>, 1996-2021.
+# Nils Naumann <nau@gmx.net>, 1996-2024.
 #
 msgid ""
 msgstr ""
-"Project-Id-Version: bash 5.1\n"
+"Project-Id-Version: bash 5.2-rc1\n"
 "Report-Msgid-Bugs-To: \n"
 "POT-Creation-Date: 2022-01-11 14:50-0500\n"
-"PO-Revision-Date: 2021-12-29 22:04+0100\n"
+"PO-Revision-Date: 2024-03-11 21:33+0100\n"
 "Last-Translator: Nils Naumann <nau@gmx.net>\n"
 "Language-Team: German <translation-team-de@lists.sourceforge.net>\n"
 "Language: de\n"
@@ -32,8 +32,7 @@ msgstr "%s: Entferne das Nameref Attribut."
 #: arrayfunc.c:496 builtins/declare.def:868
 #, c-format
 msgid "%s: cannot convert indexed to associative array"
-msgstr ""
-"%s: Das indizierte Array kann in kein assoziatives Array umgewandelt werden."
+msgstr "%s: Das indizierte Array kann in kein assoziatives Array umgewandelt werden."
 
 #: arrayfunc.c:777
 #, c-format
@@ -43,8 +42,7 @@ msgstr "%s: Das Zuweisen auf einen nicht-numerischen Index ist nicht möglich."
 #: arrayfunc.c:822
 #, c-format
 msgid "%s: %s: must use subscript when assigning associative array"
-msgstr ""
-"%s: %s: Ein Feldindex wird zum Zuweisen eines assoziativen Arrays benötigt."
+msgstr "%s: %s: Ein Feldindex wird zum Zuweisen eines assoziativen Arrays benötigt."
 
 #: bashhist.c:455
 #, c-format
@@ -53,14 +51,12 @@ msgstr "%s: Kann die Datei %s nicht erzeugen."
 
 #: bashline.c:4479
 msgid "bash_execute_unix_command: cannot find keymap for command"
-msgstr ""
-"bash_execute_unix_command: Kann nicht die Tastenzuordnung für das Kommando "
-"finden."
+msgstr "bash_execute_unix_command: Kann nicht die Tastenzuordnung für das Kommando finden."
 
 #: bashline.c:4637
 #, c-format
 msgid "%s: first non-whitespace character is not `\"'"
-msgstr " %s: Das erste Zeichen ist nicht `\\'."
+msgstr " %s: Das erste Zeichen ist nicht `\"'"
 
 #: bashline.c:4666
 #, c-format
@@ -73,9 +69,9 @@ msgid "%s: missing colon separator"
 msgstr "%s: Fehlender Doppelpunkt."
 
 #: bashline.c:4733
-#, fuzzy, c-format
+#, c-format
 msgid "`%s': cannot unbind in command keymap"
-msgstr "»%s«: Bindung kann nicht gelöst werden."
+msgstr "»%s«: Kommandozurdnung kann nicht aufgehoben werden. "
 
 #: braces.c:327
 #, c-format
@@ -250,9 +246,9 @@ msgid "%s: readonly variable"
 msgstr "%s: Schreibgeschützte Variable."
 
 #: builtins/common.c:273
-#, fuzzy, c-format
+#, c-format
 msgid "%s: cannot assign"
-msgstr "%s: »unset« nicht möglich."
+msgstr "%s: Zuweisung nicht möglich."
 
 #: builtins/common.c:281
 #, c-format
@@ -379,7 +375,7 @@ msgstr "%s: Referenzvariable darf kein Array sein."
 #: builtins/declare.def:532 variables.c:3359
 #, c-format
 msgid "%s: nameref variable self references not allowed"
-msgstr ""
+msgstr "%s: Selbstreferenz der Nameref Variable ist nicht erlaubt."
 
 #: builtins/declare.def:537 variables.c:2072 variables.c:3278 variables.c:3286
 #: variables.c:3356
@@ -400,8 +396,7 @@ msgstr "%s: Kann Feldvariablen nicht auf diese Art löschen."
 #: builtins/declare.def:862 builtins/read.def:887
 #, c-format
 msgid "%s: cannot convert associative to indexed array"
-msgstr ""
-"%s: Konvertieren von assoziativen in indizierte Arrays ist nicht möglich."
+msgstr "%s: Konvertieren von assoziativen in indizierte Arrays ist nicht möglich."
 
 #: builtins/declare.def:891
 #, c-format
@@ -430,8 +425,7 @@ msgstr "%s: Ist bereits geladen."
 #: builtins/enable.def:426
 #, c-format
 msgid "load function for %s returns failure (%d): not loaded"
-msgstr ""
-"Die Ladefunktion von %s lieferte einen Fehler (%d), daher nicht geladen."
+msgstr "Die Ladefunktion von %s lieferte einen Fehler (%d), daher nicht geladen."
 
 #: builtins/enable.def:551
 #, c-format
@@ -551,11 +545,8 @@ msgstr ""
 
 #: builtins/help.def:185
 #, c-format
-msgid ""
-"no help topics match `%s'.  Try `help help' or `man -k %s' or `info %s'."
-msgstr ""
-"Kein passendes Hilfethema für »%s«. Probieren Sie »help help«, »man -k %s« "
-"oder »info %s«."
+msgid "no help topics match `%s'.  Try `help help' or `man -k %s' or `info %s'."
+msgstr "Kein passendes Hilfethema für »%s«. Probieren Sie »help help«, »man -k %s« oder »info %s«."
 
 #: builtins/help.def:223
 #, c-format
@@ -575,10 +566,8 @@ msgid ""
 msgstr ""
 "Diese Shellkommandos sind intern definiert. Geben Sie »help« ein, um diese\n"
 "Liste zu sehen. Geben Sie »help Name« ein, um die Beschreibung der Funktion\n"
-"»Name« zu sehen. Geben Sie »info bash« ein, um die vollständige "
-"Dokumentation\n"
-"zu sehen. Geben Sie »man -k« oder »info« ein, um detaillierte "
-"Beschreibungen\n"
+"»Name« zu sehen. Geben Sie »info bash« ein, um die vollständige Dokumentation\n"
+"zu sehen. Geben Sie »man -k« oder »info« ein, um detaillierte Beschreibungen\n"
 "der Shellkommandos zu sehen.\n"
 "\n"
 "Ein Stern (*) neben dem Namen kennzeichnet deaktivierte Kommandos.\n"
@@ -661,8 +650,7 @@ msgstr "Fehlender Name für die Arrayvariable."
 
 #: builtins/mapfile.def:375
 msgid "array variable support required"
-msgstr ""
-"Die Unterstützung für Arrayvariablen ist in dieser Shell nicht vorhanden."
+msgstr "Die Unterstützung für Arrayvariablen ist in dieser Shell nicht vorhanden."
 
 #: builtins/printf.def:430
 #, c-format
@@ -734,12 +722,10 @@ msgid ""
 "    \twith its position in the stack\n"
 "    \n"
 "    Arguments:\n"
-"      +N\tDisplays the Nth entry counting from the left of the list shown "
-"by\n"
+"      +N\tDisplays the Nth entry counting from the left of the list shown by\n"
 "    \tdirs when invoked without options, starting with zero.\n"
 "    \n"
-"      -N\tDisplays the Nth entry counting from the right of the list shown "
-"by\n"
+"      -N\tDisplays the Nth entry counting from the right of the list shown by\n"
 "\tdirs when invoked without options, starting with zero."
 msgstr ""
 "Zeigt die Liste der gegenwärtig gespeicherten Verzeichnisse an.  Durch\n"
@@ -860,14 +846,11 @@ msgstr "Lesefehler: %d: %s"
 
 #: builtins/return.def:68
 msgid "can only `return' from a function or sourced script"
-msgstr ""
-"»Return« ist nur aus einer Funktion oder einem mit »source« ausgeführten "
-"Skript möglich."
+msgstr "»Return« ist nur aus einer Funktion oder einem mit »source« ausgeführten Skript möglich."
 
 #: builtins/set.def:869
 msgid "cannot simultaneously unset a function and a variable"
-msgstr ""
-"Gleichzeitiges »unset« einer Funktion und einer Variable ist nicht möglich."
+msgstr "Gleichzeitiges »unset« einer Funktion und einer Variable ist nicht möglich."
 
 #: builtins/set.def:969
 #, c-format
@@ -1009,9 +992,9 @@ msgid "INFORM: "
 msgstr "INFO: "
 
 #: error.c:310
-#, fuzzy, c-format
+#, c-format
 msgid "DEBUG warning: "
-msgstr "Warnung: "
+msgstr "DEBUG Warnung: "
 
 #: error.c:488
 msgid "unknown command error"
@@ -1089,9 +1072,9 @@ msgid "%s: %s"
 msgstr "%s: %s"
 
 #: execute_cmd.c:5975
-#, fuzzy, c-format
+#, c-format
 msgid "%s: cannot execute: required file not found"
-msgstr "%s: Kann die Datei nicht ausführen."
+msgstr "%s: Kann nicht ausführen. Datei nicht gefunden."
 
 #: execute_cmd.c:6000
 #, c-format
@@ -1151,8 +1134,7 @@ msgstr "Der Exponent ist kleiner als 0."
 
 #: expr.c:1030
 msgid "identifier expected after pre-increment or pre-decrement"
-msgstr ""
-"Nach einem Präinkrement oder Prädekrement wird ein Bezeichner erwartet."
+msgstr "Nach einem Präinkrement oder Prädekrement wird ein Bezeichner erwartet."
 
 #: expr.c:1057
 msgid "missing `)'"
@@ -1423,8 +1405,7 @@ msgstr "realloc: Mit nicht zugewiesenen Argument aufgerufen."
 
 #: lib/malloc/malloc.c:1191
 msgid "realloc: underflow detected; mh_nbytes out of range"
-msgstr ""
-"realloc: Underflow erkannt; mh_nbytes außerhalb des Gültigkeitsbereichs."
+msgstr "realloc: Underflow erkannt; mh_nbytes außerhalb des Gültigkeitsbereichs."
 
 #: lib/malloc/malloc.c:1197
 msgid "realloc: underflow detected; magic8 corrupted"
@@ -1437,22 +1418,17 @@ msgstr "realloc: Beginn und Ende Segmentgrößen sind unterschiedlich.<"
 #: lib/malloc/table.c:191
 #, c-format
 msgid "register_alloc: alloc table is full with FIND_ALLOC?\n"
-msgstr ""
-"register_alloc: Speicherzuordnungstabelle ist mit FIND_ALLOC gefüllt?\n"
+msgstr "register_alloc: Speicherzuordnungstabelle ist mit FIND_ALLOC gefüllt?\n"
 
 #: lib/malloc/table.c:200
 #, c-format
 msgid "register_alloc: %p already in table as allocated?\n"
-msgstr ""
-"register_alloc: %p ist bereits in der Speicherzuordnungstabelle als belegt "
-"gekennzeichnet?\n"
+msgstr "register_alloc: %p ist bereits in der Speicherzuordnungstabelle als belegt gekennzeichnet?\n"
 
 #: lib/malloc/table.c:253
 #, c-format
 msgid "register_free: %p already in table as free?\n"
-msgstr ""
-"register_free: %p ist bereits in der Speicherzuordnungstabelle als frei "
-"gekennzeichnet?\n"
+msgstr "register_free: %p ist bereits in der Speicherzuordnungstabelle als frei gekennzeichnet?\n"
 
 #: lib/sh/fmtulong.c:102
 msgid "invalid base"
@@ -1533,9 +1509,7 @@ msgstr "make_here_document: Falscher Befehlstyp %d."
 #: make_cmd.c:668
 #, c-format
 msgid "here-document at line %d delimited by end-of-file (wanted `%s')"
-msgstr ""
-"Das in der Zeile %d beginnende Here-Dokument geht bis zum Dateiende "
-"(erwartet wird »%s«)."
+msgstr "Das in der Zeile %d beginnende Here-Dokument geht bis zum Dateiende (erwartet wird »%s«)."
 
 #: make_cmd.c:769
 #, c-format
@@ -1544,9 +1518,7 @@ msgstr ""
 
 #: parse.y:2428
 #, c-format
-msgid ""
-"shell_getc: shell_input_line_size (%zu) exceeds SIZE_MAX (%lu): line "
-"truncated"
+msgid "shell_getc: shell_input_line_size (%zu) exceeds SIZE_MAX (%lu): line truncated"
 msgstr ""
 
 #: parse.y:2921
@@ -1720,9 +1692,7 @@ msgstr "%s: Kann fd keiner Variable zuweisen."
 
 #: redir.c:650
 msgid "/dev/(tcp|udp)/host/port not supported without networking"
-msgstr ""
-"Dateinamen der Form /dev/(tcp|udp)/host/port werden ohne Netzwerk nicht "
-"unterstützt"
+msgstr "Dateinamen der Form /dev/(tcp|udp)/host/port werden ohne Netzwerk nicht unterstützt"
 
 #: redir.c:945 redir.c:1065 redir.c:1130 redir.c:1303
 msgid "redirection error: cannot duplicate fd"
@@ -1802,16 +1772,12 @@ msgstr "\t-%s oder Option -o\n"
 #: shell.c:2094
 #, c-format
 msgid "Type `%s -c \"help set\"' for more information about shell options.\n"
-msgstr ""
-"Geben Sie »%s -c \"help set\"« ein, um mehr über Shell-Optionen zu "
-"erfahren.\n"
+msgstr "Geben Sie »%s -c \"help set\"« ein, um mehr über Shell-Optionen zu erfahren.\n"
 
 #: shell.c:2095
 #, c-format
 msgid "Type `%s -c help' for more information about shell builtin commands.\n"
-msgstr ""
-"Geben Sie »%s -c help« ein, um mehr über eingebaute Shellkommandos zu "
-"erfahren.\n"
+msgstr "Geben Sie »%s -c help« ein, um mehr über eingebaute Shellkommandos zu erfahren.\n"
 
 #: shell.c:2096
 #, c-format
@@ -2091,12 +2057,8 @@ msgid "$%s: cannot assign in this way"
 msgstr "$%s: Kann so nicht zuweisen."
 
 #: subst.c:10111
-msgid ""
-"future versions of the shell will force evaluation as an arithmetic "
-"substitution"
-msgstr ""
-"Zukünftige Versionen dieser Shell werden das Auswerten arithmetischer "
-"Ersetzungen erzwingen."
+msgid "future versions of the shell will force evaluation as an arithmetic substitution"
+msgstr "Zukünftige Versionen dieser Shell werden das Auswerten arithmetischer Ersetzungen erzwingen."
 
 #: subst.c:10795
 #, c-format
@@ -2161,8 +2123,7 @@ msgstr "run_pending_traps: Ungültiger Wert in trap_list[%d]: %p"
 
 #: trap.c:416
 #, c-format
-msgid ""
-"run_pending_traps: signal handler is SIG_DFL, resending %d (%s) to myself"
+msgid "run_pending_traps: signal handler is SIG_DFL, resending %d (%s) to myself"
 msgstr ""
 
 # Programmierfehler
@@ -2258,17 +2219,12 @@ msgid "%s: %s: compatibility value out of range"
 msgstr "%s: %s: compatibility value out of range"
 
 #: version.c:46 version2.c:46
-#, fuzzy
 msgid "Copyright (C) 2022 Free Software Foundation, Inc."
-msgstr "Copyright (C) 2020 Free Software Foundation, Inc."
+msgstr "Copyright (C) 2022 Free Software Foundation, Inc."
 
 #: version.c:47 version2.c:47
-msgid ""
-"License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl."
-"html>\n"
-msgstr ""
-"Lizenz GPLv3+: GNU GPL Version 3 oder jünger <http://gnu.org/licenses/gpl."
-"html>\n"
+msgid "License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>\n"
+msgstr "Lizenz GPLv3+: GNU GPL Version 3 oder jünger <http://gnu.org/licenses/gpl.html>\n"
 
 #: version.c:86 version2.c:86
 #, c-format
@@ -2312,9 +2268,7 @@ msgid "unalias [-a] name [name ...]"
 msgstr "unalias [-a] Name [Name ...]"
 
 #: builtins.c:53
-msgid ""
-"bind [-lpsvPSVX] [-m keymap] [-f filename] [-q name] [-u name] [-r keyseq] [-"
-"x keyseq:shell-command] [keyseq:readline-function or readline-command]"
+msgid "bind [-lpsvPSVX] [-m keymap] [-f filename] [-q name] [-u name] [-r keyseq] [-x keyseq:shell-command] [keyseq:readline-function or readline-command]"
 msgstr ""
 "bind [-lpsvPSVX] [-m Tastaturtabelle] [-f Dateiname] [-q Name] [-u Name]\n"
 "\t[-r Tastenfolge] [-x Tastenfolge:Shell Kommando]\n"
@@ -2349,19 +2303,13 @@ msgid "command [-pVv] command [arg ...]"
 msgstr "command [-pVv] Kommando [Argument ...]"
 
 #: builtins.c:78
-#, fuzzy
-msgid ""
-"declare [-aAfFgiIlnrtux] [name[=value] ...] or declare -p [-aAfFilnrtux] "
-"[name ...]"
-msgstr "declare [-aAfFgiIlrntux] [-p] [Name[=Wert] ...]"
+msgid "declare [-aAfFgiIlnrtux] [name[=value] ...] or declare -p [-aAfFilnrtux] [name ...]"
+msgstr "declare [-aAfFgiIlnrtux] [name[=Wert] ...] oder declare -p [-aAfFilnrtux] [name ...]"
 
 #
 #: builtins.c:80
-#, fuzzy
-msgid ""
-"typeset [-aAfFgiIlnrtux] name[=value] ... or typeset -p [-aAfFilnrtux] "
-"[name ...]"
-msgstr "typeset [-aAfFgiIlnrtux] [-p] Name[=Wert] ..."
+msgid "typeset [-aAfFgiIlnrtux] name[=value] ... or typeset -p [-aAfFilnrtux] [name ...]"
+msgstr "typeset [-aAfFgiIlnrtux] name[=Wert] ... oder typeset -p [-aAfFilnrtux] [name ...]"
 
 #: builtins.c:82
 msgid "local [option] name[=value] ..."
@@ -2403,9 +2351,7 @@ msgstr "logout [n]"
 
 #: builtins.c:105
 msgid "fc [-e ename] [-lnr] [first] [last] or fc -s [pat=rep] [command]"
-msgstr ""
-"fc [-e Editor] [-lnr] [Anfang] [Ende] oder fc -s [Muster=Ersetzung] "
-"[Kommando]"
+msgstr "fc [-e Editor] [-lnr] [Anfang] [Ende] oder fc -s [Muster=Ersetzung] [Kommando]"
 
 #: builtins.c:109
 msgid "fg [job_spec]"
@@ -2424,12 +2370,8 @@ msgid "help [-dms] [pattern ...]"
 msgstr "help [-dms] [Muster ...]"
 
 #: builtins.c:123
-msgid ""
-"history [-c] [-d offset] [n] or history -anrw [filename] or history -ps arg "
-"[arg...]"
-msgstr ""
-"history [-c] [-d Offset] [n] oder history -anrw [Dateiname] oder history -ps "
-"Argument [Argument...]"
+msgid "history [-c] [-d offset] [n] or history -anrw [filename] or history -ps arg [arg...]"
+msgstr "history [-c] [-d Offset] [n] oder history -anrw [Dateiname] oder history -ps Argument [Argument...]"
 
 #: builtins.c:127
 msgid "jobs [-lnprs] [jobspec ...] or jobs -x command [args]"
@@ -2440,33 +2382,24 @@ msgid "disown [-h] [-ar] [jobspec ... | pid ...]"
 msgstr "disown [-h] [-ar] [Jobbezeichnung ... | pid ...]"
 
 #: builtins.c:134
-msgid ""
-"kill [-s sigspec | -n signum | -sigspec] pid | jobspec ... or kill -l "
-"[sigspec]"
-msgstr ""
-"kill [-s Signalname | -n Signalnummer | -Signalname] pid | jobspec ... oder "
-"kill -l [Signalname]"
+msgid "kill [-s sigspec | -n signum | -sigspec] pid | jobspec ... or kill -l [sigspec]"
+msgstr "kill [-s Signalname | -n Signalnummer | -Signalname] pid | jobspec ... oder kill -l [Signalname]"
 
 #: builtins.c:136
 msgid "let arg [arg ...]"
 msgstr "let Argument [Argument ...]"
 
 #: builtins.c:138
-msgid ""
-"read [-ers] [-a array] [-d delim] [-i text] [-n nchars] [-N nchars] [-p "
-"prompt] [-t timeout] [-u fd] [name ...]"
-msgstr ""
-"read [-ers] [-a Feld] [-d Begrenzer] [-i Text] [-n Zeichenanzahl] [-N "
-"Zeichenanzahl] [-p Prompt] [-t Zeitlimit] [-u fd] [Name ...]"
+msgid "read [-ers] [-a array] [-d delim] [-i text] [-n nchars] [-N nchars] [-p prompt] [-t timeout] [-u fd] [name ...]"
+msgstr "read [-ers] [-a Feld] [-d Begrenzer] [-i Text] [-n Zeichenanzahl] [-N Zeichenanzahl] [-p Prompt] [-t Zeitlimit] [-u fd] [Name ...]"
 
 #: builtins.c:140
 msgid "return [n]"
 msgstr "return [n]"
 
 #: builtins.c:142
-#, fuzzy
 msgid "set [-abefhkmnptuvxBCEHPT] [-o option-name] [--] [-] [arg ...]"
-msgstr "set [-abefhkmnptuvxBCHP] [-o Option] [--] [Argument ...]"
+msgstr "set [-abefhkmnptuvxBCEHPT] [-o Optionsname] [--] [-] [Argument ...]"
 
 #: builtins.c:144
 msgid "unset [-f] [-v] [-n] [name ...]"
@@ -2513,9 +2446,8 @@ msgid "type [-afptP] name [name ...]"
 msgstr "type [-afptP] Name [Name ...]"
 
 #: builtins.c:171
-#, fuzzy
 msgid "ulimit [-SHabcdefiklmnpqrstuvxPRT] [limit]"
-msgstr "ulimit [-SHabcdefiklmnpqrstuvxPT] [Grenze]"
+msgstr "ulimit [-SHabcdefiklmnpqrstuvxPRT] [Grenze]"
 
 #: builtins.c:174
 msgid "umask [-p] [-S] [mode]"
@@ -2550,22 +2482,16 @@ msgid "case WORD in [PATTERN [| PATTERN]...) COMMANDS ;;]... esac"
 msgstr "case Wort in [Muster [| Muster]...) Kommandos ;;]... esac"
 
 #: builtins.c:194
-msgid ""
-"if COMMANDS; then COMMANDS; [ elif COMMANDS; then COMMANDS; ]... [ else "
-"COMMANDS; ] fi"
-msgstr ""
-"if Kommandos; then Kommandos; [ elif Kommandos; then Kommandos; ]... [ else "
-"Kommandos; ] fi"
+msgid "if COMMANDS; then COMMANDS; [ elif COMMANDS; then COMMANDS; ]... [ else COMMANDS; ] fi"
+msgstr "if Kommandos; then Kommandos; [ elif Kommandos; then Kommandos; ]... [ else Kommandos; ] fi"
 
 #: builtins.c:196
-#, fuzzy
 msgid "while COMMANDS; do COMMANDS-2; done"
-msgstr "while Kommandos; do Kommandos; done"
+msgstr "while Kommandos; do Kommandos-2; done"
 
 #: builtins.c:198
-#, fuzzy
 msgid "until COMMANDS; do COMMANDS-2; done"
-msgstr "until Kommandos; do Kommandos; done"
+msgstr "until Kommandos; do Kommandos-2; done"
 
 #: builtins.c:200
 msgid "coproc [NAME] command [redirections]"
@@ -2617,42 +2543,28 @@ msgstr "printf [-v var] Format [Argumente]"
 
 # https://lists.gnu.org/archive/html/bug-bash/2019-09/msg00027.html
 #: builtins.c:231
-msgid ""
-"complete [-abcdefgjksuv] [-pr] [-DEI] [-o option] [-A action] [-G globpat] [-"
-"W wordlist] [-F function] [-C command] [-X filterpat] [-P prefix] [-S "
-"suffix] [name ...]"
+msgid "complete [-abcdefgjksuv] [-pr] [-DEI] [-o option] [-A action] [-G globpat] [-W wordlist] [-F function] [-C command] [-X filterpat] [-P prefix] [-S suffix] [name ...]"
 msgstr ""
-"complete [-abcdefgjksuv] [-pr] [-DEI] [-o Option] [-A Aktion] [-G "
-"Suchmuster] [-W Wortliste]  [-F Funktion] [-C Kommando] [-X Filtermuster] [-"
-"P Prefix] [-S Suffix] [Name \n"
+"complete [-abcdefgjksuv] [-pr] [-DEI] [-o Option] [-A Aktion] [-G Suchmuster] [-W Wortliste]  [-F Funktion] [-C Kommando] [-X Filtermuster] [-P Prefix] [-S Suffix] [Name \n"
 "...]"
 
 # https://lists.gnu.org/archive/html/bug-bash/2019-09/msg00027.html
 #: builtins.c:235
-msgid ""
-"compgen [-abcdefgjksuv] [-o option] [-A action] [-G globpat] [-W wordlist] [-"
-"F function] [-C command] [-X filterpat] [-P prefix] [-S suffix] [word]"
-msgstr ""
-"compgen [-abcdefgjksuv] [-o Option] [-A Aktion] [-G Suchmuster] [-W "
-"Wortliste] [-F Funktion] [-C Kommando] [-X Filtermuster] [-P Prefix] [-S "
-"Suffix] [Wort]"
+msgid "compgen [-abcdefgjksuv] [-o option] [-A action] [-G globpat] [-W wordlist] [-F function] [-C command] [-X filterpat] [-P prefix] [-S suffix] [word]"
+msgstr "compgen [-abcdefgjksuv] [-o Option] [-A Aktion] [-G Suchmuster] [-W Wortliste] [-F Funktion] [-C Kommando] [-X Filtermuster] [-P Prefix] [-S Suffix] [Wort]"
 
 #: builtins.c:239
 msgid "compopt [-o|+o option] [-DEI] [name ...]"
 msgstr "compopt [-o|+o Option] [-DEI] [Name ...]"
 
 #: builtins.c:242
-msgid ""
-"mapfile [-d delim] [-n count] [-O origin] [-s count] [-t] [-u fd] [-C "
-"callback] [-c quantum] [array]"
+msgid "mapfile [-d delim] [-n count] [-O origin] [-s count] [-t] [-u fd] [-C callback] [-c quantum] [array]"
 msgstr ""
 "mapfile [-d Begrenzer] [-n Anzahl] [-O Quelle] [-s Anzahl] [-t] [-u fd]\n"
 "        [-C Callback] [-c Menge] [Feldvariable]"
 
 #: builtins.c:244
-msgid ""
-"readarray [-d delim] [-n count] [-O origin] [-s count] [-t] [-u fd] [-C "
-"callback] [-c quantum] [array]"
+msgid "readarray [-d delim] [-n count] [-O origin] [-s count] [-t] [-u fd] [-C callback] [-c quantum] [array]"
 msgstr ""
 "readarray [-d Begrenzer] [-n Anzahl] [-O Quelle] [-s Anzahl] [-t]\n"
 "          [-u fd] [-C Callback] [-c Menge] [Feldvariable]"
@@ -2673,8 +2585,7 @@ msgid ""
 "      -p\tprint all defined aliases in a reusable format\n"
 "    \n"
 "    Exit Status:\n"
-"    alias returns true unless a NAME is supplied for which no alias has "
-"been\n"
+"    alias returns true unless a NAME is supplied for which no alias has been\n"
 "    defined."
 msgstr ""
 "Definiert Aliase oder zeigt sie an.\n"
@@ -2724,30 +2635,25 @@ msgid ""
 "    Options:\n"
 "      -m  keymap         Use KEYMAP as the keymap for the duration of this\n"
 "                         command.  Acceptable keymap names are emacs,\n"
-"                         emacs-standard, emacs-meta, emacs-ctlx, vi, vi-"
-"move,\n"
+"                         emacs-standard, emacs-meta, emacs-ctlx, vi, vi-move,\n"
 "                         vi-command, and vi-insert.\n"
 "      -l                 List names of functions.\n"
 "      -P                 List function names and bindings.\n"
 "      -p                 List functions and bindings in a form that can be\n"
 "                         reused as input.\n"
-"      -S                 List key sequences that invoke macros and their "
-"values\n"
-"      -s                 List key sequences that invoke macros and their "
-"values\n"
+"      -S                 List key sequences that invoke macros and their values\n"
+"      -s                 List key sequences that invoke macros and their values\n"
 "                         in a form that can be reused as input.\n"
 "      -V                 List variable names and values\n"
 "      -v                 List variable names and values in a form that can\n"
 "                         be reused as input.\n"
 "      -q  function-name  Query about which keys invoke the named function.\n"
-"      -u  function-name  Unbind all keys which are bound to the named "
-"function.\n"
+"      -u  function-name  Unbind all keys which are bound to the named function.\n"
 "      -r  keyseq         Remove the binding for KEYSEQ.\n"
 "      -f  filename       Read key bindings from FILENAME.\n"
 "      -x  keyseq:shell-command\tCause SHELL-COMMAND to be executed when\n"
 "    \t\t\t\tKEYSEQ is entered.\n"
-"      -X                 List key sequences bound with -x and associated "
-"commands\n"
+"      -X                 List key sequences bound with -x and associated commands\n"
 "                         in a form that can be reused as input.\n"
 "    \n"
 "    Exit Status:\n"
@@ -2762,47 +2668,33 @@ msgstr ""
 "    re-read-init-file'.\n"
 "    \n"
 "    Optionen:\n"
-"      -m  Keymap         Benutzt KEYMAP as Tastaturbelegung für die "
-"Laufzeit\n"
-"                         dieses Kommandos.  Gültige Keymapnamen sind: "
-"emacs,\n"
-"                         emacs-standard, emacs-meta, emacs-ctlx, vi, vi-"
-"move,\n"
+"      -m  Keymap         Benutzt KEYMAP as Tastaturbelegung für die Laufzeit\n"
+"                         dieses Kommandos.  Gültige Keymapnamen sind: emacs,\n"
+"                         emacs-standard, emacs-meta, emacs-ctlx, vi, vi-move,\n"
 "                         vi-command und vi-insert.\n"
 "      -l                 Listet Funktionsnamen auf.\n"
 "      -P                 Listet Funktionsnamen und Tastenzuordnungen auf.\n"
-"      -p                 Listet Funktionsnamen und Tastenzuordnungen so "
-"auf,\n"
-"                         dass sie direkt als Eingabe verwendet werden "
-"können.\n"
-"      -S                 Listet Tastenfolgen und deren Werte auf, die "
-"Makros \n"
+"      -p                 Listet Funktionsnamen und Tastenzuordnungen so auf,\n"
+"                         dass sie direkt als Eingabe verwendet werden können.\n"
+"      -S                 Listet Tastenfolgen und deren Werte auf, die Makros \n"
 "                         aufrufen.\n"
-"      -s                 Listet Tastenfolgen und deren Werte auf, die "
-"Makros \n"
-"                         aufrufen, dass sie als Eingabe wiederverwendet "
-"werden\n"
+"      -s                 Listet Tastenfolgen und deren Werte auf, die Makros \n"
+"                         aufrufen, dass sie als Eingabe wiederverwendet werden\n"
 "                         können.\n"
 "      -V                 Listet Variablennamen und Werte auf.\n"
-"      -v                 Listet Variablennamen und Werte so auf, dass sie "
-"als\n"
+"      -v                 Listet Variablennamen und Werte so auf, dass sie als\n"
 "                         Eingabe verwendet werden können.\n"
 "      -q  Funktionsname  Sucht die Tastenfolgen, welche die angegebene\n"
 "                         Funktion aufrufen.\n"
-"      -u  Funktionsname  Entfernt alle der Funktion zugeordneten "
-"Tastenfolgen.\n"
-"      -r  Tastenfolge    Entfernt die Zuweisungen der angegebeben "
-"Tastenfolge.\n"
-"      -f  Dateiname      Liest die Tastenzuordnungen aus der angegebenen "
-"Datei.\n"
-"      -x  Tastenfolge:Shellkommando\tWeist der Tastenfolge das "
-"Shellkommando\n"
+"      -u  Funktionsname  Entfernt alle der Funktion zugeordneten Tastenfolgen.\n"
+"      -r  Tastenfolge    Entfernt die Zuweisungen der angegebeben Tastenfolge.\n"
+"      -f  Dateiname      Liest die Tastenzuordnungen aus der angegebenen Datei.\n"
+"      -x  Tastenfolge:Shellkommando\tWeist der Tastenfolge das Shellkommando\n"
 "    \t\t\t\t\tzu.\n"
 "      -X                                Listet mit -x erzeugte\n"
 "                                        Tastenfolgen und deren Werte\n"
 "                                        auf, die Makros aufrufen, dass\n"
-"                                        sie als Eingabe wiederverwendet "
-"werden\n"
+"                                        sie als Eingabe wiederverwendet werden\n"
 "                                        können.\n"
 "    \n"
 "    Rückgabewert: \n"
@@ -2823,8 +2715,7 @@ msgstr ""
 "Verlässt for-, while- oder until-Schleifen.\n"
 "\n"
 "    Break beendet eine »for«-, »while«- oder »until«- Schleife. Wenn »n«\n"
-"    angegeben ist, werden entsprechend viele geschachtelte Schleifen "
-"beendet.\n"
+"    angegeben ist, werden entsprechend viele geschachtelte Schleifen beendet.\n"
 "\n"
 "    Rückgabewert:\n"
 "    Der Rückgabewert ist 0, außer »n« ist nicht größer oder gleich 1."
@@ -2856,8 +2747,7 @@ msgid ""
 "    \n"
 "    Execute SHELL-BUILTIN with arguments ARGs without performing command\n"
 "    lookup.  This is useful when you wish to reimplement a shell builtin\n"
-"    as a shell function, but need to execute the builtin within the "
-"function.\n"
+"    as a shell function, but need to execute the builtin within the function.\n"
 "    \n"
 "    Exit Status:\n"
 "    Returns the exit status of SHELL-BUILTIN, or false if SHELL-BUILTIN is\n"
@@ -2900,8 +2790,7 @@ msgstr ""
 "    wobei 0 der aktuelle Funktionsaufruf ist.\n"
 "\n"
 "    Rückgabewert:\n"
-"    Ist ungleich 0 wenn keine Shellfunktion ausgeführt wird oder das "
-"Argument\n"
+"    Ist ungleich 0 wenn keine Shellfunktion ausgeführt wird oder das Argument\n"
 "    ungültig ist, sonst 0."
 
 # cd
@@ -2909,22 +2798,16 @@ msgstr ""
 msgid ""
 "Change the shell working directory.\n"
 "    \n"
-"    Change the current directory to DIR.  The default DIR is the value of "
-"the\n"
+"    Change the current directory to DIR.  The default DIR is the value of the\n"
 "    HOME shell variable.\n"
 "    \n"
-"    The variable CDPATH defines the search path for the directory "
-"containing\n"
-"    DIR.  Alternative directory names in CDPATH are separated by a colon "
-"(:).\n"
-"    A null directory name is the same as the current directory.  If DIR "
-"begins\n"
+"    The variable CDPATH defines the search path for the directory containing\n"
+"    DIR.  Alternative directory names in CDPATH are separated by a colon (:).\n"
+"    A null directory name is the same as the current directory.  If DIR begins\n"
 "    with a slash (/), then CDPATH is not used.\n"
 "    \n"
-"    If the directory is not found, and the shell option `cdable_vars' is "
-"set,\n"
-"    the word is assumed to be  a variable name.  If that variable has a "
-"value,\n"
+"    If the directory is not found, and the shell option `cdable_vars' is set,\n"
+"    the word is assumed to be  a variable name.  If that variable has a value,\n"
 "    its value is used for DIR.\n"
 "    \n"
 "    Options:\n"
@@ -2940,13 +2823,11 @@ msgid ""
 "    \t\tattributes as a directory containing the file attributes\n"
 "    \n"
 "    The default is to follow symbolic links, as if `-L' were specified.\n"
-"    `..' is processed by removing the immediately previous pathname "
-"component\n"
+"    `..' is processed by removing the immediately previous pathname component\n"
 "    back to a slash or the beginning of DIR.\n"
 "    \n"
 "    Exit Status:\n"
-"    Returns 0 if the directory is changed, and if $PWD is set successfully "
-"when\n"
+"    Returns 0 if the directory is changed, and if $PWD is set successfully when\n"
 "    -P is used; non-zero otherwise."
 msgstr ""
 "Wechselt das Arbeitsverzeichnis.\n"
@@ -3009,8 +2890,7 @@ msgstr ""
 "Gibt den Namen des aktuellen Arbeitsverzeichnisses aus.\n"
 "\n"
 "    Optionen:\n"
-"      -L        Gibt den Inhalt der Variable $PWD aus, wenn sie das "
-"aktuelle\n"
+"      -L        Gibt den Inhalt der Variable $PWD aus, wenn sie das aktuelle\n"
 "                Arbeitsverzeichnis enthält.\n"
 "      -P        Gibt den physischen Verzeichnispfad aus, ohne symbolische\n"
 "                Links.\n"
@@ -3069,8 +2949,7 @@ msgid ""
 "Execute a simple command or display information about commands.\n"
 "    \n"
 "    Runs COMMAND with ARGS suppressing  shell function lookup, or display\n"
-"    information about the specified COMMANDs.  Can be used to invoke "
-"commands\n"
+"    information about the specified COMMANDs.  Can be used to invoke commands\n"
 "    on disk when a function with the same name exists.\n"
 "    \n"
 "    Options:\n"
@@ -3082,8 +2961,7 @@ msgid ""
 "    Exit Status:\n"
 "    Returns exit status of COMMAND, or failure if COMMAND is not found."
 msgstr ""
-"Führt ein einfaches Kommando aus oder zeigt Informationen über Kommandos "
-"an.\n"
+"Führt ein einfaches Kommando aus oder zeigt Informationen über Kommandos an.\n"
 "\n"
 "    Führt das Kommando mit den angegebenen Argumenten aus, ohne\n"
 "    Shell-Funktion nachzuschlagen oder zeigt Informationen über die\n"
@@ -3091,16 +2969,14 @@ msgstr ""
 "    werden, wenn eine Shell-Funktion gleichen Namens existiert.\n"
 "\n"
 "    Optionen:\n"
-"      -p        Es wird ein Standardwert für PATH verwendet, der "
-"garantiert,\n"
+"      -p        Es wird ein Standardwert für PATH verwendet, der garantiert,\n"
 "                dass alle Standard-Dienstprogramme gefunden werden.\n"
 "      -v        Beschreibung des Kommandos ausgeben.\n"
 "                Ähnlich dem eingebauten Kommando »type«.\n"
 "      -V        Eine ausführlichere Beschreibung jedes Kommandos ausgeben.\n"
 "\n"
 "    Rückgabewert:\n"
-"    Gibt den Rückgabewert des Kommandos zurück, oder eine Fehlermeldung, "
-"wenn\n"
+"    Gibt den Rückgabewert des Kommandos zurück, oder eine Fehlermeldung, wenn\n"
 "    das Kommando nicht gefunden wird."
 
 # declare
@@ -3137,8 +3013,7 @@ msgid ""
 "    Variables with the integer attribute have arithmetic evaluation (see\n"
 "    the `let' command) performed when the variable is assigned a value.\n"
 "    \n"
-"    When used in a function, `declare' makes NAMEs local, as with the "
-"`local'\n"
+"    When used in a function, `declare' makes NAMEs local, as with the `local'\n"
 "    command.  The `-g' option suppresses this behavior.\n"
 "    \n"
 "    Exit Status:\n"
@@ -3148,8 +3023,7 @@ msgstr ""
 "Setzt Variablenwerte und deren Attribute.\n"
 "\n"
 "    Deklariert Variablen und weist ihnen Attribute zu. Wenn keine Namen\n"
-"    angegeben sind, werden die Attribute und Werte aller Variablen "
-"ausgegeben.\n"
+"    angegeben sind, werden die Attribute und Werte aller Variablen ausgegeben.\n"
 "    \n"
 "    Optionen:\n"
 "      -f        Schränkt Aktionen oder Anzeigen auf Funktionsnamen\n"
@@ -3158,10 +3032,8 @@ msgstr ""
 "                und Quelldatei beim Debuggen).\n"
 "      -g        Deklariert globale Varieblen innerhalb einer\n"
 "                Shellfunktion; wird ansonsten ignoriert.\n"
-"      -I        Eine neue lokale Variable erhält die Attribute und Werte "
-"der\n"
-"                Variable mit gleichen Namen im vorherigen "
-"Gültigkeitsbereich. \n"
+"      -I        Eine neue lokale Variable erhält die Attribute und Werte der\n"
+"                Variable mit gleichen Namen im vorherigen Gültigkeitsbereich. \n"
 "      -p        Zeigt die Attribute und Werte jeder angegebenen\n"
 "                Variable an.\n"
 "\n"
@@ -3232,8 +3104,7 @@ msgstr ""
 msgid ""
 "Write arguments to the standard output.\n"
 "    \n"
-"    Display the ARGs, separated by a single space character and followed by "
-"a\n"
+"    Display the ARGs, separated by a single space character and followed by a\n"
 "    newline, on the standard output.\n"
 "    \n"
 "    Options:\n"
@@ -3257,11 +3128,9 @@ msgid ""
 "    \t\t0 to 3 octal digits\n"
 "      \\xHH\tthe eight-bit character whose value is HH (hexadecimal).  HH\n"
 "    \t\tcan be one or two hex digits\n"
-"      \\uHHHH\tthe Unicode character whose value is the hexadecimal value "
-"HHHH.\n"
+"      \\uHHHH\tthe Unicode character whose value is the hexadecimal value HHHH.\n"
 "    \t\tHHHH can be one to four hex digits.\n"
-"      \\UHHHHHHHH the Unicode character whose value is the hexadecimal "
-"value\n"
+"      \\UHHHHHHHH the Unicode character whose value is the hexadecimal value\n"
 "    \t\tHHHHHHHH. HHHHHHHH can be one to eight hex digits.\n"
 "    \n"
 "    Exit Status:\n"
@@ -3381,8 +3250,7 @@ msgstr ""
 msgid ""
 "Execute arguments as a shell command.\n"
 "    \n"
-"    Combine ARGs into a single string, use the result as input to the "
-"shell,\n"
+"    Combine ARGs into a single string, use the result as input to the shell,\n"
 "    and execute the resulting commands.\n"
 "    \n"
 "    Exit Status:\n"
@@ -3469,8 +3337,7 @@ msgstr ""
 "    keine Fehlermeldungen ausgegeben, auch wenn das erste Zeichen\n"
 "    von OPTSTRING kein Doppelpunkt ist. OPTERR hat den Vorgabewert »1«.\n"
 "\n"
-"    Wenn im Aufruf von »getops« die »Argumente« angegeben sind, werden "
-"diese\n"
+"    Wenn im Aufruf von »getops« die »Argumente« angegeben sind, werden diese\n"
 "    verarbeitet. Ansonsten werden die von der Position abhängigen\n"
 "    Parameter ($1, $2, etc.) verarbeitet.\n"
 "\n"
@@ -3485,8 +3352,7 @@ msgid ""
 "Replace the shell with the given command.\n"
 "    \n"
 "    Execute COMMAND, replacing this shell with the specified program.\n"
-"    ARGUMENTS become the arguments to COMMAND.  If COMMAND is not "
-"specified,\n"
+"    ARGUMENTS become the arguments to COMMAND.  If COMMAND is not specified,\n"
 "    any redirections take effect in the current shell.\n"
 "    \n"
 "    Options:\n"
@@ -3494,13 +3360,11 @@ msgid ""
 "      -c\texecute COMMAND with an empty environment\n"
 "      -l\tplace a dash in the zeroth argument to COMMAND\n"
 "    \n"
-"    If the command cannot be executed, a non-interactive shell exits, "
-"unless\n"
+"    If the command cannot be executed, a non-interactive shell exits, unless\n"
 "    the shell option `execfail' is set.\n"
 "    \n"
 "    Exit Status:\n"
-"    Returns success unless COMMAND is not found or a redirection error "
-"occurs."
+"    Returns success unless COMMAND is not found or a redirection error occurs."
 msgstr ""
 "Ersetzt die Shell durch das angegebene Kommando.\n"
 "\n"
@@ -3531,8 +3395,7 @@ msgid ""
 msgstr ""
 "Beendet die aktuelle Shell.\n"
 "\n"
-"    Beendet die aktuelle Shell mit dem Rückgabewert N. Wenn N nicht "
-"angegeben\n"
+"    Beendet die aktuelle Shell mit dem Rückgabewert N. Wenn N nicht angegeben\n"
 "    ist, wird der Rückgabewert des letzten ausgeführten Kommandos übernommen."
 
 # logout
@@ -3540,8 +3403,7 @@ msgstr ""
 msgid ""
 "Exit a login shell.\n"
 "    \n"
-"    Exits a login shell with exit status N.  Returns an error if not "
-"executed\n"
+"    Exits a login shell with exit status N.  Returns an error if not executed\n"
 "    in a login shell."
 msgstr ""
 "Beendet eine Login-Shell.\n"
@@ -3555,15 +3417,13 @@ msgstr ""
 msgid ""
 "Display or execute commands from the history list.\n"
 "    \n"
-"    fc is used to list or edit and re-execute commands from the history "
-"list.\n"
+"    fc is used to list or edit and re-execute commands from the history list.\n"
 "    FIRST and LAST can be numbers specifying the range, or FIRST can be a\n"
 "    string, which means the most recent command beginning with that\n"
 "    string.\n"
 "    \n"
 "    Options:\n"
-"      -e ENAME\tselect which editor to use.  Default is FCEDIT, then "
-"EDITOR,\n"
+"      -e ENAME\tselect which editor to use.  Default is FCEDIT, then EDITOR,\n"
 "    \t\tthen vi\n"
 "      -l \tlist lines instead of editing\n"
 "      -n\tomit line numbers when listing\n"
@@ -3577,8 +3437,7 @@ msgid ""
 "    the last command.\n"
 "    \n"
 "    Exit Status:\n"
-"    Returns success or status of executed command; non-zero if an error "
-"occurs."
+"    Returns success or status of executed command; non-zero if an error occurs."
 msgstr ""
 "Anzeigen oder Ausführen von Befehlen aus der History-Liste.\n"
 "    \n"
@@ -3630,10 +3489,8 @@ msgstr ""
 msgid ""
 "Move jobs to the background.\n"
 "    \n"
-"    Place the jobs identified by each JOB_SPEC in the background, as if "
-"they\n"
-"    had been started with `&'.  If JOB_SPEC is not present, the shell's "
-"notion\n"
+"    Place the jobs identified by each JOB_SPEC in the background, as if they\n"
+"    had been started with `&'.  If JOB_SPEC is not present, the shell's notion\n"
 "    of the current job is used.\n"
 "    \n"
 "    Exit Status:\n"
@@ -3654,8 +3511,7 @@ msgid ""
 "Remember or display program locations.\n"
 "    \n"
 "    Determine and remember the full pathname of each command NAME.  If\n"
-"    no arguments are given, information about remembered commands is "
-"displayed.\n"
+"    no arguments are given, information about remembered commands is displayed.\n"
 "    \n"
 "    Options:\n"
 "      -d\tforget the remembered location of each NAME\n"
@@ -3680,10 +3536,8 @@ msgstr ""
 "    \n"
 "    Optionen:\n"
 "      -d Vergessen des Speicherortes für jeden NAME\n"
-"      -l Anzeige in einem Format, das als Eingabe wiederverwendet werden "
-"kann\n"
-"      -p Pfadname verwendet PATHNAME als den vollständigen Pfadnamen von "
-"NAME\n"
+"      -l Anzeige in einem Format, das als Eingabe wiederverwendet werden kann\n"
+"      -p Pfadname verwendet PATHNAME als den vollständigen Pfadnamen von NAME\n"
 "      -r vergisst alle gespeicherten Pfade\n"
 "      \n"
 "      -t gibt den Speicherort jedes NAMENS aus, wobei jedem\n"
@@ -3717,8 +3571,7 @@ msgid ""
 "      PATTERN\tPattern specifying a help topic\n"
 "    \n"
 "    Exit Status:\n"
-"    Returns success unless PATTERN is not found or an invalid option is "
-"given."
+"    Returns success unless PATTERN is not found or an invalid option is given."
 msgstr ""
 "Informationen zu eingebauten Kommandos.\n"
 "\n"
@@ -3769,8 +3622,7 @@ msgid ""
 "    \n"
 "    If the HISTTIMEFORMAT variable is set and not null, its value is used\n"
 "    as a format string for strftime(3) to print the time stamp associated\n"
-"    with each displayed history entry.  No time stamps are printed "
-"otherwise.\n"
+"    with each displayed history entry.  No time stamps are printed otherwise.\n"
 "    \n"
 "    Exit Status:\n"
 "    Returns success unless an invalid option is given or an error occurs."
@@ -3942,8 +3794,7 @@ msgid ""
 "    Evaluate each ARG as an arithmetic expression.  Evaluation is done in\n"
 "    fixed-width integers with no check for overflow, though division by 0\n"
 "    is trapped and flagged as an error.  The following list of operators is\n"
-"    grouped into levels of equal-precedence operators.  The levels are "
-"listed\n"
+"    grouped into levels of equal-precedence operators.  The levels are listed\n"
 "    in order of decreasing precedence.\n"
 "    \n"
 "    \tid++, id--\tvariable post-increment, post-decrement\n"
@@ -4019,28 +3870,22 @@ msgstr ""
 "    und können die obigen Rangfolge Regeln außer Kraft setzen.\n"
 "    \n"
 "    Rückgabewert:\n"
-"    Wenn der letzte ARG 0 ergibt, gibt let 1 zurück; andernfalls gibt let 0 "
-"zurück."
+"    Wenn der letzte ARG 0 ergibt, gibt let 1 zurück; andernfalls gibt let 0 zurück."
 
 # read
 #: builtins.c:994
-#, fuzzy
 msgid ""
 "Read a line from the standard input and split it into fields.\n"
 "    \n"
 "    Reads a single line from the standard input, or from file descriptor FD\n"
-"    if the -u option is supplied.  The line is split into fields as with "
-"word\n"
+"    if the -u option is supplied.  The line is split into fields as with word\n"
 "    splitting, and the first word is assigned to the first NAME, the second\n"
 "    word to the second NAME, and so on, with any leftover words assigned to\n"
-"    the last NAME.  Only the characters found in $IFS are recognized as "
-"word\n"
-"    delimiters. By default, the backslash character escapes delimiter "
-"characters\n"
+"    the last NAME.  Only the characters found in $IFS are recognized as word\n"
+"    delimiters. By default, the backslash character escapes delimiter characters\n"
 "    and newline.\n"
 "    \n"
-"    If no NAMEs are supplied, the line read is stored in the REPLY "
-"variable.\n"
+"    If no NAMEs are supplied, the line read is stored in the REPLY variable.\n"
 "    \n"
 "    Options:\n"
 "      -a array\tassign the words read to sequential indices of the array\n"
@@ -4052,8 +3897,7 @@ msgid ""
 "      -n nchars\treturn after reading NCHARS characters rather than waiting\n"
 "    \t\tfor a newline, but honor a delimiter if fewer than\n"
 "    \t\tNCHARS characters are read before the delimiter\n"
-"      -N nchars\treturn only after reading exactly NCHARS characters, "
-"unless\n"
+"      -N nchars\treturn only after reading exactly NCHARS characters, unless\n"
 "    \t\tEOF is encountered or read times out, ignoring any\n"
 "    \t\tdelimiter\n"
 "      -p prompt\toutput the string PROMPT without a trailing newline before\n"
@@ -4071,21 +3915,17 @@ msgid ""
 "      -u fd\tread from file descriptor FD instead of the standard input\n"
 "    \n"
 "    Exit Status:\n"
-"    The return code is zero, unless end-of-file is encountered, read times "
-"out\n"
-"    (in which case it's greater than 128), a variable assignment error "
-"occurs,\n"
+"    The return code is zero, unless end-of-file is encountered, read times out\n"
+"    (in which case it's greater than 128), a variable assignment error occurs,\n"
 "    or an invalid file descriptor is supplied as the argument to -u."
 msgstr ""
 "Liest eine Zeile von der Standardeingabe und teilt sie in Felder auf.\n"
 "    \n"
-"    Liest eine einzelne Zeile aus der Standardeingabe oder vom\n"
-"    Dateideskriptor FD wenn die Option -u angegeben ist.  Die Zeile\n"
-"    wird wie bei der Wortaufteilung in Felder aufgeteilt aufgeteilt,\n"
-"    und das erste Wort wird dem ersten NAME zugewiesen, das zweite\n"
-"    NAME zugewiesen, das zweite Wort dem zweiten NAME usw., wobei alle\n"
-"    verbleibenden Wörter dem dem letzten NAME zugeordnet werden. Die\n"
-"    in $IFS enthaltenen Zeichen werden als Worttrennzeichen verwendet.\n"
+"    Liest eine Zeile von der Standardeingabe oder, mit der Option -u, dem\n"
+"    Dateideskriptor FD. Die Zeile wird ähnlich der Wortaufteilung in Felder\n"
+"    geteilt, und in der angegebenen Reihenfolge den Namen zugewiesen.\n"
+"    Überzählige Felder werden dem letzten Namen zugewiesen. Die in $IFS\n"
+"    enthaltenen Zeichen werden als Trennzeichen verwendet.\n"
 "    \n"
 "    Wenn keine NAMEn angegeben werden, wird die gelesene Zeile in der\n"
 "    REPLY-Variablen gespeichert.\n"
@@ -4189,8 +4029,7 @@ msgid ""
 "              physical     same as -P\n"
 "              pipefail     the return value of a pipeline is the status of\n"
 "                           the last command to exit with a non-zero status,\n"
-"                           or zero if no command exited with a non-zero "
-"status\n"
+"                           or zero if no command exited with a non-zero status\n"
 "              posix        change the behavior of bash where the default\n"
 "                           operation differs from the Posix standard to\n"
 "                           match the standard\n"
@@ -4214,8 +4053,7 @@ msgid ""
 "          by default when the shell is interactive.\n"
 "      -P  If set, do not resolve symbolic links when executing commands\n"
 "          such as cd which change the current directory.\n"
-"      -T  If set, the DEBUG and RETURN traps are inherited by shell "
-"functions.\n"
+"      -T  If set, the DEBUG and RETURN traps are inherited by shell functions.\n"
 "      --  Assign any remaining arguments to the positional parameters.\n"
 "          If there are no remaining arguments, the positional parameters\n"
 "          are unset.\n"
@@ -4237,14 +4075,11 @@ msgstr ""
 "    die Namen und Werte von Shell-Variablen anzeigen.\n"
 "    \n"
 "    Optionen:\n"
-"      -a Markieren von Variablen die geändert oder erstellt wurden, für den "
-"Export.\n"
+"      -a Markieren von Variablen die geändert oder erstellt wurden, für den Export.\n"
 "      -b Sofortige Benachrichtigung über das Auftragsende.\n"
-"      -e Sofortiger Abbruch, wenn ein Befehl mit einem Status ungleich Null "
-"beendet wird.\n"
+"      -e Sofortiger Abbruch, wenn ein Befehl mit einem Status ungleich Null beendet wird.\n"
 "      -f Deaktiviert das Generieren von Dateinamen (globbing).\n"
-"      -h Merkt sich den Speicherort von Befehlen, wenn sie nachgeschlagen "
-"werden.\n"
+"      -h Merkt sich den Speicherort von Befehlen, wenn sie nachgeschlagen werden.\n"
 "      -k Alle Zuweisungsargumente werden in die Umgebung für einen\n"
 "         Befehl in die Umgebung aufgenommen, nicht nur diejenigen,\n"
 "         die dem Befehl vorangestellt sind.\n"
@@ -4254,8 +4089,7 @@ msgstr ""
 "          Setzt die Variable, die dem Optionsname entspricht:\n"
 "              allexport wie -a\n"
 "              braceexpand wie -B\n"
-"              emacs verwendet eine emacsähnliche Schnittstelle zur "
-"Zeilenbearbeitung\n"
+"              emacs verwendet eine emacsähnliche Schnittstelle zur Zeilenbearbeitung\n"
 "              errexit gleich wie -e\n"
 "              errtrace dasselbe wie -E\n"
 "              functrace dasselbe wie -T\n"
@@ -4264,8 +4098,7 @@ msgstr ""
 "              history Befehlshistorie aktivieren\n"
 "              ignoreeof die Shell wird beim Lesen von EOF nicht beendet\n"
 "              interaktive-Kommentare\n"
-"                           erlaubt das Erscheinen von Kommentaren in "
-"interaktiven Befehlen\n"
+"                           erlaubt das Erscheinen von Kommentaren in interaktiven Befehlen\n"
 "              keyword dasselbe wie -k\n"
 "              monitor gleich wie -m\n"
 "              noclobber dasselbe wie -C\n"
@@ -4286,8 +4119,7 @@ msgstr ""
 "                       dem Standard übereinstimmen.\n"
 "              privilegiert gleich wie -p\n"
 "              verbose dasselbe wie -v\n"
-"              vi eine vi-ähnliche Schnittstelle zur Zeilenbearbeitung "
-"verwenden\n"
+"              vi eine vi-ähnliche Schnittstelle zur Zeilenbearbeitung verwenden\n"
 "              xtrace dasselbe wie -x\n"
 "      -p Wird eingeschaltet, wenn die realen und effektiven\n"
 "         Benutzerkennungen nicht übereinstimmen.  Deaktiviert die\n"
@@ -4300,8 +4132,7 @@ msgstr ""
 "      -x Befehle und ihre Argumente ausgeben, wenn sie ausgeführt werden.\n"
 "      -B Die Shell führt eine Klammererweiterung durch\n"
 "      -C Dateien werden bei Ausgabeumleitung nicht überschrieben.\n"
-"      -E Wenn gesetzt, wird die Fehlerfalle (trap) an Shell-Funktionen "
-"vererbt.\n"
+"      -E Wenn gesetzt, wird die Fehlerfalle (trap) an Shell-Funktionen vererbt.\n"
 "      -H Aktiviert die !-Stil Verlaufsersetzung.  Diese Option ist\n"
 "         bei einer interaktiven Shell standardmäßig aktiviert.\n"
 "      -P Symbolische Links werden nicht aufgelöst, wenn Befehle wie\n"
@@ -4323,6 +4154,7 @@ msgstr ""
 "    Rückgabewert:\n"
 "    Gibt Erfolg zurück, es sei denn, eine ungültige Option wurde angegeben."
 
+# unset
 #: builtins.c:1140
 msgid ""
 "Unset values and attributes of shell variables and functions.\n"
@@ -4335,8 +4167,7 @@ msgid ""
 "      -n\ttreat each NAME as a name reference and unset the variable itself\n"
 "    \t\trather than the variable it references\n"
 "    \n"
-"    Without options, unset first tries to unset a variable, and if that "
-"fails,\n"
+"    Without options, unset first tries to unset a variable, and if that fails,\n"
 "    tries to unset a function.\n"
 "    \n"
 "    Some variables cannot be unset; also see `readonly'.\n"
@@ -4344,14 +4175,34 @@ msgid ""
 "    Exit Status:\n"
 "    Returns success unless an invalid option is given or a NAME is read-only."
 msgstr ""
+"Zurücksetzen der Werte und Attribute von Variablen und Funktionen.\n"
+"    \n"
+"     Entfernt für jeden NAMEN die entsprechende Variable oder Funktion.\n"
+"    \n"
+"     Optionen:\n"
+"       -f behandelt jeden NAMEN als Shell-Funktion\n"
+"       -v behandelt jeden NAMEN als Shell-Variable\n"
+"       -n behandelt jeden NAMEN als Namensreferenz und setzt diese\n"
+"          Variable zurück, statt der Variable, auf die es verweist\n"
+"    \n"
+"     Ohne Angabe einer Optionen versucht unset zunächst, eine Variable\n"
+"     zu deaktivieren. Wenn dies fehlschlägt, versucht, eine Funktion zu\n"
+"     deaktivieren.\n"
+"    \n"
+"     Einige Variablen können nicht deaktiviert werden. Siehe auch\n"
+"     „schreibgeschützt“.\n"
+"    \n"
+"     Rückgabewert:\n"
+"     Gibt Erfolg zurück, wenn keine ungültige Option oder ein\n"
+"     schreibgeschützter NAME angegeben worden ist."
 
+# export
 #: builtins.c:1162
 msgid ""
 "Set export attribute for shell variables.\n"
 "    \n"
 "    Marks each NAME for automatic export to the environment of subsequently\n"
-"    executed commands.  If VALUE is supplied, assign VALUE before "
-"exporting.\n"
+"    executed commands.  If VALUE is supplied, assign VALUE before exporting.\n"
 "    \n"
 "    Options:\n"
 "      -f\trefer to shell functions\n"
@@ -4363,7 +4214,24 @@ msgid ""
 "    Exit Status:\n"
 "    Returns success unless an invalid option is given or NAME is invalid."
 msgstr ""
+"Exportattribut für Variablen setzen.\n"
+"    \n"
+"     Markiert jeden Namen für den Export in die Umgebung der später\n"
+"     ausgeführte Befehle. Wenn ein Wert angegeben ist, wird dieser der\n"
+"     Variablen vor den Exportieren zugewiesen.\n"
+"    \n"
+"     Optionen:\n"
+"       -f bezieht sich auf Shellfunktionen\n"
+"       -n entfernt die Exporteigenschaft für jeden Namen\n"
+"       -p zeigt die exportierten Variablen und Funktionen an\n"
+"    \n"
+"     Das Argument „--“ beendet die weitere Optionsverarbeitung.\n"
+"    \n"
+"     Rückgabewert:\n"
+"     Gibt Erfolg zurück, wenn keine ungültige Option oder Name angegeben\n"
+"     worden ist."
 
+# readonly
 #: builtins.c:1181
 msgid ""
 "Mark shell variables as unchangeable.\n"
@@ -4384,7 +4252,27 @@ msgid ""
 "    Exit Status:\n"
 "    Returns success unless an invalid option is given or NAME is invalid."
 msgstr ""
+"Markiert Shellvariablen als unveränderlich.\n"
+"    \n"
+"     Mariert jeden angegebenen Namen als schreibgeschützt. Deren Werte\n"
+"     können nicht mehr geändert werden. Wenn ein Wert angegeben ist,\n"
+"     wird er den Variablen vor dem Schreibschützen zugewiesen.\n"
+"    \n"
+"     Optionen:\n"
+"       -a bezieht sich auf indizierte Arrayvariablen\n"
+"       -A bezieht sich auf assoziative Arrayvariablen\n"
+"       -f bezieht sich auf Shellfunktionen\n"
+"       -p zeigt eine Liste aller schreibgeschützten Variablen oder\n"
+"          Funktionen an, abhängig davon, ob die Option -f angegeben ist\n"
+"          oder nicht\n"
+"    \n"
+"     Das Argument „--“ beendet die weitere Optionsverarbeitung.\n"
+"    \n"
+"     Rückgabewert:\n"
+"     Gibt Erfolg zurück, wenn keine ungültige Option angegeben und\n"
+"     der Name gültig ist."
 
+# shift
 #: builtins.c:1203
 msgid ""
 "Shift positional parameters.\n"
@@ -4410,6 +4298,7 @@ msgid ""
 "    FILENAME cannot be read."
 msgstr ""
 
+# suspend
 #: builtins.c:1246
 msgid ""
 "Suspend shell execution.\n"
@@ -4423,8 +4312,21 @@ msgid ""
 "    Exit Status:\n"
 "    Returns success unless job control is not enabled or an error occurs."
 msgstr ""
+"Shell-Ausführung  aussetzen.\n"
+"    \n"
+"     Hält die die Shell so lange an, bis sie wieder ein SIGCONT-Signal empfängt.\n"
+"     Anmelde-Shells können nur ausgesetzt werden, wenn dies erzwungen wird.\n"
+"    \n"
+"     Optionen:\n"
+"       -f erzwingt das Anhalten für eine Loginshell.\n"
+"    \n"
+"     Exit-Status:\n"
+"     Gibt Erfolg zurück, außer bei inaktiver Jobsteuerung oder einem anderen\n"
+"     Fehler."
 
+# test
 #: builtins.c:1262
+#, fuzzy
 msgid ""
 "Evaluate conditional expression.\n"
 "    \n"
@@ -4458,8 +4360,7 @@ msgid ""
 "      -x FILE        True if the file is executable by you.\n"
 "      -O FILE        True if the file is effectively owned by you.\n"
 "      -G FILE        True if the file is effectively owned by your group.\n"
-"      -N FILE        True if the file has been modified since it was last "
-"read.\n"
+"      -N FILE        True if the file has been modified since it was last read.\n"
 "    \n"
 "      FILE1 -nt FILE2  True if file1 is newer than file2 (according to\n"
 "                       modification date).\n"
@@ -4480,8 +4381,7 @@ msgid ""
 "      STRING1 != STRING2\n"
 "                     True if the strings are not equal.\n"
 "      STRING1 < STRING2\n"
-"                     True if STRING1 sorts before STRING2 "
-"lexicographically.\n"
+"                     True if STRING1 sorts before STRING2 lexicographically.\n"
 "      STRING1 > STRING2\n"
 "                     True if STRING1 sorts after STRING2 lexicographically.\n"
 "    \n"
@@ -4506,6 +4406,85 @@ msgid ""
 "    Returns success if EXPR evaluates to true; fails if EXPR evaluates to\n"
 "    false or an invalid argument is given."
 msgstr ""
+"Bedingten Ausdruck auswerten.\n"
+"    \n"
+"     Wird Status 0 (wahr) oder 1 (falsch) abhängig vom Ergebnis des\n"
+"     Ausdrucks. Die Ausdrücke können unär oder binär sein. Unäre\n"
+"     Ausdrücke werden häufig verwendet, um den Dateistatus zu ermitteln.\n"
+"     Es gibt weiterhin Zeichenketten und numerische Vergeichsoperatoren.\n"
+"    \n"
+"     Das Verhalten von test hängt von der Argumentanzahl ab. Die\n"
+"     bash Handbuchseite enthält deren vollständige Beschreibung.\n"
+"    \n"
+"     Dateioperatoren:\n"
+"    \n"
+"       -a Datei Wahr, wenn die Datei vorhanden ist.\n"
+"       -b Datei Wahr, wenn die Datei ein Blockgerät ist.\n"
+"       -c Datei Wahr, wenn die Datei ein zeichenorientiertes Gerät ist.\n"
+"       -d Datei Wahr, wenn die Datei ein Verzeichnis ist.\n"
+"       -e Datei Wahr, wenn die Datei vorhanden ist.\n"
+"       -f Datei Wahr, wenn die Datei existiert und eine reguläre Datei ist.\n"
+"       -g Datei Wahr, wenn das SetGID-Bit der Datei gesetzt ist.\n"
+"       -h Datei Wahr, wenn die Datei ein symbolischer Link ist.\n"
+"       -L Datei Wahr, wenn die Datei ein symbolischer Link ist.\n"
+"       -k Datei Wahr, wenn für die Datei das „Sticky“-Bit gesetzt ist.\n"
+"       -p Datei Wahr, wenn die Datei eine Named Pipe ist.\n"
+"       -r Datei Wahr, wenn die Datei für den aktuellen Nutzer lesbar ist.\n"
+"       -s Datei Wahr, wenn die Datei existiert und nicht leer ist.\n"
+"       -S Datei Wahr, wenn die Datei ein Socket ist.\n"
+"       -t FD   Wahr, wenn FD auf einem Terminal geöffnet ist.\n"
+"       -u Datei Wahr, wenn das SetUID-Bit der Datei gesetzt ist.\n"
+"       -w Datei Wahr, wenn die Datei für den aktuellen Nutzer schreibbar ist.\n"
+"       -x Datei Wahr, wenn die Datei vom aktuellen Nutzer ausführbar ist.\n"
+"       -O Datei Wahr, wenn die Datei dem aktuellen Nutzer gehört.\n"
+"       -G Datei Wahr, wenn die Datei der aktuellen Gruppe gehört.\n"
+"       -N Datei Wahr, wenn die Datei seit dem letzten Lesen geändert wurde.\n"
+"    \n"
+"       Datei1 -nt Datei2 Wahr, wenn Datei1 neuer als Datei2 ist (gemäß\n"
+"                        Änderungsdatum).\n"
+"    \n"
+"       Datei1 -ot Datei2 Wahr, wenn Datei1 älter als Datei2 ist.\n"
+"    \n"
+"       Datei1 -ef Datei2 Wahr, wenn Datei1 ein harter Link zu Datei2 ist.\n"
+"    \n"
+"     Zeichenfolgenoperatoren:\n"
+"    \n"
+"       -z STRING Wahr, wenn die Zeichenfolge leer ist.\n"
+"    \n"
+"       -n STRING\n"
+"          STRING Wahr, wenn die Zeichenfolge nicht leer ist.\n"
+"    \n"
+"       STRING1 = STRING2\n"
+"                      Wahr, wenn die Zeichenfolgen gleich sind.\n"
+"       STRING1 != STRING2\n"
+"                      Wahr, wenn die Zeichenfolgen nicht gleich sind.\n"
+"       STRING1 < STRING2\n"
+"                      Wahr, wenn STRING1 lexikografisch vor STRING2\n"
+"                      sortiert wird.\n"
+"       STRING1 > STRING2\n"
+"                      Wahr, wenn STRING1 lexikografisch nach STRING2\n"
+"                      sortiert wird.\n"
+"    \n"
+"     Andere Operatoren:\n"
+"    \n"
+"       -o OPTION Wahr, wenn die Shell-Option OPTION aktiviert ist.\n"
+"       -v VAR Wahr, wenn die Shell-Variable VAR gesetzt ist.\n"
+"       -R VAR Wahr, wenn die Variable gesetzt ist und ein Nameref ist.\n"
+"       ! EXPR Wahr, wenn Ausdruck falsch ist.\n"
+"       EXPR1 -a EXPR2 Wahr, wenn sowohl expr1 als auch expr2 wahr sind.\n"
+"       EXPR1 -o EXPR2 Wahr, wenn entweder expr1 ODER expr2 wahr ist.\n"
+"    \n"
+"       arg1 OP arg2 Arithmetische Tests. OP ist eines von -eq, -ne,\n"
+"                      -lt, -le, -gt oder -ge.\n"
+"    \n"
+"     Arithmetische binäre Operatoren geben „Wahr“ zurück, wenn ARG1\n"
+"     gleich, ungleich oder kleiner als, kleiner als oder gleich,\n"
+"     größer als oder größer als oder gleich als ARG2 ist.\n"
+"    \n"
+"     Rückgabewert:\n"
+"     Gibt Erfolg zurück, wenn der Ausdruck als wahr ausgewertet wird.\n"
+"     Er gibt Falsch zurück, wenn der Ausdruck zu Falsch ausgewertet\n"
+"     oder ein ungültiges Argument angegeben wird."
 
 # [
 #: builtins.c:1344
@@ -4526,8 +4505,7 @@ msgstr ""
 msgid ""
 "Display process times.\n"
 "    \n"
-"    Prints the accumulated user and system times for the shell and all of "
-"its\n"
+"    Prints the accumulated user and system times for the shell and all of its\n"
 "    child processes.\n"
 "    \n"
 "    Exit Status:\n"
@@ -4545,8 +4523,7 @@ msgstr ""
 msgid ""
 "Trap signals and other events.\n"
 "    \n"
-"    Defines and activates handlers to be run when the shell receives "
-"signals\n"
+"    Defines and activates handlers to be run when the shell receives signals\n"
 "    or other conditions.\n"
 "    \n"
 "    ARG is a command to be read and executed when the shell receives the\n"
@@ -4555,34 +4532,26 @@ msgid ""
 "    value.  If ARG is the null string each SIGNAL_SPEC is ignored by the\n"
 "    shell and by the commands it invokes.\n"
 "    \n"
-"    If a SIGNAL_SPEC is EXIT (0) ARG is executed on exit from the shell.  "
-"If\n"
-"    a SIGNAL_SPEC is DEBUG, ARG is executed before every simple command.  "
-"If\n"
-"    a SIGNAL_SPEC is RETURN, ARG is executed each time a shell function or "
-"a\n"
-"    script run by the . or source builtins finishes executing.  A "
-"SIGNAL_SPEC\n"
-"    of ERR means to execute ARG each time a command's failure would cause "
-"the\n"
+"    If a SIGNAL_SPEC is EXIT (0) ARG is executed on exit from the shell.  If\n"
+"    a SIGNAL_SPEC is DEBUG, ARG is executed before every simple command.  If\n"
+"    a SIGNAL_SPEC is RETURN, ARG is executed each time a shell function or a\n"
+"    script run by the . or source builtins finishes executing.  A SIGNAL_SPEC\n"
+"    of ERR means to execute ARG each time a command's failure would cause the\n"
 "    shell to exit when the -e option is enabled.\n"
 "    \n"
-"    If no arguments are supplied, trap prints the list of commands "
-"associated\n"
+"    If no arguments are supplied, trap prints the list of commands associated\n"
 "    with each signal.\n"
 "    \n"
 "    Options:\n"
 "      -l\tprint a list of signal names and their corresponding numbers\n"
 "      -p\tdisplay the trap commands associated with each SIGNAL_SPEC\n"
 "    \n"
-"    Each SIGNAL_SPEC is either a signal name in <signal.h> or a signal "
-"number.\n"
+"    Each SIGNAL_SPEC is either a signal name in <signal.h> or a signal number.\n"
 "    Signal names are case insensitive and the SIG prefix is optional.  A\n"
 "    signal may be sent to the shell with \"kill -signal $$\".\n"
 "    \n"
 "    Exit Status:\n"
-"    Returns success unless a SIGSPEC is invalid or an invalid option is "
-"given."
+"    Returns success unless a SIGSPEC is invalid or an invalid option is given."
 msgstr ""
 
 #: builtins.c:1401
@@ -4611,16 +4580,14 @@ msgid ""
 "      NAME\tCommand name to be interpreted.\n"
 "    \n"
 "    Exit Status:\n"
-"    Returns success if all of the NAMEs are found; fails if any are not "
-"found."
+"    Returns success if all of the NAMEs are found; fails if any are not found."
 msgstr ""
 
 #: builtins.c:1432
 msgid ""
 "Modify shell resource limits.\n"
 "    \n"
-"    Provides control over the resources available to the shell and "
-"processes\n"
+"    Provides control over the resources available to the shell and processes\n"
 "    it creates, on systems that allow such control.\n"
 "    \n"
 "    Options:\n"
@@ -4687,23 +4654,19 @@ msgstr ""
 msgid ""
 "Wait for job completion and return exit status.\n"
 "    \n"
-"    Waits for each process identified by an ID, which may be a process ID or "
-"a\n"
+"    Waits for each process identified by an ID, which may be a process ID or a\n"
 "    job specification, and reports its termination status.  If ID is not\n"
 "    given, waits for all currently active child processes, and the return\n"
 "    status is zero.  If ID is a job specification, waits for all processes\n"
 "    in that job's pipeline.\n"
 "    \n"
-"    If the -n option is supplied, waits for a single job from the list of "
-"IDs,\n"
-"    or, if no IDs are supplied, for the next job to complete and returns "
-"its\n"
+"    If the -n option is supplied, waits for a single job from the list of IDs,\n"
+"    or, if no IDs are supplied, for the next job to complete and returns its\n"
 "    exit status.\n"
 "    \n"
 "    If the -p option is supplied, the process or job identifier of the job\n"
 "    for which the exit status is returned is assigned to the variable VAR\n"
-"    named by the option argument. The variable will be unset initially, "
-"before\n"
+"    named by the option argument. The variable will be unset initially, before\n"
 "    any assignment. This is useful only when the -n option is supplied.\n"
 "    \n"
 "    If the -f option is supplied, and job control is enabled, waits for the\n"
@@ -4719,17 +4682,16 @@ msgstr ""
 msgid ""
 "Wait for process completion and return exit status.\n"
 "    \n"
-"    Waits for each process specified by a PID and reports its termination "
-"status.\n"
+"    Waits for each process specified by a PID and reports its termination status.\n"
 "    If PID is not given, waits for all currently active child processes,\n"
 "    and the return status is zero.  PID must be a process ID.\n"
 "    \n"
 "    Exit Status:\n"
-"    Returns the status of the last PID; fails if PID is invalid or an "
-"invalid\n"
+"    Returns the status of the last PID; fails if PID is invalid or an invalid\n"
 "    option is given."
 msgstr ""
 
+# for
 #: builtins.c:1549
 msgid ""
 "Execute commands for each member in a list.\n"
@@ -4742,7 +4704,17 @@ msgid ""
 "    Exit Status:\n"
 "    Returns the status of the last command executed."
 msgstr ""
+"Führt Befehle für jeden Listeneintrag aus.\n"
+"    \n"
+"    Die `for' Schleife führt eine Befehlsfolge für jeden Listeneintrag aus. Wenn\n"
+"    das Schlüsselwort `in Wort ...;' fehlt, wird `in \"$@\"' angenommen. Für jeden\n"
+"    Eintrag in \"Wort\" wird die Variable \"Name\" gesetzt und die angegebenen\n"
+"    Kommandos ausgeführt.\n"
+"    \n"
+"    Rückgabewert:\n"
+"    Der Status des zuletzt ausgeführten Kommandos."
 
+# for (( 
 #: builtins.c:1563
 msgid ""
 "Arithmetic for loop.\n"
@@ -4759,6 +4731,19 @@ msgid ""
 "    Exit Status:\n"
 "    Returns the status of the last command executed."
 msgstr ""
+"Arithmetische For Schleife.\n"
+"\n"
+"    Equivalent zu:\n"
+"    \t(( Ausdr1 ))\n"
+"    \twhile (( Ausdr2 )); do\n"
+"    \t\tKommandos\n"
+"    \t\t(( Ausdr3 ))\n"
+"    \tdone\n"
+"    Ausdr1-3 sind arithmethische Ausdrücke. Für fehlende Ausdrücke wird 1\n"
+"    angenommen.\n"
+"\n"
+"Rückgabewert:\n"
+"Status des zuletzt ausgeführten Kommandos."
 
 #: builtins.c:1581
 msgid ""
@@ -4811,17 +4796,12 @@ msgstr ""
 msgid ""
 "Execute commands based on conditional.\n"
 "    \n"
-"    The `if COMMANDS' list is executed.  If its exit status is zero, then "
-"the\n"
-"    `then COMMANDS' list is executed.  Otherwise, each `elif COMMANDS' list "
-"is\n"
+"    The `if COMMANDS' list is executed.  If its exit status is zero, then the\n"
+"    `then COMMANDS' list is executed.  Otherwise, each `elif COMMANDS' list is\n"
 "    executed in turn, and if its exit status is zero, the corresponding\n"
-"    `then COMMANDS' list is executed and the if command completes.  "
-"Otherwise,\n"
-"    the `else COMMANDS' list is executed, if present.  The exit status of "
-"the\n"
-"    entire construct is the exit status of the last command executed, or "
-"zero\n"
+"    `then COMMANDS' list is executed and the if command completes.  Otherwise,\n"
+"    the `else COMMANDS' list is executed, if present.  The exit status of the\n"
+"    entire construct is the exit status of the last command executed, or zero\n"
 "    if no condition tested true.\n"
 "    \n"
 "    Exit Status:\n"
@@ -4832,8 +4812,7 @@ msgstr ""
 msgid ""
 "Execute commands as long as a test succeeds.\n"
 "    \n"
-"    Expand and execute COMMANDS-2 as long as the final command in COMMANDS "
-"has\n"
+"    Expand and execute COMMANDS-2 as long as the final command in COMMANDS has\n"
 "    an exit status of zero.\n"
 "    \n"
 "    Exit Status:\n"
@@ -4844,8 +4823,7 @@ msgstr ""
 msgid ""
 "Execute commands as long as a test does not succeed.\n"
 "    \n"
-"    Expand and execute COMMANDS-2 as long as the final command in COMMANDS "
-"has\n"
+"    Expand and execute COMMANDS-2 as long as the final command in COMMANDS has\n"
 "    an exit status which is not zero.\n"
 "    \n"
 "    Exit Status:\n"
@@ -4865,20 +4843,30 @@ msgid ""
 "    The coproc command returns an exit status of 0."
 msgstr ""
 
+# function
 #: builtins.c:1686
 msgid ""
 "Define shell function.\n"
 "    \n"
 "    Create a shell function named NAME.  When invoked as a simple command,\n"
-"    NAME runs COMMANDs in the calling shell's context.  When NAME is "
-"invoked,\n"
+"    NAME runs COMMANDs in the calling shell's context.  When NAME is invoked,\n"
 "    the arguments are passed to the function as $1...$n, and the function's\n"
 "    name is in $FUNCNAME.\n"
 "    \n"
 "    Exit Status:\n"
 "    Returns success unless NAME is readonly."
 msgstr ""
+"Erstellt eine Shellfunktion.\n"
+"    \n"
+"    Erstellt eine Shellfunktion mt dem angegebenen Namen. Wenn der Name als\n"
+"    Kommando aufgerufen wird, dann werden die angegebenen Kommandos im Kontext\n"
+"    der aufrufenden Shell abgearbeitet. Deren Argumente werden der Funktion als\n"
+"    die Variablen $1...$n übergeben und der Funktionsname als $FUNCNAME.\n"
+"    \n"
+"    Rückgabewert:\n"
+"    Gibt Erfolg zurück, es sein denn, der Name ist schreibgeschützt."
 
+# { ... }
 #: builtins.c:1700
 msgid ""
 "Group commands as a unit.\n"
@@ -4889,6 +4877,13 @@ msgid ""
 "    Exit Status:\n"
 "    Returns the status of the last command executed."
 msgstr ""
+"Kommandos als Einheit gruppieren.\n"
+"    \n"
+"    Führt eine gruppierte Reihe von Kommandos aus. Dies ist eine Möglichkeit, um\n"
+"    die Ausgabe von mehreren Kommandos umzuleiten.\n"
+"    \n"
+"     Rückgabewert:\n"
+"     Gibt den Status des zuletzt ausgeführten Befehls zurück."
 
 #: builtins.c:1712
 msgid ""
@@ -4903,6 +4898,15 @@ msgid ""
 "    Exit Status:\n"
 "    Returns the status of the resumed job."
 msgstr ""
+"Job im Vordergrund fortsetzen.\n"
+"    \n"
+"    Entspricht dem JOB_SPEC-Argument des Befehls „fg“. Er nimmt einen gestoppten\n"
+"    oder Hintergrundjob wieder auf. JOB_SPEC kann ein Jobname oder eine\n"
+"    Jobnummer angeben. Ein nachfolgendes „&“ bringt den Job in den Hintergrund,\n"
+"    ähnlich wie die Jobbezeichnung von „bg“.\n"
+"    \n"
+"    Exit-Status:\n"
+"    Gibt den Status des wiederaufgenommenen Jobs zurück."
 
 # (( ))
 #: builtins.c:1727
@@ -4928,12 +4932,9 @@ msgstr ""
 msgid ""
 "Execute conditional command.\n"
 "    \n"
-"    Returns a status of 0 or 1 depending on the evaluation of the "
-"conditional\n"
-"    expression EXPRESSION.  Expressions are composed of the same primaries "
-"used\n"
-"    by the `test' builtin, and may be combined using the following "
-"operators:\n"
+"    Returns a status of 0 or 1 depending on the evaluation of the conditional\n"
+"    expression EXPRESSION.  Expressions are composed of the same primaries used\n"
+"    by the `test' builtin, and may be combined using the following operators:\n"
 "    \n"
 "      ( EXPRESSION )\tReturns the value of EXPRESSION\n"
 "      ! EXPRESSION\t\tTrue if EXPRESSION is false; else false\n"
@@ -4954,8 +4955,7 @@ msgstr ""
 "Erweiterte Vergleiche.\n"
 "    \n"
 "    Der Status 0 oder 1 wird abhängig vom Vergleichsergebnis zurückgegeben.\n"
-"    Es werden die gleichen Ausdrücke wie in der »test« Funktion "
-"unterstützt,\n"
+"    Es werden die gleichen Ausdrücke wie in der »test« Funktion unterstützt,\n"
 "    die mit folgenden Operatoren verbunden werden können:\n"
 "    \n"
 "      ( AUSDRUCK )\tErgibt den Wert des AUSDRUCKs\n"
@@ -5048,8 +5048,7 @@ msgstr ""
 "                Anzahl EOF Zeichen (Ctrl-D) abgewartet, bis die Shell\n"
 "                verlassen wird. Der Vorgabewert ist 10. Ist IGNOREEOF\n"
 "                nicht gesetzt, signalisiert EOF das Ende der Eingabe.\n"
-"    MACHTYPE    Eine Zeichenkette die das aktuell laufende System "
-"beschreibt.\n"
+"    MACHTYPE    Eine Zeichenkette die das aktuell laufende System beschreibt.\n"
 "    MAILCHECK\tZeit in Sekunden, nach der nach E-Mails gesehen wird.\n"
 "    MAILPATH\tEine durch Doppelpunkt getrennte Liste von Dateinamen,\n"
 "                die nach E-Mail durchsucht werden.\n"
@@ -5291,7 +5290,6 @@ msgstr ""
 
 # printf
 #: builtins.c:1938
-#, fuzzy
 msgid ""
 "Formats and prints ARGUMENTS under control of the FORMAT.\n"
 "    \n"
@@ -5299,81 +5297,66 @@ msgid ""
 "      -v var\tassign the output to shell variable VAR rather than\n"
 "    \t\tdisplay it on the standard output\n"
 "    \n"
-"    FORMAT is a character string which contains three types of objects: "
-"plain\n"
-"    characters, which are simply copied to standard output; character "
-"escape\n"
+"    FORMAT is a character string which contains three types of objects: plain\n"
+"    characters, which are simply copied to standard output; character escape\n"
 "    sequences, which are converted and copied to the standard output; and\n"
-"    format specifications, each of which causes printing of the next "
-"successive\n"
+"    format specifications, each of which causes printing of the next successive\n"
 "    argument.\n"
 "    \n"
-"    In addition to the standard format specifications described in "
-"printf(1),\n"
+"    In addition to the standard format specifications described in printf(1),\n"
 "    printf interprets:\n"
 "    \n"
 "      %b\texpand backslash escape sequences in the corresponding argument\n"
 "      %q\tquote the argument in a way that can be reused as shell input\n"
 "      %Q\tlike %q, but apply any precision to the unquoted argument before\n"
 "    \t\tquoting\n"
-"      %(fmt)T\toutput the date-time string resulting from using FMT as a "
-"format\n"
+"      %(fmt)T\toutput the date-time string resulting from using FMT as a format\n"
 "    \t        string for strftime(3)\n"
 "    \n"
 "    The format is re-used as necessary to consume all of the arguments.  If\n"
 "    there are fewer arguments than the format requires,  extra format\n"
-"    specifications behave as if a zero value or null string, as "
-"appropriate,\n"
+"    specifications behave as if a zero value or null string, as appropriate,\n"
 "    had been supplied.\n"
 "    \n"
 "    Exit Status:\n"
-"    Returns success unless an invalid option is given or a write or "
-"assignment\n"
+"    Returns success unless an invalid option is given or a write or assignment\n"
 "    error occurs."
 msgstr ""
 "Formatierte Ausgabe der ARGUMENTE.\n"
 "\n"
 "    Optionen:\n"
-"      -v var\tDie formatierte Ausgabe ver Variable var zuweisen statt\n"
-"        \tsie an die Standardausgebe zu senden.\n"
+"      -v var\tDie formatierte Ausgabe wird der Variable \"var\" zugewiesen\n"
+"              und nicht an die Standardausgabe gesendet.\n"
 "\n"
-"    Die FORMAT-Zeichenkette kann einfache Zeichen enthalten, die "
-"unverändert\n"
-"    an die Standardausgabe geschickt werden. Escape-Sequenzen werden "
-"umgewandelt\n"
-"    und an die Standardausgabe geschickt sowie Formatanweisungen, welche "
-"das \n"
-"    nachfolgende ARGUMENT auswerten und ausgeben.\n"
+"    Die \"Format\" Anweisung kann einfache Zeichen enthalten, die unverändert an\n"
+"    die Standardausgabe geschickt werden. Escape-Sequenzen werden umgewandelt\n"
+"    und an die Standardausgabe geschickt sowie Formatanweisungen, welche das\n"
+"    nachfolgende \"Argument\" auswerten und ausgeben.\n"
 "\n"
-"    Gegenüber der in printf(1) beschriebenen Standardverion werden "
-"zusätzliche\n"
-"    Formatanweisungen ausgewertet:\n"
+"    Zusätzlich zu dem in printf(1) beschriebenen Standard werden ausgewertet:\n"
 "\n"
-"      %b\tWertet Escape-Sequenzen des zugehörigen Arguments aus.\n"
-"      %q\tBettet das Argument so ein, dass es als Shelleingabe\n"
-"                verwendet werden kann.\n"
-"      %(fmt)T\tAusgabe der aus FMT entstehende Datum-Zeit Zeichenkette, "
-"dass\n"
-"                sie als Zeichenkette für strftime(3) verwendet werden kann.\n"
+"      %b\tErlaubt Escapesequenzen im angegebenen Argument.\n"
+"      %q\tSchützt nicht druckbare Zeicheen, dass sie als Shelleingabe\n"
+"          verwendet werden können.\n"
+"      %Q  Wie %q, es wird zusätzlich die angegebene Genauigkeit vor dem\n"
+"          Ausgeben angewendet.\n"
+"      %(Fmt)T\tAusgabe des in \"Fmt\" angegebenen Zeitausdrucks, dass sie\n"
+"          als Eingabe für strftime(3) verwendet werden kann.\n"
 "\n"
 "    Die Formatangabe wird wiederverwendet, bis alle Argumente ausgewertet\n"
-"    sind. Wenn weniger Argumente als Formatangaben vorhanden sind, werden "
-"für\n"
+"    sind. Wenn weniger Argumente als Formatangaben vorhanden sind, werden für\n"
 "    die Argumente Nullwerte bzw. leere Zeichenketten eingesetzt.\n"
 "\n"
-"    Rücgabewert:\n"
-"    Gibt Erfolg zurück, außer es wird eine ungültige Option angegeben oder "
-"ein\n"
-"    Aus- bzw. Zuweisungsfehler auftritt."
+"    Rückgabewert:\n"
+"    Gibt Erfolg zurück, außer es wird eine ungültige Option angegeben\n"
+"    oder es tritt ein Aus- bzw. Zuweisungsfehler auf."
 
 #: builtins.c:1974
 msgid ""
 "Specify how arguments are to be completed by Readline.\n"
 "    \n"
-"    For each NAME, specify how arguments are to be completed.  If no "
-"options\n"
-"    are supplied, existing completion specifications are printed in a way "
-"that\n"
+"    For each NAME, specify how arguments are to be completed.  If no options\n"
+"    are supplied, existing completion specifications are printed in a way that\n"
 "    allows them to be reused as input.\n"
 "    \n"
 "    Options:\n"
@@ -5388,10 +5371,8 @@ msgid ""
 "    \t\tcommand) word\n"
 "    \n"
 "    When completion is attempted, the actions are applied in the order the\n"
-"    uppercase-letter options are listed above. If multiple options are "
-"supplied,\n"
-"    the -D option takes precedence over -E, and both take precedence over -"
-"I.\n"
+"    uppercase-letter options are listed above. If multiple options are supplied,\n"
+"    the -D option takes precedence over -E, and both take precedence over -I.\n"
 "    \n"
 "    Exit Status:\n"
 "    Returns success unless an invalid option is supplied or an error occurs."
@@ -5403,8 +5384,7 @@ msgid ""
 "Display possible completions depending on the options.\n"
 "    \n"
 "    Intended to be used from within a shell function generating possible\n"
-"    completions.  If the optional WORD argument is supplied, matches "
-"against\n"
+"    completions.  If the optional WORD argument is supplied, matches against\n"
 "    WORD are generated.\n"
 "    \n"
 "    Exit Status:\n"
@@ -5412,11 +5392,10 @@ msgid ""
 msgstr ""
 "Zeigt mögliche Komplettierungen.\n"
 "\n"
-"    Wird in Shellfunktionen benutzt, um mögliche Komplettierungen "
-"anzuzeigen.\n"
-"    Wenn das optionale Wort-Argument angegeben ist, werden Komplettierungen\n"
+"    Wird in Shellfunktionen benutzt, um mögliche Komplettierungen anzuzeigen.\n"
+"    Wenn ein Wort als optionales Argument angegeben ist, werden Komplettierungen\n"
 "    für dieses Wort erzeugt.\n"
-"    \n"
+"\n"
 "    Rückgabewert:\n"
 "    Falsche Optionen oder Fehler führen zu Rückgabewerten ungleich Null."
 
@@ -5424,12 +5403,9 @@ msgstr ""
 msgid ""
 "Modify or display completion options.\n"
 "    \n"
-"    Modify the completion options for each NAME, or, if no NAMEs are "
-"supplied,\n"
-"    the completion currently being executed.  If no OPTIONs are given, "
-"print\n"
-"    the completion options for each NAME or the current completion "
-"specification.\n"
+"    Modify the completion options for each NAME, or, if no NAMEs are supplied,\n"
+"    the completion currently being executed.  If no OPTIONs are given, print\n"
+"    the completion options for each NAME or the current completion specification.\n"
 "    \n"
 "    Options:\n"
 "    \t-o option\tSet completion option OPTION for each NAME\n"
@@ -5456,22 +5432,17 @@ msgstr ""
 msgid ""
 "Read lines from the standard input into an indexed array variable.\n"
 "    \n"
-"    Read lines from the standard input into the indexed array variable "
-"ARRAY, or\n"
-"    from file descriptor FD if the -u option is supplied.  The variable "
-"MAPFILE\n"
+"    Read lines from the standard input into the indexed array variable ARRAY, or\n"
+"    from file descriptor FD if the -u option is supplied.  The variable MAPFILE\n"
 "    is the default ARRAY.\n"
 "    \n"
 "    Options:\n"
 "      -d delim\tUse DELIM to terminate lines, instead of newline\n"
-"      -n count\tCopy at most COUNT lines.  If COUNT is 0, all lines are "
-"copied\n"
-"      -O origin\tBegin assigning to ARRAY at index ORIGIN.  The default "
-"index is 0\n"
+"      -n count\tCopy at most COUNT lines.  If COUNT is 0, all lines are copied\n"
+"      -O origin\tBegin assigning to ARRAY at index ORIGIN.  The default index is 0\n"
 "      -s count\tDiscard the first COUNT lines read\n"
 "      -t\tRemove a trailing DELIM from each line read (default newline)\n"
-"      -u fd\tRead lines from file descriptor FD instead of the standard "
-"input\n"
+"      -u fd\tRead lines from file descriptor FD instead of the standard input\n"
 "      -C callback\tEvaluate CALLBACK each time QUANTUM lines are read\n"
 "      -c quantum\tSpecify the number of lines read between each call to\n"
 "    \t\t\tCALLBACK\n"
@@ -5484,15 +5455,46 @@ msgid ""
 "    element to be assigned and the line to be assigned to that element\n"
 "    as additional arguments.\n"
 "    \n"
-"    If not supplied with an explicit origin, mapfile will clear ARRAY "
-"before\n"
+"    If not supplied with an explicit origin, mapfile will clear ARRAY before\n"
 "    assigning to it.\n"
 "    \n"
 "    Exit Status:\n"
-"    Returns success unless an invalid option is given or ARRAY is readonly "
-"or\n"
+"    Returns success unless an invalid option is given or ARRAY is readonly or\n"
 "    not an indexed array."
 msgstr ""
+"Zeilen von der Standardeingabe in eine indizierte Array-Variable einlesen.\n"
+"    \n"
+"    Liest Zeilen von der Standardeingabe in die indizierte Array-Variable ARRAY,\n"
+"    oder aus dem Dateideskriptor FD, wenn die Option -u angegeben ist. Die\n"
+"    Variable MAPFILE ist das Standard-ARRAY.\n"
+"    \n"
+"    Optionen:\n"
+"      -d delim Verwenden von DELIM als Zeilenende anstelle von newline\n"
+"      -n count Kopiert bis zu COUNT Zeilen. Mit COUNT gleich 0 werden alle\n"
+"         Zeilen kopiert.\n"
+"      -O origin Mit dem Index ORIGIN beginnen. Der Standardindex ist 0.\n"
+"      -s count Überspringen der ersten COUNT Zeilen.\n"
+"      -t Entfernt das letzte Zeichen von jeder gelesenen Zeile\n"
+"         (standardmäßig newline).\n"
+"      -u fd Aus dem Dateideskriptor FD statt der Standardeingabe lesen.\n"
+"      -C callback CALLBACK jedes Mal auswerten, wenn QUANTUM-Zeilen\n"
+"         gelesen worden sind\n"
+"      -c quantum Zeilenanzahl vor jedem Aufruf von CALLBACK.\n"
+"\n"
+"    Argumente:\n"
+"      ARRAY Name der zu verwendenden Array-Variablen.\n"
+"    \n"
+"    Wenn -C ohne -c angegeben wird, ist das Standardquantum 5000. Wenn CALLBACK\n"
+"    ausgewertet wird, erhält es den Index des nächsten zuzuweisenden Array\n"
+"    Elementes und die Zeile, die diesem Element zugewiesen werden soll als\n"
+"    zusätzliche Argumente.\n"
+"    \n"
+"    Wenn kein expliziter Ursprung angegeben wird, löscht mapfile ARRAY, bevor\n"
+"    bevor es zugewiesen wird.\n"
+"    \n"
+"    Rückgabewert:\n"
+"    Gibt Erfolg zurück, es sei denn, es wird eine ungültige Option angegeben,\n"
+"    das ARRAY ist schreibgeschützt oder kein indiziertes Array."
 
 # readarray
 #: builtins.c:2086
@@ -5504,11 +5506,3 @@ msgstr ""
 "Liest Zeilen einer Datei in eine Array-Variable.\n"
 "\n"
 "    Ist ein Synonym für »mapfile«."
-
-#, c-format
-#~ msgid "%s: invalid associative array key"
-#~ msgstr "%s: Ungültiger Schlüssel für das assoziative Array."
-
-# https://lists.gnu.org/archive/html/bug-bash/2019-09/msg00025.html
-#~ msgid "Unknown Signal #"
-#~ msgstr "Unbekannte Signalnummer"
index 39d8520c920932198b421ac5af6716f073d85bf6..1915742acb50533914479b4a5d0f1ba3041cb9cc 100644 (file)
Binary files a/po/fr.gmo and b/po/fr.gmo differ
index 2d503ed4cd1d75c310b984ac42a0133d0e3f171b..f3cb8f6a8afee57f9e27f5f5cc9fa9e8bde3e433 100644 (file)
--- a/po/fr.po
+++ b/po/fr.po
@@ -1,15 +1,15 @@
 # Messages français pour GNU concernant bash.
-# Copyright (C) 2022 Free Software Foundation, Inc.
+# Copyright (C) 2024 Free Software Foundation, Inc.
 # This file is distributed under the same license as the bash package.
 # Michel Robitaille <robitail@IRO.UMontreal.CA>, 2004
 # Christophe Combelles <ccomb@free.fr>, 2008, 2009, 2010, 2011
-# Frédéric Marchal <fmarchal@perso.be>, 2022
+# Frédéric Marchal <fmarchal@perso.be>, 2024
 msgid ""
 msgstr ""
 "Project-Id-Version: bash-5.2-rc1\n"
 "Report-Msgid-Bugs-To: \n"
 "POT-Creation-Date: 2022-01-11 14:50-0500\n"
-"PO-Revision-Date: 2022-06-19 10:44+0200\n"
+"PO-Revision-Date: 2024-03-11 07:13+0100\n"
 "Last-Translator: Frédéric Marchal <fmarchal@perso.be>\n"
 "Language-Team: French <traduc@traduc.org>\n"
 "Language: fr\n"
@@ -3219,7 +3219,7 @@ msgstr ""
 "    « getopts » est utilisé par les procédures du shell pour analyser les \n"
 "    paramètres de position.\n"
 "    \n"
-"    OPTSTRING contient les lettres d'options qui devront être reconnues ;\n"
+"    CHAÎNEOPTS contient les lettres d'options qui devront être reconnues ;\n"
 "    si une lettre est suivie par un deux-points, elle devra posséder un\n"
 "    argument séparé d'elle par une espace.\n"
 "    \n"
@@ -3231,7 +3231,7 @@ msgstr ""
 "    argument dans la variable de shell OPTARG.\n"
 "    \n"
 "    « getopts » signale les erreurs de deux manières.  Si le premier caractère\n"
-"    d'OPTSTRING est un deux-points, « getopts » utilise un signalement d'erreur\n"
+"    de CHAÎNEOPTS est un deux-points, « getopts » utilise un signalement d'erreur\n"
 "    silencieux. Dans ce mode aucun message d'erreur n'est affiché. Si une option\n"
 "    incorrecte est rencontrée, « getopts » place dans OPTARG le caractère d'option\n"
 "    trouvé. Si un argument nécessaire n'est pas trouvé, « getopts » place un « : »\n"
@@ -3242,7 +3242,7 @@ msgstr ""
 "    diagnostic est affiché.\n"
 "    \n"
 "    Si la variable de shell OPTERR possède la valeur 0, « getopts » désactive\n"
-"    l'affichage des messages d'erreur, même si le premier caractère d'OPTSTRING\n"
+"    l'affichage des messages d'erreur, même si le premier caractère de CHAÎNEOPTS\n"
 "    n'est pas un deux-points. OPTERR possède la valeur 1 par défaut.\n"
 "    \n"
 "    « getopts » analyse habituellement les paramètres de position, mais si des arguments\n"