Odoo14介紹3:Odoo的翻譯和中文本地化


本系列背景介紹

 

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的中文化非常成熟,這也解除了國人使用這一國外開源產品的顧慮。中國人使用外國產品,如何做好中文化是基礎,所以這也是為什么把這個主題放在系列的第三篇文章中介紹,希望對你們有幫助。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM