我正在尝试设置一个多语言的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"
我错过了什么?
答案 0 :(得分:1)
我认为您的msgid
和msgstr
在这里是错误的:
msgid "r^help/"
msgstr "r^ayuda/"
你错误地将r
包含在前面,但这实际上并不是网址模式字符串的一部分......
注意在url模式中它是r"^help/"
... r
前缀告诉Python这是一个raw string并忽略任何转义字符,这在工作时很有用用正则表达式
从我阅读的文档来看,其他一切对我来说都是正确的,所以我认为你只需要将它们改为:
msgid "^help/"
msgstr "^ayuda/"