On Wed, Jan 22, 2014 at 2:16 PM, Shai Berger <[email protected]> wrote:
>
> Wait -- so the real context (which, as Ramiro noted, you left out) is
>
> # settings.py
>
> LANGUAGES = (('pt_BR', _("Português")),)
>
> Is it? Or is it
>
> LANGUAGES = (('pt_BR', "Português"),)
>
> If it is the former, then this is a generic issue of translatable strings
> --
> nothing to do with settings.LANGUAGES. It is usually assumed that, if you
> are
> making a string translatable, you write it in English -- then it's ASCII
> and
> all's well.
>
> If it is the latter, please provide more details about the specific error
> you
> encountered (stack traces etc).
>
> In my test, LANGUAGES is defined as follows:
LANGUAGES = [
('en-us', 'English'),
('pt-br', 'Português'),
]
As the documentation didn't make it clear that the language names should be
unicode, I just used the translated name ("Português") in a plain string, I
thought it would be OK since settings.py has the encoding declared at the
top of the file.
As for the error, it happened inside django-cms. There's a code that is
called for building a list of the languages enabled and their names:
# cms/utils/i18n.py
19 def get_languages(site_id=None):
20 site_id = get_site(site_id)
21 result = get_cms_setting('LANGUAGES').get(site_id)
22 if not result:
23 result = []
24 defaults = get_cms_setting('LANGUAGES').get('default', {})
25 for code, name in settings.LANGUAGES:
26 lang = {'code': code, 'name': _(name)}
27 lang.update(defaults)
28 result.append(lang)
29 get_cms_setting('LANGUAGES')[site_id] = result
30 return result
In the code above it is trying to translate the language name and it is
resulting in an error since the name isn't an unicode string. I understand
that this is happening in django-cms, but I still think it is relevant to
document either that the name should be a unicode string or at least the
english name of the language.
--
Henrique Romano
In the face of ambiguity, refuse the temptation to guess.
-- Tim Peters
--
You received this message because you are subscribed to the Google Groups
"Django developers" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/django-developers.
To view this discussion on the web visit
https://groups.google.com/d/msgid/django-developers/CA%2BEHudJe91RoJoGBV14u49zW_h70v6drf336giyWA-Zh%3DGMHsQ%40mail.gmail.com.
For more options, visit https://groups.google.com/groups/opt_out.