[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
signature.asc
Description: OpenPGP digital signature