Java开源ERP系统Axelor汉化方法初探

Axelor简介

汉化过程介绍

定义语言和本地化

导出多语言记录

导入翻译

验证翻译

调整翻译


  • Axelor简介

        2024年6月份Axelor ERP发布了8.1版本,适配JDK11及PostgreSQL12及以上版本(7及以前版本适配JDK8及PostgreSQL10)数据库。v8版本较之前版本在界面上有很大的变化,深色(Dark)主题更Nice了。

浅色(Light)主题仍保持Axelor的简洁明亮的风格。Axelor在java开源ERP系统中具有很强的竞争力。

        Axelor使用Gradle作为构建工具,前端采用ReactJS,但基本不需要开发人员写前端代码,官方的open-suite-webapp(一套完整的ERP系统,也就是本文中描述的这套系统)中也只有axelor-human-resource和axelor-project两个模块有单独的js模块代码,其余均为java或groove代码,因此对项目二次开发支持还是相当友好。

        Axelor发布的版本中集成了Studio开发环境、BPM Studio以及WS Studio,使得二次开发效率得到更好的提升。本文中就不对这些内容展开描述了。以下截图为示例BMP流程(披萨发货流程)

Studio主要用于界面设计的调整,也可以进行项目的实体设计等,类似Axelor的一个低代码开发平台。

        Axelor ERP多语言支持方面较Odoo(另外一个Python语言的开源ERP)要少很多,Odoo17中支持的多语言有72种,而Axelor默认的只有英语和法语,但是Axelor中,多语言的处理也还算友好,并不复杂。下面就介绍一种简单的快速翻译成中文的处理方法,供Axelor爱好者参考。

  • 汉化过程介绍

        汉化处理的过程大体分为以下几个步骤:

  • 定义语言和本地化

        增加语言:进入Application config->General data->Language增加中文记录,如下:

        增加本地化:进入Application config->General data->Locallizatuions增加中文记录,如下:

  • 导出多语言记录

        官网对这部分的介绍并不详细,论坛中推荐的方式是通过Advanced Export(Application config->Technical maintenance->Advanced Export),然后做后续的处理,本文采用的是直接从数据库表获取记录方式。

        Axelor的多语言记录全部保存在数据库表“meta_translation”中,所以只要把这里的记录导出后进行翻译即可,该表的结构也很简单:

        翻译主要用到的就是message_key和message_value两个字段,其中message_key是程序中处理和检索多语言的键值,字符串类型,根据模块中开发人员熟悉的语言进行预定义,message_value是界面中显示的内容,所以真正要翻译的就是message_value。因此这里只要把这两个内容导出来,对message_value进行翻译后再导入到meta_translation表中即可。

        假设我们希望通过英文的多语翻译成中文,那么只要在SQL工具中执行以下语句,并将结果保存为excel文件即可(本文使用Google文档翻译,所以导出Excel,如果使用其他文档翻译器,根据文档翻译器支持的文档格式导出或者导出后再转换),导出的文件编码为UTF-8

select message_key,message_value from meta_translation where language = 'en' and  COALESCE(message_value,'') !='';
  • 导入翻译

        将上述字段导出Excel后,将文件另存一份,其中一份只保留需要翻译的message_value这一列(这里假设为文件B,原始导出的文件为A),然后把文件交给Google进行翻译,将翻译后的文件下载(这里假设文件C),将C中内容复制到文件A中(注意不要错行),然后在Excel中通过公式方式做SQL拼接,将A文件中的message_value和message_key拼接为insert语句,

INSERT INTO meta_translation (id,  version, message_key, language, message_value) 

其中,id取值为nextval('meta_translation_seq'), version取值为0,languzge取值为"zh",message_value和message_key分别为Excel表中的行记录。将拼接好的SQL通过SQL命令行或者工具执行插入。这里需要补充说明的是,由于key和value的值中均有可能存在单引号或者双引号这种特殊字符,需要对这两部分的值针对这些特殊字符进行替换处理,以保证拼接后的SQL能正常执行,当然也可以忽略这些内容,后续手工再做翻译的调整。

  • 验证翻译

        打开应用右上角的用户配置,选择中文。

        界面中如果已经能正常显示中文即表示翻译已经生效

加载完成后

打开一个节点

如果希望登陆界面也默认是中文,需要修改Axelor系统的启动配置文件中的application.locale = zh_CN,具体间在线文档。

  • 翻译调整

      由于不同翻译器对计算机系统这种相对比较专业的翻译并不一定完全符合使用习惯,因此,如果对机器翻译的结果不满意时,可以通过Administration->View Management->All Translations进行调整处理

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/779554.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

kubernetes集群部署:node节点部署和cri-docker运行时安装(四)

安装前准备 同《kubernetes集群部署:环境准备及master节点部署(二)》 安装cri-docker 在 Kubernetes 1.20 版本之前,Docker 是 Kubernetes 默认的容器运行时。然而,Kubernetes 社区决定在 Kubernetes 1.20 及以后的…

昇思MindSpore学习入门-评价指标

