【问题标题】:Velocity template localization速度模板本地化
【发布时间】:2015-05-22 03:08:06
【问题描述】:

我正在处理一项使用 Velocity 从模板生成电子邮件的任务。我的要求之一是根据用户提交的Locale 对电子邮件进行本地化。我大部分时间都在工作,使用 Velocity 的ResourceTool 来拉入MessageBundle。另一个要求是我只能有一个模板 - 我不希望每种语言或区域设置一个模板,因为如果需要更改,这很难维护。

作为MessageBundle 的一部分,我可以拥有所谓的“复合消息”,这些消息具有在评估消息时被替换的变量。例如:

dear.name=Dear {0}:

我的问题是:如何让 Velocity 用我传入的名称替换 {0} 值?

不能接受简单地修改我的 Velocity 模板,以便在模板级别简单地替换名称 - 在某些语言中,问候词“亲爱的”出现在名称之后,因此会产生不正确的输出。

【问题讨论】:

    标签: java localization velocity


    【解决方案1】:

    找到答案:在我的速度模板中,我可以使用 Velocity 指令:

    #evaluate(${msg.dear.name})
    

    在我的消息包中,我的消息如下所示:

    dear.name=Dear $name
    

    如果我在 Velocity 上下文中设置名称,它会按我的预期被替换。

    【讨论】:

      猜你喜欢
      • 2017-05-02
      • 1970-01-01
      • 1970-01-01
      • 2013-06-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-03
      • 1970-01-01
      相关资源
      最近更新 更多