OAF 多语言的实现

时间:2021-08-01 15:53:11

找到需要实现多语言的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>
-----------------------------------------------------------------------------------------------------------------
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
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)))"

根据实际情况修改参数。说明:
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,登录系统中就可以看到效果了。