壹佰网|ERP100 - 企业信息化知识门户

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 2511|回复: 3

[OAF] 多语言界面的处理

[复制链接]
发表于 2008/10/10 13:11:42 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。如果您注册时有任何问题请联系客服QQ: 83569622  。

您需要 登录 才可以下载或查看,没有帐号?注册

x
近日在导出标准功能WEB界面的xml文件时,默认导出的页面的xml文件是英文的,如在导出时加入了语言选项后,导出的文件不是想象的xml,而是xlf文件,这个文件里是对相应项目的翻译。如下面的文件: export.rar (4.2 KB, 下载次数: 16)
发表于 2008/10/11 10:45:03 | 显示全部楼层
标题:
    OAF的中多语言的实现

概述:
    OAF的多语言的实现有两种方式,其一是直接通过页面上面的“个性化”连接,连接到指定的页面后,进行设置;
    其二是通过上传指定的xlf文件,来实现多语言的,下面讨论的是第二种实现方式。

原理:

实现:
    1、找到需要实现多语言的xml页面,(页面若是本地开发的,则直接从本地取得,
       若是服务器之上的标准页面,则要先使用export工具类从MDS中下载下来。)
       用文本编辑器,打开文件,确认该文件的encoding = 'UTF-8' xml:lang="en-US"
       页面xml文件的开始部分的代码如下:
       <?xml version = '1.0' encoding = 'UTF-8'?>
         <!-- dbdrv: exec java oracle/jrad/tools/xml/importer XMLImporter.class java &phase=dat+24 checkfile:~PROD:~PATH:~FILE &fullpath:~PROD:~PATH:~FILE -username &un_apps -password &pw_apps -dbconnection &jdbc_db_addr  -userId "1" -rootPackage /oracle/apps/~PROD  -rootdir &fullpath:~PROD:mds:directory  -->
           <page xmlns:jrad="http://xmlns.oracle.com/jrad" xmlnsa="http://xmlns.oracle.com/oa" xmlns:ui="http://xmlns.oracle.com/uix/ui" version="9.0.3.8.12_1330" xml:lang="en-US" xmlns:user="http://xmlns.oracle.com/jrad/user" xmlns="http://xmlns.oracle.com/jrad" file-version="$Header$">
             <content>
               <oa:pageLayout id="ageLayoutRN" windowTitle="未実施報告画面" title="未実施報告画面" amDefName="hitachi_densa.oracle.apps.xxfm.fm013.server.XxfmNotImplementReportAM" controllerClass="hitachi_densa.oracle.apps.xxfm.fm013.webui.XxfmNotImplementReportCO" function="XXFMNOTIMPLEMENTREPORTPG1" use="/hitachi_densa/oracle/apps/xxfm/attributesets/XxfmNotImplementReport1/PageLayout">
               …
    2、使用XLIFFExtractor工具类,根据xml文件生成相应的xlf文件。
       2.1、在%JDEV_INSTALL_DIR%\jdevbin\jdev\bin目录下面新建一个xliffExtractOutline.BAT文件
       2.2、在新建的BAT文件中,输入以下的代码
