web.py笔记模板3 i18n 切换

研究了很久pot,po,gettext,poedit的文档

基本上弄明白了概念

 

但实际上做起来远不是那么回事

http://teliute.laxjyj.com/TeacHtm/TePoedit/index.html 一个关于poedit比较适合的教程

 

看了一堆参考后,决定下手做一个

 

1 生成po文件 和 mo文件

根据官方网站上提供的命令,生成pot文件或者直接生成po文件并不是那么好使

直接用notepad++编辑了一个po文件

然后运行

 

D:\Program Files\Poedit\bin>msgfmt.exe -o D:\temp\i18n\en_US\LC_MESSAGES\message

s.mo D:\temp\i18n\en_US\LC_MESSAGES\messages.po

 

生成mo文件

msgfmt在python27/tools/i18n下也有一个

 

2 运行 http://webpy.org/cookbook/i18n_support_in_template_file.zh-cn 的例子通过

 

3 又根据以上步骤,做了一个中文的zh_CN

 

D:\Program Files\Poedit\bin>msgfmt.exe -o D:\temp\i18n\zh_CN\LC_MESSAGES\message

s.mo D:\temp\i18n\zh_CN\LC_MESSAGES\messages.po

 

运行 http://webpy.org/cookbook/runtime-language-switch.zh-cn的例子报错

 

马上就想到自己用notepad++编辑po文件是不是有点太乱来了

用poedit打开一看

果然应该是中文的地方显示乱码

重新用poedit编辑一次,保存

再次生成mo文件,通过

 

index.html

 

 

$_("Message")

<a href="http://127.0.0.1:8080/?lang=en_US">USA</a>

<a href="http://127.0.0.1:8080/?lang=zh_CN">CHN</a>

 

i18n\zh_CN\LC_MESSAGES\messages.po

 

 

msgid ""

msgstr ""

"Project-Id-Version: \n"

"POT-Creation-Date: \n"

"PO-Revision-Date: \n"

"Last-Translator: lk <[email protected]>\n"

"Language-Team: \n"

"MIME-Version: 1.0\n"

"Content-Type: text/plain; charset=UTF-8\n"

"Content-Transfer-Encoding: 8bit\n"

 

msgid "Message"

msgstr "这里是中文"

 

i18n\en_US\LC_MESSAGES\messages.po

 

 

msgid "Message"

msgstr "This is English"

 

总结

1 是不是po mo什么的,php用的最多,因为google出来的结果不经意都是php的

2 gettext的pygettext还是没学会怎么用

3 这个po文件的路径和文件名字好像是固定的?不能拆分成多个?还没看api暂时不确定,到时候看api要记得看

4 代码上关于怎么调用的代码,仍然稀里糊涂的,哎。。。。

 

你可能感兴趣的:(web.py)