我试图让自定义模板工作的djangocms-视频。
到目前为止,有一个新的djangocms项目,用一些引导和运行良好。
根据自述文件,我们需要在settings.py中指定这一点,以使自定义模板可用(在本例中,是一个名为“feature”的模板):
DJANGOCMS_VIDEO_TEMPLATES = [
('feature', _('Featured Version')),
]在设置它并运行manage.py之后,将出现以下错误:
('feature', _('Featured Version')),
NameError: name '_' is not defined根据其他线程,我们需要在modely.py:from django.utils.translation import gettext as _中导入这样的gettext,或者像这样:django.utils.translation import ugettext_lazy as _
到目前为止还没有运气。我在这里错过了什么?
以下是一些有关环境的信息:
python --version
Python 3.9.2pip list
Package Version
-------------------------- -----------
asgiref 3.4.1
cssselect2 0.4.1
dj-database-url 0.5.0
Django 3.1.14
django-classy-tags 2.0.0
django-cms 3.8.0
django-filer 2.1.2
django-formtools 2.3
django-js-asset 1.2.2
django-mptt 0.13.4
django-polymorphic 3.0.0
django-sekizai 2.0.0
django-treebeard 4.5.1
djangocms-admin-style 2.0.2
djangocms-attributes-field 2.0.0
djangocms-bootstrap4 2.0.0
djangocms-file 3.0.0
djangocms-googlemap 2.0.0
djangocms-icon 2.0.0
djangocms-installer 2.0.0
djangocms-link 3.0.0
djangocms-picture 3.0.0
djangocms-style 3.0.0
djangocms-text-ckeditor 4.0.0
djangocms-video 3.0.0
easy-thumbnails 2.8
html5lib 1.1
lxml 4.7.1
Pillow 9.0.0
pip 21.3.1
pkg_resources 0.0.0
pytz 2021.3
pytz-deprecation-shim 0.1.0.post0
reportlab 3.6.5
setuptools 44.1.1
six 1.16.0
sqlparse 0.4.2
svglib 1.1.0
tinycss2 1.1.1
tzdata 2021.5
tzlocal 4.1
Unidecode 1.1.2
webencodings 0.5.1发布于 2022-01-04 21:05:34
在Django中,函数[Django-doc]通常作为_导入以管理翻译。这在https://docs.djangoproject.com/en/dev/topics/i18n/translation/#standard-translation中得到了解释。
Python的标准库
gettext模块将_()安装到全局命名空间中,作为gettext()的别名。在Django,出于几个原因,我们选择不遵循这种做法。 (…) 由于xgettext (由makemessages使用)的工作方式,只有使用单个字符串参数的函数才可以导入为_:
因此,你应该加上:
from django.utils.translation import gettext_lazy as _在文件的顶部。
如果因此定义了类似于_('Featured Version')的内容,则可以运行制造来生成翻译文件并填写每种语言的翻译。
https://stackoverflow.com/questions/70584999
复制相似问题