OAF 多语言的实现
找到需要实现多语言的PG
如果需要实现多语言的PG是标准的PG,就需要使用export导出或者去服务器上的$APPL_TOP/<Application short name and version>/MDS目录下找到该PAGE;如果是客户化的page,我们一般是上传到$JAVA_TOP下。
Xlf文件生成既可在本地,也可在服务器,但在本地执行的话,需要将本地的jdk的版本和服务器一致,并将服务器上oracle的jrad下载到本地。所以我们采取服务器上生成和导入xlf的方式。
生成xlf文件
1、在服务器上新建xlf文件的存放路径,进入/home/appltest,执行 mkdir xliff,建立文件夹;
2、在服务器上的任何目录执行:
java oracle.jrad.tools.trans.extractor.XLIFFExtractor $JAVA_TOP/hand/oracle/apps/test/ webui/BillPG.xml -mmd_dir $OA_HTML/jrad -root $JAVA_TOP -xliff_dir /home/appltest/xliff -languages zh-CN
根据实际情况修改page文件的路径。说明:
java oracle.jrad.tools.trans.extractor.XLIFFExtractor :多语言文件生成需要的class
$JAVA_TOP/mdn/oracle/apps/cux/bill/webui/BillPG.xml:要实现多语言的xml页面,在服务器上的路径
-mmd_dir $OA_HTML/jrad:需要引用到的配置文件目录
-root $JAVA_TOP:定义生成的xlf文件的目录结构(root后的指定的目录结构将不包含在xlf文件中)
-xliff_dir /home/appltest/xliff:生成好的xlf文件的存放位置
-languages zh-CN:需要生成的目标语言
$JAVA_TOP,$OA_HTML:服务器上的环境变量。
将xlf文件下载到本地,用文本编辑器打开,可以看到前面几行为:
-------------------------------------------------------------------------------------------------
<?xml version = '1.0' encoding = 'UTF-8'?>
<!--DBDRV: -->
<xliff version="1.0">
<file datatype="jdr" original="BillPG" product-version="$Header$" source-language="en-US" target-language="zh-CN">
<body>
<trans-unit id=".mdn.oracle.apps.cux.bill.webui.BillPG..PageLayoutRN...windowTitle" translate="yes" maxbytes="4000" maxwidth="15" size-unit="char">
<source>Balance Bill</source>
<target>Balance Bill</target>
<?xml version = '1.0' encoding = 'UTF-8'?>
<!--DBDRV: -->
<xliff version="1.0">
<file datatype="jdr" original="BillPG" product-version="$Header$" source-language="en-US" target-language="zh-CN">
<body>
<trans-unit id=".mdn.oracle.apps.cux.bill.webui.BillPG..PageLayoutRN...windowTitle" translate="yes" maxbytes="4000" maxwidth="15" size-unit="char">
<source>Balance Bill</source>
<target>Balance Bill</target>
-----------------------------------------------------------------------------------------------------------------
encoding = 'UTF-8' 表示服务器编码为UTF-8;
source-language="en-US" target-language="zh-CN" 表示基础语言是英文,目标语言是中文;
<source>Balance Bill</source><target>Balance Bill</target> 基础语言和目标语言的提示。二者默认是一致的。需要手工将<target>标签中的提示改成目标语言的提示。
encoding = 'UTF-8' 表示服务器编码为UTF-8;
source-language="en-US" target-language="zh-CN" 表示基础语言是英文,目标语言是中文;
<source>Balance Bill</source><target>Balance Bill</target> 基础语言和目标语言的提示。二者默认是一致的。需要手工将<target>标签中的提示改成目标语言的提示。
将<target>标签中的提示更改完成后,上传到服务器。
导入xlf文件到MDS
导入xlf文件到MDS
1、在服务器上的任何目录执行
java oracle.jrad.tools.trans.imp.XLIFFImporter /home/appltest/xliff/zh-CN/BillPG.xlf -username apps -password apps1 -dbconnection "(description = (address_list = (address = (community = tcp.world)(protocol = tcp)(host = 192.168.10.11)(port = 1521)))(connect_data = ( SERVICE_NAME= TEST)))"
java oracle.jrad.tools.trans.imp.XLIFFImporter /home/appltest/xliff/zh-CN/BillPG.xlf -username apps -password apps1 -dbconnection "(description = (address_list = (address = (community = tcp.world)(protocol = tcp)(host = 192.168.10.11)(port = 1521)))(connect_data = ( SERVICE_NAME= TEST)))"
根据实际情况修改参数。说明:
oracle.jrad.tools.trans.imp.XLIFFImporter 导入xlf文件的class;
/home/appltest/xliff/zh-CN/BillPG.xlf 需要导入的xlf文件;
-username apps 数据库用户名;
-password apps1 数据库密码;
-dbconnection "(description = (address_list = (address = (community = tcp.world)(protocol = tcp)(host = 192.168.10.11)(port = 1521)))(connect_data = ( SERVICE_NAME= TEST)))" 数据库连接字符串
2、重启apache,登录系统中就可以看到效果了。