Skip to content

Commit 6dd9a91

Browse files
avargitster
authored andcommitted
i18n CI: stop allowing non-ASCII source messages in po/git.pot
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 a6226fd (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. cd5513a (i18n: Makefile: "pot" target to extract messages marked for translation, 2011-02-22) 2. adc3b2b (Makefile: add xgettext target for *.sh files, 2011-05-14) 3. 5e9637c (i18n: add infrastructure for translating Git with gettext, 2011-11-18) Signed-off-by: Ævar Arnfjörð Bjarmason <[email protected]> Signed-off-by: Jiang Xin <[email protected]> Signed-off-by: Junio C Hamano <[email protected]>
1 parent 1cc0425 commit 6dd9a91

File tree

3 files changed

+7
-3
lines changed

3 files changed

+7
-3
lines changed

Makefile

+4-2
Original file line numberDiff line numberDiff line change
@@ -2708,8 +2708,7 @@ XGETTEXT_FLAGS = \
27082708
--force-po \
27092709
--add-comments=TRANSLATORS: \
27102710
--msgid-bugs-address="Git Mailing List <[email protected]>" \
2711-
--package-name=Git \
2712-
--from-code=UTF-8
2711+
--package-name=Git
27132712
XGETTEXT_FLAGS_C = $(XGETTEXT_FLAGS) --language=C \
27142713
--keyword=_ --keyword=N_ --keyword="Q_:1,2"
27152714
XGETTEXT_FLAGS_SH = $(XGETTEXT_FLAGS) --language=Shell \
@@ -2793,6 +2792,9 @@ po/git.pot: .build/pot/git.header $(LOCALIZED_ALL_GEN_PO) FORCE
27932792
.PHONY: pot
27942793
pot: po/git.pot
27952794

2795+
.PHONY: check-pot
2796+
check-pot: $(LOCALIZED_ALL_GEN_PO)
2797+
27962798
ifdef NO_GETTEXT
27972799
POFILES :=
27982800
MOFILES :=

builtin/submodule--helper.c

+1-1
Original file line numberDiff line numberDiff line change
@@ -3378,7 +3378,7 @@ static int module_add(int argc, const char **argv, const char *prefix)
33783378
N_("reference repository")),
33793379
OPT_BOOL(0, "dissociate", &dissociate, N_("borrow the objects from reference repositories")),
33803380
OPT_STRING(0, "name", &add_data.sm_name, N_("name"),
3381-
N_("sets the submodules name to the given string "
3381+
N_("sets the submodule's name to the given string "
33823382
"instead of defaulting to its path")),
33833383
OPT_INTEGER(0, "depth", &add_data.depth, N_("depth for shallow clones")),
33843384
OPT_END()

ci/run-static-analysis.sh

+2
Original file line numberDiff line numberDiff line change
@@ -29,4 +29,6 @@ fi
2929
make hdr-check ||
3030
exit 1
3131

32+
make check-pot
33+
3234
save_good_tree

0 commit comments

Comments
 (0)