python国际化

Web服务搭建好以后,可以接收来自全球不同国家用户访问。这样就要求开发人员调整软件,使之能适用于不同的语言,即国际化和本地化。国际化 -- Internationalizationi n之间有 18个字母,简称 I18N,。本地化 -- localization l n之间有 10个字母,简称 L10N。国际化意味着 Web产品有适用于任何地方的潜力,针对程序开发人员;本地化则是指使一个国际化的程序为了在某个特定地区使用而进行实际翻译的过程,针对翻译人员而言。

Django 提供了非常强大的翻译机制,开发者一旦理解它的实现,就能减少编码量,提高开发效率。

项目要做国际化,之前没做过,所以找了许多文档,最终感觉阅读官方文档来解惑和获取知识是最好,当然长时间阅读英文文档个人容易晕,也是不容易啊

现在项目中国际化基本完成,先写这文档,将自己的一些感悟记录分享下

django官方文档

一。python项目国际化主要有3类数据进行翻译

二。语言文件即.mo文件

三。生成及编译.po文件生成.mo文件

四。django如何找到.mo翻译文件

五。指定.mo文件的路径


一.python项目国际化主要有3类数据进行翻译:

1.    template文件里的静态html数据

2.    由于python的模板标签无法在js中应用,所以对js里静态展示的数据翻译也需另外的方法

3.    数据库中查询出来的数据展示到前台template文件里,对这一部分的数据进行翻译


二.语言文件即.mo文件

对于语言文件django官方文档有这样的说明:


语言文件也分两类

1.    一种是django.mo

2.    另一种是djangojs.mo,这是用于js文件里需要用到翻译的文件

如我项目中用到的国际化文件:


项目中对于国际化,我的做法是,每个app下都建立一个local/en_US/LC_MESSAGES/…

local/zh_CN/LC_MESSAGES/…文件

每个app中的数据分别翻译放置

 

三.生成及编译.po文件生成.mo文件

我的方式是这样的

1.进入Python安装目录中的il8n文件夹下


2. 双击pygettext.py文件自动生成messages.pot文件

3. 编辑messages.pot文件,保存并重命名为django.po

4. 修改文件charset=gb2312,Encoding: utf8 


5.将django.po文件拖到当前目录下的msgfmt.py文件上,自动生成django.mo文件

6.将中英文翻译文件各准备一份即可

---给个gif动态图展示以上几个步骤

然后将生成的.mo文件复制到对应的locale目录下

四.django如何找到.mo翻译文件

这是django官方文档里的说明,直接贴上吧


1.第一优先级是在settings.py文件中定义的模板文件路径

如:

LOCALE_PATHS = [
    '/home/www/project/common_files/locale',
    '/var/local/translations/locale',
]

2.次优先级是在每个app下定义的locale文件下的翻译文件

3.最后是django提供的一些基本的翻译

对于JavaScript翻译文件,官方文档中有这样的描述:

五。指定.mo文件的路径

django默认会到每个app下去找是否存在locale这样的目录结构下的.mo文件

指定也有有两种吧

1.在settings.py文件中指定

LOCALE_PATHS = [
    '/home/www/project/common_files/locale',
    '/var/local/translations/locale',
]

2.对于js用到的翻译文件

from django.views.i18n import javascript_catalog

js_info_dict = {
    'packages': ('your.app.package',),
}

urlpatterns = [
    url(r'^jsi18n/$', javascript_catalog, js_info_dict),
]
官方文档中有相关描述: 点击打开链接

可搜索Internationalization: in JavaScript code定位到那段描述

python国际化具体如何设置如何做,未完待续。。。


懒得写啦。。。

python国际化完整demo,点击下载,直接看demo吧




  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值