From: "Jakub Narębski" <jnareb@gmail.com>
To: Junio C Hamano <gitster@pobox.com>,
Vasco Almeida <vascomalmeida@sapo.pt>
Cc: git@vger.kernel.org, "Jiang Xin" <worldhello.net@gmail.com>,
"Ævar Arnfjörð Bjarmason" <avarab@gmail.com>,
"David Aguilar" <davvid@gmail.com>
Subject: Re: [PATCH v2 05/11] i18n: add--interactive: mark message for translation
Date: Sat, 1 Oct 2016 19:09:27 +0200 [thread overview]
Message-ID: <32b8c9ed-82df-0d71-a610-064b6ebf7a4e@gmail.com> (raw)
In-Reply-To: <xmqqbmzby3tc.fsf@gitster.mtv.corp.google.com>
W dniu 26.09.2016 o 01:09, Junio C Hamano pisze:
> Vasco Almeida <vascomalmeida@sapo.pt> writes:
>
>> - print colored $prompt_color, $patch_mode_flavour{VERB},
>> - ($hunk[$ix]{TYPE} eq 'mode' ? ' mode change' :
>> - $hunk[$ix]{TYPE} eq 'deletion' ? ' deletion' :
>> - ' this hunk'),
>> - $patch_mode_flavour{TARGET},
>> - " [y,n,q,a,d,/$other,?]? ";
>
> I hate to say this but expanding this single-liner into if/elsif/
> cascade of uncountable number of arms is simply a disaster.
Even if we turn this "single"-liner composition of sentence into
interpolation (allowing for reordering of parts in translation),
like
print colored $prompt_color, __x("{verb} {noun}{maybe_target} [y,n,q,a,d,/{other},?]? ",
verb => $patch_mode_flavour{VERB}, noun => $patch_mode_noun{$hunk[$ix]{TYPE}},
maybe_target => $patch_mode_flavour{TARGET} || "", other => $other);
This would of course require N__() on values of hash, somewhere.
the problem is that the ordering may need to change depending on
verb: "Stage", "Stash", "Unstage", "Apply", "Discard", and/or noun:
"mode change", "deletion", "this hunk", and/or presence and value
of maybe_target: " to index", " from worktree", " from index and worktree",
" to index and worktree".
>> + if ($patch_mode eq 'stage') {
>> + if ($hunk[$ix]{TYPE} eq 'mode') {
>> + print colored $prompt_color,
>> + sprintf(__("Stage mode change [y,n,q,a,d,/%s,?]? "), $other);
>> + } elsif ($hunk[$ix]{TYPE} eq 'deletion') {
>> + print colored $prompt_color,
>> + sprintf(__("Stage deletion [y,n,q,a,d,/%s,?]? "), $other);
>> + } else {
>> + print colored $prompt_color,
>> + sprintf(__("Stage this hunk [y,n,q,a,d,/%s,?]? "), $other);
>> + }
>> + } elsif ($patch_mode eq 'stash') {
>> + ...
>> + }
>> + }
>
> I wonder if you can make a simple helper function so that the caller
> here can still be a single-liner:
>
> print_colored $prompt_color,
> sprintf(patch_update_prompt_string($patch_mode, $hunk[$ix]{TYPE}), $other);
>
> where the patch_update_prompt_string helper function would look up
> these messages from a table that is looked up by patch-mode and TYPE
> and the run __() on it, or something?
Yes, this would be necessary; hide complexity behind helper function.
--
Jakub Narębski
next prev parent reply other threads:[~2016-10-01 17:10 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 [this message]
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
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 05/11] i18n: add--interactive: mark 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=32b8c9ed-82df-0d71-a610-064b6ebf7a4e@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).