gettext: add gettextln, eval_gettextln to encode common idiom

Currently, if you want to use gettext or eval_gettext to format a message you may have to add a separate echo statement and a surrounding subshell in order to interpolate the required trailing new line. This patch introduces two new helper functions, gettextln and eval_gettextln which append a trailing newline to the gettext output. This allows constructions of the form: if test -s "$GIT_DIR/BISECT_START" then ( gettext "You need to give me at least one good and one bad revisions. (You can use \"git bisect bad\" and \"git bisect good\" for that.)" && echo ) >&2 else ... to be expressed more concisely as: if test -s "$GIT_DIR/BISECT_START" then gettextln "You need to give me at least one good and one bad revisions. (You can use \"git bisect bad\" and \"git bisect good\" for that.)" >&2 else ... Acked-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com> Signed-off-by: Jon Seymour <jon.seymour@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>

Jon Seymour committed Aug 7, 2011 at 21:58 UTC 3da5c54340d67b935b2ad75cc7d162c1e571a644
1 file changed +19
git-sh-i18n.sh
+19
@@ -11,19 +11,38 @@ then
11 printf "%s" "$1"
12 }
13
14 + gettextln() {
15 + printf "%s\n" "$1"
16 + }
17 +
18 eval_gettext () {
19 printf "%s" "$1" | (
20 export PATH $(git sh-i18n--envsubst --variables "$1");
21 git sh-i18n--envsubst "$1"
22 )
23 }
24 +
25 + eval_gettextln () {
26 + printf "%s\n" "$1" | (
27 + export PATH $(git sh-i18n--envsubst --variables "$1");
28 + git sh-i18n--envsubst "$1"
29 + )
30 + }
31 else
32 gettext () {
33 printf "%s" "# GETTEXT POISON #"
34 }
35
36 + gettextln () {
37 + printf "%s\n" "# GETTEXT POISON #"
38 + }
39 +
40 eval_gettext () {
41 printf "%s" "# GETTEXT POISON #"
42 }
43 +
44 + eval_gettextln () {
45 + printf "%s\n" "# GETTEXT POISON #"
46 + }
47 fi
48