etiny 的本地化其实就是turbogears 的本地化,同大部分python应用一样.本质上都是在用gettext.鉴于我本身不使用turbogears ,摘录这些步骤备忘
进入etiny目录,通常是c:\python25\lib\site-packages\eTiny-xxxxx
1. 运行tg-admin --config=config/default.cfg i18n collect
该命令会在locales 生成messages.pot文件
2. 添加中文
默认的,在locales 目录只有fr,你可以通过如下命令增加中文支持
tg-admin --config=config/default.cfg i18n add zh
zh也可以是zh-CN 添加繁体可以是zh-TW
该命令会在locales 目录创建zh\LC_MESSAGES 目录并将messages.pot文件复制到该目录并更名为messages.po
注意,该过程只需要做一次
3. 修改messages.po文件中的msgstr部分,并编译
tg-admin --config=config/default.cfg i18n compile
以后只需要重复1和3
turboGears 使用的模板是kid http://www.kid-templating.org/language.html ,在kid模板中,对需要本地化的词汇使用_("") 进行标识, tg-admin i18n collect命令会收集这些字符串. 在kid 模板中用${} 进行表达式置换,所以,通常的用法是
例子:
etinyxxx/tinyep/templaes/master.kid
原来的<a href="/about">About</a>
可替换为 <a hrer="/about">${_('About')}</a> 进行本地化
执行1和3,然后重新启动start-tinyerp 登录后就能看到效果