非攻 2010-03-11
Python语言在广泛的地方都有应用,在长时间的应用中有不少的问题困扰着我们。下面我们就详细的看看如何在MySQL数据库中的详细应用。希望在之后的使用中有所帮助。
试了很久,无论在connect的时候指定charset='utf8',还是使用set_character_set(),或者执行"SET NAMES UTF8",跟踪到character_set_name()方法返回的都是latin1...再跟代码,似乎就跑到mysql-api里去了,反正最后解决的办法也很简单,就是使用如下方式执行,而不要去拼sql语句……
Python语言 代码
>>> sql = "INSERT INTO t_user(name,nickname) values(%s,%s)" >>> param = ("张三","张三的昵称") >>> cursor.execute(sql,param)
使用gettext来实现。其实就是一个文本替换的方式,和java里用ResourceBundle、properties比较类似……
1.导入gettext模块
Python语言 代码
import gettext gettext.install('i18ntest', './locale', unicode=True)
参数说明:
作用域:用于限定翻译文件的主名路径:翻译文件所在路径unicode:使用unicode
2.把代码里需要国际化的文本全部使用_("text")的形式进行替换
3.需要进行国际化处理时,调用
python 代码 gettext.translation('i18ntest', './locale', languages=['cn']).install(True)
现在程序写好了,需要生成所需资源文件了:
1.调用python安装目录的 Tools/i18n/pygettext.py抽取所需翻译的模板
>>> pygettext.py path/to/yourfile.py
将生成一个名为messages.pot的文件
2.生成模板文件后,修改这个模板文件,其中的msgid为键值,对应你程序里写的文本,如:_("New File"),而msgstr为翻译后的值。还有就是注意修改文件头部分Content-Type的charset为合适的编码,比如utf8
3.编写好模板后,把扩展名修改为.po,运行Tools/i18n/msgfmt.py,生成二进制的资源文件
>>> msgfmt.py messages.po
将生成一个名为messages.mo的文件
4.把这个mo文件放在正确的位置.比如你在程序中是这样写的: