如何选择资源包取决于adf中选择的语言环境?

时间:2019-01-24 11:39:53

标签: jsf oracle-adf

我有.jspx模板,其中有页眉,内容和页脚

<jsp:root xmlns:jsp="http://java.sun.com/JSP/Page" version="2.1"
          xmlns:f="http://java.sun.com/jsf/core"
          xmlns:c="http://java.sun.com/jsp/jstl/core"
          xmlns:af="http://xmlns.oracle.com/adf/faces/rich"
          xmlns:tr="http://myfaces.apache.org/trinidad"
          xmlns:rah="http://xmlns.oracle.com/webcenter/resourcehandler"
          xmlns:wcdc="http://xmlns.oracle.com/webcenter/spaces/taglib">

,我有2个属性文件ar.properties和en.properties。 在页脚中,我有一个版权消息 会在选定的语言环境中显示,从而被取消显示

所以我做到了

 <af:outputFormatted value=" جميع الحقوق محفوظة "  rendered="#{facesContext.ELContext.locale eq 'ar'}" />
 <af:outputFormatted value="all right reserved "  rendered="#{facesContext.ELContext.locale eq 'en'}" />

它工作正常,但是这种方式效率不高,因为我将不得不在整个页面中复制每个标签

我试图放

<c:set var="bundle" value="{#facesContext.ELContext.locale eq 'en' ? {adfBundle['com.en']} : {adfBundle['com.ar']}}" />

并且仅使用了一个输出标签

<af:outputFormatted value="#{bundle.copyright}"  />

但是它警告我找不到参考包 如何解决这个问题

1 个答案:

答案 0 :(得分:0)

如您先前的问题(Cant render an outputText depending on my systemLocal Variable

中提供的(尚未验证)答案中所述。

您可以按照这份易于阅读的文档来了解如何创建本地化包:https://docs.oracle.com/cd/E15051_01/web.1111/b31973/af_global.htm#ADFUI433

您正确地将第二种方法与捆绑销售结合使用,以具有可翻译的价值。如果出现“找不到参考束”警告,则意味着您错过了必须在项目属性中定义束的部分。

请参见 21.2.1如何设置资源束选项

  

创建项目后,可以在“项目属性”对话框中设置资源束选项。

     

要为项目设置资源束选项:

     

在“应用程序导航器”中,双击项目。

     

在“项目属性”对话框中,选择“资源包”以显示   资源束选项,如图21-3所示。

     

图21-3“项目属性资源束”对话框

     

项目属性资源包。如果您想让JDeveloper   自动生成默认资源文件,选择自动   同步捆绑包。

     

选择以下资源束文件选项之一:

     

每个项目一个捆绑包-在名为的文件中配置   .properties。

     

每页一个捆绑软件-在名为的文件中配置   .properties。

     

多个共享捆绑包。

     

从下拉列表中选择资源包类型:

     

XML本地化交换文件格式(XLIFF)包

     

列出资源包

     

属性包

     

单击确定。