我正在尝试建立一个多语言的django站点,我已经在我的设置文件中添加了我需要的语言,并翻译了我的django.po文件中的所有内容。我将语言环境中间件和语言块添加到我的 url 中,当我浏览它们时它们会正确显示:
/es-mx/help --- 以西班牙语显示
/en-us/help --- 以英语显示
现在我想翻译网址,这是我 urls.py:
from django.utils.translation import ugettext_lazy as _
urlpatterns += i18n_patterns('',
url(_(r'^help/'), include('help.urls')),
)
我想有以下几点:
/es-mx/ayuda -- 以西班牙语显示
/en-us/help --- 以英语显示
但是在访问西班牙语网址时,我只得到 404。我尝试在我的 django.po 文件中添加以下内容,但没有结果:
msgid "r^help/"
msgstr "r^ayuda/"
msgid "help"
msgstr "ayuda"
我错过了什么?
我认为你的msgid
和msgstr
在这里是错误的:
msgid "r^help/"
msgstr "r^ayuda/"
您错误地将r
包含在前面,但这实际上不是 URL 模式字符串的一部分......
请注意,在 URL 模式中,它r"^help/"
...r
前缀告诉 Python 这是一个原始字符串并忽略任何转义字符,这在使用正则表达式时很有用
从我对文档的阅读来看,其他一切对我来说都是正确的,所以我认为你只需要将它们更改为:
msgid "^help/"
msgstr "^ayuda/"