首页 > 其他分享 >第五十五章 本地化和基于标签的开发

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

时间:2022-11-23 07:44:22浏览次数:42  
标签:标记 textid 本地化 第五十五章 标签 文本 CSP 属性

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

介绍

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

  • <csp:text>

  • <span>

  • <div>

  • <input> (当类型为“SUBMIT”“BUTTON”“RESET”时)

在大多数情况下,这些标记只在运行时工作,当为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
    使用语言。
  • 如果没有指定domain,则%response
    域使用。
  • Textid是必需的

默认的语言

大多数开发人员有意不提供任何语言属性,以便在运行时,语言默认为适合地区。
如果没有提供,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标记用于在编译时生成消息字典条目时,它仍然作为引用在运行时检索该条目。

标签:标记,textid,本地化,第五十五章,标签,文本,CSP,属性
From: https://www.cnblogs.com/yaoxin521123/p/16917099.html

相关文章

  • 【Abp笔记】本地化
    本地化1.在自己模块添加本地化模块依赖在自己模块的DependsOn特性参数里,添加一个依赖typeof(AbpLocalizationModule),如果没有,就添加一个[DependsOn(typeof(AbpLoca......
  • video标签未自动播放,autoplay无效的原因
    今天写了个页面,把视频当作背景,发现视频无法播放,具体是什么原因呢。让我们看看吧!  案例:百科书网-用心传递知识!(bkbook.net)video标签重要的属性吧~src要播放的视频......
  • MFC标签控件 CTabCtrl
    CTabCtrl标签页使用引用TabSheet.h.cpp添加到项目中拖入控件tabctrl添加变量 类型TabSheet类型创建两个标签页 属性border改为none style改为c......
  • Zotero 批量更改论文条目标签
    选择很多条目,拖拽到左下角的标签处就可以了如果想要删除,按住shift即可https://forums.zotero.org/discussion/64065/tagging-multiple-items-at-once......
  • HierarchyViewer结合merge标签优化布局结构
    今天给大家介绍一下一种优化Android布局的方法,我们这里需要用到一个工具,HierarchyViewer,这是Android自带的一个布局结构查看器,位于sdk的tools文件夹下,当然,我们要使用这个工......
  • 乘风破浪,遇见最美Windows 11之升级安装Windows 11 22H2(含突破TPM等限制),资源管理器多
    前言终于,在Windows1122H2迎来了资源管理器的多标签功能,等得时间太久,但终究还是来了,忍不住再写一次。而且这个版本,任务管理器变化也挺大,但是并不好用。任务栏搜索按......
  • 数据表的本地化
    本地化的目的是将某一个table或query当做一个数据表来进行处理,并且这个本地化的数据表可以用在sql语句中。需要用到控件:TFDLOCALSQL。例如,程序中有两个CONNECTION,分别是C......
  • 标签补充
    <!--1.上标-->3<sup>2</sup>消息<sup>5</sup><!--2.下标-->o<sub>2</sub><!--3.删除线-->原价<del>199</d......
  • PHP 之正则匹配获取img标签图片地址
    一、代码/***对富文本信息中的数据*匹配出所有的<img>标签的src属性*@paramstring$contentStr富文本字符串*@returnarray*/functiongetPatternMatchImages......
  • 踩坑JSTL标签库:/WEB-INF/jsp/fore/home.jsp (行.: [3], 列: [0]) 无法在web.xml或使用
    Tomcat9及之前使用到的JSTL库最近心血来潮想复习一下JavaWEB,调试JSTL标签的时候出现了一些错误,如标题所示。先说下场景,我已经在:WEB-INF/lib下添加了Tomcat9使用JSTl需要用......