Pic*_*els 12 django localization
我有一个用荷兰语写的网站.现在我必须为该网站提供法语的第二语言.
所以我包含了所有需要用gettext函数翻译的文本,创建了po文件并将它们编译成mo文件.我还创建了一个视图,将django_language会话设置为适当的语言代码.所以现在法语版本正在运行,但我无法切换回荷兰语版本.
所以我想知道我还需要为荷兰语版创建一个po/mo文件吗?正在过去获取文本的文本已经在荷兰语中.有没有办法说使用'默认文字'?
这是我用来将语言代码添加到会话的视图:
class LanguagePickerView(RedirectView):
url = '/'
def get(self,request,*args, **kwargs):
request.session['django_language'] = self.kwargs.get('language')
return super(LanguagePickerView, self).get(request, args, kwargs)
Run Code Online (Sandbox Code Playgroud)
在我的模板中,我使用以下网址:
<a href='{% url web-language 'nl-nl' %}'>NL</a>
<a href='{% url web-language 'fr' %}'>fr</a>
Run Code Online (Sandbox Code Playgroud)
Sil*_*ght 19
默认语言字符串不存储在po/mo文件中,它们直接用于代码和模板 - 似乎你有这个权利.
您可以通过将会话变量设置django_language回荷兰语来切换回它.
确保您的设置设置正确:
LANGUAGE_CODE = 'nl' #default language
LANGUAGES = (
('nl', _('Dutch')),
('fr', _('French')),
)
Run Code Online (Sandbox Code Playgroud)
不要忘记,您不必编写代码来自行切换语言.最好使用特殊的django视图(引自django书):
为方便起见,Django提供了一个视图django.views.i18n.set_language,它设置用户的语言首选项并重定向回上一页.
通过在URLconf中添加以下行来激活此视图:
(r'^i18n/', include('django.conf.urls.i18n')),
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
14231 次 |
| 最近记录: |