3.2.6.5.1. MessageTools
MessageTools 接口是一个托管 Bean,包含用于处理本地化消息的其它方法。可以使用 Messages.getTools() 方法访问 MessageTools 接口,或像任何其它任何 bean 一样,通过注入的方式或 AppBeans 类来访问。
MessageTools 的方法:
-
loadString()– 返回一个本地化的消息,由msg://{messagePack}/{key}格式的消息引用指定消息引用字符串的结构:
-
msg://– 必须的前缀。 -
{messagePack}– 消息包的可选名称。如果未指定,则假定包名称作为单独的参数传递给loadString()。 -
{key}– 包中消息的键名。
消息引用字符串的示例:
msg://someMessage msg://com.abc.sales.web.customer/someMessage -
-
getEntityCaption()– 返回实体的本地化名称。 -
getPropertyCaption()– 返回实体属性的本地化名称。 -
hasPropertyCaption()– 检查实体属性是否被赋予了本地化名称。 -
getLocValue()– 返回使用 @LocalizedValue 注解的实体属性的本地化值。 -
getDefaultLocale()– 返回应用程序默认语言环境,这是 cuba.availableLocales 应用程序属性中列出的第一个语言环境。 -
useLocaleLanguageOnly()– 如果应用程序支持的所有语言环境(在cuba.availableLocales属性中定义)都只指定了语言参数,没有指定 country 和 variant,则返回true。平台机制使用此方法,当语言环境信息是从外部源(例如操作系统或 HTTP 请求)接收到的,此机制需要确定一个最合适的支持语言。 -
trimLocale()– 如果useLocaleLanguageOnly()方法返回true,则从传递的语言环境信息中清除除语言参数外的所有信息(country 和 variant)。
在应用程序中可以通过 覆盖 MessageTools bean 来扩展它的方法集。下面是使用扩展接口的示例:
MyMessageTools tools = messages.getTools();
tools.foo();
((MyMessageTools) messages.getTools()).foo();