bug-bash
[Top][All Lists]
Advanced

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

Re: a few unintended translations of command names


From: Eric Blake
Subject: Re: a few unintended translations of command names
Date: Mon, 2 Nov 2015 09:21:20 -0700
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101 Thunderbird/38.3.0

On 11/02/2015 08:41 AM, Chet Ramey wrote:
> On 10/19/15 3:07 PM, Benno Schulenberg wrote:
>>
>> Hi,
>>
>> In bash-4.4-beta the command names 'true' and 'false' have been
>> mistakenly translated in the Greek, Italian, Slovak and Indonesian
>> PO files.  The latter two also mistakenly translate 'times'.
>>
>> As the command synopses are gettextized only in order to allow
>> translators to translate possible arguments, there is no need to
>> gettextize them when a command takes no options nor arguments.
> 
> Well, the short docs are marked with N_ in the generated builtins.c,
> but I guess the gettext tools aren't smart enough to not put them in
> the pot files.

Marking something with N_() means you DO want it translated, just that
the translation will occur at a different point during runtime.  It is
most commonly used in places such as static initialization, where the
compiler won't let you use _() on the original literal, but the
translation must still appear in the .pot, as in:

static const char *foo = N_("can't call _() here");
const char *f(void) {
  return _(foo);  /* And _() here won't add anything to the .pot,
         because its argument was not a literal "string" */
}

If you don't want something translated, then don't wrap it in either _()
or N_().

-- 
Eric Blake   eblake redhat com    +1-919-301-3266
Libvirt virtualization library http://libvirt.org

Attachment: signature.asc
Description: OpenPGP digital signature


reply via email to

[Prev in Thread] Current Thread [Next in Thread]