当训练任务结束,常常需要评价函数(Metrics)来评估模型的好坏。不同的训练任务往往需要不同的Metrics函数。例如,对于二分类问题,常用的评价指标有precision(准确率)、recall(召回率&…

代码随想录算法训练Day58|LeetCode417-太平洋大西洋水流问题、LeetCode827-最大人工岛

太平洋大西洋水流问题 力扣417-太平洋大西洋水流问题 有一个 m n 的矩形岛屿,与 太平洋 和 大西洋 相邻。 “太平洋” 处于大陆的左边界和上边界,而 “大西洋” 处于大陆的右边界和下边界。 这个岛被分割成一个由若干方形单元格组成的网格。给定一个…

调度系统揭秘(下):调度算法与架构设计

文章目录 一、调度算法1.1、广度优先:1.2、深度优先1.3、总结广度优先搜索(BFS)深度优先搜索(DFS) 二、架构设计2.1、Master/Slave架构优劣分析 2.2、Leader架构优劣分析 2.3、总结 一、调度算法 在调度系统中,调度算…

【】AI八股-神经网络相关

Deep-Learning-Interview-Book/docs/深度学习.md at master amusi/Deep-Learning-Interview-Book GitHub 网上相关总结: 小菜鸡写一写基础深度学习的问题(复制大佬的,自己复习用) - 知乎 (zhihu.com) CV面试问题准备持续更新贴 …

本安防爆手机:危险环境下的安全通信解决方案

在石油化工、煤矿、天然气等危险环境中,通信安全是保障工作人员生命安全和生产顺利进行的关键。防爆智能手机作为专为这些环境设计的通信工具,提供了全方位的安全通信解决方案。 防爆设计与材料: 防爆智能手机采用特殊的防爆结构和材料&…

机械硬盘故障分析及损坏处理(坏道屏蔽)

机械硬盘故障分析: 1、加电后没有声音就是电机不转,是电路问题,更换电路板解决。 2、加电后电机转,有连续敲击声音,或有异响,磁头损坏或机械故障。 3、加电后电机转,运行正常,BIOS无…

建立数据通路(一)

指令周期(Instruction Cycle) 指令种类 Fetch(取得指令) 也就是从PC寄存器里找到对应的指令地址,根据指令地址从内存里把具体的指令,加载到指令寄存器中然后把PC寄存器自增,好在未来执行下一条指令 Decode(指令译码) 也就是根据指令寄存器里…

Apache Seata新特性支持 -- undo_log压缩

本文来自 Apache Seata官方文档,欢迎访问官网,查看更多深度文章。 本文来自 Apache Seata官方文档,欢迎访问官网,查看更多深度文章。 Apache Seata新特性支持 – undo_log压缩 Seata新特性支持 – undo_log压缩 现状 & 痛点…

类与对像(1)

好几个月没有写了,差了好多,这些天补回来吧。 接下来,让我们正式步入C与C语言开始不同的地方。 我对类的理解:类是对于具有相同或相似属性的数据集合。 类的关键词:class,public,protected&a…

2024年加密货币市场展望:L1、L2、LSD、Web3 和 GameFi 板块的全面分析与预测

随着区块链技术的快速发展,加密货币市场在2024年继续展现出蓬勃的生机和创新的潜力。本文将深入分析L1、L2、LSD、Web3和GameFi这五大板块的发展趋势和预测,帮助投资者和爱好者更好地理解和把握市场机遇。 一、L1:基础层协议的持续进化 L1&a…

python自动化办公之cryptography加密解密

目录 用到的库 实现效果 代码部分 1、加密2024.txt文件 2、解密2024.txt文件 用到的库 cryptography 实现效果 加密文件和解密文件 代码部分 1、加密2024.txt文件 # 加密 from cryptography.fernet import Fernet # 生成加密密钥 keyFernet.generate_key() cipher_s…

K8S 部署 EFK

安装说明 系统版本为 Centos7.9 内核版本为 6.3.5-1.el7 K8S版本为 v1.26.14 ES官网 开始安装 本次安装使用官方ECK方式部署 EFK,部署的是当前的最新版本。 在 Kubernetes 集群中部署 ECK 安装自定义资源 如果能打开这个网址的话直接用这个命令安装,打不开的话…

创建一个不带框架的javaweb工程

点击新建 选择Maven,然后在Archetype里面选择 webapp选项(注意这里需要配置好Maven的环境 如果没配好Maven引入依赖的时候会引不进来) 如果Maven配置之后就会显示配置成功 然后我们要配置tomacat的依赖 jde选择默认 然后点击部署 选择工件&a…

高阶算法班从入门到精通之路课程

本课程旨在帮助学员深入理解算法与数据结构的核心概念,从而掌握高级算法设计与分析技能。每集课程内容精心设计,涵盖了常用数据结构、经典算法及其应用场景等方面的深度讲解,同时通过大量实例演练,帮助学员提升解决实际编程难题的…

2000-2022年地级市数字经济指数(含控制变量)

2000-2022年地级市数字经济指数(含控制变量) 目录 数字经济对区域经济发展的影响实证研究 一、引言 二、文献综述 三、数据来源与变量说明 四、实证模型 五、程序代码与运行结果 数字经济对区域经济发展的影响实证研究 摘要: 本文旨在…

【分布式计算框架 MapReduce】高级编程—搜索日志数据分析

目录 一、对于 sogou_500w_utf 数据,使用 MapReduce 编程模型完成对以下数据的分析任务 1. 统计 2011-12-30 日搜索记录,每个时间段的搜索次数 (1)运行截图 (2) 源代码 2. 统计 2011-12-30 日 3 点至 …

C++类与对象

1. stack声明与定义 引入构造器实现 自定义 栈大小 // constructor构造器 // 1. 与类名相同,无返回值,被系统生成对象时自动调用,用于初始化 // 2. 可以有参数,构造器的重载,默认参数,重载和默认参数不同…

2024阿里国际春招笔试

第一题 0 解题思路: 数据范围很大,肯定得找规律。 当n1时,0,1,结果为0 当n2时,00,01,10,11,结果为1 当n3时,000,001,010&a…

38 IO流

目录 C语言的输入和输出流是什么CIO流stringstream的简单介绍 1. C语言的输入与输出 C语言中我们用到的最频繁的输出方式是scanf和printf,scanf:从标准输入设备(键盘)读取数据,并将值存在变量中。printf:…