①JSTL(JSP Standard Tag Library)追加
JSTLは、JSPでロジックをタグで扱うためのライブラリであり、
その中でもfmtタグは国際化(i18n)を担当する。
本記事ではfmtタグを用いた多言語対応を説明する
https://mvnrepository.com/search?q=jakarta.servlet.jsp.jstl
このサイトから
「Jakarta Standard Tag Library API」クリック
↓
下にスクロールして、バージョン選択
↓
FILESのjarを選択してダウンロード
↓
プロジェクト名\src\main\webapp\WEB-INF\libの配下に配置
※Tomcat10を使用することを想定して作成しました。
プロジェクト名\src\main\java\フォルダー名の配下に以下を追加
※.propertiesファイルは日本語などはUnicodeエスケープで保存されることがある。ただし、最近はUTF-8対応環境も多い。
message.properties
title=\u30ED\u30B0\u30A4\u30F3
loginPage=\u30ED\u30B0\u30A4\u30F3
id=\u30E1\u30FC\u30EB\u30A2\u30C9\u30EC\u30B9
password=\u30D1\u30B9\u30EF\u30FC\u30C9
login=\u30ED\u30B0\u30A4\u30F3
signIn=\u30ED\u30B0\u30A4\u30F3
message_en.properties
title=Sign-in
loginPage=LoginPage
id=email
password=Password
login=Login
signIn=sign-in
message_ko.properties
title=\uB85C\uADF8\uC778
loginPage=\uC774\uBA54\uC77C \uB85C\uADF8\uC778
id=\uC774\uBA54\uC77C
password=\uBE44\uBC00\uBC88\uD638
login=\uB85C\uADF8\uC778
signIn=\uB85C\uADF8\uC778
multiLanguage.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ taglib prefix="fmt" uri="jakarta.tags.fmt" %>
<html>
<head>
<fmt:requestEncoding value="UTF-8"/>
<fmt:setLocale value="${param.language}" />
<fmt:setBundle basename="bundle.message" />
<title><fmt:message key="title" /></title>
</head>
<body>
<div>
<a href="?language=ja" >日本語</a> | <a href="?language=en">English</a> | <a href="?language=ko">한국어</a>
<p><fmt:message key="loginPage" /></p>
</div>
<div>
<label ><fmt:message key="id" /></label>
<input type="text" class="form-control">
</div>
<div>
<label ><fmt:message key="password" /></label>
<input type="password" class="form-control">
</div>
<button type="submit"><fmt:message key="signIn" /></button>
</body>
</html>
