From: Jiang Xin <worldhello.net@gmail.com>
To: Junio C Hamano <gitster@pobox.com>
Cc: "Johannes Schindelin" <Johannes.Schindelin@gmx.de>,
"Git List" <git@vger.kernel.org>,
"Jean-Noël Avila" <jn.avila@free.fr>
Subject: Re: [PATCH] PRItime: wrap PRItime for better l10n compatibility
Date: Sat, 22 Jul 2017 06:17:52 +0800 [thread overview]
Message-ID: <CANYiYbGSaaFOq7iw=ON1Oo87bSA96o=zyzym5RDT32kMae7bsw@mail.gmail.com> (raw)
In-Reply-To: <xmqqo9sfkm32.fsf@gitster.mtv.corp.google.com>
2017-07-21 2:19 GMT+08:00 Junio C Hamano <gitster@pobox.com>:
> Junio C Hamano <gitster@pobox.com> writes:
>
>> Johannes Schindelin <Johannes.Schindelin@gmx.de> writes:
>>
>>> But there may be hope. Since the character sequence "PRItime" is highly
>>> unlikely to occur in Git's source code in any context other than the
>>> format to print/parse timestamp_t, it should be possible to automate a the
>>> string replacement
>>>
>>> git ls-files -z \*.[ch] |
>>> xargs -0r sed -i 's/PRItime/PRIuMAX/g'
>>>
>>> (assuming, of course, that you use GNU sed, not BSD sed, for which the
>>> `-i` needs to read `-i ''` instead) as part of the update?
>>
>> I somehow missed this bit.
>>
>> Given that this needs to be done only once every release by only one
>> person (i.e. the l10n coordinator who updates *.pot file), as long
>> as the procedure is automated as much as possible to ease the pain
>> for the l10n coordinator and clearly described in the "Maintaining
>> the po/git.pot file" section of po/README, something along that line
>> does sound like a very tempting approach. If it works well, it is
>> certainly much easier for normal developers than the other possible
>> alternatives I mentioned in my previous response.
>
> So, I was offline for most of the day yesterday and with this issue
> blocking the release candidate, didn't manage to tag -rc1.
>
> The use of "make pot" from the top-level is already described in
> po/README, so the only thing that we need is something like this
> change. I'll follow up this message with a sample output from the
> updated process to ask others to sanity check the result (they are
> tiny) in a separate message.
>
> Thanks.
>
>
> Makefile | 10 ++++++++++
> 1 file changed, 10 insertions(+)
>
> diff --git a/Makefile b/Makefile
> index ba4359ef8d..7069a12f75 100644
> --- a/Makefile
> +++ b/Makefile
> @@ -2216,12 +2216,22 @@ LOCALIZED_SH += t/t0200/test.sh
> LOCALIZED_PERL += t/t0200/test.perl
> endif
>
> +## Note that this is only meant to run by the localization coordinator
> +## under a very controlled condition, i.e. (1) it is to be run in a
> +## Git repository (not a tarball extract), (2) any local modifications
> +## will be lost.
> po/git.pot: $(GENERATED_H) FORCE
> + @for s in $(LOCALIZED_C) $(LOCALIZED_SH) $(LOCALIZED_PERL); \
> + do \
> + sed -e 's|PRItime|PRIuMAX|g' <"$$s" >"$$s+" && \
> + cat "$$s+" >"$$s" && rm "$$s+"; \
> + done
> $(QUIET_XGETTEXT)$(XGETTEXT) -o$@+ $(XGETTEXT_FLAGS_C) $(LOCALIZED_C)
> $(QUIET_XGETTEXT)$(XGETTEXT) -o$@+ --join-existing $(XGETTEXT_FLAGS_SH) \
> $(LOCALIZED_SH)
> $(QUIET_XGETTEXT)$(XGETTEXT) -o$@+ --join-existing $(XGETTEXT_FLAGS_PERL) \
> $(LOCALIZED_PERL)
> + @git reset --hard
> mv $@+ $@
>
> .PHONY: pot
Sorry, I'm late. I want to try a safer way to change PRItime to
PRInMax using a hacked version of gettext.
We can change Makefile like this:
--- a/Makefile
+++ b/Makefile
@@ -2216,7 +2216,14 @@ LOCALIZED_SH += t/t0200/test.sh
LOCALIZED_PERL += t/t0200/test.perl
endif
-po/git.pot: $(GENERATED_H) FORCE
+check_gettext:
+ @if ! $(XGETTEXT) --version | grep -q -i PRItime; then \
+ echo >&2 "Error: must use a hacked xgettext, which
can handle PRItime macro properly."; \
+ echo >&2 "Error: download the hacked version of
gettext from https://github.com/......" ; \
+ exit 1; \
+ fi
+
+po/git.pot: check_gettext $(GENERATED_H) FORCE
$(QUIET_XGETTEXT)$(XGETTEXT) -o$@+ $(XGETTEXT_FLAGS_C) $(LOCALIZED_C)
$(QUIET_XGETTEXT)$(XGETTEXT) -o$@+ --join-existing
$(XGETTEXT_FLAGS_SH) \
$(LOCALIZED_SH)
But I'm not sure I can handle this in this very busy weekend.
--
Jiang Xin
next prev parent reply other threads:[~2017-07-21 22:17 UTC|newest]
Thread overview: 45+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-07-15 5:06 [L10N] Kickoff of translation for Git 2.14.0 round 1 Jiang Xin
2017-07-15 19:30 ` Jean-Noël Avila
2017-07-17 0:56 ` Jiang Xin
2017-07-17 16:06 ` Johannes Schindelin
2017-07-18 1:28 ` Jiang Xin
2017-07-17 15:23 ` [PATCH] PRItime: wrap PRItime for better l10n compatibility Jiang Xin
2017-07-17 17:10 ` Junio C Hamano
2017-07-18 1:33 ` Jiang Xin
2017-07-18 17:35 ` Junio C Hamano
2017-07-19 0:57 ` Jiang Xin
2017-07-19 13:25 ` Johannes Schindelin
2017-07-19 21:32 ` Junio C Hamano
2017-07-19 23:03 ` Junio C Hamano
2017-07-20 18:19 ` Junio C Hamano
2017-07-20 18:24 ` Junio C Hamano
2017-07-20 18:57 ` Junio C Hamano
2017-07-21 14:38 ` Jean-Noël Avila
2017-07-21 14:54 ` Junio C Hamano
2017-07-22 11:21 ` Johannes Schindelin
2017-07-22 15:53 ` Junio C Hamano
2017-07-25 10:20 ` Johannes Schindelin
2017-07-25 20:46 ` Junio C Hamano
2017-07-21 22:17 ` Jiang Xin [this message]
2017-07-21 22:40 ` Junio C Hamano
2017-07-21 23:13 ` Jiang Xin
2017-07-21 23:34 ` Junio C Hamano
2017-07-22 0:43 ` Jiang Xin
2017-07-22 0:52 ` [PATCH] Makefile: generate pot file using a tweaked version of xgettext Jiang Xin
2017-07-22 2:44 ` [PATCH] PRItime: wrap PRItime for better l10n compatibility Junio C Hamano
2017-07-22 11:28 ` Johannes Schindelin
2017-07-22 15:48 ` Junio C Hamano
2017-07-24 1:50 ` Jiang Xin
2017-07-25 10:22 ` Johannes Schindelin
2017-07-25 20:49 ` Junio C Hamano
2017-07-24 1:38 ` Jiang Xin
2017-07-24 19:09 ` Junio C Hamano
2017-07-25 10:25 ` Johannes Schindelin
2017-07-23 2:33 ` Jean-Noël AVILA
2017-07-23 21:54 ` Junio C Hamano
2017-07-24 2:02 ` Jiang Xin
2017-07-24 19:10 ` Junio C Hamano
2017-07-22 17:02 ` [L10N] Kickoff of translation for Git 2.14.0 round 1 Kaartic Sivaraam
2017-07-23 2:43 ` Jean-Noël Avila
2017-07-19 5:44 ` Jordi Mas
2017-07-20 0:50 ` 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='CANYiYbGSaaFOq7iw=ON1Oo87bSA96o=zyzym5RDT32kMae7bsw@mail.gmail.com' \
--to=worldhello.net@gmail.com \
--cc=Johannes.Schindelin@gmx.de \
--cc=git@vger.kernel.org \
--cc=gitster@pobox.com \
--cc=jn.avila@free.fr \
/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).