From: "Jakub Narębski" <jnareb@gmail.com>
To: Vasco Almeida <vascomalmeida@sapo.pt>,
Junio C Hamano <gitster@pobox.com>,
git@vger.kernel.org
Cc: "Jiang Xin" <worldhello.net@gmail.com>,
"Ævar Arnfjörð Bjarmason" <avarab@gmail.com>,
"David Aguilar" <davvid@gmail.com>
Subject: Re: [PATCH v2 07/11] i18n: add--interactive: mark edit_hunk_manually message for translation
Date: Sat, 1 Oct 2016 20:48:28 +0200 [thread overview]
Message-ID: <84857c15-9f46-5e1c-d253-e08a170ff77d@gmail.com> (raw)
In-Reply-To: <1472646690-9699-8-git-send-email-vascomalmeida@sapo.pt>
W dniu 31.08.2016 o 14:31, Vasco Almeida pisze:
> Mark message of edit_hunk_manually displayed in the editing file when
> user chooses 'e' option. The message had to be unfolded to allow
> translation of the $participle verb.
Actually you need to unfold the message if exact translation (the ordering
of words) depends on the $participle verb.
Moreover, because the translation of message of edit_hunk_manually can
depend *only* on $participle verb (it cannot depends on $remove_minus
and $remove_plus, as they are either ('-', '+') or ('+', '-')), with
"particular" (contexted) translation of $participle, if the translation
would be different for different $participle, one can simply move whole
translation to $participle.
>
> Some messages end up being exactly the same for some uses cases, but
> left it for easier change in the future, e.g., wanting to change wording
> of one particular use case.
>
> Signed-off-by: Vasco Almeida <vascomalmeida@sapo.pt>
> ---
> git-add--interactive.perl | 60 ++++++++++++++++++++++++++++++++++++++---------
> 1 file changed, 49 insertions(+), 11 deletions(-)
>
> diff --git a/git-add--interactive.perl b/git-add--interactive.perl
> index acbfa4e..235142c 100755
> --- a/git-add--interactive.perl
> +++ b/git-add--interactive.perl
> @@ -1057,22 +1057,60 @@ sub edit_hunk_manually {
> my $fh;
> open $fh, '>', $hunkfile
> or die sprintf(__("failed to open hunk edit file for writing: %s"), $!);
> - print $fh "# Manual hunk edit mode -- see bottom for a quick guide\n";
> + print $fh __("# Manual hunk edit mode -- see bottom for a quick guide\n");
This would be left as is (though you can write __"..." instead of __("...")).
> print $fh @$oldtext;
> - my $participle = $patch_mode_flavour{PARTICIPLE};
This would be replaced with
- my $participle = __($patch_mode_flavour{PARTICIPLE});
Additionally you would need to mark the text of $participle itself for
translation, with context; for example:
- PARTICIPLE => 'staging',
+ PARTICIPLE => N__p('Participle for "stage" operation, for edit hunk manually message', 'staging'),
That would require adding "--keyword=N__p:1c,2" to Makefile, of course.
The entry in the *.pot / *.po translations file would be preceded with
"msgctxt <context>" line.
> my $is_reverse = $patch_mode_flavour{IS_REVERSE};
> my ($remove_plus, $remove_minus) = $is_reverse ? ('-', '+') : ('+', '-');
> - print $fh <<EOF;
> -# ---
> -# To remove '$remove_minus' lines, make them ' ' lines (context).
> -# To remove '$remove_plus' lines, delete them.
> + print $fh sprintf(__(
+ print $fh __x(<<'EOF', remove_minus => $remove_minus, remove_plus => $remove_plus,
+ participle => $participle);
or
+ participle => __($participle));
assuming that $participle assignment doesn't use __ then.
Note that xgettext supports heredoc syntax for Perl language:
Here-documents are recognized. If the delimiter is enclosed in
single quotes, the string is not interpolated. If it is enclosed
in double quotes or has no quotes at all, the string is interpolated.
Delimiters that start with a digit are not supported!
> +"# ---
> +# To remove '%s' lines, make them ' ' lines (context).
> +# To remove '%s' lines, delete them.
+# To remove '{remove_minus}' lines, make them ' ' lines (context).
+# To remove '{remove_plus}' lines, delete them.
> # Lines starting with # will be removed.
> -#
> -# If the patch applies cleanly, the edited hunk will immediately be
> -# marked for $participle. If it does not apply cleanly, you will be given
> +#"), $remove_minus, $remove_plus),
# Lines starting with # will be removed.
+#
+# If the patch applies cleanly, the edited hunk will immediately be
+# marked for {participle}. If it does not apply cleanly, you will be given
[...]
Here is definition of relevant subroutines, based on Locale::TextDomain.
sub N__p($$) {
return @_;
}
--
Jakub Narębski
next prev parent reply other threads:[~2016-10-01 18:49 UTC|newest]
Thread overview: 46+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-08-31 12:31 [PATCH v2 00/11] Mark strings in perl script for translation Vasco Almeida
2016-08-31 12:31 ` [PATCH v2 01/11] i18n: add--interactive: mark strings " Vasco Almeida
2016-09-25 22:52 ` Junio C Hamano
2016-09-28 12:43 ` Vasco Almeida
2016-09-28 14:29 ` Duy Nguyen
2016-09-28 16:59 ` Junio C Hamano
2016-09-29 21:21 ` Jakub Narębski
2016-08-31 12:31 ` [PATCH v2 02/11] i18n: add--interactive: mark simple here documents " Vasco Almeida
2016-09-25 22:54 ` Junio C Hamano
2016-09-29 14:31 ` Vasco Almeida
2016-09-29 17:05 ` Junio C Hamano
2016-09-29 21:27 ` Jakub Narębski
2016-09-29 21:31 ` Junio C Hamano
2016-10-03 12:43 ` Vasco Almeida
2016-09-30 17:26 ` Jakub Narębski
2016-10-03 13:21 ` Vasco Almeida
2016-08-31 12:31 ` [PATCH v2 03/11] i18n: add--interactive: mark strings with interpolation " Vasco Almeida
2016-09-25 22:57 ` Junio C Hamano
2016-09-30 17:52 ` Jakub Narębski
2016-10-03 12:41 ` Vasco Almeida
2016-08-31 12:31 ` [PATCH v2 04/11] i18n: add--interactive: mark plural strings Vasco Almeida
2016-09-26 18:15 ` Vasco Almeida
2016-09-26 18:21 ` Junio C Hamano
2016-10-01 16:49 ` Jakub Narębski
2016-10-03 12:46 ` Vasco Almeida
2016-08-31 12:31 ` [PATCH v2 05/11] i18n: add--interactive: mark message for translation Vasco Almeida
2016-09-25 23:09 ` Junio C Hamano
2016-10-01 17:09 ` Jakub Narębski
2016-10-03 12:49 ` Vasco Almeida
2016-08-31 12:31 ` [PATCH v2 06/11] i18n: add--interactive: i18n of help_patch_cmd Vasco Almeida
2016-09-25 23:11 ` Junio C Hamano
2016-08-31 12:31 ` [PATCH v2 07/11] i18n: add--interactive: mark edit_hunk_manually message for translation Vasco Almeida
2016-10-01 18:48 ` Jakub Narębski [this message]
2016-08-31 12:31 ` [PATCH v2 08/11] i18n: send-email: mark strings " Vasco Almeida
2016-09-25 23:14 ` Junio C Hamano
2016-09-25 23:18 ` Junio C Hamano
2016-10-01 18:55 ` Jakub Narębski
2016-08-31 12:31 ` [PATCH v2 09/11] i18n: send-email: mark warnings and errors " Vasco Almeida
2016-10-01 19:51 ` Jakub Narębski
2016-08-31 12:31 ` [PATCH v2 10/11] i18n: send-email: mark string with interpolation " Vasco Almeida
2016-08-31 12:31 ` [PATCH v2 11/11] i18n: difftool: mark warnings " Vasco Almeida
2016-09-25 23:21 ` Junio C Hamano
2016-10-01 19:56 ` Jakub Narębski
2016-08-31 17:23 ` [PATCH v2 00/11] Mark strings in perl script " Junio C Hamano
2016-09-25 23:31 ` Junio C Hamano
-- strict thread matches above, loose matches on Subject: below --
2016-06-29 15:09 Vasco Almeida
2016-06-29 15:09 ` [PATCH v2 07/11] i18n: add--interactive: mark edit_hunk_manually message " Vasco Almeida
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=84857c15-9f46-5e1c-d253-e08a170ff77d@gmail.com \
--to=jnareb@gmail.com \
--cc=avarab@gmail.com \
--cc=davvid@gmail.com \
--cc=git@vger.kernel.org \
--cc=gitster@pobox.com \
--cc=vascomalmeida@sapo.pt \
--cc=worldhello.net@gmail.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).