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

Re: [PATCH 03/65] i18n: archive: mark parseopt strings for translation

From
Jonathan Nieder <jrnieder@gmail.com>
Date
May 30, 2012, 06:24 UTC
Message-ID
<20120530062424.GA19114@burratino>
In-Reply-To
<CACsJy8BvZSbsXyh3ct-M3rcWQf9Fw4VDX2VYVy+0Hv+53AQWnw@mail.gmail.com>
Nguyen Thai Ngoc Duy wrote:
>                             Or generate a poisoned .mo file, then make
> git use that.

Yes, I would like that very much. I had vague ideas of using some valid language code that doesn't correspond to a human language, but an alternate GIT_TEXTDOMAINDIR might be simpler and work better.

> Another thing is GETTEXT_POISON poisons too much. printf(_("this is
> %s\n"), path); is turned to "# GETTEXT POISON #". There's no way for
> test scripts to verify the correct "path" output.
Somes like a good change. ;)

"this is %s\n" could be translated to "poison(%s)" or even "THIS IS %s\n" to make it easy to recognize which string was poisoned.

When i18n plumbing was starting I thought this would be important and made a mental note to implement a rot13 function that preserves printf directives. In the end I have wanted it much less often than I thought I would. In tests that check the effect of commands on a repository, only checking the output of plumbing commands is just a good idea anyway. (But I can understand that preserving printf directives would be useful for people wanting to test the UI.)

UI tests are tricky. I can't imagine how a good test for translated request-pull that doesn't pick a particular language could work, for example.

Well, hopefully the above is amusing.  Sorry to ramble.

Thanks much again for this series --- the translated help makes it much easier to imagine git to be a native speaker in a locale where English is not the main language.

Jonathan
Previous: Nguyen Thai Ngoc DuyNext: Nguyen Thai Ngoc Duy
Message 72 of 87 in “Mark parseopt strings for translation”
  1. 00/65 Mark parseopt strings for translationNguyễn Thái Ngọc Duy, May 6, 2012
  2. 01/65 i18n: parseopt: lookup help and argument translations when showing usageNguyễn Thái Ngọc Duy, May 6, 2012
  3. 02/65 i18n: apply: mark parseopt strings for translationNguyễn Thái Ngọc Duy, May 6, 2012
  4. 03/65 i18n: archive: mark parseopt strings for translationNguyễn Thái Ngọc Duy, May 28, 2012
  5. 04/65 i18n: add: mark parseopt strings for translationNguyễn Thái Ngọc Duy, May 28, 2012
  6. 05/65 i18n: bisect--helper: mark parseopt strings for translationNguyễn Thái Ngọc Duy, May 28, 2012
  7. 06/65 i18n: blame: mark parseopt strings for translationNguyễn Thái Ngọc Duy, May 28, 2012
  8. 07/65 i18n: branch: mark parseopt strings for translationNguyễn Thái Ngọc Duy, May 28, 2012
  9. 08/65 i18n: cat-file: mark parseopt strings for translationNguyễn Thái Ngọc Duy, May 28, 2012
  10. 09/65 i18n: check-attr: mark parseopt strings for translationNguyễn Thái Ngọc Duy, May 28, 2012
  11. 10/65 i18n: checkout-index: mark parseopt strings for translationNguyễn Thái Ngọc Duy, May 28, 2012
  12. 11/65 i18n: checkout: mark parseopt strings for translationNguyễn Thái Ngọc Duy, May 28, 2012
  13. 12/65 i18n: cherry: mark parseopt strings for translationNguyễn Thái Ngọc Duy, May 28, 2012
  14. 13/65 i18n: clean: mark parseopt strings for translationNguyễn Thái Ngọc Duy, May 28, 2012
  15. 14/65 i18n: clone: mark parseopt strings for translationNguyễn Thái Ngọc Duy, May 28, 2012
  16. 15/65 i18n: column: mark parseopt strings for translationNguyễn Thái Ngọc Duy, May 28, 2012
  17. 16/65 i18n: commit: mark parseopt strings for translationNguyễn Thái Ngọc Duy, May 28, 2012
  18. 17/65 i18n: config: mark parseopt strings for translationNguyễn Thái Ngọc Duy, May 28, 2012
  19. 18/65 i18n: count-objects: mark parseopt strings for translationNguyễn Thái Ngọc Duy, May 28, 2012
  20. 19/65 i18n: describe: mark parseopt strings for translationNguyễn Thái Ngọc Duy, May 28, 2012
  21. 20/65 i18n: fast-export: mark parseopt strings for translationNguyễn Thái Ngọc Duy, May 28, 2012
  22. 21/65 i18n: fetch: mark parseopt strings for translationNguyễn Thái Ngọc Duy, May 28, 2012
  23. 22/65 i18n: fmt-merge-msg: mark parseopt strings for translationNguyễn Thái Ngọc Duy, May 28, 2012
  24. 23/65 i18n: for-each-ref: mark parseopt strings for translationNguyễn Thái Ngọc Duy, May 28, 2012
  25. 24/65 i18n: format-patch: mark parseopt strings for translationNguyễn Thái Ngọc Duy, May 28, 2012
  26. 25/65 i18n: fsck: mark parseopt strings for translationNguyễn Thái Ngọc Duy, May 28, 2012
  27. 26/65 i18n: gc: mark parseopt strings for translationNguyễn Thái Ngọc Duy, May 28, 2012
  28. 27/65 i18n: grep: mark parseopt strings for translationNguyễn Thái Ngọc Duy, May 28, 2012
  29. 28/65 i18n: hash-object: mark parseopt strings for translationNguyễn Thái Ngọc Duy, May 28, 2012
  30. 29/65 i18n: help: mark parseopt strings for translationNguyễn Thái Ngọc Duy, May 28, 2012
  31. 30/65 i18n: init-db: mark parseopt strings for translationNguyễn Thái Ngọc Duy, May 28, 2012
  32. 31/65 i18n: log: mark parseopt strings for translationNguyễn Thái Ngọc Duy, May 28, 2012
  33. 32/65 i18n: ls-files: mark parseopt strings for translationNguyễn Thái Ngọc Duy, May 28, 2012
  34. 33/65 i18n: ls-tree: mark parseopt strings for translationNguyễn Thái Ngọc Duy, May 28, 2012
  35. 34/65 i18n: merge-base: mark parseopt strings for translationNguyễn Thái Ngọc Duy, May 28, 2012
  36. 35/65 i18n: merge-file: mark parseopt strings for translationNguyễn Thái Ngọc Duy, May 28, 2012
  37. 36/65 i18n: merge: mark parseopt strings for translationNguyễn Thái Ngọc Duy, May 28, 2012
  38. 37/65 i18n: mktree: mark parseopt strings for translationNguyễn Thái Ngọc Duy, May 28, 2012
  39. 38/65 i18n: mv: mark parseopt strings for translationNguyễn Thái Ngọc Duy, May 28, 2012
  40. 39/65 i18n: name-rev: mark parseopt strings for translationNguyễn Thái Ngọc Duy, May 28, 2012
  41. 40/65 i18n: notes: mark parseopt strings for translationNguyễn Thái Ngọc Duy, May 28, 2012
  42. 41/65 i18n: pack-objects: mark parseopt strings for translationNguyễn Thái Ngọc Duy, May 28, 2012
  43. 42/65 i18n: pack-refs: mark parseopt strings for translationNguyễn Thái Ngọc Duy, May 28, 2012
  44. 43/65 i18n: prune-packed: mark parseopt strings for translationNguyễn Thái Ngọc Duy, May 28, 2012
  45. 44/65 i18n: prune: mark parseopt strings for translationNguyễn Thái Ngọc Duy, May 28, 2012
  46. 45/65 i18n: push: mark parseopt strings for translationNguyễn Thái Ngọc Duy, May 28, 2012
  47. 46/65 i18n: read-tree: mark parseopt strings for translationNguyễn Thái Ngọc Duy, May 28, 2012
  48. 47/65 i18n: remote: mark parseopt strings for translationNguyễn Thái Ngọc Duy, May 28, 2012
  49. 48/65 i18n: replace: mark parseopt strings for translationNguyễn Thái Ngọc Duy, May 28, 2012
  50. 49/65 i18n: status: mark parseopt strings for translationNguyễn Thái Ngọc Duy, May 28, 2012
  51. 50/65 i18n: rerere: mark parseopt strings for translationNguyễn Thái Ngọc Duy, May 28, 2012
  52. 51/65 i18n: reset: mark parseopt strings for translationNguyễn Thái Ngọc Duy, May 28, 2012
  53. 52/65 i18n: rev-parse: mark parseopt strings for translationNguyễn Thái Ngọc Duy, May 28, 2012
  54. 53/65 i18n: revert, cherry-pick: mark parseopt strings for translationNguyễn Thái Ngọc Duy, May 28, 2012
  55. 54/65 i18n: rm: mark parseopt strings for translationNguyễn Thái Ngọc Duy, May 28, 2012
  56. 55/65 i18n: shortlog: mark parseopt strings for translationNguyễn Thái Ngọc Duy, May 28, 2012
  57. 56/65 i18n: show-branch: mark parseopt strings for translationNguyễn Thái Ngọc Duy, May 28, 2012
  58. 57/65 i18n: show-ref: mark parseopt strings for translationNguyễn Thái Ngọc Duy, May 28, 2012
  59. 58/65 i18n: symbolic-ref: mark parseopt strings for translationNguyễn Thái Ngọc Duy, May 28, 2012
  60. 59/65 i18n: tag: mark parseopt strings for translationNguyễn Thái Ngọc Duy, May 28, 2012
  61. 60/65 i18n: update-index: mark parseopt strings for translationNguyễn Thái Ngọc Duy, May 28, 2012
  62. 61/65 i18n: update-ref: mark parseopt strings for translationNguyễn Thái Ngọc Duy, May 28, 2012
  63. 62/65 i18n: update-server-info: mark parseopt strings for translationNguyễn Thái Ngọc Duy, May 28, 2012
  64. 63/65 i18n: verify-pack: mark parseopt strings for translationNguyễn Thái Ngọc Duy, May 28, 2012
  65. 64/65 i18n: verify-tag: mark parseopt strings for translationNguyễn Thái Ngọc Duy, May 28, 2012
  66. 65/65 i18n: write-tree: mark parseopt strings for translationNguyễn Thái Ngọc Duy, May 28, 2012
  67. Jonathan NiederMay 28, 2012
  68. Nguyen Thai Ngoc DuyMay 29, 2012
  69. Jonathan NiederMay 29, 2012
  70. Junio C HamanoMay 29, 2012
  71. Nguyen Thai Ngoc DuyMay 30, 2012
  72. Jonathan NiederMay 30, 2012
  73. Nguyen Thai Ngoc DuyMay 30, 2012
  74. Nguyen Thai Ngoc DuyMay 30, 2012
  75. Junio C HamanoMay 29, 2012
  76. Jonathan NiederMay 29, 2012
  77. Junio C HamanoMay 29, 2012
  78. Nguyen Thai Ngoc DuyMay 30, 2012
  79. Nguyen Thai Ngoc DuyJun 2, 2012
  80. Jonathan NiederJun 2, 2012
  81. Nguyen Thai Ngoc DuyJun 7, 2012
  82. Jonathan NiederJun 7, 2012
  83. Nguyen Thai Ngoc DuyJun 7, 2012
  84. Jonathan NiederJun 7, 2012
  85. Junio C HamanoJun 7, 2012
  86. Junio C HamanoMay 8, 2012
  87. Nguyen Thai Ngoc DuyMay 18, 2012

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.