git/list[1] front-page[2] threads[3] people[4] search[5] about
 

[PATCH/RFC 12/17] gettext tests: test re-encoding with a UTF-8 msgid under Shell

From
Ævar Arnfjörð Bjarmason <avarab@gmail.com>
Date
Aug 30, 2010, 21:28 UTC
Message-ID
<1283203703-26923-13-git-send-email-avarab@gmail.com>
In-Reply-To
<1283203703-26923-1-git-send-email-avarab@gmail.com>

A test that tests that calling gettext on a UTF-8 msgid works, and that recoding the resulting string works too.

This test uses the --from-code=UTF-8 xgettext(1) argument introduced in an earlier patch.

This patch only tests the shellscript portion of our gettext interface. I can't get any of these tests to fail on any of the gettext implementations I have around, even without the previous patch to gettext.c. But having exhaustive tests in this area is good regardless.

Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
---
 po/is.po                           |    6 ++++++
 t/t0200/test.c                     |    3 +++
 t/t0204-gettext-reencode-sanity.sh |   21 +++++++++++++++++++++
 3 files changed, 30 insertions(+), 0 deletions(-)
diff --git a/po/is.po b/po/is.po
index 39b63b9..dfa3804 100644
--- a/po/is.po
+++ b/po/is.po
@@ -37,6 +37,12 @@ msgid "TEST: Old English Runes"
 msgstr "TILRAUN: ᚻᛖ ᚳᚹᚫᚦ ᚦᚫᛏ ᚻᛖ ᛒᚢᛞᛖ ᚩᚾ ᚦᚫᛗ ᛚᚪᚾᛞᛖ ᚾᚩᚱᚦᚹᛖᚪᚱᛞᚢᛗ ᚹᛁᚦ ᚦᚪ ᚹᛖᛥᚫ"
 
 #. TRANSLATORS: This is a test. You don't need to translate it.
+#: t/t0200/test.c:21
+#, c-format
+msgid "TEST: ‘single’ and “double” quotes"
+msgstr "TILRAUN: ‚einfaldar‘ og „tvöfaldar“ gæsalappir"
+
+#. TRANSLATORS: This is a test. You don't need to translate it.
 #: t/t0200/test.sh:8
 msgid "TEST: A Shell test string"
 msgstr "TILRAUN: Skeljartilraunastrengur"
diff --git a/t/t0200/test.c b/t/t0200/test.c
index 82682dc..ff15c2f 100644
--- a/t/t0200/test.c
+++ b/t/t0200/test.c
@@ -16,4 +16,7 @@ int main(void)
 
 	/* TRANSLATORS: This is a test. You don't need to translate it. */
 	printf(_("TEST: Old English Runes"));
+
+	/* TRANSLATORS: This is a test. You don't need to translate it. */
+	printf(_("TEST: ‘single’ and “double” quotes"));
 }
diff --git a/t/t0204-gettext-reencode-sanity.sh b/t/t0204-gettext-reencode-sanity.sh
index 3222e37..1a7ea37 100755
--- a/t/t0204-gettext-reencode-sanity.sh
+++ b/t/t0204-gettext-reencode-sanity.sh
@@ -40,4 +40,25 @@ test_expect_success GETTEXT_ISO_LOCALE 'gettext: Emitting ISO-8859-1 from our UT
 	fi
 '
 
+test_expect_success GETTEXT_LOCALE 'gettext: Fetching a UTF-8 msgid -> UTF-8' '
+    printf "TILRAUN: ‚einfaldar‘ og „tvöfaldar“ gæsalappir" >expect &&
+    LANGUAGE=is LC_ALL="$is_IS_locale" gettext "TEST: ‘single’ and “double” quotes" >actual &&
+    test_cmp expect actual
+'
+
+# How these quotes get transliterated depends on the gettext implementation:
+#
+#   Debian:  ,einfaldar' og ,,tvöfaldar" [GNU libintl]
+#   FreeBSD: `einfaldar` og "tvöfaldar"  [GNU libintl]
+#   Solaris: ?einfaldar? og ?tvöfaldar?  [Solaris libintl]
+#
+# Just make sure the contents are transliterated, and don't use grep -q
+# so that these differences are emitted under --verbose for curious
+# eyes.
+test_expect_success GETTEXT_ISO_LOCALE 'gettext: Fetching a UTF-8 msgid -> ISO-8859-1' '
+    LANGUAGE=is LC_ALL="$is_IS_iso_locale" gettext "TEST: ‘single’ and “double” quotes" >actual &&
+    grep "einfaldar" actual &&
+    grep "$(echo tvöfaldar | iconv -f UTF-8 -t ISO8859-1)" actual
+'
+
 test_done
