多语言系统的实现思路

场景说明

本身是跨国公司或者有涉及跨国业务的公司,都有多语言的需求。

一、对于该公司的普通用户

1. 显示与提示

对于该公司的普通用户来说,往往需要按自己熟悉的语言来显示系统。比如中国的员工登录系统时,希望看到的菜单名称、界面上的按钮是中文的。操作过程中给到的提示语,也是中文的。

2. 录入数据

录入客户信息、订单信息数据时,则希望能够录入中文名称,也能录入英文名称,当然英文名称可能由外语较好的其它同事来录入。

3. 单据查询与打印

打印或者查询单据时,可能需要一到两种语言同时显示。

4. 国际化

对于关键岗位的用户来说,可能还得区分各个国家使用币种、区域时间等等。

二、对于该公司的IT管理员

希望能够对系统使用的语言自行定义,以应对不同时期,使用不同语言。比如,今年只做英国的业务,只需要使用英文,但明年需要做法国的业务需要使用法语。

实现思路

如何设计一套系统支持用户的上述要求,并且对语言范围没有限制,后期客户还可以自行扩展其它语言。本文提供一套思路供大家参考。

首先在语言档案表里,建立多语言档案,在用户登录界面,添加 语言选择框,让用户在登录界面时,就选择一种默认语言。用户登录后,除了业务数据外,系统菜单、按钮、单据标题、提示语都按默认语言显示。

业务单据的查询和打印界面,默认显示两种语言,其它语言对应的业务数据通过弹窗显示。

按技术实现多语言有三个场景:元数据多语、提示语多语、业务数据多语。

一、元数据

元数据这个词大家可能不太能理解,其实就是指菜单、按钮等预置在系统里的数据。

大部分的ToB系统,界面上显示哪些字段、查询条件、按钮 这些信息都是预置在数据库里的。这里推荐建表时就按 基础表和语言表 配对创建。

拿按钮表为例,基础表 我们可以 命名为  AA_FormButtons_Base,   记录按钮的工具栏ID,按钮ID,图标ID 等等;这基础表的基础上 我们再建一张语言表  AA_FormButtons_Lang

AA_FormButtons_Base

AA_FormButtons_Lang

二、提示语

考虑到PC端、PAD端、PDA端等多个终端的场景,且PAD、PDA有可能进行离线作业,所以提示语的多语数据不能存在数据库服务器里,需要以资源文件方式做进安装包,随软件安装同步放入运行终端。

资源文件可以是json、XML、二进制等格式,大家按需使用即可。资源文件的文件命,体现对应的语言。

下面拿Json文件为例子:

1. 资源文件: W1_Barcode_ZH-CN.json   代表中文语言,内容如下

{ DocNo:"单据号", MustInput:"{0}不能为空", Title:"标题" }

2. 资源文件: W1_Barcode_EN-US.json  代表美式英文,内容如下

{ DocNo:"Doc No." MustInput:"{0} Must Is Input!" Title:"Title" }

平台 String MultiLang.GetString(string cSubID,string key, para[] params)

三、业务数据

a. 工具栏增加“国际化”按钮,点按钮弹出多语言录入框。

b. 框里两部分内容:1.语言,2.档案中启用多语言的字段。

c. 只有数据库字段为文本 且 录入方式为文本的字段 才能启用多语言

d. 业务数据存在于数据库,在原来业务组的基础上,添加一张语言表。字段取原来业务表的ID和字符串类型的字段,在此基础上添加语言类型cLangID,

(要不要单据模板上加个字段表示哪些字段启用了多语言,或者 添加一个多语言表,表示哪些档案哪些字段启用了多语言 )

录入多语言业务数据

  • 10
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值