热门关键字:  ubuntu  分区  函数  Fedora  linux系统进程

i18n and l10n of Babel

来源: 作者: 时间:2008-08-18 Tag: 点击:
i18n and l10n of Babel

Babel是用python写的国际化和本地化翻译工具
在pylons book练习中,在i18n和l10n时遇到了一些小问题,记录下来备查。
1.首先安装Babel
  >easy_install Babel
2.生成一个pylons工程
  > paster create -t pylons translation
3. 生成一个控制器
  > cd translation
  > paster controller hello
4.修改 setup.py,查看setup.cfg
  > vim setup.py
  message_extractors = {'translate_demo': [
            ('**.py', 'python', None),
            ('templates/**.html', 'mako', None),
            ('public/**', 'ignore', None)]},
  把这几行反注释,就是把每行前的'#'号去掉
5.建立i18n目录
  > cd translation
  > mkdir i18n
  注意,i18n目录与controller在同一目录,
  这些在4.中提到的setup.cfg中设置。
6.打开hello.py控制器,引入必要的模块
  用任何一款支持utf-8的编辑器打开hello.py
 > vim controller\hello.py
from pylons.i18n.translation import ugettext as _
 这个是国际化与本地化的关键,需要翻译的字符串都要写成_("xxxx")

#coding=utf-8
import logging

from pylons.i18n import get_lang, set_lang
from pylons.i18n.translation import ugettext as _
from pylons import request, respone, session
from pylons import tmpl_context as c
from pylons.controllers.util import abort, redirect_to

from translate_demo.lib.base import *

log = logging.getLogger(__name__)
class HelloController(BaseController):
    def index(self):
        response.write("Default: %s<br />" % _("hello"))
        # Return a rendered template
        # return render('/template.mako')
        # or, Return a response
        for lang in ['fr', 'zh']:
            set_lang(lang)
            response.write("%s: %s<br/>" % (get_lang(), _('Hello')))

7.使用Babel来完成本地化
(1)收集要翻译的字符串,
最新评论共有 0 位网友发表了评论
发表评论
评论内容:不能超过250字,需审核,请自觉遵守互联网相关政策法规。
用户名: 密码:
匿名?
注册
栏目列表