开发odoo系统模块的时候,如果一开始就有国际化的需求,无论是模型的定义还是视图的构建,建议使用英语作为第一语言:一方面,英语本身就是一种国际化的语言;另一方面,odoo内置模型字段描述如Created by和Created on都是用英文,如果我们将中文作为第一语言,就会出现原始.po语言文件中既有中文,又有英文的尴尬场景,还需要再做一次从中文到中文的翻译。poedit截图如下:

odoo的国际化翻译大致有一下几个步骤:

  1. 导出模块.po文件
  2. 使用poedit工具进行词条翻译
  3. 将翻译后的.po文件放到模块的i18n文件夹下,然后执行语言添加操作

导出模块.po文件

我们打开开发者模式,通过“设置-翻译-导入/导出-导出翻译”进入如下弹窗界面:

语言选择简体中文,格式选择PO单据,然后选择我们要导出的应用,执行导出操作会得到一个zh_CN.po文件。

使用poedit工具进行词条翻译

1.下载poedit

2.安装后使用poedit翻译我们导出的po文件中的词条,如下截图:

最终效果展示

1.在开发的模块根目录中创建i18n目录,然后把翻译过保存之后的zh_CN.po文件放到i18n目录中。

2.模块在安装的时候会自动加载i18n目录中的po文件,所以在安装之后就会看到翻译的效果,如下图:

3.模块在升级的时候是不会执行po文件的重载操作的,如果是在模块的开发过程中新添加的翻译,执行以下操作即可完成po文件的重载:通过“设置-翻译-语言”导航到如下界面

单击第一条数据“简体中文”,进入到表单页面,然后单击“启动及翻译

勾线“覆盖现有术语”,然后单击“添加”,即可完成po文件的重载

跳过的坑

因为在模块名称中使用了短横杠odoo-logistics,导致国际化翻译这个步骤一直卡壳,为什么会这样呢?参考odoo框架源码,这里标记下代码位置:

模块名称改成odoo_logistics后,就正常了;一个模块命名问题导致的卡壳,虽然花费了不少时间,不过问题总算解决了。

点击阅读原文:菜园工程师

Odoo16—国际化翻译的更多相关文章

  1. Ios国际化翻译工具

    IOS Translation Tool(IOS国际化翻译工具) 介绍 当IOS项目国际化的时候,手工去翻译每一个字符串是一件非常痛苦的事情.尤其是当项目中存在N多种语言.而且又很难保证,手工翻译的准 ...

  2. 给iview项目加一个i18n国际化翻译

    看了上一篇博客吗?我们就根据那一篇博客来,用里面的项目,进行我们接下来国际化翻译项目. 我们安装vue-i18n和js-cookie npm install vue-i18n npm install ...

  3. Qt 国际化翻译

    简介 Qt Linguist 提供了一套加速应用程序翻译和国际化的工具.Qt 使用单一的源码树和单一的应用程序二进制包就可同时支持多个语言和书写系统. 使用 QTranslator 来加载生成的 qm ...

  4. i18n,国际化翻译,excel与js互转

    背景 公司开发新产品时,要求适配多国语言,采用i18n国际化工具,但翻译字典(js的json)还是需要前端自己写的.字典最终需要转换成excel给专业人员翻译,翻译完成后再转换成js字典文件. 如果手 ...

  5. jquery/vue/react前端多语言国际化翻译方案指南

    ❝ 本文章共3470字,预计阅读时间5-10分钟. ❞ 国际化-前言 每个开发者能希望编写的程序可以让全世界的用户使用,它要求从产品中抽离所有地域语言,国家/地区和文化相关的元素.换种说法,「应用程序 ...

  6. odoo国际化翻译

    翻译功能简述 每个模块的翻译文件放在该模块目录下i18n目录里. 模块内相关字符串一般用英语写成,然后通过翻译模板导出功能,导出一个翻译模板po文件. 翻译人员使用翻译软件(poedit)进行翻译后, ...

  7. Qt学习之路(34): 国际化(下)

      原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://devbean.blog.51cto.com/448512/245063 上次 ...

  8. Vue国际化处理 vue-i18n 以及项目自动切换中英文

    1. 环境搭建 命令进入项目目录,执行以下命令安装vue 国际化插件vue-i18n npm install vue-i18n --save 2. 项目增加国际化翻译文件 在项目的src下添加lang ...

  9. SpringBoot系列——i18n国际化

    前言 国际化是项目中不可或缺的功能,本文将实现springboot + thymeleaf的HTML页面.js代码.java代码国际化过程记录下来. 代码编写 工程结构 每个文件里面的值(按工程结构循 ...

  10. Django 国际化和本地化

    所谓的国际化,是指使用不同语言的用户在访问同一个网站页面时能够看到符合其自身语言的文本页面. 国际化的基本原理是: 浏览器通过LANGUAGE_CODE在HTTP请求头中告诉网站后台服务器用户所需要的 ...

随机推荐

  1. 2017-A

    2017-A 题目描述: 输入一个字符串,要求输出能把所有的小写字符放前面,大写字符放中间,数字放后面,并且中间用空格隔开,如果同种类字符间有不同种类的字符,输出后也要用字符隔开. 例: 输入 12a ...

  2. 织梦DedeCMS文章内容页调用标签方法教程

    织梦DedeCMS是新手站长使用比较多的建站软件,其模板制作也比较方便,一些站长朋友对其模板调用标签不是太熟悉,小编为大家介绍下织梦文章内容页调用标签的方法. 1.调用文章标题: {dede:fiel ...

  3. burpsuite验证码爆破后台夺权

    目录 准备工作 爆破 同时爆破用户名密码和验证码 筛查爆破结果的成功输出 创建新用户远程桌面连接 准备工作 安装python 安装muggle_ocr库 运行xp_CAPTCHA服务端 burpsui ...

  4. 数据泵(impdb)导入Oracle分片的数据库dump文件

    数据泵(impdb)导入Oracle数据库 一.sqlplus登录目标数据库,创建导入的目录路径 #该目录要在导入的数据库本机建立,如果是docker就在容器内部创建 create directory ...

  5. Linux系列教程——Shell、Linux文件管理

    文章目录 Shell 1.什么是Bash shell(壳) 2.Bash Shell能干什么? 3.平时我们如何使用Shell呢? 4.Shell提示符 5.Shell基础语法 2.Bash Shel ...

  6. 一个简单的C4.5算法,采用Python语言

    Test1.py 主要是用来运行的 代码如下: # -*- coding: utf-8 -*- from math import log import operator import treePlot ...

  7. Cloud Bursting解决方案,Serverless容器降本增效极致体验

    本文分享自华为云社区<DTSE Tech Talk | 第42期:Cloud Bursting解决方案,Serverless容器降本增效极致体验>,作者:华为云社区精选. 线下IDC自建K ...

  8. Apache协议原文及中文翻译

    Apache协议原文及中文翻译 参考链接 原文 Apache License Version 2.0, January 2004 http://www.apache.org/licenses/ TER ...

  9. CentOS7调整分区大小

    前言 部署CentOS7的时候分配的动态扩充虚拟磁盘,共1T大小,在安装Centos时默认分区,系统仅给/分配50G,而大量空间都挂载到/home下,最近CentOS7使用中发现空间已不足够,所以就想 ...

  10. React生命周期函数(迭代合并:react 16.3)

    本文分两部分,上面的是react16.3,下部分是老版本 react 16.3生命周期更新解析 ------ 老react版本生命周期 1.组件生命周期的执行次数 只执行一次: constructor ...