現在英語のすべてのテキストが JSP ページにハードコードされている基本的な JSP/サーブレットを使用するアプリケーションがあります。アプリの国際化を検討しているため、テキストをプロパティ ファイルに抽出する何らかの方法が必要です。
これまでに行ったことは次のとおりです
。1) という名前のファイルを作成しXXXXX-messages_en.properties
、キーと値のペアをプロパティ ファイルに追加します。AAAAA = Hello World
2) JSTL 関連の taglibs を JSP ページにロードします。
<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt" %>
3) 前のテキストを次のように置き換えます
<fmt:message key="AAAAA" bundle="${XXXXX}"/>
4) setBundle タグを JSP ページに追加します。
<fmt:setBundle basename="XXXXX-messages" var="XXXXX"/>
サーバーを再起動すると、すべてが正しく表示されます。
ただし、JSTL 国際化ライブラリの使用に関する私の質問は次のとおりです。
質問 1)<fmt:setBundle>
単一の JSP ページのそれぞれにタグを追加する必要があるようです。これは少し見苦しく、将来何かを変更する必要がある場合 (名前の変更?)、これにより作業がより困難になります。
別のページを作成してその<fmt:setBundle>
中に入れ、<jsp:include>
. または、サーブレットフィルターを介してこれを注入できますか? 私はどちらの選択肢にも満足していないと思います。
これを行うための推奨される方法はありますか?
質問 2) 一致するプロパティ ファイルがない場合、デフォルトの言語を指定する方法は? 私のケースでテストした<fmt:setLocale>
ところ、フランス語で JSP ページを挿入しても、ページは正しくロードされます。これは、英語版が常にデフォルトであることを意味するのでしょうか、それとも単にオペレーティング システム/ブラウザが英語であるためなのでしょうか?
中国/日本のユーザーが私のページを開いて、そこに英語とフランス語の両方のプロパティ ファイルがあるとどうなりますか?