Documentation

MVCポートレットでのローカライズされたメッセージの使用

Liferayのローカライズフレームワークは、MVCポートレットでローカライズされたメッセージを作成するためのものです。

サンプルコードをデプロイする

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

docker run -it -m 8g -p 8080:8080 liferay/portal:7.4.3.29-ga29。

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

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

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

    curl https://learn.liferay.com/dxp/latest/ja/building-applications/developing-a-java-web-application/using-mvc/liferay-b6f5.zip -O
    
    unzip liferay-b6f5.zip
    
  2. モジュールのルートから、ビルドおよびデプロイします。

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

    注釈

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

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

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

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

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

    例のウェルカムメッセージのヘッダが表示されます。

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

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

次に、どのように機能するかを確認します。

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

Language.propertiesファイルを作成し、モジュールのsrc/main/resources/contentフォルダに追加します。 ファイルで、MVCポートレットで使用するキーを定義します。

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

JSPファイルを作成する

JSPファイルを作成し、モジュールの/src/main/resources/META-INF/resourcesフォルダに追加します。

サンプルプロジェクトには、liferay-uiタグライブラリを使用する簡単なウェルカムメッセージを含むview.jspファイルが含まれています。

<%@ taglib uri="http://liferay.com/tld/ui" prefix="liferay-ui" %>

<h4>B6F5 Portlet</h4>

<h5><liferay-ui:message key="b6f5-portlet-welcome" /></h5>

サンプルのjspファイルに追加のliferay-ui:messageが含まれていることに注意してください。

<liferay-ui:message key="supercalifragilisticexpialidocious" />

これは、Language.propertiesファイルにそのようなキーが見つからない場合、代わりにラベルが表示されることを示しています。

タグライブラリの詳細については、 Liferay Tag Library Reference をご覧ください。 各タグライブラリには、タグに渡すことができる属性のリストがあります。

コンポーネント定義を追加する

カスタムMVCポートレットを作成するときは、クラスの@Component定義に言語リソースバンドルプロパティを含めるようにしてください。

@Component(
    property = {
      ...
        "javax.portlet.resource-bundle=content.Language",
        "javax.portlet.supported-locale=en_US,ja,pt_BR"
    },
    service = Portlet.class
)

サンプルプロジェクトには、言語リソースバンドルを使用するための次のプロパティが含まれています。

"javax.portlet.resource-bundle=content.Language"

ポートレットがサポートするすべての言語に対して、さまざまなロケールも定義されています。

"javax.portlet.supported-locale=en_US,ja,pt_BR"