跳转至内容
  • 版块
  • 标签
  • 热门
  • 用户
  • 群组
皮肤
  • Light
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • 默认(Flatly)
  • 不使用皮肤
折叠

Odoo 中文社区

  1. 主页
  2. 版块
  3. Odoo 开发与实施交流
  4. Odoo14介绍3:Odoo的翻译和中文本地化

Odoo14介绍3:Odoo的翻译和中文本地化

已定时 已固定 已锁定 已移动 Odoo 开发与实施交流
1 帖子 1 发布者 333 浏览
  • 从旧到新
  • 从新到旧
  • 最多赞同
登录后回复
此主题已被删除。只有拥有主题管理权限的用户可以查看。
  • A 离线
    A 离线
    anodoo
    写于 最后由 编辑
    #1

    本系列背景介绍

    Odoo 是一个基于Python语言构建的开源软件,面向企业应用的CRM,ERP等领域,其目标是对标SAP,Oracle等大型软件提供商,但却通过仅仅一个平台满足企业所有管理的业务需求。

    本系列文章针对Odoo 14版,从系统安装,开发环境配置,代码结构,主要功能升级,源码赏析,Anodoo对Odoo的关键扩展等角度,预先给大家介绍即将在2020年发布的这一最新版本。

    本篇概述

    Odoo在本地化方面非常成熟,一套系统,不同国家不同语言都可以使用。针对系统中保存的数据,都可以实现多语言支持。本文在介绍Odoo14的时候,同时将这个体系向大家做一个介绍。

    Odoo官方是怎么做好本地化工作

    Odoo已经发展十几年,具备非常成熟的架构和功能。在本地化方面也是非常成熟的,中国的用户完全不用担心。现有包括官方的,以及中国多个社区现有的翻译成果已经可以很好地支持中文,如果自己定制,还可以基于Odoo的翻译架构轻松地进一步优化。Anodoo的目标之一就是基于Odoo,通过翻译优化,定制出一个完全面向国人的CRM,除了操作习惯,完全的中文化也是之一。

    Odoo的官方本地化工作基于Transifex。关于Transifex,具体请访问:http://www.transifex.com。(建议注册和登录体验一下)。目前在Transifex上的翻译工作有几千人,其中中文的翻译有近300人,足以看出Odoo在中国的发展。

    如何参与到Odoo 14官方的翻译工作贡献中国人的力量

    通过上图可以看到Odoo在上面维护了当前多个可用版本的本地化项目,包括2020年发布的Odoo14。具体地址是:https://www.transifex.com/odoo/odoo-master/ 。你可以点击翻译查看如何参与。有多种方式,包括注册和登录后在线翻译,也可以下载PO,并使用poedit等编辑工具进行修改和维护。

    由于Transifex提供了和Github整合的方案,Odoo应该是将自己的Github库和Transifex进行了对接的。同时,从源码上,也看到Odoo和Gengo,Transifex等平台有对接的模块,有兴趣的可以好好研究,学习一下Odoo是如何做好本地化工作的。

    如何在项目中做好Odoo本地化

    由于Odoo是源码开放的免费产品,所以很多人都会基于源码发布,或多或少都会做一些定制。那么针对中文的翻译可以说是很重要的一环。

    那如何做好Odoo的中文翻译呢,参考我的Anodoo项目,我会参与到Odoo官方的翻译项目中,这样可以将我项目中的一些翻译提交到官网,同时,为了确保那些未被官方收录的翻译能应用在自己项目的上,所以会在Transifex上创建一个自己的翻译项目,维护好自己的PO文件,供Anodoo的使用者使用。

    如果大家使用Odoo13,除了使用官方已经随产品发布提供的PO文件之外,也可以到Transifex中下载最新的包,通过文本比较工具,快速将好的翻译同步到自己的项目PO中,并保持半年或一年一次的同步频率。自己的项目中一旦修改了PO文件,就需要维护好这些文件了。

    项目中对于一些翻译的修改还可以通过直接后台修改记录(ir_translation)的方式直接修改。这种修改的好处是快捷,但缺点是需要备份。

    总结一下,最好的办法,是平时在后台数据库即时修改,并定期将数据库做了更新的部分定义同步PO文件,也可以将官方和中国其他平台社区提供的PO改进一并同步到自己的PO中,在一并更新到自己的系统。Anodoo由于是对外提供的CRM产品,所以会基于这个方法,同步维护好这些PO,从而实现在官方的基础上,对中文翻译改进。

    Odoo的本地化设置

    Odoo的本地化设置功能是非常丰富的。包括设置系统加载支持的语言,如英语,汉语等。可以通过多种方式如CSV,PO等导入翻译文件,也可以导出进行编辑。修改后,再导入。可以通过“已翻译术语”,查看所有的翻译记录,并如上文所提到的,在这里快捷修改翻译中文。

    针对使用者,Odoo在个人喜好中可以修改自己的语言。管理员可以设置所有用户的默认语言为汉语,也可以在用户管理中设置其他单个用户的不同语言。

    针对对外发布的网站,同样可以设置网站可以使用那些语言发布。对于多语言的网站,访问者通过切换语言,可以查看自己喜欢的语言版本。这个可以通过Odoo面向全球一百多个国家的官网查看使用效果。

    Odoo本地化的相关源码

    Odoo的模块化做的非常好,同样,在每一个模块下的i18n目录,都提供了不同语言的翻译文件,如中文的zh_CN.po文件。针对PO的文件格式,这里不重点描述。Odoo会通过注释,将翻译对应哪个模块Module,哪个模型Model,哪个字段Field等都进行备注,所以,开发人员可以按照这个格式去查找,或者创建翻译条目。

    以下是一段PO代码,便于你的理解

    #. module: crm
    #: model:ir.model.fields.field_description:crm.field_crm_lead_expected_revenue
    msgid “Prorated Revenue”
    msgstr “按比例分摊收入”
    在base模块中,Odoo通过ir_translation.py对翻译的所有条目进行管理,也就是系统会将PO中的数据导入到这里,然后在前台渲染是通过同步到内存后进行快速读取。Anodoo的做法是针对后台修改的记录,都会在这个表新增的标注字段上做好标注,并定期将这些数据同步到PO中,再随版本发布或对外单独提供更新。

    Odoo同样,提供了针对Gengo,Transifex的扩展,从而实现和这些平台的对接,有兴趣的可以具体研究。

    结语

    Odoo的中文化非常成熟,这也解除了国人使用这一国外开源产品的顾虑。中国人使用外国产品,如何做好中文化是基础,所以这也是为什么把这个主题放在系列的第三篇文章中介绍,希望对你们有帮助。

    1 条回复 最后回复
    0

    • 登录

    • 没有帐号? 注册

    • 登录或注册以进行搜索。
    • 第一个帖子
      最后一个帖子
    0
    • 版块
    • 标签
    • 热门
    • 用户
    • 群组