在本课中,我们将了解如何为文本应用程序数据提供翻译。例如,可能需要以不同语言维护书的标题。
首先,我们将了解如何声明本地化数据。
声明本地化数据
localized 修饰符用于声明本地化数据。用于识别需要翻译文本的实体元素。在下图中,相应标记 Books 实体的标题元素:

幕后
根据之前的定义,cds 编译器会自动生成各种内容。除其他内容外,会生成单独的 Books.texts 实体来保存翻译的文本。此实体具有以下结构:
12345entity Books.texts {
key locale : sap.common.Locale;
key ID : UUID;
title : String(255);
}Books.texts 实体具有两个关键字段区域设置和 ID。
关键字段区域设置的数据类型为 sap.common.Locale,这是上述 @sap/cds/common 模型中的常见重用类型。最终,此类型用于定义长度为 14 的字符串。区域设置字段用于存储语言代码,例如 en 或 de。
第二个关键字段 ID 对应于 Books 实体的主键。
使用 Books.texts 实体,可以为每个工作簿保存每个语言代码(区域设置)的已翻译标题,即每个 ID。
除 Books.texts 实体外,还通过生成的 SQL DDL 创建附加视图,以便读取本地化文本。
提供本地化数据
借助生成的视图,服务运行时的通用处理器会自动以用户的首选语言提供读取请求。在我们的示例中,用户会自动收到其首选语言的书名,如果没有此语言的翻译,则使用备用语言接收书标题。然后,这是标题,因为它存储在属于 Books 实体的表中。
您可以使用 URL 参数 sap-locale 测试不同的语言。在以下示例中,请求德语文本:
1GET <your_service_url>/Books?sap-locale=de或者,您还可以使用具有相应 Accept-Language 标头的请求:
12GET <your_service_url>/Books
Accept-Language: deURL 参数 sap-locale 的首选项最高。如果也应设置 Accept-Language 标头,则将其覆盖。
现在,让我们了解一下最初如何为应用程序提供本地化数据。
添加初始数据
观看视频,了解如何添加初始数据。
在下一节中,我们将讨论 @sap/cds/common 模型中的 CodeList 方面以及 Country 和 Currency 类型。











