【问题标题】:I18n - JSF variable value translationI18n - JSF 变量值转换
【发布时间】:2010-05-24 08:39:45
【问题描述】:

我在我的项目中使用捆绑国际化。我已经通过

初始化了捆绑包
<f:loadBundle basename="ui.all.bundles.AppResources_en" var="msg"/>

当我需要翻译一些文本时,我使用资源包的键来获取它的值,例如:#{msg.someText}。但是,现在我想翻译文本,哪个键是另一个变量的值。例如:

我有变量 String textToTransl。它的值是 status_booked。在我的 AppResources 定义中,status_booked 表示“已预订!”,因此,当我将其指向 #{msg.textToTransl} 时,我需要看到“它已预订!”

我怎样才能让它工作?

【问题讨论】:

    标签: java jsf internationalization


    【解决方案1】:

    用途:

    value="#{msg[currentDoc.textToTransl]}"
    

    【讨论】:

    • 如果我的 textToTransl 在 #{currentDoc.textToTransl} 中,那么我可以执行 #{msg[#{currentDoc.textToTransl}]} 吗?
    【解决方案2】:
     ui.all.bundles.AppResources
    

    不要在资源名称中包含语言环境 (_en)。资源包代码应根据请求语言环境解析特定于语言环境的包。

    【讨论】:

    • 我需要包含语言环境名称,因为所有项目仍然只有英文。但问题与此无关。
    • @Yurish - 它被称为 basename 因为你不应该包含语言环境后缀 :)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-08-31
    • 2023-03-21
    相关资源
    最近更新 更多