这是一个相当复杂的话题,但默认情况下 Django 有很多东西可以帮助。django 的区域设置部分将查看 cookie 的语言偏好,我相信浏览器还提供了一些元素,它可以为网站的新访问者选择默认语言。
在 Django 中,要注意的是i18n,有关该主题的文档在这里;https://docs.djangoproject.com/en/1.11/topics/i18n/
您需要启用两项设置才能最好地支持多种语言;USE_I18N添加语言元素,USE_L10N允许日期、数字、货币等的本地化格式。
关于翻译的主题,请阅读本文,因为您需要确保向用户显示的 python 代码、javascript 和模板中的字符串包含在适当的翻译函数中。
在您的根urls.py
文件中,您还需要确保您使用的i18n_patterns
是将当前启用的语言代码作为 URL 的前缀。带有 Javascript 翻译 URL 的示例是:
from django.conf.urls.i18n import i18n_patterns
urlpatterns = i18n_patterns(
url(r'^jsi18n/$', JavaScriptCatalog.as_view(), name='javascript-catalog'),
)
一旦您对设置进行了排序,设置了 URLi18n_patterns
和模板中的一些{% trans "" %}
标签,您就可以测试消息目录的实际生成。
为此,您使用两个管理命令,第一个是makemessages ,然后将翻译添加到生成的文件中,然后运行compilemessages
以完成工作。