Как заставить интернационализацию Django с языками, не являющимися частью официального проекта Django? - PullRequest
1 голос
/ 25 декабря 2010

Я пытаюсь активировать переводы Django на язык, который еще не является частью дистрибутива Django.Я более чем счастлив делать переводы Django на этот язык с этого момента, но так как мне это нужно сейчас, я хотел бы знать, возможно ли активировать определенный язык, даже если панель администратора и сообщения Django еще не былипереведено (так как мне это не нужно).

Я бы не хотел возиться с установкой django, за исключением случаев, когда это абсолютно необходимо.

Если я установил для переменной LANGUAGES в settings.py следующее, например:

LANGUAGES = (
    ('en', _('English')),
    ('de', _('German')),
)

тогда он работает нормально, и я могу выбрать немецкий или английский, с моими собственными заказными переводами.Однако, если я сделаю следующее:

LANGUAGES = (
    ('en', _('English')),
    ('af', _('Afrikaans')),
)

, тогда для языка ни в сеансе, ни в файле cookie не будет установлено значение af, и оно останется на en.Я бы подумал, что можно было бы использовать переводы af там, где они доступны (как определено в файлах локали моего приложения), а затем вернуться к значениям en в противном случае?Как это сделать?

1 Ответ

1 голос
/ 25 декабря 2010

Из документов Django :

Django не поддерживает локализацию вашего приложения в локаль, для которой сам Django не был переведен.В этом случае он будет игнорировать ваши файлы перевода.Если бы вы попробовали это и Django поддержал это, вы неизбежно увидели бы смесь переведенных строк (из вашего приложения) и английских строк (из самого Django).Если вы хотите поддерживать локаль для вашего приложения, которая еще не является частью Django, вам нужно будет сделать хотя бы минимальный перевод ядра Django.

Это довольно раздражает, я бы не сталне против иметь смесь английских и переведенных строк.Но, по крайней мере, это может быть сделано, даже если с некоторыми проблемами.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...