このレッスンでは、テキストアプリケーションデータの翻訳を提供する方法について説明します。たとえば、本のタイトルをさまざまな言語で更新する必要があります。
最初に、ローカライズされたデータを宣言する方法について説明します。
ローカライズされたデータの宣言
localized 修飾子は、ローカライズされたデータを宣言するために使用されます。これを使用して、翻訳済テキストが必要なエンティティエレメントを特定します。以下の図では、Books エンティティの title エレメントが適宜マークされています。

舞台裏
前述の定義に基づき、さまざまなものがCDSコンパイラによって自動的に生成される。特に、翻訳済テキストを保持するために個別の Books.texts エンティティが生成されます。このエンティティの構造は以下のとおりです。
12345entity Books.texts {
key locale : sap.common.Locale;
key ID : UUID;
title : String(255);
}Books.texts エンティティには、ロケールと ID の 2 つのキー項目があります。
キー項目ロケールのデータ型は sap.common.Locale です。これは、前述の @sap/cds/common モデルの共通の再利用タイプです。最終的に、このタイプは、長さ 14 の文字列を定義するために使用されます。地域情報フィールドは、en や de などの言語コードを保存することを目的としています。
2 番目のキー項目 ID は、ブックエンティティの一次キーに対応します。
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 のタイプについて説明します。











