Re: [PATCH v2 07/11] i18n: add--interactive: mark edit_hunk_manually message for translation

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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@xxxxxxx>
> ---
>  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



[Index of Archives]     [Linux Kernel Development]     [Gcc Help]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [V4L]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]     [Fedora Users]