如何从XPages中的概要文件中读取翻译标签?

如何从XPages中的概要文件中读取翻译标签?,xpages,translation,profile,labels,Xpages,Translation,Profile,Labels,我正在使用xpages启用一个旧的Notes应用程序,该应用程序使用配置文件文档来存储翻译后的标签。notes表单中的翻译标签是使用@GetProfileField从概要文件文档中读取的,具体取决于用户在其概要文件中选择的语言 我已经了解到,不建议将概要文件文档用于xpages,因此我需要为我的xpages用户提供更好的解决方案。但重要的是,使用Notes客户端的用户仍然使用旧的配置文件文档解决方案 如何向我的xpages用户提供这些翻译标签 谢谢 Thomas您可以在这个用例中使用概要文件文档

我正在使用xpages启用一个旧的Notes应用程序,该应用程序使用配置文件文档来存储翻译后的标签。notes表单中的翻译标签是使用@GetProfileField从概要文件文档中读取的,具体取决于用户在其概要文件中选择的语言

我已经了解到,不建议将概要文件文档用于xpages,因此我需要为我的xpages用户提供更好的解决方案。但重要的是,使用Notes客户端的用户仍然使用旧的配置文件文档解决方案

如何向我的xpages用户提供这些翻译标签

谢谢
Thomas

您可以在这个用例中使用概要文件文档,因为内容只有在项目的新版本中才会更改。因此,您可以轻松地使用配置文件文档的缓存

您可以使用以下命令从配置文件文档中获取标签翻译:

var doc=database.getProfileDocumentLabelsEnglish; var label=doc.getItemValueStringlabel1; 文件回收; 退货标签; 您还可以读取应用程序范围变量映射中的所有标签,并进行自己的缓存。这样,配置文件文档将只被读取一次

如果applicationScope.labels{ var map=new java.util.HashMap; var doc=database.getProfileDocumentLabelsEnglish; var allItems=doc.getItems; 对于变量i=0;i applicationScope.labels.label1
您可以在此用例中使用概要文件文档,因为内容仅在项目的新版本中更改。因此,您可以轻松地使用配置文件文档的缓存

您可以使用以下命令从配置文件文档中获取标签翻译:

var doc=database.getProfileDocumentLabelsEnglish; var label=doc.getItemValueStringlabel1; 文件回收; 退货标签; 您还可以读取应用程序范围变量映射中的所有标签,并进行自己的缓存。这样,配置文件文档将只被读取一次

如果applicationScope.labels{ var map=new java.util.HashMap; var doc=database.getProfileDocumentLabelsEnglish; var allItems=doc.getItems; 对于变量i=0;i applicationScope.labels.label1
除了Knut的答案外,还可以通过使用此处所述的本地化选项,在XPages dev中通过“首选方式”将翻译标签翻倍:

除了Knut的答案外,还可以通过使用以下本地化选项,在XPages dev中通过“首选方式”将翻译标签翻倍:此处描述:

您需要将任务分成两部分。首先要有一个在XPage中调用的函数来获取您要查找的标签,其次要有一种在函数中提供该值的方法

直接调用配置文件不是一个好主意,因为它修复了您提供数据的方式,而且如果您不谨慎回收,还可能造成内存泄漏。我将看到4种可能的解决方案:

将概要文件文档定义为附加数据源,并简单地将标签绑定到文档中的项目。省去了你大部分的回收工作,但是很紧张

使用SsJS函数:getLabelname。它将在映射中检查范围变量,如果没有找到,则从您的配置文件中加载它。如果应用范围足够好,您只需触摸一次配置文件-速度。如果以后更改加载程序,则无需更改XPage中的任何内容

使用托管bean。与2相同的方法,只是现在可以使用el数据绑定。您的bean需要实现Map

如果标签几乎没有变化,那么进行设计时转换并将概要文件写入属性文件,这与ODP很好地配合,并使用XPages内部机制实现国际化


让我们知道进展如何

您需要将任务分成两部分。首先要有一个在XPage中调用的函数来获取您要查找的标签,其次要有一种在函数中提供该值的方法

直接调用配置文件 这不是一个好主意,因为它修复了您提供数据的方式,而且如果您不谨慎回收,还可能造成内存泄漏。我将看到4种可能的解决方案:

将概要文件文档定义为附加数据源,并简单地将标签绑定到文档中的项目。省去了你大部分的回收工作,但是很紧张

使用SsJS函数:getLabelname。它将在映射中检查范围变量,如果没有找到,则从您的配置文件中加载它。如果应用范围足够好,您只需触摸一次配置文件-速度。如果以后更改加载程序,则无需更改XPage中的任何内容

使用托管bean。与2相同的方法,只是现在可以使用el数据绑定。您的bean需要实现Map

如果标签几乎没有变化,那么进行设计时转换并将概要文件写入属性文件,这与ODP很好地配合,并使用XPages内部机制实现国际化


让我们知道进展如何

谢谢,4听起来很有趣,有什么建议吗?什么是odp?odp=磁盘上项目。启用版本控制时创建的内容。这使得通过编程修改设计元素变得非常容易,4听起来很有趣,有什么建议吗?什么是odp?odp=磁盘上项目。启用版本控制时创建的内容。它使通过编程更改设计元素变得非常容易,这是最简单的方法,尤其是如果您希望用户也在Notes客户端中使用该应用程序。这样,您就可以将翻译后的标签放在一个地方,而不需要修改经典注释部分。如果您完全切换到XPages并且不再需要支持Notes客户端,我将使用托管bean和.properties文件。这是最简单的方法,尤其是如果您希望用户也在Notes客户端中使用该应用程序。这样,您就可以将翻译后的标签放在一个地方,而不需要修改经典注释部分。如果您完全切换到XPages,并且不再需要支持Notes客户端,我将使用托管bean和.properties文件。