js css html

第五十五章 本地化和基于标签的开发

2022-11-22  本文已影响0人  Cache技术分享

第五十五章 本地化和基于标签的开发

介绍

在基于标记的CSP页面开发过程中,可以配置某些标记,以便它们用消息字典条目替换文本。
为此,在标记内部提供本地化属性languagedomaintextid
以下标签支持这些属性:

在大多数情况下,这些标记只在运行时工作,当为languagedomaintextid提供的值指示要从消息字典检索哪条消息时。

然而,在有限的情况下,这些标记在编译时和运行时具有不同的用途。
它们可以在编译时自动为消息字典生成条目,然后在运行时检索和显示这些条目。
以下部分将解释这是如何工作的:

要进行本地化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, domaintextid的默认值是可用的:

默认的语言

大多数开发人员有意不提供任何语言属性,以便在运行时,语言默认为适合地区。
如果没有提供,language默认为%response的值。
语言,该语言自动从浏览器设置获取其运行时值。

可以在SAMPLES名称空间中的本地化示例的源代码中看到这种约定的示例。
如下所示:

  1. Start Studio.
  2. 更改为SAMPLES名称空间。
  3. Workspace窗口中,单击Namespace选项卡。
  4. 选择CSP文件。
  5. 打开文件/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>标记的languagedomaintextid属性。

编译时的本地化标记

重要提示:本主题仅适用于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标记用于在编译时生成消息字典条目时,它仍然作为引用在运行时检索该条目。

上一篇 下一篇

猜你喜欢

热点阅读