第五十五章 本地化和基于标签的开发
第五十五章 本地化和基于标签的开发
介绍
在基于标记的CSP页面开发过程中,可以配置某些标记,以便它们用消息字典条目替换文本。
为此,在标记内部提供本地化属性language、domain或textid。
以下标签支持这些属性:
-
<csp:text> -
<span> -
<div> -
<input>(当类型为“SUBMIT”、“BUTTON”或“RESET”时)
在大多数情况下,这些标记只在运行时工作,当为language、domain和textid提供的值指示要从消息字典检索哪条消息时。
然而,在有限的情况下,这些标记在编译时和运行时具有不同的用途。
它们可以在编译时自动为消息字典生成条目,然后在运行时检索和显示这些条目。
以下部分将解释这是如何工作的:
- 运行时的本地化标记
- 编译时的本地化标记
要进行本地化CSP应用程序的简单演示,在运行Caché时输入以下URL: http://localhost:57772/csp/samples/language.csp
运行时的本地化标记
重要提示:此主题仅适用于CSP标记<CSP:text>, <span>, <div>, <input>和<button>。
在运行时,当CSP页面显示时,标记将自身及其内容替换为消息字典中的文本。
文本的选择由标记提供的语言、域和textid属性值指定。
例如,以下语法将被fr(法语)语言、样例域和菜单消息ID指定的消息替换。
<csp:text>标签内提供的文本(在本例中是菜单)被忽略:
<csp:text textid="menu" language="fr" domain="sample">Menu</csp:text>
如果任何属性被省略或为空(值""),language, domain和textid的默认值是可用的:
- 如果没有指定
language,则%response。
使用语言。 - 如果没有指定
domain,则%response。
域使用。 Textid是必需的
默认的语言
大多数开发人员有意不提供任何语言属性,以便在运行时,语言默认为适合地区。
如果没有提供,language默认为%response的值。
语言,该语言自动从浏览器设置获取其运行时值。
可以在SAMPLES名称空间中的本地化示例的源代码中看到这种约定的示例。
如下所示:
Start Studio.- 更改为
SAMPLES名称空间。 - 在
Workspace窗口中,单击Namespace选项卡。 - 选择
CSP文件。 - 打开文件
/csp/samples/language.csp。
默认域
使用CSP页面类的DOMAIN参数的值初始化%Response.Domain属性。还可以使用标记的DOMAIN属性设置%Response.DOMAIN的值,如下所示:
<csp:class domain="myDomainName">
消息参数
如果消息文本包含参数(%1,%2,%3,%4),下面的标记属性允许指定相应的替换文本:arg1, arg2, arg3, arg4。
可以提供文字值或使用变量。
例如:
<csp:text textid="sessionInfo" arg1="#(userName)#" arg2="#(roleID)#" />
按钮文字
在基于标记的CSP文件中,按钮上显示的文本通常使用<input type="button">或<button>标记的值属性指定。
当<input>标记使用本地化属性(语言、域或textid)时,value属性将被忽略。
按钮上显示的文本是来自消息字典的文本。
如果想本地化<button>标记上的文本,请使用<csp:text>标记的language、domain或textid属性。
编译时的本地化标记
重要提示:本主题仅适用于CSP标记<CSP:text>, <span>, <div>和<input>。
textid属性可以有空值""。
如果是这样,在编译基于标记的CSP文件时,将在消息字典中自动生成一条新消息。
生成的消息的文本由CSP标记的内容组成。
Caché通过计算文本的32位CRC(循环冗余校验)生成消息ID。
只有<csp:text>标记允许实际上省略所需的textid属性。
其他的本地化标记要求您至少提供一个空值“”。
如果<csp:text>标签缺少textid属性,系统将自动生成一条新的消息和消息ID值。
在<csp:text>中省略textid的情况下,标记内的文本可以在开头包含一个可选的@textID@字符串。
textID是希望分配给消息的消息ID。
例如:
<csp:text>@simpleMenu@Menu</csp:text>
在上面的示例中,Caché不生成消息ID。
它生成一条文本为Menu的消息,并为其提供消息ID simpleMenu。
当CSP标记用于在编译时生成消息字典条目时,它仍然作为引用在运行时检索该条目。

浙公网安备 33010602011771号