一、Tornado的语言国际化方法
Tornado做国际化折腾了一下下,Tornado这部分的官方文档太poor了。所以自己记录一下如何用tornado结合gettext做国际化。
第一步,在项目路径下建立./locales/zh_CN/LC_MESSAGES文件夹。
第二步,使用xgettext或poedit在第一步的文件夹下创建一个po文件,比如messages.po,我用poedit创建,比xgettext方便一些。
第三步,编辑该messages.po文件,当然,po文件有自己特定的格式,需要按照它的格式编写。
msgid "" msgstr "" "Project-Id-Version: \n" "POT-Creation-Date: \n" "PO-Revision-Date: \n" "Last-Translator: \n" "Language-Team: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Language: zh_CN\n" "X-Generator: Poedit 1.8.4\n" msgid "Sign in" msgstr "登入" msgid "Sign out" msgstr "登出" msgid "Username" msgstr "用户名" msgid "Password" msgstr "密码"
msgid是网页里原先的文本内容,msgstr是准备替换的内容。新内容直接用编辑器往后追加msgid和msgstr就可以了。
第四步,修改HTML网页模板
{% include '../header.html' %} <form method="post" action="/User/Signin"> {{ _("Sign in") }}<br/> {{ _("Username") }}<br/> <input type="text" name="username" /><br/> {{ _("Password") }}<br/> <input type="password" name="password" /><br /> {% module xsrf_form_html() %} <input type="submit" name="submit" value="{{ _("Sign in") }}" /> </form> {% include '../footer.html' %}