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
next prev 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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).