XPage本地化过程:如何批量翻译属性文件?

时间:2015-10-22 11:07:43

标签: localization xpages

我们有一个包含100多个自定义控件和XPage的庞大项目,现在我们打算以多种语言提供项目。

XPages中的本地化提供了这种美观且非常简单的方法,可以通过属性文件转换其他语言的整个项目。但是,在我们的案例中,许多自定义控件都是其他人的副本,而且许多翻译/关键字是相同的,一次又一次地改变同样的事情变得多余。

所以问题是,是否有一种更简单的方法,我们可以在一起进行大量翻译?什么,我们可以将整个翻译导出为一个文件并将其导回?

任何关于正确方向的建议/帮助都会受到赞赏。

2 个答案:

答案 0 :(得分:4)

不要使用XPage的内置本地化。它可能适用于第一次翻译,但在XPage中(很多)更改之后很难维护。

使用托管Java bean 它管理自己的属性文件并实现Map接口。

您通常使用bean来获取字符串

例:
使用str['name']获取名称标签,以便在属性文件中输入以下内容

name=Name

对数据使用java.text.MessageFormat 消息 在bean中创建类似getMessage(String name, Object arg1)的方法。

例:
使用
获取JavaScript中缺少视图的消息 str.getMessage('message.view.not.found', viewName)用于跟踪属性文件

中的条目
message.view.not.found=Could not find view {0}

答案 1 :(得分:1)

另一种方法是使用手动创建的属性文件

这里有两种语言的示例:

首先,您必须在Resources/Files

下创建以下两个文件

<强> messages.properties

global.welcome = Willkommen {0} auf meiner Webseite

<强> messages_en.properties

global.welcome = Welcome {0} on my website

现在,您可以在代码中的每个位置引用您的消息属性

<xp:this.resources>
    <xp:bundle src="/messages.properties" var="resMessage"></xp:bundle>
</xp:this.resources>

<xp:text escape="true" id="cfUser" themeId="Text.User">
    <xp:this.value><![CDATA[${javascript:I18n.format(resMessage['global.welcome'], sessionScope.commonUserName)}]]></xp:this.value>
</xp:text>