在做项目,项目中用JQuery的menu插件实现菜单的显示。而读取菜单的配置文件是menu.xml,它里面配置的菜单名均是国际化文件的key值,即类似于:
bug.manage
需要在合适的情况下,显示为国际化文件的value值。
如"Bug管理"
首先,需要在urls.py文件中进行配置:
url(r'^jsi18n/(?P<packages>\S+?)/$', 'django.views.i18n.javascript_catalog'),
这时,在需要国际化的模板页中引入:
<script type="text/javascript" src="/jsi18n/userauth"></script>
那么,在这个页面中可以用javascript调用gettext方法实现国际化。/userauth是locale文件所在的路径(可以是app路径,此app应该在settings.py的INSTALL_APP中配置好)。
接着,在userauth的locale路径下,如/zh_CN路径下新建djangojs.po文件,将msgid和msgstr的对应关系写入。
再利用django-admin.py compilemessages
即可以在javascript中利用gettext('bug.manage')获得它对应的国际化值。