OAF中多语言的实现(转)
正好前两天研究过这个问题,分享一下啊.
标题:
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" xmlns:oa="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="PageLayoutRN" 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">
</content>
</page>
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文件。
2.1、在%JDEV_INSTALL_DIR%\jdevbin\jdev\bin目录下面新建一个xliffImportOutline.BAT文件
2.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)))"" " 注:EBS服务器上都有该环境DBCONNECTION相关的环境变量
在服务器上直接导入可使用以下脚本
6、在DOS command中运行xliffImportOutline.BAT,即完成的将xlf文件上传至指定目录。
7、重启Apache后,若用英语环境登陆,则页面的相应部分显示“未実施報告画面”;若用日语环境登陆,则页面的相应部分显示“未実施報告画面日本ページ”
备注:
xlf文件是基于xml文件生成的,所以说,无论这个xml是在本地的还是在服务器上,只要有指定了xml文件所在的位置,就能够生成xlf文件。
本例所示的是在本地的环境中的操作。同理,也可以创建基于服务器的XLIFFExtractor和XLIFFImporter具体的操作可以参考OAF Developer's Guide
但是,根据我的体会是基于服务器的导入和导出的操作比本地的麻烦,而且生成的xlf文件的可读性也差,(xlf文件中没有自动换行),所以不推荐用。
参考:
OAF Developer's Guide:Translating Personalizations
原文地址:
OAF中多语言的实现(转)的更多相关文章
- Windows Store App 全球化:应用中设置语言选项
当开发者将开发的应用上传到Windows应用商店以后,使用Windows 8系统的用户可能会看到并下载这些应用,而这些用户所在的区域或者所使用的语言可能都不相同,如果他们在使用应用程序时希望改变应用显 ...
- OJ提交题目中的语言选项里G++与C++的区别(转)
G++? 首先更正一个概念,C++是一门计算机编程语言,G++不是语言,是一款编译器中编译C++程序的命令而已. 那么他们之间的区别是什么? 在提交题目中的语言选项里,G++和C++都代表编译的方式. ...
- OAF中的面包屑(breadcrumbs)始无法显示(转)
原文地址:OAF中的面包屑(breadcrumbs)始无法显示 OAF中面包屑是一种重要的导航工具.可以提示用户抵达当前页面的路径,也可以方便的切换到之前的节点. 开始做面包屑开发的时候发现面包屑总是 ...
- android 在应用中切换语言
场景: 在设置中切换中英文,然后跳转MainActivity....步骤: 1.在MyApplication 中初始化语言 public class MyApplication extends App ...
- EBS OAF中如何在多行表中实现附件功能
EBS OAF中如何在多行表中实现附件功能 (版权声明,本人原创或者翻译的文章如需转载,如转载用于个人学习,请注明出处:否则请与本人联系,违者必究) 在OAF中使用附件功能之前,要先明白Entity( ...
- OJ提交题目中的语言选项里G++与C++的区别(转载)
原文链接:http://blog.polossk.com/201405/c-plus-plus-g-plus-plus G++? 首先更正一个概念,C++是一门计算机编程语言,G++不是语言,是一款编 ...
- OAF中trunc函数的使用(转)
原文地址:OAF中trunc函数的使用 需求:在做OAF开发时,经常会需要查询功能,由于需求的不同,往往不能使用OAF标准的查询功能,需要自己客户化实现查询功能,而在查询功能中,经常会遇到查询的时间范 ...
- 【转】OJ提交题目中的语言选项里G++与C++的区别
原文链接:http://blog.polossk.com/201405/c-plus-plus-g-plus-plus G++? 首先更正一个概念,C++是一门计算机编程语言,G++不是语言,是一款编 ...
- OJ提交题目中的语言选项里G++与C++的区别
一.OJ提交题目中的语言选项里G++与C++的区别 http://www.th7.cn/Program/cp/201405/199001.shtml 首先更正一个概念,C++是一门计算机编程语言,G+ ...
随机推荐
- MySQL数据库----基础操作
一.知识储备 数据库服务器:一台计算机(对内存要求比较高) 数据库管理系统:如mysql,是一个软件 数据库:oldboy_stu,相当于文件夹 表:student,scholl,class_list ...
- 移动互联网消息推送原理:长连接+心跳机制(MQTT协议)
互联网推送消息的方式很常见,特别是移动互联网上,手机每天都能收到好多推送消息,经过研究发现,这些推送服务的原理都是维护一个长连接(要不不可能达到实时效果),但普通的socket连接对服务器的消耗太大了 ...
- 20145104张家明 《Java程序设计》第7周学习总结
20145104张家明 <Java程序设计>第7周学习总结 教材学习内容总结 第13章 简单认识时间和日期 -时间的度量:GMT.UT.TAI.UTC.Unix.epoch. -UTC:保 ...
- 20145225唐振远《网络对抗》Exp4 恶意代码分析
20145225唐振远<网络对抗>Exp4 恶意代码分析 基础问题回答 如果在工作中怀疑一台主机上有恶意代码,但只是猜想,所有想监控下系统一天天的到底在干些什么.请设计下你想监控的操作有哪 ...
- vijos 1098 合唱队形 - 动态规划
描述 N位同学站成一排,音乐老师要请其中的(N-K)位同学出列,使得剩下的K位同学排成合唱队形. 合唱队形是指这样的一种队形:设K位同学从左到右依次编号为1,2…,K,他们的身高分别为T1,T2,…, ...
- 打开vi后提示The ycmd server SHUT DOWN (restart with :YcmRestartServer)该如何处理
答:进入YouCompleteMe的安装目录安装一些必要的依赖 比如:笔者将YouCompleteMe安装到了~/.vim/bundle目录下,那么执行以下操作: cd ~/.vim/bundle/Y ...
- luoguP2826 LJJ的数学课
思路 把公式拆开维护两个值,一个a[i]的总和,一个a[i]*i的总和 也可以用树状数组维护,模板题 代码 #include <iostream> #include <vector& ...
- 海量数据处理-BitMap算法
一.概述 本文将讲述Bit-Map算法的相关原理,Bit-Map算法的一些利用场景,例如BitMap解决海量数据寻找重复.判断个别元素是否在海量数据当中等问题.最后说说BitMap的特点已经在各个场景 ...
- hdu 6444 网络赛 Neko's loop(单调队列 + 裴蜀定理)题解
题意:有编号为0~n-1的n个游戏,每个活动都有一个价值(可为负),给你m,s和k,你可以从任意一个编号开始玩,但是下一个游戏必须是编号为(i + k)%n的游戏,你最多能玩m次游戏,问你如果最后你手 ...
- POJ 1236 Network of Schools(tarjan)题解
题意:一个有向图.第一问:最少给几个点信息能让所有点都收到信息.第二问:最少加几个边能实现在任意点放信息就能传遍所有点 思路:把所有强连通分量缩成一点,然后判断各个点的入度和出度 tarjan算法:问 ...