]> git.ipfire.org Git - thirdparty/git.git/commitdiff
i18n CI: stop allowing non-ASCII source messages in po/git.pot
authorÆvar Arnfjörð Bjarmason <avarab@gmail.com>
Thu, 26 May 2022 14:50:29 +0000 (22:50 +0800)
committerJunio C Hamano <gitster@pobox.com>
Thu, 26 May 2022 17:30:28 +0000 (10:30 -0700)
In the preceding commit we moved away from using xgettext(1) to both
generate the po/git.pot, and to merge the incrementally generated
po/git.pot+ file as we sourced translations from C, shell and Perl.

Doing it this way, which dates back to my initial
implementation[1][2][3] was conflating two things: With xgettext(1)
the --from-code both controls what encoding is specified in the
po/git.pot's header, and what encoding we allow in source messages.

We don't ever want to allow non-ASCII in *source messages*, and doing
so has hid e.g. a buggy message introduced in
a6226fd772b (submodule--helper: convert the bulk of cmd_add() to C,
2021-08-10) from us, we'd warn about it before, but only when running
"make pot", but the operation would still succeed. Now we'll error out
on it when running "make pot".

Since the preceding Makefile changes made this easy: let's add a "make
check-pot" target with the same prerequisites as the "po/git.pot"
target, but without changing the file "po/git.pot". Running it as part
of the "static-analysis" CI target will ensure that we catch any such
issues in the future. E.g.:

    $ make check-pot
        XGETTEXT .build/pot/po/builtin/submodule--helper.c.po
    xgettext: Non-ASCII string at builtin/submodule--helper.c:3381.
              Please specify the source encoding through --from-code.
    make: *** [.build/pot/po/builtin/submodule--helper.c.po] Error 1

1. cd5513a7168 (i18n: Makefile: "pot" target to extract messages
   marked for translation, 2011-02-22)
2. adc3b2b2767 (Makefile: add xgettext target for *.sh files,
   2011-05-14)
3. 5e9637c6297 (i18n: add infrastructure for translating Git with
   gettext, 2011-11-18)

Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
Signed-off-by: Jiang Xin <zhiyou.jx@alibaba-inc.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Makefile
builtin/submodule--helper.c
ci/run-static-analysis.sh

index 49176822ad176cecd549343fd172b03ebe18162c..72a3ddaed4fed26f1f195b0d084fb4d856d8886f 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -2708,8 +2708,7 @@ XGETTEXT_FLAGS = \
        --force-po \
        --add-comments=TRANSLATORS: \
        --msgid-bugs-address="Git Mailing List <git@vger.kernel.org>" \
-       --package-name=Git \
-       --from-code=UTF-8
+       --package-name=Git
 XGETTEXT_FLAGS_C = $(XGETTEXT_FLAGS) --language=C \
        --keyword=_ --keyword=N_ --keyword="Q_:1,2"
 XGETTEXT_FLAGS_SH = $(XGETTEXT_FLAGS) --language=Shell \
@@ -2793,6 +2792,9 @@ po/git.pot: .build/pot/git.header $(LOCALIZED_ALL_GEN_PO) FORCE
 .PHONY: pot
 pot: po/git.pot
 
+.PHONY: check-pot
+check-pot: $(LOCALIZED_ALL_GEN_PO)
+
 ifdef NO_GETTEXT
 POFILES :=
 MOFILES :=
index 2c87ef9364fa6d0bf1b7d387a0642c0b4963c55b..b97f02eed5b5efb10a3def5eab07a7d73735bde5 100644 (file)
@@ -3378,7 +3378,7 @@ static int module_add(int argc, const char **argv, const char *prefix)
                           N_("reference repository")),
                OPT_BOOL(0, "dissociate", &dissociate, N_("borrow the objects from reference repositories")),
                OPT_STRING(0, "name", &add_data.sm_name, N_("name"),
-                          N_("sets the submodules name to the given string "
+                          N_("sets the submodule's name to the given string "
                              "instead of defaulting to its path")),
                OPT_INTEGER(0, "depth", &add_data.depth, N_("depth for shallow clones")),
                OPT_END()
index 65bcebda41a0dfb47676a1d0528fdaa0addf2271..0d51e5ce0e7cb42e0101df607c925ccd066d4433 100755 (executable)
@@ -29,4 +29,6 @@ fi
 make hdr-check ||
 exit 1
 
+make check-pot
+
 save_good_tree