We had to create custom languages in Django for two different versions of the Chinese language: yue (Mandarin Chinese) and cmn (Cantonese Chinese)
This is really simple in Django with gettext, as the default languages can just be overriden:
LANGUAGES = (
## Customize this
('en', "English"),
('cmn', "Mandarin Chinese"),
('yue', "Cantonese Chinese"),
)
CMS_LANGUAGES = {
## Customize this
1: [
{
'code': 'en',
'name': gettext('en'),
'redirect_on_fallback': True,
'public': True,
'hide_untranslated': False,
},
{
'code': 'cmn',
'name': "Mandarin Chinese",
'redirect_on_fallback': True,
'public': True,
'hide_untranslated': False,
},
{
'code': 'yue',
'name': "Cantonese Chinese",
'redirect_on_fallback': True,
'public': True,
'hide_untranslated': False,
},
],
'default': {
'redirect_on_fallback': True,
'public': True,
'hide_untranslated': False,
},
}
updating from templates and python code:
./manage.py makemessages -l en
./manage.py makemessages -l yue
./manage.py makemessages -l cmn
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
needs to be part of every .po file for DjangoCMS
compiling
./manage.py compilemessages