[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: proper names
Re: proper names
Thu, 7 Sep 2006 15:08:57 +0200
Paul Eggert wrote:
> First, the problem occurs not only with proper names, but with any
> text string that is English but not ASCII. English mostly uses plain
> ASCII, but there are exceptions. Many of the exceptions are words
> like naïve that most people will accept in ASCII versions, but some
> English words (e.g., soupçon) simply do not look right in ASCII.
It's a similar problem with "soupçon" or "©" as for proper names, but the
output and the handling is different.
- For a string like "He showed a soupçon of pride" you want to rely
entirely on the translator and drop the English original if a
translation is present.
- For a proper name, one should show the English name beneath the
1. the person might not want to see his/her name distorted,
2. so that the user can enter the name in search engines or similar.
- For "©", you don't want to bother the translator at all - it's an
application of iconv(), not of iconv()+gettext().
> Second, this code does not look right:
> > /* See whether the translation contains the original name. */
> > if (strstr (translation, name) != NULL)
> Some translations might contain the name accidentally.
> As an extreme case, the proper name "Z" (see
> might have a translation that contains the letter "Z".
OK, I'll make the test stricter, testing whether the occurrence of
trim (name) inside the translation starts and ends at word boundaries.
> Conversely, perhaps the translation might contain the original proper
> name using slightly-different letters, which look nicer but which
> strstr thinks are different.
In this case, I think it's ok to show the original name in parentheses,
for the two reasons stated above.
> For example, the original proper name
> might be "Georgia O'Keefe" but the translation might say "<something
> or other> (Georgia O’Keefe)", with a right single quotation mark
> (U+2019) rather than an apostrophe (U+0027). We don't want the output
> to be "<something or other> (Georgia O’Keefe) (Georgia O'Keefe)".
The translation is not supposed to repeat the English name. If a translator
adds the English name in parentheses, her users will tell her about it,
and she will eventually remove it. (Like what happened with the German
make.po file: When you introduced 'quotearg', make's German output looked like
this: "Nothing to be done for »»all««." Until the translator eventually
removed her pair of quotation characters.)
Furthermore, if you call
proper_name_utf8 ("Georgia O'Keefe", "Georgia O’Keefe")
the function will test whether it finds either of the two spellings among
the translation. This should also be sufficient to avoid an output
"<something or other> (Georgia O’Keefe) (Georgia O'Keefe)".
> If the convention is that translations of the form "X (Y)" are to be
> treated specially
I see no reason to do so.
> I suggest that code simply look for the last
> character being ')', rather than looking for an instance of "Y" in the
The person has a right to see his/her name spelled out correctly. Omitting
it when the translation ends in ')' would work for other use cases, but
not for proper names.