2017-01-23 2 views
-1

Я использую API локализации Django для предоставления многоязычной функции на моем сайте. Но после создания файла .po все msgstr пустые. Я не получил никаких переведенных строк.Сгенерированный файл .po имеет msgstr "" после makemessages

Ниже конфигурация setting.py

MIDDLEWARE_CLASSES = (
    'framework.botdetection_middleware.AvoidBotsMiddleware', 
    'framework.cl_redirect.MainSiteRedirect', 
    'framework.ssl_redirect.SSLRedirect', 
    'django.middleware.cache.UpdateCacheMiddleware', 
    'django.middleware.csrf.CsrfViewMiddleware', 
    'django.middleware.common.CommonMiddleware', 
    'corsheaders.middleware.CorsMiddleware', 
    'django.contrib.sessions.middleware.SessionMiddleware',  
    'framework.wlabel_middleware.CustomDomainMiddleware',  
    'django.contrib.auth.middleware.AuthenticationMiddleware', 
    'django.contrib.messages.middleware.MessageMiddleware', 
    'django.middleware.cache.FetchFromCacheMiddleware', 
    'social.apps.django_app.middleware.SocialAuthExceptionMiddleware', 
    'django.middleware.security.SecurityMiddleware', 
    'django.middleware.locale.LocaleMiddleware', 
) 

# Implementation of Localiztion 

# Path to locale folder 
LOCALE_PATHS = (
    os.path.join(APP_DIR, 'locale').replace('\\', '/'), 
) 

# The language your website is starting in 
LANGUAGE_CODE = 'en' 

# The languages you are supporting 
ugettext = lambda s: s 
LANGUAGES = (
    ('en', ugettext('English')), 
    ('fr', ugettext('French')), 
    ('pl', ugettext('Polish')), 
) 

# Use internationalization 
USE_I18N = True 

# Use localization 
USE_L10N = True 

Я использую следующую команду для создания .po файла.

django-admin makemessages --locale=fr --extension=html --ignore=env --ignore=*.py 

И Ниже выход я получил

msgid "Change Payment Method" 
msgstr "" 

msgid "Return to Purchase Details" 
msgstr 

Am я что-то отсутствует. Также как я могу загрузить переведенную версию моего сайта без использования url.py

ответ

0

Это нормальное поведение. Вы должны сами перевести msgstr и скомпилировать его с помощью manage.py compilemessages. RTFM.

+0

Вы имеете в виду, что мне нужен переводчик, чтобы перевести эту строку на нужный язык. Нет ли способа получить их с помощью api. Я имею в виду, что я видел примеры, где после генерации файла сообщения они показывают переведенную версию в msgstr. –

+0

@ArjunSingh Да, это не инструмент машинного перевода, а инструмент для получения всех строк в одном месте, чтобы переводчик мог их перевести. Переведенные результаты появятся, когда вы когда-то перевели их и снова запустили 'makemessages', чтобы обновить файл переводов, тогда все старые переводы будут включены снова, и это может создать впечатление, что Django сделал перевод для вас, в то время как на самом деле они были переведены и вставлены заранее. – makaveli

+0

Есть ли у вас какие-либо идеи об инструменте или что-то, что могло бы перевести все файлы .po в пути. –