Technical Blog Post
Abstract
三步开启IBMi上的多语言支持
Body
众所周知,全球化使得整个世界变得更加庞大和智慧。IBMi的一大部分客户是来自于诸如中国这样的发展中市场,所以IBMi上的多语言支持(NLS)就成为了一个重要话题。
如果客户的机器上没有安装本地NLS语言包的话,他们往往会对因此造成的问题而感到不悦。比如,一台IBMi 6.1的系统上如果没有安装中文语言包,那么当我使用5250终端模拟器连接该系统后,在进行中文的输入和输出的时候,就会产生一些问题。
当我试图输入中文字符的时候,我会在模拟器上得到类似这样的错误信息提示:“你试图输入不可用的图形字符...... ”,如图1所示:
图1
与此类似,如果我在Windows上创建一个名为test.txt的文件,其内容为:
Chinese:我的名字叫皮光明
English:My Name is Pi Guang Ming
Chinese:我的名字叫皮光明
English:My Name is Pi Guang Ming
那么,当我把它上传到CCSID设置为37的IBMi 6.1的系统之后进行编辑,中文字符也并不能显示,如图2所示:
图2
针对这个问题,本文我将以中文为例,分享如何用三个简洁的步骤来在IBMi上快速开启NLS支持的过程。
步骤1:更改系统值
修改系统值是成功转换NLS的第一个步骤。在这个步骤中,我们需要修改图形字符集和编码页标识,国家标识,编码字符集标识和语言标识。下表展示了简体中文(特性2989)语言版本的默认系统值。你可以将其替换为你当地的语言版本信息。
QCHRID QCNTRYID QCCSID QLANGID
1174 836 CN 935 CHS
QCHRID。将QCSHRID(图形字符集和编码页标识)设置为1174/836
CHGSYSVAL SYSVAL(QCHRID) VALUE('1174 836')
QCNTRYID。将系统值QCNTRYID(国家标识)设置为CN
CHGSYSVAL SYSVAL(QCNTRYID) VALUE('CN')
QCCSID。将系统值QCCSID(编码字符集标识)设置为935
CHGSYSVAL SYSVAL(QCCSID) VALUE(935)
QLANGID。将系统值QLANGID(语言标识)设置为CHS
CHGSYSVAL SYSVAL(QLANGID) VALUE('CHS')
你可以使用IBMi 系统值查询器去快速定位系统值信息。详细信息请参阅IBM i和System i信息中心。
步骤2:安装2989(简体中文)作为第二语言
请参阅IBM许可程序安装第二语言来安装2989(简体中文)作为系统第二语言。
大体上讲,你需要将包含有第二语言的媒体介质装载到安装设备中,然后运行一条CL命令并完成一些安装步骤。安装结束后,在console中的Work with Licensed Programs会确认你的安装成功完成。
步骤3:添加NLS library
最后,需要在system library list中添加NLS library QSYS2989(简体中文),运行如下命令:
CHGSYSLIBL LIB(QSYS2989) OPTION(*ADD)
成功!
在完成这三步之后,你就成功开启了中文的NLS支持。剩下的就是在5250终端模拟器中将“Code Page”设置成1388(简体中文),然后重新登录。至此,简体中文就可以正确显示了,如图3所示:
图3
如果你想转回到英文,只需要从system library list中删除NLS library(简体中文),运行如下命令:CHGSYSLIBL LIB(QSYS2989) OPTION(*REMOVE)
[{"Business Unit":{"code":"BU058","label":"IBM Infrastructure w\/TPS"},"Product":{"code":"SWG60","label":"IBM i"},"Component":"","Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"","Edition":"","Line of Business":{"code":"LOB57","label":"Power"}}]
UID
ibm11146214