"set classpath=%JDEV_INSTALL_DIR%\jdevbin\jdev\lib\xml_import.jar
java oracle.jrad.tools.trans.extractor.XLIFFExtractor %JDEV_USER_HOME%\myprojects\hitachi_densa\oracle\apps\xxfm\fm013\webui\XxfmNotImplementReportPG.xml -mmd_dir %JDEV_USER_HOME%\myhtml\OA_HTML\jrad  -root %JDEV_USER_HOME%\myprojects -xliff_dir f:\xliff -languages ja-JP"                                                                                       
             set classpath=%JDEV_INSTALL_DIR%\jdevbin\jdev\lib\xml_import.jar:定义环境变量CLASSPATH
             java oracle.jrad.tools.trans.extractor.XLIFFExtractor :xml_import.jar中的class
             %JDEV_USER_HOME%\myprojects\hitachi_densa\oracle\apps\xxfm\fm013\webui\XxfmNotImplementReportPG.xml:要实现多语言的xml页面
             -mmd_dir %JDEV_USER_HOME%\myhtml\OA_HTML\jrad:需要引用到的配置文件目录
             -root %JDEV_USER_HOME%\myprojects:定义生成的xlf文件的目录结构(root后的指定的目录结构将不包含在xlf文件中)
             -xliff_dir f:\xliff:生成好的xlf文件的存放位置
             -languages ja-JP:需要生成的目标语言,因为原页面xml文件的xml:lang="en-US",所以此时需要将输出语言设置成 ja-JP
        若原页面xml文件中的xml:lang="ja-JP",那么就需要将输出语言设置成 en-US
              %JDEV_INSTALL_DIR%:JDeveloper的安装目录
              %JDEV_USER_HOME%:工程文件的存放目录
    3、在DOS command中运行xliffExtractOutline.BAT,于是,就生成了F:\xliff\ja-JP\XxfmNotImplementReportPG.xlf文件
       XxfmNotImplementReportPG.xlf文件的开始部分的代码如下:
        <?xml version = '1.0' encoding = 'UTF-8'?>
         <!--DBDRV: -->
           <xliff version="1.0">
             <file datatype="jdr" original="XxfmNotImplementReportPG" product-version="$Header$" source-language="en-US" target-language="ja-JP">
               <body>
                 <trans-unit id=".hitachi_densa.oracle.apps.xxfm.fm013.webui.XxfmNotImplementReportPG..PageLayoutRN...windowTitle" translate="yes" maxbytes="4000" maxwidth="17" size-unit="char">
                   <source>未実施報告画面</source>
                     <target>未実施報告画面</target>
                       <prop-group name="ora_untranslatable">
                         <prop prop-type="tagName">pageLayout</prop>
                         <prop prop-type="attributeName">windowTitle</prop>
                       </prop-group>
                     </trans-unit>
               …
        需要特别注意的地方:
        一、encoding = 'UTF-8'
        二、source-language="en-US" target-language="ja-JP"
        三、<trans-unit id=".hitachi_densa.oracle.apps.xxfm.fm013.webui.XxfmNotImplementReportPG.
        四、<source>未実施報告画面</source>    <target>未実施報告画面</target>
    4、在上面的第四点中,<source>标签中存放的就是原来页面xml文件中的文本,<target>标签就是你所希望修改后所显示的目标文本
       将<target>未実施報告画面</target>修改成<target>未実施報告画面日本ページ</target>
    5、使用XLIFFImporter工具类,上传xlf文件。
       5.1、在%JDEV_INSTALL_DIR%\jdevbin\jdev\bin目录下面新建一个xliffImportOutline.BAT文件
       5.2、在新建的BAT文件中,输入以下的代码
"set classpath=%JDEV_INSTALL_DIR%\jdevbin\jdev\lib\xml_import.jar
java oracle.jrad.tools.trans.imp.XLIFFImporter F:\xliff\ja-JP\XxfmNotImplementReportPG.xlf -username apps -password fmst1apps -dbconnection ""(DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (COMMUNITY = tcp.world)(PROTOCOL = TCP)(Host = 192.168.10.245)(Port = 1526)))(CONNECT_DATA = (SID = test05)))"" "                                                               
    6、在DOS command中运行xliffImportOutline.BAT,即完成的将xlf文件上传至指定目录。
    7、重启Apache后,若用英语环境登陆,则页面的相应部分显示“未実施報告画面”;若用日语环境登陆,则页面的相应部分显示“未実施報告画面日本ページ”
    8、完成

备注:
        xlf文件是基于xml文件生成的,所以说,无论这个xml是在本地的还是在服务器上,只要有指定了xml文件所在的位置,就能够生成xlf文件。
        本例所示的是在本地的环境中的操作。同理,也可以创建基于服务器的XLIFFExtractor和XLIFFImporter具体的操作可以参考OAF Developer's Guide
        但是,根据我的体会是基于服务器的导入和导出的操作比本地的麻烦,而且生成的xlf文件的可读性也差,(xlf文件中没有自动换行),所以不推荐用。

参考:
        OAF Developer's Guide:Translating Personalizations
 楼主| 发表于 2008/10/11 16:37:22 | 显示全部楼层
非常非常感谢,火热设施中
发表于 2008/10/13 09:33:22 | 显示全部楼层
二楼解释的很详细,楼主也可以参考一下这篇帖子,
http://bbs.erp100.com/thread-27673-1-1.html
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|Archiver|小黑屋|手机版|壹佰网 ERP100 ( 京ICP备19053597号-2 )

Copyright © 2005-2012 北京海之大网络技术有限责任公司 服务器托管由互联互通
手机:13911575376
网站技术点击发送消息给对方83569622   广告&合作 点击发送消息给对方27675401   点击发送消息给对方634043306   咨询及人才点击发送消息给对方138011526

GMT+8, 2025/11/29 16:42 , Processed in 0.017495 second(s), 15 queries , File On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表