All of lore.kernel.org
 help / color / mirror / Atom feed
From: Jiang Xin <worldhello.net@gmail.com>
To: "Ævar Arnfjörð Bjarmason" <avarab@gmail.com>,
	"Junio C Hamano" <gitster@pobox.com>,
	"Git List" <git@vger.kernel.org>
Cc: "Jiang Xin" <zhiyou.jx@alibaba-inc.com>,
	"Alexander Shopov" <ash@kambanaria.org>,
	"Jordi Mas" <jmas@softcatala.org>,
	"Matthias Rüster" <matthias.ruester@gmail.com>,
	"Jimmy Angelakos" <vyruss@hellug.gr>,
	"Christopher Díaz" <christopher.diaz.riv@gmail.com>,
	"Jean-Noël Avila" <jn.avila@free.fr>,
	"Bagas Sanjaya" <bagasdotme@gmail.com>,
	"Alessandro Menti" <alessandro.menti@alessandromenti.it>,
	"Gwan-gyeong Mun" <elongbug@gmail.com>, Arusekk <arek_koz@o2.pl>,
	"Daniel Santos" <dacs.git@brilhante.top>,
	"Dimitriy Ryazantcev" <DJm00n@mail.ru>,
	"Peter Krefting" <peter@softwolves.pp.se>,
	"Emir SARI" <bitigchi@me.com>,
	"Trần Ngọc Quân" <vnwildman@gmail.com>,
	"Fangyi Zhou" <me@fangyi.io>, "Yi-Jyun Pan" <pan93412@gmail.com>,
	"Jiang Xin" <worldhello.net@gmail.com>
Subject: [PATCH v4 0/9] Incremental po/git.pot update and new l10n workflow
Date: Mon, 23 May 2022 23:21:19 +0800	[thread overview]
Message-ID: <20220523152128.26380-1-worldhello.net@gmail.com> (raw)
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


  parent reply	other threads:[~2022-05-23 15:21 UTC|newest]

