[Top][All Lists]

[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]