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

[PATCH v4 0/9] Incremental po/git.pot update and new l10n workflow

From
Jiang Xin <worldhello.net@gmail.com>
Date
May 23, 2022, 15:21 UTC
Message-ID
<20220523152128.26380-1-worldhello.net@gmail.com>
In-Reply-To
<20220523012531.4505-1-worldhello.net@gmail.com>
From: Jiang Xin <zhiyou.jx@alibaba-inc.com>
Changes since v3:
1. Remove Junio's s-o-b introduced in v3.
2. Reword patch 1/9, 2/9 and 3/9.
3. Patch 6/9: should remove "po/git.pot" in "clean" instead of "distclean".
4. Patch 8/9: forget to remove "po/git-core.pot".
Range-diff vs v3:
 1:  362cd0cbe1 !  1:  325868b993 Makefile: sort "po/git.pot" by file location
    @@ Metadata
      ## Commit message ##
         Makefile: sort "po/git.pot" by file location
     
    -    We will feed xgettext with more C souce files and in different order in
    -    subsequent commit. To generate a stable "po/git.pot" regardless of the
    -    number and order of input source files, we add a new option
    +    We will feed xgettext with more C source files and in different order
    +    in subsequent commit. To generate a stable "po/git.pot" regardless of
    +    the number and order of input source files, we pass the option
         "--sort-by-file" to xgettext program.
     
    -    With this update, the newly generated "po/git.pot" will has the same
    +    With this update, the newly generated "po/git.pot" will have the same
         entries while in a different order.
     
         With the help of a custom diff driver as shown below,
    @@ Commit message
             git config --global diff.gettext-fmt.textconv \
                 "msgcat --no-location --sort-by-file"
     
    -    and appending a new entry "*.po diff=gettext-fmt" to git attributes,
    +    and appending a new entry "*.pot diff=gettext-fmt" to git attributes,
         we can see that there are no substantial changes in "po/git.pot".
     
         We won't checkin the newly generated "po/git.pot", because we will
         remove it from tree in a later commit.
     
         Signed-off-by: Jiang Xin <zhiyou.jx@alibaba-inc.com>
    -    Signed-off-by: Junio C Hamano <gitster@pobox.com>
     
      ## Makefile ##
     @@ Makefile: XGETTEXT_FLAGS = \
 2:  096e700171 !  2:  acf2f62e66 Makefile: generate "po/git.pot" from stable LOCALIZED_C
    @@ Metadata
      ## Commit message ##
         Makefile: generate "po/git.pot" from stable LOCALIZED_C
     
    -    When running "make pot" on different platform, we may get a different
    -    message template file "po/git.pot". This is because the "LOCALIZED_C"
    -    variable may have different C source files on different platforms or
    -    different compiler conditions.
    -
    -    We can make a stable "LOCALIZED_C" variable by applying patch snippets
    -    as follows:
    -
    -         ifdef NO_LIBGEN_H
    -             COMPAT_CFLAGS += -DNO_LIBGEN_H
    -             COMPAT_OBJS += compat/basename.o
    -        +else
    -        +    LOCALIZED_C += compat/basename.c
    -         endif
    -
    -    But it is much simpler to use variables "$(FOUND_C_SOURCES)" and
    -    "$(FOUND_C_SOURCES)" to form a stable "LOCALIZED_C". We also add
    -    "$(SCALAR_SOURCES)" files, which are part of C_OBJ but not included in
    -    "$(FOUND_C_SOURCES)" because they are in the "contrib/" directory.
    +    Different users may generate a different message template file
    +    "po/git.pot". This is because the POT file is generated from
    +    "$(LOCALIZED_C)", which is supposed to list all the sources that we
    +    extract the strings to be translated from. But "$(LOCALIZED_C)"
    +    includes "$(C_OBJ)", which only lists the source files used in the
    +    current build for a specific platform and specific compiler
    +    conditions.
    +
    +    Instead of using "$(C_OBJ)", we use "$(FOUND_C_SOURCES)", which lists
    +    all source files we keep track of (or ship in a tarball extract), to
    +    form a stable "LOCALIZED_C". We also add "$(SCALAR_SOURCES)", which
    +    is part of "$(C_OBJ)" but not included in "$(FOUND_C_SOURCES)".
     
         With this update, the newly generated "po/git.pot" will have 30 new
         entries coming from the following C source files:
    @@ Commit message
          * compat/simple-ipc/ipc-win32.c
     
         Signed-off-by: Jiang Xin <zhiyou.jx@alibaba-inc.com>
    -    Signed-off-by: Junio C Hamano <gitster@pobox.com>
     
      ## Makefile ##
     @@ Makefile: XGETTEXT_FLAGS_SH = $(XGETTEXT_FLAGS) --language=Shell \
 3:  dff3751260 !  3:  775c37bc69 Makefile: have "make pot" not "reset --hard"
    @@ Commit message
         Makefile: have "make pot" not "reset --hard"
     
         Before commit fc0fd5b23b (Makefile: help gettext tools to cope with our
    -    custom PRItime format, 2017-07-20) we'd consider source files as-is
    +    custom PRItime format, 2017-07-20), we'd consider source files as-is
         with gettext, but because we need to understand PRItime in the same way
    -    that gettext itself understands PRIuMAX we'd first check if we had a
    +    that gettext itself understands PRIuMAX, we'd first check if we had a
         clean checkout, then munge all of the processed files in-place with
         "sed", generate "po/git.pot", and then finally "reset --hard" to undo
         our changes.
    @@ Commit message
     
         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>
     
      ## .gitignore ##
     @@
 4:  1b7efb21ae !  4:  55ee049b0a i18n CI: stop allowing non-ASCII source messages in po/git.pot
    @@ Commit message
     
         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 ##
     @@ Makefile: XGETTEXT_FLAGS = \
 5:  8ce274b31f =  5:  69338521aa po/git.pot: this is now a generated file
 6:  4585be63f7 !  6:  6f80bd0461 po/git.pot: don't check in result of "make pot"
    @@ Commit message
     
         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 ##
     @@ Makefile: endef
    @@ Makefile: endef
      
      .PHONY: pot
      pot: po/git.pot
    -@@ Makefile: dist-doc: git$X
    +@@ Makefile: cocciclean:
      
    - distclean: clean
    - 	$(RM) configure
    + clean: profile-clean coverage-clean cocciclean
    + 	$(RM) -r .build
     +	$(RM) po/git.pot
    - 	$(RM) config.log config.status config.cache
    - 	$(RM) config.mak.autogen config.mak.append
    - 	$(RM) -r autom4te.cache
    + 	$(RM) *.res
    + 	$(RM) $(OBJECTS)
    + 	$(RM) $(LIB_FILE) $(XDIFF_LIB) $(REFTABLE_LIB) $(REFTABLE_TEST_LIB)
     
      ## po/.gitignore ##
     @@
 7:  b8f43b520c !  7:  5cd2c0741d Makefile: add "po-update" rule to update po/XX.po
    @@ Commit message
             $ make po-update PO_FILE=po/zh_CN.po
     
         Signed-off-by: Jiang Xin <zhiyou.jx@alibaba-inc.com>
    -    Signed-off-by: Junio C Hamano <gitster@pobox.com>
     
      ## Makefile ##
     @@ Makefile: TCLTK_PATH = wish
 8:  019633c7a4 !  8:  246720695a Makefile: add "po-init" rule to initialize po/XX.po
    @@ Commit message
         [^1]: https://github.com/git-l10n/git-po-helper/
     
         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 ##
     @@ Makefile: po-update: po/git.pot
    @@ Makefile: po-update: po/git.pot
      ifdef NO_GETTEXT
      POFILES :=
      MOFILES :=
    +@@ Makefile: cocciclean:
    + 
    + clean: profile-clean coverage-clean cocciclean
    + 	$(RM) -r .build
    +-	$(RM) po/git.pot
    ++	$(RM) po/git.pot po/git-core.pot
    + 	$(RM) *.res
    + 	$(RM) $(OBJECTS)
    + 	$(RM) $(LIB_FILE) $(XDIFF_LIB) $(REFTABLE_LIB) $(REFTABLE_TEST_LIB)
     
      ## po/.gitignore ##
     @@
 9:  334117bf48 !  9:  131f52ac3a l10n: Document the new l10n workflow
    @@ Commit message
     
         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>
     
      ## po/README.md ##
     @@ po/README.md: coordinates our localization effort in the l10 coordinator repository:
