1~

Minter Coder's Blog

11-Jsp & Servlet Internatiolization

2021-01-16

Arkadaşlar merhabalar bugün internatiolizationdan bahsedeceğim.Internatiolization yani sitenin içeriğini ülkenin konumuna göre isimlerini değiştirme örneğin bir siteye girdiniz kendi hakkında yazılar yazmış adam ;

Selam ben Kerem.

Ingiltereden giren adamda da Türkçe gözükmesini istemiyorsak ingilizce görünmesini istiyorsak internatiolization kullanıyoruz

Hello, I am Kerem.

Almanyadan giren adam da;
Hallo , Ich bin Kerem.

Yazısını görmesini istiyoruz , işte internatiolzation budur.

Hemen bir örnek yapmadan önce gerekli .jar dosyasını indirelim.

https://mvnrepository.com/artifact/javax.servlet/jstl/1.2

WEB-INF/lib/içerisine atın ve sağ tıklayın -> build path -> add build path tıklayın

Tamamdır , şimdi WebContent altına internatiolization.jsp dosyası oluşturalım içeriği şöyle olsun.

<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<a href="?locale=en_US">US</a>
<a href="?locale=tr_TR">TR</a>
<a href="?locale=de_DE">DE</a>
<br/>
<fmt:setLocale value="${param.locale}"/>
<br/>
<fmt:bundle basename="i18n/website">
<fmt:message key="label.name"/>
<br/>
<fmt:message key="label.hello"/>
<br/>
<fmt:message key="label.message"/>
<br/>
<fmt:message key="label.thank"/>
</fmt:bundle>
<br/>
Locale : ${param.locale}
</body>
</html>

Yukarıdaki olayları kısaca anlatalım. Ileride göreceğimiz jstl konusuna burda kısaca giriyoruz taglib kullanarak JSP standart tag libarary(jstl) burada onu kullandık , fmt (formatting text) bu internatiolization için kullanılan tag librarysi.setLocale ile yerel bölgeyi ayarlıyoruz parametre ile gelen , bundle ile i18n bizim packagemiz ve website de bizim properties yani ülkelerin dillerinin içeriğini yazdık tabi hemen kodları atayım yoksa buralar karışır :)

Aynen yukarıda yazdığım olay :) şimdi programımızı çalıştıralım.

internatiolization.jsp

 

<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<a href="?locale=en_US">US</a>
<a href="?locale=tr_TR">TR</a>
<a href="?locale=de_DE">DE</a>
<br/>
<fmt:setLocale value="${param.locale}"/>
<br/>
<fmt:bundle basename="i18n/website">
<fmt:message key="label.name"/>
<br/>
<fmt:message key="label.hello"/>
<br/>
<fmt:message key="label.message"/>
<br/>
<fmt:message key="label.thank"/>
</fmt:bundle>
<br/>
Locale : ${param.locale}
</body>
</html>

website.properties

label.name=Kerem
label.hello=hello
label.message=this is the message from the english language.
label.thank=thanks

website_tr_TR.properties

label.name=Kerem
label.hello=selam
label.message=bu türkçe dilinden bir mesajd\u0131r.
label.thank=te\u015Fekkürler.

website_en_US.properties

label.name=Kerem
label.hello=hello
label.message=this is the message from the english language.
label.thank=thanks

Arkadaşlar görüşürüz :) Servlet ile dersi noktalıyoruz yavaş yavaş JSP ye girelim.