Thread overview: 110+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-05-03 13:23 [PATCH 0/9] Incremental po/git.pot update and new l10n workflow Jiang Xin
2022-05-03 13:23 ` [PATCH 1/9] Makefile: sort "po/git.pot" by file location Jiang Xin
2022-05-03 13:23 ` [PATCH 2/9] Makefile: generate "po/git.pot" from stable LOCALIZED_C Jiang Xin
2022-05-03 13:23 ` [PATCH 3/9] Makefile: have "make pot" not "reset --hard" Jiang Xin
2022-05-03 13:23 ` [PATCH 4/9] i18n CI: stop allowing non-ASCII source messages in po/git.pot Jiang Xin
2022-05-03 13:23 ` [PATCH 5/9] po/git.pot: don't check in result of "make pot" Jiang Xin
2022-05-03 13:23 ` [PATCH 6/9] po/git.pot: remove this now generated file, see preceding commit Jiang Xin
2022-05-03 13:23 ` [PATCH 7/9] Makefile: add "po-update" rule to update po/XX.po Jiang Xin
2022-05-03 13:23 ` [PATCH 8/9] Makefile: add "po-init" rule to initialize po/XX.po Jiang Xin
2022-05-03 13:23 ` [PATCH 9/9] l10n: Document the new l10n workflow Jiang Xin
2022-05-03 14:07 ` [PATCH 0/9] Incremental po/git.pot update and " Peter Krefting
2022-05-04 12:41   ` Jiang Xin
2022-05-04 14:35 ` Junio C Hamano
2022-05-04 14:51   ` Daniel Santos
2022-05-05  0:20     ` Jiang Xin
2022-05-05 22:00       ` Daniel Santos
2022-05-05 22:49         ` Junio C Hamano
2022-05-06  0:50         ` Jiang Xin
2022-05-05  0:07   ` Jiang Xin
2022-05-04 17:58 ` Junio C Hamano
2022-05-19  8:15 ` [PATCH v2 " Jiang Xin
2022-05-19 10:28   ` Ævar Arnfjörð Bjarmason
2022-05-19 14:32     ` Jiang Xin
2022-05-19 14:41       ` Ævar Arnfjörð Bjarmason
2022-05-23  1:25   ` [PATCH v3 " Jiang Xin
2022-05-23  7:15     ` Ævar Arnfjörð Bjarmason
2022-05-23  8:12       ` Ævar Arnfjörð Bjarmason
2022-05-23 13:42         ` Jiang Xin
2022-05-23 14:38           ` Ævar Arnfjörð Bjarmason
2022-05-23 16:13             ` Jiang Xin
2022-05-23  8:26       ` Jiang Xin
2022-05-23 15:21     ` Jiang Xin [this message]
2022-05-23 18:19       ` [PATCH v4 " Junio C Hamano
2022-05-26 14:50       ` [PATCH v5 00/10] " Jiang Xin
2022-05-26 14:50       ` [PATCH v5 01/10] Makefile: sort source files before feeding to xgettext Jiang Xin
2022-05-26 14:50       ` [PATCH v5 02/10] Makefile: generate "po/git.pot" from stable LOCALIZED_C Jiang Xin
2022-05-26 14:50       ` [PATCH v5 03/10] Makefile: have "make pot" not "reset --hard" Jiang Xin
2022-05-26 14:50       ` [PATCH v5 04/10] i18n CI: stop allowing non-ASCII source messages in po/git.pot Jiang Xin
2022-05-26 14:50       ` [PATCH v5 05/10] Makefile: remove duplicate and unwanted files in FOUND_SOURCE_FILES Jiang Xin
2022-05-26 14:50       ` [PATCH v5 06/10] po/git.pot: this is now a generated file Jiang Xin
2022-05-26 17:32         ` Junio C Hamano
2022-05-26 14:50       ` [PATCH v5 07/10] po/git.pot: don't check in result of "make pot" Jiang Xin
2022-05-26 14:50       ` [PATCH v5 08/10] Makefile: add "po-update" rule to update po/XX.po Jiang Xin
2022-05-26 14:50       ` [PATCH v5 09/10] Makefile: add "po-init" rule to initialize po/XX.po Jiang Xin
2022-05-26 14:50       ` [PATCH v5 10/10] l10n: Document the new l10n workflow Jiang Xin
2022-05-23 15:21     ` [PATCH v4 1/9] Makefile: sort "po/git.pot" by file location Jiang Xin
2022-05-23 15:21     ` [PATCH v4 2/9] Makefile: generate "po/git.pot" from stable LOCALIZED_C Jiang Xin
2022-05-23 15:21     ` [PATCH v4 3/9] Makefile: have "make pot" not "reset --hard" Jiang Xin
2022-05-25 22:19       ` Junio C Hamano
2022-05-25 22:24         ` Junio C Hamano
2022-05-26  1:10           ` Jiang Xin
2022-05-26  2:15           ` [PATCH] Makefile: dedup git-ls-files output to prevent duplicate targets Jiang Xin
2022-05-26  4:02             ` Junio C Hamano
2022-05-26  6:06               ` Jiang Xin
2022-05-26  6:23                 ` Junio C Hamano
2022-05-26  7:04                   ` Jiang Xin
2022-05-26 10:00                     ` Ævar Arnfjörð Bjarmason
2022-05-26 11:06                       ` Jiang Xin
2022-05-26 17:18                       ` Junio C Hamano
2022-05-26 18:25                         ` Ævar Arnfjörð Bjarmason
2022-05-26 19:00                           ` Junio C Hamano
2022-05-26 19:17                             ` Ævar Arnfjörð Bjarmason
2022-05-23 15:21     ` [PATCH v4 4/9] i18n CI: stop allowing non-ASCII source messages in po/git.pot Jiang Xin
2022-05-23 15:21     ` [PATCH v4 5/9] po/git.pot: this is now a generated file Jiang Xin
2022-05-23 15:21     ` [PATCH v4 6/9] po/git.pot: don't check in result of "make pot" Jiang Xin
2022-05-23 15:21     ` [PATCH v4 7/9] Makefile: add "po-update" rule to update po/XX.po Jiang Xin
2022-05-23 15:21     ` [PATCH v4 8/9] Makefile: add "po-init" rule to initialize po/XX.po Jiang Xin
2022-05-23 15:21     ` [PATCH v4 9/9] l10n: Document the new l10n workflow Jiang Xin
2022-05-23  1:25   ` [PATCH v3 1/9] Makefile: sort "po/git.pot" by file location Jiang Xin
2022-05-23  8:05     ` Junio C Hamano
2022-05-23  8:50       ` Jiang Xin
2022-05-23  1:25   ` [PATCH v3 2/9] Makefile: generate "po/git.pot" from stable LOCALIZED_C Jiang Xin
2022-05-23  8:05     ` Junio C Hamano
2022-05-23  1:25   ` [PATCH v3 3/9] Makefile: have "make pot" not "reset --hard" Jiang Xin
2022-05-23  7:28     ` Ævar Arnfjörð Bjarmason
2022-05-23 15:00       ` Jiang Xin
2022-05-24  0:56       ` Jiang Xin
2022-05-23  8:15     ` Junio C Hamano
2022-05-23  9:37       ` Jiang Xin
2022-05-23  1:25   ` [PATCH v3 4/9] i18n CI: stop allowing non-ASCII source messages in po/git.pot Jiang Xin
2022-05-23  1:25   ` [PATCH v3 5/9] po/git.pot: this is now a generated file Jiang Xin
2022-05-23  1:25   ` [PATCH v3 6/9] po/git.pot: don't check in result of "make pot" Jiang Xin
2022-05-23  7:26     ` Ævar Arnfjörð Bjarmason
2022-05-23  8:30       ` Jiang Xin
2022-05-23  8:35         ` Jiang Xin
2022-05-23  9:28         ` Ævar Arnfjörð Bjarmason
2022-05-23  1:25   ` [PATCH v3 7/9] Makefile: add "po-update" rule to update po/XX.po Jiang Xin
2022-05-23  1:25   ` [PATCH v3 8/9] Makefile: add "po-init" rule to initialize po/XX.po Jiang Xin
2022-05-23  1:25   ` [PATCH v3 9/9] l10n: Document the new l10n workflow Jiang Xin
2022-05-19  8:15 ` [PATCH v2 1/9] Makefile: sort "po/git.pot" by file location Jiang Xin
2022-05-19  8:53   ` Ævar Arnfjörð Bjarmason
2022-05-19 12:41     ` Jiang Xin
2022-05-19  8:15 ` [PATCH v2 2/9] Makefile: generate "po/git.pot" from stable LOCALIZED_C Jiang Xin
2022-05-19  9:18   ` Ævar Arnfjörð Bjarmason
2022-05-19 12:48     ` Jiang Xin
2022-05-19  8:15 ` [PATCH v2 3/9] Makefile: have "make pot" not "reset --hard" Jiang Xin
2022-05-19  9:43   ` Ævar Arnfjörð Bjarmason
2022-05-19 13:19     ` Jiang Xin
2022-05-19 14:06       ` Ævar Arnfjörð Bjarmason
2022-05-19  8:15 ` [PATCH v2 4/9] i18n CI: stop allowing non-ASCII source messages in po/git.pot Jiang Xin
2022-05-19 10:02   ` Ævar Arnfjörð Bjarmason
2022-05-19  8:15 ` [PATCH v2 5/9] po/git.pot: this is now a generated file Jiang Xin
2022-05-19  8:15 ` [PATCH v2 6/9] po/git.pot: don't check in result of "make pot" Jiang Xin
2022-05-19  8:15 ` [PATCH v2 7/9] Makefile: add "po-update" rule to update po/XX.po Jiang Xin
2022-05-19 10:07   ` Ævar Arnfjörð Bjarmason
2022-05-19  8:15 ` [PATCH v2 8/9] Makefile: add "po-init" rule to initialize po/XX.po Jiang Xin
2022-05-19 10:22   ` Ævar Arnfjörð Bjarmason
2022-05-19  8:15 ` [PATCH v2 9/9] l10n: Document the new l10n workflow Jiang Xin
2022-05-19 17:18   ` Junio C Hamano
2022-05-21 15:06     ` Jiang Xin

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20220523152128.26380-1-worldhello.net@gmail.com \
    --to=worldhello.net@gmail.com \
    --cc=DJm00n@mail.ru \
    --cc=alessandro.menti@alessandromenti.it \
    --cc=arek_koz@o2.pl \
    --cc=ash@kambanaria.org \
    --cc=avarab@gmail.com \
    --cc=bagasdotme@gmail.com \
    --cc=bitigchi@me.com \
    --cc=christopher.diaz.riv@gmail.com \
    --cc=dacs.git@brilhante.top \
    --cc=elongbug@gmail.com \
    --cc=git@vger.kernel.org \
    --cc=gitster@pobox.com \
    --cc=jmas@softcatala.org \
    --cc=jn.avila@free.fr \
    --cc=matthias.ruester@gmail.com \
    --cc=me@fangyi.io \
    --cc=pan93412@gmail.com \
    --cc=peter@softwolves.pp.se \
    --cc=vnwildman@gmail.com \
    --cc=vyruss@hellug.gr \
    --cc=zhiyou.jx@alibaba-inc.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.