web.py笔记模板3 i18n 切换

本文分享了使用Poedit及Gettext工具集进行国际化资源文件(PO与MO文件)制作的经验,包括解决乱码问题、生成流程及网页国际化实现。

研究了很久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 <xx@qq.com>\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 代码上关于怎么调用的代码,仍然稀里糊涂的,哎。。。。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值