Introduce support for GETTEXT_POISON=rot13
Get series with b4
b4 am [email protected]Versions newest first
- v1 Latest11 patches 19 repliesIn review
Patches in v1 No applies recorded yet
Reviews trailers per patch
No Reviewed-by, Acked-by or Tested-by trailers for v1 yet.
Cover letter [PATCH 00/11] [RFH] Introduce support for GETTEXT_POISON=rot13
This patch series is incomplete because I lack the time to finish it, and I hope that there are interested developers who can help with it.
In https://lore.kernel.org/git/[email protected]/,
Duy proposed introducing a fake language they called "Ook" to be able to test translations better. "Ook" would "translate" messages without any printf format specifiers to "Eek", otherwise convert all upper-case letters to "Ook" and lower-case letters to "ook".
Gábor replied with a different proposal that has the advantage of being bijective, i.e. it is possible to reconstruct the untranslated message from the translated one.
Ævar suggested recently
[https://lore.kernel.org/git/[email protected]/T/#m6fdc43d4f1eb3f20f841096c59e985b69c84875e]
that this whole GETTEXT_POISON business is totally useless.
I do not believe that it is useless. To back up my belief with something tangible, I implemented a GETTEXT_POISON=rot13 mode and ran the test suite to see whether we erroneously expect translated messages where they aren't, and related problems.
And the experiment delivered. It is just a demonstration (I only addressed a handful of the test suite failures, 124 test scripts still need to be inspected to find out why they fail), of course. Yet I think that finding e.g. the missing translations of sha1dc-cb and parse-options show that it would be very useful to complete this patch series and then use the rot13 mode in our CI jobs (instead of the current GETTEXT_POISON=true mode, which really is less useful).
Note: in its current form, this patch series fails t0013 and t9902 in the GETTEXT_POISON job
[https://github.com/gitgitgadget/git/pull/836/checks?check_run_id=1686715225#step:4:1590],
therefore it cannot be integrated into Git as-is, even if it does not switch the GETTEXT_POISON job to use the rot13 mode yet.
Sadly, even though I want to see this patch series go further, I am operating under serious time constraints and therefore had to admit to myself, grudgingly, that I can't. So again, I hope that somebody else can push this effort further.
Johannes Schindelin (11):
tests: remove unnecessary GIT_TEST_GETTEXT_POISON=false constructs Support GIT_TEST_GETTEXT_POISON=rot13
parse-options: add forgotten translations
sha1dc: mark forgotten message for translation
t0006: use test_i18ncmp only for C locales
t0041: stop using test_i18ngrep on untranslated output
t0027: mark a function as requiring the C locale
t6301: do not expect the output of for-each-ref to be translated GETTEXT_POISON=rot13: do compare the output in test_i18ncmp GETTEXT_POISON=rot13: perform actual checks in test_i18ngrep test-tool i18n: do not complain about empty messages
Makefile | 1 + gettext.c | 65 ++++++++++++++++- gettext.h | 5 +- parse-options-cb.c | 4 +- sha1dc_git.c | 2 +- t/helper/test-i18n.c | 129 +++++++++++++++++++++++++++++++++ t/helper/test-tool.c | 1 + t/helper/test-tool.h | 1 + t/t0006-date.sh | 4 +- t/t0017-env-helper.sh | 6 +- t/t0027-auto-crlf.sh | 3 + t/t0041-usage.sh | 2 +- t/t1305-config-include.sh | 6 +- t/t6301-for-each-ref-errors.sh | 2 +- t/t7201-co.sh | 4 +- t/t9902-completion.sh | 1 - t/test-lib-functions.sh | 14 +++- t/test-lib.sh | 1 + 18 files changed, 228 insertions(+), 23 deletions(-) create mode 100644 t/helper/test-i18n.c
base-commit: 72c4083ddf91b489b7b7b812df67ee8842177d98
Published-As: https://github.com/gitgitgadget/git/releases/tag/pr-836%2Fdscho%2Fgettext-poison-should-rot13-v1
Fetch-It-Via: git fetch https://github.com/gitgitgadget/git pr-836/dscho/gettext-poison-should-rot13-v1
Pull-Request: https://github.com/gitgitgadget/git/pull/836
Signature · 1 line
gitgitgadget