All of lore.kernel.org
 help / color / mirror / Atom feed
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


  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 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.