我们在场景的管理服务的实施类和 CatalogService 的实施类中使用消息 API 中的 req.error() 方法。如果验证失败,我们使用此方法输出错误消息。到目前为止,我们已将报告的消息硬编码为文本文字。
在本课中,我们将了解如何将消息国际化。 它们不是硬编码的,而是在单独的文件(所谓的文本包)中作为键值对进行维护。然后,应用程序代码使用这些键值访问相应的文本。这意味着键值是实际语言特定文本。为了支持不同的语言,维护了为相同键值提供翻译文本的不同文件(请参阅下图)。

创建用于国际化错误消息的包文件
详细过程如下:在名为 _i18n、i18n 或 assets/i18n 的文件夹中创建名为 messages.properties 的文件。messages.properties 文件的文件夹必须位于项目目录正下方,或位于包含用于定义服务模型的文件的目录中(例如我们项目中的 srv 目录)。
注意
所需文本在 messages.properties 文件中作为键值对进行维护。通常,文本以英语维护。可使用占位符,其格式为 "{n} "。n 遍历从 0 开始的自然数。
为支持其他语言,根据以下命名规则,在与 messages.properties 文件相同的文件夹中创建附加文件:messages<_languageCode><_countryCode>.properties。国家/地区代码是可选的。此类文件名的示例为 messages_de.properties、messages_fr_CA.properties 或 messages_es_MX.properties。
附加文件使用与 messages.properties 文件相同的密钥。但是,代码的值根据语言代码以及文件名中的国家/地区代码(如果适用)进行翻译。
在所示示例中,已创建两个 .properties 文件:带有英语文本的 messages.properties 和具有相应德语翻译的 messages_de.properties。
回退链
假设在处理请求时通过键值查询文本,其中已为语言确定德语。如果为 messages_de.properties 文件中的键值维护文本,则应用程序会使用此文本。但是,如果没有 messages_de.properties 文件或使用的密钥未在现有 messages_de.properties 文件中维护,CAP 将返回到 messages.properties 文件,并尝试通过此文件确定键值。如果可以,应用程序将使用相应的文本。如果 messages.properties 也不包含匹配条目,则应用程序使用密钥名称作为文本。
注意

