第四十四章 在CSP应用程序中本地化文本 - 显示本地化字符串的其他选项

简介: 第四十四章 在CSP应用程序中本地化文本 - 显示本地化字符串的其他选项

第四十四章 在CSP应用程序中本地化文本 - 显示本地化字符串的其他选项

显示本地化字符串的其他选项

在运行时显示本地化字符串的最简单方法是使用本章前面介绍的$$$Text宏之一。

本主题解释了在运行时从消息字典中检索消息文本的其他方法。如果消息文本包含参数(%1%2%3%4),则在页面上显示文本之前,还必须指定相应的替换文本。

%response.GetText Method

类中的%CSP.Response提供了一个GetText实例方法,使能够从消息字典中检索文本,并用值替换消息可能具有的任何参数。在CSP类代码中,对象中当前实例化的%CSP.Response由变量%Response表示。本主题将该方法称为%Response.GetText

方法签名为:

method GetText(language As %String = "",
                domain As %String = "",
                id As %String,
                default As %String,
                args...) returns %String
复制代码
  • domain - (可选)指定消息的域的字符串。如果未指定,域默认为%Response.Domain.
  • language - (可选)RFC1766以指定语言的代码。Caché将该字符串转换为全小写。如果未指定,则Language默认为%Response.Language的值,它会自动从浏览器设置中获取其运行时值。
  • id - 消息ID。
  • default - 找不到由语言、域和ID标识的消息时使用的字符串。
  • arg1, arg2, and so on - 消息参数的替换文本。所有这些都是可选的,所以可以使用%response.GetText(),即使消息没有参数。

FormatText Method

类中的%Library.MessageDictionary提供了FormatText()类方法,使能够用文本替换消息参数。当已经从消息字典中获得消息文本时,可以使用FormatText()

ClassMethod FormatText(text As %String, args...) As %String
复制代码
  • text - 消息文本。在%Response.GetText$$$Text返回的使用%String
  • arg1, arg2, and so on - 消息参数的替换文本。

$$$FormatText Macros

这些宏使能够用文本替换消息参数。当已经从消息字典中获得消息文本时,可以使用它们:

  • $$$FormatText
  • $$$FormatTextJS (applies JavaScript escaping to the $$$FormatText result)
  • $$$FormatTextHTML (applies HTML escaping to the $$$FormatText result)

这些宏位于%occMessages.inc中,该文件包含在%occInclude.inc`中。

$$$FormatText宏返回%String。语法是:

$$$FormatText(text,arg1,arg2,...)
复制代码
  • text - 消息文本。在%Response.GetText$$$Text返回的使用%String
  • arg1, arg2, and so on - 消息参数的替换文本。

MatchLanguage()方法

需要设置CSP响应的语言属性。为此,请设置%response.Language属性,使用%MessageDictionaryO的MatchLanguage()方法返回的值:

Set language = ##class(%MessageDictionary).MatchLanguage(languages,domain,flag)
复制代码

这将查找与指定域的语言列表中的语言最匹配的语言。该方法使用HTTP 1.1匹配规则(RFC 2616)。语言列表是以逗号分隔的RFC 1766列表,语言名称。列表中的每种语言可以被赋予相关联的质量值,该质量值表示用户对由语言列表指定的语言的偏好的估计。质量值默认为q=1

比如da,en-GB;q=0.8,en;q=0.7意味着:I prefer Danish, but will accept British English and other types of English 如果列表中的语言完全等于标记,或者完全等于标记的前缀,使得前缀后面的第一个标记字符是连字符(-),则该语言匹配支持的语言标记。特殊语言星号(*),如果出现在输入列表中,则匹配列表中没有任何其他语言与之匹配的所有支持的语言。

分配给支持的语言标签的语言质量因子是列表中与该语言标签匹配的最长语言的质量值。返回的语言是被分配了最高质量因子的受支持语言。

s flag (system)是一个可选标志,指示是匹配系统消息还是应用程序消息。

相关文章
|
XML 自然语言处理 JavaScript
第四十三章 在CSP应用程序中本地化文本 - 本地化的基础
第四十三章 在CSP应用程序中本地化文本 - 本地化的基础
83 0
第五十二章 开发自定义标签 - Using csr %CSP.AbstractAtom Write Methods
第五十二章 开发自定义标签 - Using csr %CSP.AbstractAtom Write Methods
69 0
|
JavaScript 编译器 Go
第五十一章 开发自定义标签 - 使用%CSP.Rule方法
第五十一章 开发自定义标签 - 使用%CSP.Rule方法
79 0
|
SQL JavaScript 前端开发
第三十六章 使用 CSP 进行基于标签的开发 - 使用尽可能少的#server和#call调用
第三十六章 使用 CSP 进行基于标签的开发 - 使用尽可能少的#server和#call调用
124 0
|
JavaScript 前端开发 Go
第三十四章 使用 CSP 进行基于标签的开发 - Hyperevent例子
第三十四章 使用 CSP 进行基于标签的开发 - Hyperevent例子
113 0
|
前端开发 JavaScript 编译器
第三十三章 使用 CSP 进行基于标签的开发 - 使用Hyperevents #server和#call调用服务器端方法
第三十三章 使用 CSP 进行基于标签的开发 - 使用Hyperevents #server和#call调用服务器端方法
107 0
|
前端开发 程序员 Go
第三十二章 使用 CSP 进行基于标签的开发 - 服务器端方法
第三十二章 使用 CSP 进行基于标签的开发 - 服务器端方法
116 0
|
JavaScript 前端开发 Go
第三十一章 使用 CSP 进行基于标签的开发 - 转义和引用HTTP输出
第三十一章 使用 CSP 进行基于标签的开发 - 转义和引用HTTP输出
94 0
|
SQL Go
第三十章 使用 CSP 进行基于标签的开发 - 控制流
第三十章 使用 CSP 进行基于标签的开发 - 控制流
80 0
|
SQL 存储 编译器
第二十九章 使用 CSP 进行基于标签的开发 - 服务器端方法
第二十九章 使用 CSP 进行基于标签的开发 - 服务器端方法
85 0