Проблемы с несколькими языками

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

И эти оба варианта доступны на моей домашней странице, и там должна быть указана ссылка, которая позволяет пользователю выбирать язык.

Я читаю чиновника Джангодокументация за это

так что любой может дать мне общее представление о том, как я могу это сделать.

и еще одна вещь ...... в settings.py есть дефолтLANGUAGE_CODE = 'ан-нас учитывая, НО, как я хочу, чтобы мое приложение было более чем на одном языке, так как я могу указать этот код страны здесь.

вот так работает LANGUAGE_CODE = 'ан-нас,»es-MX (испанский) или я должен сделать это каким-то образом.

И какова цель этого.po расширение в этом.

Ответы на вопрос(2)

Решение Вопроса

settings.py

gettext = lambda s: s
LANGUAGES = (
    ('en', gettext('English')),
    ('de', gettext('German')),
)

MIDDLEWARE_CLASSES = (
    ...
    'lang.SessionBasedLocaleMiddleware',
)

lang.py

from django.conf import settings

from django.utils.cache import patch_vary_headers
from django.utils import translation

class SessionBasedLocaleMiddleware(object):
    """
    This Middleware saves the desired content language in the user session.
    The SessionMiddleware has to be activated.
    """
    def process_request(self, request):
        if request.method == 'GET' and 'lang' in request.GET:
                language = request.GET['lang']
                request.session['language'] = language
        elif 'language' in request.session:
                language = request.session['language']
        else:
                language = translation.get_language_from_request(request)

        for lang in settings.LANGUAGES:
            if lang[0] == language:
                translation.activate(language)

        request.LANGUAGE_CODE = translation.get_language()

    def process_response(self, request, response):
        patch_vary_headers(response, ('Accept-Language',))
        if 'Content-Language' not in response:
            response['Content-Language'] = translation.get_language()
        translation.deactivate()
        return response

Доступ к разным языкамhttp://example.com/?lang=de

И наконец, пусть Django создаст.po файлы. Вотдокументация для этого.

 Inforian19 окт. 2012 г., 08:29
так как я могу сделать это конкретным URL
 Inforian19 окт. 2012 г., 08:29
мое приложение переводит строки только в том случае, если я установил наивысший приоритет для соответствующего языка в моем браузере. Мой перевод работает, потому что он отображает только те данные на испанском языке, которые я указал в моем файле Django.po.
 Thomas Schwärzl12 окт. 2012 г., 08:45
Вы создали Po-файлы, перевели их и, наконец, скомпилировали эти файлы? Связанная с вами документация все еще действительна
 Thomas Schwärzl12 окт. 2012 г., 09:10
Сервер Dev в порядке. Вы можете переводить только статический текст. Для перевода моделдата вымы должны изменить модель. Просто Google для "переводимые модели Django »
 Inforian12 окт. 2012 г., 09:19
хорошо и спасибо за ваш интерес :)
 Inforian12 окт. 2012 г., 08:38
Спасибо за ответ ....... Я сделал этот перевод, следуя этому o-проекту / [devdoodles.wordpress.com/2009/02/14/...  но в моем шаблоне я не получаю переведенное сообщение
 Inforian12 окт. 2012 г., 08:58
Я пытаюсь это на локальном сервере, прежде чем развертывать его на фактическом сервере ................ Это проблема, или она также может работать гладко на локальном сервере
 Inforian12 окт. 2012 г., 08:54
да, я создал Po-файлы, перевел их и скомпилировал, и в моей папке msg локали есть двоичный файл (.mo). и добавить строки кода в мой шаблон, как упоминание в документации .......... но это показываетпривет по английски....... а я не редактировал models.py или views.py ...

интернационализация (или локализация) вашего программного обеспечения. С C это часто делается черезGettext (который связан с.po файлы). Наверноеdjango использует эти вещи.

Ваш ответ на вопрос