gpt4 book ai didi

python - 翻译 'Django-Oscar'

转载 作者:太空宇宙 更新时间:2023-11-03 14:19:32 29 4
gpt4 key购买 nike

我想学习如何构建开源电子商务网站。为此,我使用带有“Oscar”扩展的“Django”框架。

我在这里阅读了整个教程:https://django-oscar.readthedocs.io/en/releases-1.5/index.html ,其中有一个翻译教程。我跟着它(必须说它缺少步骤)。这部分说,为了翻译页面,您必须创建两个文件夹和一个符号链接(symbolic link):

mkdir locale i18n
ln -s $PATH_TO_OSCAR i18n/oscar

然后,对于您要翻译的每种语言:

./manage.py makemessages --symlinks --locale=<language code>

这是正确的,但除此之外,您必须编译 .po 文件才能在 locale 文件夹 (.mo文件)。之后,您必须将翻译包含到项目(或应用程序)的 settings.py 中。这是通过以下代码完成的:

  • 在终端中(从项目的根目录):$ django-admin.pycompilemessages
  • settings.py中添加:

    语言 = [ ('德', _('德语')), ('en', _('英语')), ('es', _('西类牙语')),]

(注意:这是我的案例,我想将商店翻译成德语、西类牙语和英语)

完成此操作后,我运行我的服务器,只有这三种语言出现在选择语言框中,但是当我按下按钮以翻译页面时,它每次都会返回默认语言(英语),将其输入每个翻译请愿书:

"POST /i18n/setlang/ HTTP/1.1" 302 0
"GET / HTTP/1.1" 200 8379

我是否跳过了任何步骤或做错了什么?

提前致谢。

最佳答案

我有一个部分(几乎完整)的解决方案。由于我要使用的语言很常见,所以我直接使用Django翻译中间件,没有使用Oscar提供的那个。所以,我的解决方案是编辑 settings.py通过包含在MIDDLEWARE中(或在 MIDDLEWARE_CLASES 中,具体取决于 Django 版本)Django 国际化中间件: django.middleware.locale.LocaleMiddleware .

之后,无需导入 ugettext ( from django.utils.translation import ugettext as _ ),请随意添加语言,如下所示:

LANGUAGES = [
('es', 'Spanish'),
('de', 'German'),
('en', 'English'),
('pt-br', 'Brazilian'),
#... and so on
]

此解决方案不需要创建符号链接(symbolic link)或其他文件夹。

关于python - 翻译 'Django-Oscar',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48033256/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com