Django gettext 不起作用



我尝试用多种语言为我的django-cms网站提供服务

makemessages compilemessages 的工作就像魅力,但是当i runserver 时,我的字符串保持未翻译

我使用ugetText_lazy的python文件:

from cms.toolbar_pool import toolbar_pool
from cms.extensions.toolbar import ExtensionToolbar
from django.utils.translation import ugettext_lazy as _
from .models import CategoryExtension

@toolbar_pool.register
class CategoryExtensionToolbar(ExtensionToolbar):
    # defines the model for the current toolbar
    model = CategoryExtension
    def populate(self):
        # setup the extension toolbar with permissions and sanity checks
        current_page_menu = self._setup_extension_toolbar()
        # if it's all ok
        if current_page_menu:
            # retrieves the instance of the current extension (if any) and the toolbar item URL
            page_extension, url = self.get_page_extension_admin()
            if url:
                # adds a toolbar item in position 0 (at the top of the menu)
                current_page_menu.add_modal_item(_('Page Category'), url=url,
                                                 disabled=not self.toolbar.edit_mode, position=0)

我的设置与翻译有关:

def gettext(s):
    return s

LOCALE_PATHS = (
    BASE_DIR + "/locale",
)
LANGUAGE_CODE = 'fr-fr'
TIME_ZONE = 'Europe/Paris'
USE_I18N = True
USE_L10N = True
USE_TZ = True
LANGUAGES = (
    ('fr-fr', gettext('fr-fr')),
)
CMS_LANGUAGES = {
    1: [
        {
            'code': 'fr-fr',
            'name': gettext('fr-fr'),
            'redirect_on_fallback': True,
            'public': True,
            'hide_untranslated': False,
        },
    ],
    'default': {
        'redirect_on_fallback': True,
        'public': True,
        'hide_untranslated': False,
    },
}

和我的po file(in project_root/locale/fr-fr/lc_messages/django.po (:

# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE 
# package.
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
#
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSIONn"
"Report-Msgid-Bugs-To: n"
"POT-Creation-Date: 2017-06-06 19:11+0200n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONEn"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>n"
"Language-Team: LANGUAGE <LL@li.org>n"
"Language: n"
"MIME-Version: 1.0n"
"Content-Type: text/plain; charset=UTF-8n"
"Content-Transfer-Encoding: 8bitn"
"Plural-Forms: nplurals=2; plural=(n > 1);n"
#: myapp/cms_toolbars.py:22
msgid "Page Category"
msgstr "Catégorie de Page"
#: myapp/configuration/cms_settings.py:6
msgid "Page"
msgstr "Page"
#: myapp/configuration/cms_settings.py:7
msgid "Page with instagram pictures"
msgstr "Page avec bandeau instagram"
#: myapp/configuration/cms_settings.py:8
msgid "Page who list children"
msgstr "Page qui liste ses enfants"
#: myapp/configuration/i18n_settings.py:25
#: myapp/configuration/i18n_settings.py:32
msgid "fr-fr"
msgstr "fr-fr"

我认为您的语言设置不正确,请尝试以下操作:

LANGUAGES = [
    ('fr', gettext('French')),
]

最新更新