如果一個網頁想要有中/英文版。該怎麼處理呢?

有二種方法吧

1.土法煉鋼

寫一個 index_tw.jsp 中文網頁

再寫另一個 index_en.jsp網頁

下去切換

即可做到中英文的效果

但是,網頁頁面一旦多,你就會寫的很累....

維護更是不易

所以來介紹第二種方法吧!!

 

2.利用 i18n達到多國語言切換

首先,開個專案

並在source package中件一個language的package

且在language 中 再建2個properties文件

一個是form_en,另一個則是form_tw

如附圖

n1.JPG

 

接著,打開properties,開始來寫對照表囉

在form_en中寫 : account=Account

在form_tw中寫 :account=帳號

account是變數名稱=(你要表示的文字)

如附圖

n2.png

 

還有

http://www.java2s.com/Code/Jar/j/Downloadjstl12jar.htm

去下載 jstl1.2.jar

不然即使程是寫好也無法運作..

 

以上,前置作業完成!!

-----

接下來看到JSP網頁這部分

 

以下是程式碼

 

<pre class="brush:something">

<%@page contentType="text/html" pageEncoding="UTF-8"%>
<%@taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt"%>

<!DOCTYPE html>
<html>
    <head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    </head>
<%String lang2=request.getParameter("lang");
  if(lang2==null){
  lang2="tw";
  }
%>

<body>
 <font size="7">  <a href="<%= request.getRequestURI()%>?lang=tw">中文</a>
      <a href="<%= request.getRequestURI()%>?lang=en">English</a>
       <fmt:setLocale value="<%=lang2%>" />
        <fmt:setBundle basename="language/form" var="formBundle" />
    </br>
    <fmt:message key="account" bundle="${formBundle}" /></font>
  </body> 
</html>


</pre>

------

以下,來說明一下程式碼:

這是宣告你要用哪種語言:

<fmt:setLocale value="<%=lang2%>" />

這是說明你的路徑,因為我把properties放在language的package下面,所以路徑是language/form:

<fmt:setBundle basename="language/form" var="formBundle" />

 

附圖

終於可以中英切換了

n3.png

 

 

 

arrow
arrow

    kyo 發表在 痞客邦 留言(0) 人氣()