0

我正在尝试建立一个多语言的 django 站点,我在我的设置文件中添加了我需要的语言,并在我的 django.po 文件中翻译了所有内容。我将语言环境中间件和语言块添加到我的网址中,当我浏览它们时它们会正确显示:

/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"

我错过了什么?

4

1 回答 1

1

我认为您的msgidandmsgstr在这里是错误的:

msgid "r^help/"
msgstr "r^ayuda/"

你错误地包括了r前面,但这实际上不是url模式字符串的一部分......

请注意,在 url 模式中它是r"^help/"...r前缀告诉 Python 这是一个原始字符串并且忽略任何转义字符,这在使用正则表达式时很有用

从我对文档的阅读来看,其他一切对我来说都是正确的,所以我认为您只需将它们更改为:

msgid "^help/"
msgstr "^ayuda/"
于 2015-01-03T10:28:23.277 回答