Language names Upper/Lowercase

49 views
Skip to first unread message

Marc Fargas

unread,
Jun 16, 2008, 4:49:11 AM6/16/08
to Djang...@googlegroups.com
Hi all,

Due to ticket #7461 an issue was raised about uppercase language names.
In English, languages are written with the first letter being uppercase
while other languages like 'es' and 'ca' write them lowercased unless
they're the begining of a sentence or single words.

This is currently impossible to distinguish with the current msgid's. So
two questions for everybody:

* Which languages are affected by the same thing? (That is, which
languages type language names lowercase unless beggining sentences or
single words).

* Any idea on how to get that information from the msgid's?

For the idea, one option would be having both msgid's (lower and
uppercase) so translation would be easy, but that would need the 'en'
locale to be up-to-date and having both msgstr set to uppercase. But
it's one possible solution. Ideas?

Thanks,
Marc
--
http://www.marcfargas.com -- will be finished some day.

signature.asc

Arien

unread,
Jun 16, 2008, 5:24:26 AM6/16/08
to Djang...@googlegroups.com
Hi Marc,

On Mon, Jun 16, 2008 at 3:49 AM, Marc Fargas <tele...@telenieko.com> wrote:
> * Which languages are affected by the same thing? (That is, which
> languages type language names lowercase unless beggining sentences or
> single words).

At least French, Italian and Portuguese use initial lower-case and I'm
fairly sure that Danish, Icelandic, Norwegian, and Swedish do as well.

(In addition to English, German and Dutch use initial upper-case.)

FWIW, I think the solution would be to use the correct translation,
and filter through capfirst according to the use in the template. But
then, I would, since I brought this up in the ticket. ;-)

Arien

mrts

unread,
Jun 16, 2008, 5:44:44 AM6/16/08
to Django I18N
All languages in my neighbourhood use lowercase language names:
Estonian, Swedish, Finnish, Latvian, Lithuanian, Russian.

Using separate msgids for lower- and uppercase looks attractive, but
then the ids in source don't match natural English any more (e.g.
explicit lowercase could be used in the ids where they don't start a
sentence: _("estonian")). That is a problem in case i18n is not used
at all.

_("Estonian") would be translated to en as "Estonian" and to et as
"Eesti", whereas _("estonian") would be translated to en still as
"Estonian" but to et as "eesti".

Currently, Finnish django.po uses lowercase for language names, but
Russian and Latvian django.pos use uppercase (which look unnatural and
incorrect for native speakers).
> --http://www.marcfargas.com-- will be finished some day.
>
>  signature.asc
> 1KDownload

Marc Garcia

unread,
Jun 16, 2008, 6:59:17 AM6/16/08
to Django I18N
In my opinion the main problem here, is that the original words appear
in global_settings.py with a dummy translation, so there's no place in
Django itself where those strings are used.

What I would do is translating the strings in lowercase when it's the
correct form for the language, without duplicating or anything like
that, and then the user will have to capitalize it if creating a drop
down list (what isn't a problem or something strange from my point of
view). For other uses of the language names, it will appear in lower
case by default, what it'll be probably the expected behavior for most
users, and them will be able to capitalize it when necessary.

PS: I'm not sure if a drop down list with languages should use any
translation, imagine that I've to select english from a language list
with chinese names...
> > --http://www.marcfargas.com--will be finished some day.
>
> >  signature.asc
> > 1KDownload

ngn

unread,
Jun 16, 2008, 7:37:06 AM6/16/08
to Django I18N
It might be easier to enumerate the languages which do use uppercase
for language names. Most often, I think, language names are
considered adjectives to the noun ``language'' and they are normally
in lower case despite being derived from proper names. At least, as a
speaker of Bulgarian, I'm sure that most (if not all) Slavic languages
hold that view.

What is worse, you could have grammatical cases as in Russian,
Serbian, etc., or even a definite article as in French (dependent on
gender, number, and the first letter of the next word):

_("History of the English language") == "Histoire de la langue
anglais"
_("English is a Germanic language") == "L'anglais est une langue
germanique"

You cannot translate an isolated word without attaching some meta-
information about the role it plays in a sentence.

--Nick
> --http://www.marcfargas.com-- will be finished some day.
>
>  signature.asc
> 1KИзтегляне

Marc Fargas

unread,
Jun 16, 2008, 9:24:58 AM6/16/08
to Djang...@googlegroups.com
El lun, 16-06-2008 a las 03:59 -0700, Marc Garcia escribió:
> What I would do is translating the strings in lowercase when it's the
> correct form for the language

That's on the lines of Arien's suggestion also. And seems to be the
prefered way to handle this. The only question pending is if we'd like
to advise users (in the i18n docs) about that so those who do not know
that much of a language can be aware of this small thing and use
capitalize if needed.

i.e. you can "speak" spanish, but not be aware that language names are
written lowercase.

I'm going to ping django-users asking for help updating the languages
Ludvig pinged here before ("language maintenance ping" thread), I'll use
the same post asking for help lowercasing language names.

So, if possible, on the languages affected by this thing that have
language names uppercased, please post/commit diffs.

Thanks to all!
--
http://www.marcfargas.com -- will be finished some day.

signature.asc
Reply all
Reply to author
Forward
0 new messages