IBM Support

三步开启IBMi上的多语言支持

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
那么,当我把它上传到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