Using Localized Messages in an MVC Portlet
ご覧のページは、お客様の利便性のために一部機械翻訳されています。また、ドキュメントは頻繁に更新が加えられており、翻訳は未完成の部分が含まれることをご了承ください。最新情報は都度公開されておりますため、必ず英語版をご参照ください。翻訳に問題がある場合は、 こちら までご連絡ください。

ローカライズされたメッセージの共有

アプリケーションで作業する場合、複数のモジュールが存在し、各モジュールに独自の言語キーがある場合があります。 さまざまな言語プロパティファイルをさまざまな場所に保持するのではなく、それらを1つの場所に統合します。 このサンプルプロジェクトでは、言語キーを異なるモジュール間で共有する方法について示しています。

チュートリアルコードを実行する

新しいLiferay インスタンスを起動し、以下を実行します。

docker run -it -m 8g -p 8080:8080 liferay/portal:7.4.3.132-ga132

http://localhost:8080でLiferayにサインインします。 メールアドレス test@liferay.com とパスワード testを使用してください。 プロンプトが表示されたら、パスワードを learnに変更します。

次に、以下の手順に従います。

  1. サンプルをダウンロードして解凍します。

    curl https://resources.learn.liferay.com/examples/liferay-u8t2.zip -O
    
    unzip liferay-u8t2.zip
    
  2. モジュールのルートから、ビルドおよびデプロイします。

    ./gradlew deploy -Ddeploy.docker.container.id=$(docker ps -lq)
    

    このコマンドは、デプロイされたjarをDockerコンテナ上の /opt/liferay/osgi/modules にコピーするのと同じです。

  3. Liferay Dockerコンテナコンソールでデプロイを確認します。

    STARTED com.acme.u8t2.impl_1.0.0 [1650]
    STARTED com.acme.u8t2.web_1.0.0 [1651]
    
  4. サンプルのモジュールが機能していることを確認します。 ブラウザでhttps://localhost:8080を開きます。

  5. U8T2 ポートレットをページに追加します。 サンプルポートレットは、サンプルウィジェットの下にあります。

    U8T2 ポートレットをページに追加します。

    ウェルカムメッセージのヘッダと色のリストが表示されます。 色の言語キーは、共有言語キーに由来することに注意してください。 言語キーcolorsは、Liferayのグローバル言語キーに由来します。

  6. このサンプルプロジェクトには、ポルトガル語と日本語のロケールも含まれています。 たとえば、言語セレクターを使用してブラジルポルトガル語または日本語を選択すると、ウェルカムメッセージと色のリストが表示されます。

    このサンプルでは、ポルトガル語と日本語のロケールが表示されています。

次に、どのように機能するかを見ていきましょう。

言語プロパティファイルを作成する

すべての共有言語キーを保持するための個別のプロジェクトモジュールを作成します。 サンプルプロジェクトでは、共有キーはAcme U8T2 Implモジュールにあります。

Language.propertiesファイルを作成し、モジュールのsrc/main/resources/contentフォルダに追加します。 ファイルで、他のモジュールと共有するキーを定義します。

サンプルプロジェクトには、Acme U8T2 Webモジュールで使用される6色のリストがあります。

blue=Blue
green=Green
orange=Orange
purple=Purple
red=Red
yellow=Yellow

他のロケールの言語プロパティファイルもフォルダに含めることができます。 たとえば、日本語の言語キーを含めるには、Language_ja.propertiesファイルをフォルダに追加します。

Bnd命令を追加する

言語キーを共有するモジュールごとに、 bnd ヘッダーでリソースを指定する必要があります。

Bundle-Name: Acme U8T2 Web
Bundle-SymbolicName: com.acme.u8t2.web
Bundle-Version: 1.0.0
-liferay-aggregate-resource-bundles: com.acme.u8t2.impl

サンプルプロジェクトには、Acme U8T2 Implのカラー言語キーを使用するWebポートレットがあります。 Acme U8T2 Webモジュールのbnd.bndファイルでは、リソースバンドルが指定されています。

-liferay-aggregate-resource-bundles: com.acme.u8t2.impl

個々のモジュールにいくつかの言語キーを配置できることに注意してください。 たとえば、サンプルプロジェクトのウェルカムメッセージは、Acme U8T2 Implの共有キーではなく、Acme U8T2 Webモジュールの言語キーから送信されます。 個々のモジュールの言語キーは、-liferay-aggregate-resource-bundlesで指定された共有キーよりも優先されます。