-- 
1.7.2.2.536.g3f548
Previous: Ævar Arnfjörð BjarmasonNext: Ævar Arnfjörð Bjarmason
Message 30 of 55 in “Begin gettextizing Git”
  1. 00/17 Begin gettextizing GitÆvar Arnfjörð Bjarmason, Aug 30, 2010
  2. 01/17 Makefile: A variable for options used by xgettext(1) callsÆvar Arnfjörð Bjarmason, Aug 30, 2010
  3. Jonathan NiederAug 31, 2010
  4. Ævar Arnfjörð BjarmasonAug 31, 2010
  5. 02/17 Makefile: provide a --msgid-bugs-address to xgettext(1)Ævar Arnfjörð Bjarmason, Aug 30, 2010
  6. 03/17 Makefile: tell xgettext(1) that our source is in UTF-8Ævar Arnfjörð Bjarmason, Aug 30, 2010
  7. 04/17 builtin.h: Include gettext.hÆvar Arnfjörð Bjarmason, Aug 30, 2010
  8. 05/17 gettext: make the simple parts of git-init localizableÆvar Arnfjörð Bjarmason, Aug 30, 2010
  9. Jonathan NiederAug 31, 2010
  10. Ævar Arnfjörð BjarmasonAug 31, 2010
  11. Jonathan NiederAug 31, 2010
  12. Ævar Arnfjörð BjarmasonAug 31, 2010
  13. Jonathan NiederAug 31, 2010
  14. Junio C HamanoAug 31, 2010
  15. 06/17 gettext: localize the main git-init messageÆvar Arnfjörð Bjarmason, Aug 30, 2010
  16. Jonathan NiederAug 31, 2010
  17. Ævar Arnfjörð BjarmasonAug 31, 2010
  18. Jonathan NiederAug 31, 2010
  19. 07/17 gettext.c: work around us not using setlocale(LC_CTYPE, "")Ævar Arnfjörð Bjarmason, Aug 30, 2010
  20. Jonathan NiederAug 31, 2010
  21. Marcin CieslakAug 31, 2010
  22. Jonathan NiederAug 31, 2010
  23. Ævar Arnfjörð BjarmasonAug 31, 2010
  24. Jonathan NiederAug 31, 2010
  25. Erik Faye-LundAug 31, 2010
  26. 08/17 gettext tests: test if $VERSION exists before using itÆvar Arnfjörð Bjarmason, Aug 30, 2010
  27. 09/17 gettext tests: update test/is.po to match t/t0200/test.cÆvar Arnfjörð Bjarmason, Aug 30, 2010
  28. 10/17 gettext tests: add detection for is_IS.ISO-8859-1 localeÆvar Arnfjörð Bjarmason, Aug 30, 2010
  29. 11/17 gettext tests: test message re-encoding under ShellÆvar Arnfjörð Bjarmason, Aug 30, 2010
  30. 12/17 gettext tests: test re-encoding with a UTF-8 msgid under ShellÆvar Arnfjörð Bjarmason, Aug 30, 2010
  31. 13/17 gettext tests: mark a test message as not needing translationÆvar Arnfjörð Bjarmason, Aug 30, 2010
  32. 14/17 po/is.po: msgmerge and add Language: headerÆvar Arnfjörð Bjarmason, Aug 30, 2010
  33. 15/17 po/is.po: add Icelandic translationÆvar Arnfjörð Bjarmason, Aug 30, 2010
  34. Jonathan NiederAug 31, 2010
  35. Ævar Arnfjörð BjarmasonAug 31, 2010
  36. Erik Faye-LundAug 31, 2010
  37. Ævar Arnfjörð BjarmasonAug 31, 2010
  38. Erik Faye-LundAug 31, 2010
  39. 16/17 po/pl.po: add Polish translationÆvar Arnfjörð Bjarmason, Aug 30, 2010
  40. 17/17 gettext tests: test message re-encoding under CÆvar Arnfjörð Bjarmason, Aug 30, 2010
  41. Junio C HamanoAug 30, 2010
  42. gettext: Make NO_GETTEXT=YesPlease the default in releasesÆvar Arnfjörð Bjarmason, Aug 31, 2010
  43. Ævar Arnfjörð BjarmasonAug 31, 2010
  44. Jonathan NiederAug 31, 2010
  45. Ævar Arnfjörð BjarmasonAug 31, 2010
  46. Jonathan NiederAug 31, 2010
  47. Ævar Arnfjörð BjarmasonAug 31, 2010
  48. Jonathan NiederAug 31, 2010
  49. Peter KreftingAug 31, 2010
  50. Ævar Arnfjörð BjarmasonAug 31, 2010
  51. Peter KreftingAug 31, 2010
  52. Matthieu MoyAug 31, 2010
  53. Ævar Arnfjörð BjarmasonAug 31, 2010
  54. Jonathan NiederAug 31, 2010
  55. Ævar Arnfjörð BjarmasonAug 31, 2010

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.