---
Jiang Xin (4):
  Makefile: sort "po/git.pot" by file location
  Makefile: generate "po/git.pot" from stable LOCALIZED_C
  po/git.pot: this is now a generated file
  Makefile: add "po-update" rule to update po/XX.po
Ævar Arnfjörð Bjarmason (5):
  Makefile: have "make pot" not "reset --hard"
  i18n CI: stop allowing non-ASCII source messages in po/git.pot
  po/git.pot: don't check in result of "make pot"
  Makefile: add "po-init" rule to initialize po/XX.po
  l10n: Document the new l10n workflow
 .gitignore                  |     1 +
 Makefile                    |   148 +-
 builtin/submodule--helper.c |     2 +-
 ci/run-static-analysis.sh   |     2 +
 po/.gitignore               |     2 +
 po/README.md                |   230 +-
 po/git.pot                  | 25151 ----------------------------------
 shared.mak                  |     2 +
 8 files changed, 250 insertions(+), 25288 deletions(-)
 delete mode 100644 po/git.pot
-- 
2.36.0.1.g15c4090757
Previous: Jiang XinNext: Junio C Hamano
Message 35 of 110 in “Incremental po/git.pot update and new l10n workflow”
  1. 0/9 Incremental po/git.pot update and new l10n workflowJiang Xin, May 3, 2022
  2. 1/9 Makefile: sort "po/git.pot" by file locationJiang Xin, May 3, 2022
  3. 2/9 Makefile: generate "po/git.pot" from stable LOCALIZED_CJiang Xin, May 3, 2022
  4. 5/9 po/git.pot: don't check in result of "make pot"Jiang Xin, May 3, 2022
  5. 3/9 Makefile: have "make pot" not "reset --hard"Jiang Xin, May 3, 2022
  6. 7/9 Makefile: add "po-update" rule to update po/XX.poJiang Xin, May 3, 2022
  7. 9/9 l10n: Document the new l10n workflowJiang Xin, May 3, 2022
  8. 8/9 Makefile: add "po-init" rule to initialize po/XX.poJiang Xin, May 3, 2022
  9. 4/9 i18n CI: stop allowing non-ASCII source messages in po/git.potJiang Xin, May 3, 2022
  10. 6/9 po/git.pot: remove this now generated file, see preceding commitJiang Xin, May 3, 2022
  11. Peter KreftingMay 3, 2022
  12. Jiang XinMay 4, 2022
  13. Junio C HamanoMay 4, 2022
  14. Daniel SantosMay 4, 2022
  15. Jiang XinMay 5, 2022
  16. Daniel SantosMay 5, 2022
  17. Junio C HamanoMay 5, 2022
  18. Jiang XinMay 6, 2022
  19. Jiang XinMay 5, 2022
  20. Junio C HamanoMay 4, 2022
  21. 1/9 Makefile: sort "po/git.pot" by file locationJiang Xin, May 19, 2022
  22. Ævar Arnfjörð BjarmasonMay 19, 2022
  23. Jiang XinMay 19, 2022
  24. 0/9 Incremental po/git.pot update and new l10n workflowJiang Xin, May 19, 2022
  25. Ævar Arnfjörð BjarmasonMay 19, 2022
  26. Jiang XinMay 19, 2022
  27. Ævar Arnfjörð BjarmasonMay 19, 2022
  28. 0/9 Incremental po/git.pot update and new l10n workflowJiang Xin, May 23, 2022
  29. Ævar Arnfjörð BjarmasonMay 23, 2022
  30. Ævar Arnfjörð BjarmasonMay 23, 2022
  31. Jiang XinMay 23, 2022
  32. Ævar Arnfjörð BjarmasonMay 23, 2022
  33. Jiang XinMay 23, 2022
  34. Jiang XinMay 23, 2022
  35. 0/9 Incremental po/git.pot update and new l10n workflowJiang Xin, May 23, 2022
  36. Junio C HamanoMay 23, 2022
  37. 01/10 Makefile: sort source files before feeding to xgettextJiang Xin, May 26, 2022
  38. 00/10 Incremental po/git.pot update and new l10n workflowJiang Xin, May 26, 2022
  39. 02/10 Makefile: generate "po/git.pot" from stable LOCALIZED_CJiang Xin, May 26, 2022
  40. 10/10 l10n: Document the new l10n workflowJiang Xin, May 26, 2022
  41. 06/10 po/git.pot: this is now a generated fileJiang Xin, May 26, 2022
  42. Junio C HamanoMay 26, 2022
  43. 04/10 i18n CI: stop allowing non-ASCII source messages in po/git.potJiang Xin, May 26, 2022
  44. 05/10 Makefile: remove duplicate and unwanted files in FOUND_SOURCE_FILESJiang Xin, May 26, 2022
  45. 08/10 Makefile: add "po-update" rule to update po/XX.poJiang Xin, May 26, 2022
  46. 07/10 po/git.pot: don't check in result of "make pot"Jiang Xin, May 26, 2022
  47. 09/10 Makefile: add "po-init" rule to initialize po/XX.poJiang Xin, May 26, 2022
  48. 03/10 Makefile: have "make pot" not "reset --hard"Jiang Xin, May 26, 2022
  49. 2/9 Makefile: generate "po/git.pot" from stable LOCALIZED_CJiang Xin, May 23, 2022
  50. 7/9 Makefile: add "po-update" rule to update po/XX.poJiang Xin, May 23, 2022
  51. 1/9 Makefile: sort "po/git.pot" by file locationJiang Xin, May 23, 2022
  52. 4/9 i18n CI: stop allowing non-ASCII source messages in po/git.potJiang Xin, May 23, 2022
  53. 3/9 Makefile: have "make pot" not "reset --hard"Jiang Xin, May 23, 2022
  54. Junio C HamanoMay 25, 2022
  55. Junio C HamanoMay 25, 2022
  56. Jiang XinMay 26, 2022
  57. Makefile: dedup git-ls-files output to prevent duplicate targetsJiang Xin, May 26, 2022
  58. Junio C HamanoMay 26, 2022
  59. Jiang XinMay 26, 2022
  60. Junio C HamanoMay 26, 2022
  61. Jiang XinMay 26, 2022
  62. Ævar Arnfjörð BjarmasonMay 26, 2022
  63. Jiang XinMay 26, 2022
  64. Junio C HamanoMay 26, 2022
  65. Ævar Arnfjörð BjarmasonMay 26, 2022
  66. Junio C HamanoMay 26, 2022
  67. Ævar Arnfjörð BjarmasonMay 26, 2022
  68. 6/9 po/git.pot: don't check in result of "make pot"Jiang Xin, May 23, 2022
  69. 5/9 po/git.pot: this is now a generated fileJiang Xin, May 23, 2022
  70. 9/9 l10n: Document the new l10n workflowJiang Xin, May 23, 2022
  71. 8/9 Makefile: add "po-init" rule to initialize po/XX.poJiang Xin, May 23, 2022
  72. 1/9 Makefile: sort "po/git.pot" by file locationJiang Xin, May 23, 2022
  73. Junio C HamanoMay 23, 2022
  74. Jiang XinMay 23, 2022
  75. 2/9 Makefile: generate "po/git.pot" from stable LOCALIZED_CJiang Xin, May 23, 2022
  76. Junio C HamanoMay 23, 2022
  77. 9/9 l10n: Document the new l10n workflowJiang Xin, May 23, 2022
  78. 7/9 Makefile: add "po-update" rule to update po/XX.poJiang Xin, May 23, 2022
  79. 8/9 Makefile: add "po-init" rule to initialize po/XX.poJiang Xin, May 23, 2022
  80. 3/9 Makefile: have "make pot" not "reset --hard"Jiang Xin, May 23, 2022
  81. Ævar Arnfjörð BjarmasonMay 23, 2022
  82. Jiang XinMay 23, 2022
  83. Jiang XinMay 24, 2022
  84. Junio C HamanoMay 23, 2022
  85. Jiang XinMay 23, 2022
  86. 4/9 i18n CI: stop allowing non-ASCII source messages in po/git.potJiang Xin, May 23, 2022
  87. 6/9 po/git.pot: don't check in result of "make pot"Jiang Xin, May 23, 2022
  88. Ævar Arnfjörð BjarmasonMay 23, 2022
  89. Jiang XinMay 23, 2022
  90. Jiang XinMay 23, 2022
  91. Ævar Arnfjörð BjarmasonMay 23, 2022
  92. 5/9 po/git.pot: this is now a generated fileJiang Xin, May 23, 2022
  93. 2/9 Makefile: generate "po/git.pot" from stable LOCALIZED_CJiang Xin, May 19, 2022
  94. Ævar Arnfjörð BjarmasonMay 19, 2022
  95. Jiang XinMay 19, 2022
  96. 3/9 Makefile: have "make pot" not "reset --hard"Jiang Xin, May 19, 2022
  97. Ævar Arnfjörð BjarmasonMay 19, 2022
  98. Jiang XinMay 19, 2022
  99. Ævar Arnfjörð BjarmasonMay 19, 2022
  100. 5/9 po/git.pot: this is now a generated fileJiang Xin, May 19, 2022
  101. 7/9 Makefile: add "po-update" rule to update po/XX.poJiang Xin, May 19, 2022
  102. Ævar Arnfjörð BjarmasonMay 19, 2022
  103. 6/9 po/git.pot: don't check in result of "make pot"Jiang Xin, May 19, 2022
  104. 8/9 Makefile: add "po-init" rule to initialize po/XX.poJiang Xin, May 19, 2022
  105. Ævar Arnfjörð BjarmasonMay 19, 2022
  106. 9/9 l10n: Document the new l10n workflowJiang Xin, May 19, 2022
  107. Junio C HamanoMay 19, 2022
  108. Jiang XinMay 21, 2022
  109. 4/9 i18n CI: stop allowing non-ASCII source messages in po/git.potJiang Xin, May 19, 2022
  110. Ævar Arnfjörð BjarmasonMay 19, 2022

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.