struts2 國際化(本地化)
在實際開發中,我們的程式服務的是全球的物件。因此,我們要使程式在不做任何修改的情況下可以在不同的國家和地區和不同預壓環境下,按照當地的語言和格式習慣顯示字元。例如:對於中國大陸的使用者,自動顯示簡體中的提示、錯誤資訊等;而對於美國的使用者,自動顯示英文的提示資訊、錯誤資訊等。這就引出了struts2框架的"國際化"。
操作步驟:
- 建立資原始檔
- 載入配置資原始檔
- 在jsp頁面使用資原始檔。i 引用struts標籤 ii獲取資原始檔內容
一、建立資原始檔:
一個資源包由多個檔案組成,這些檔名都必須按規範命名:主檔名_語言程式碼_國家程式碼.properties。語言程式碼和國家程式碼按ISO規定。如下配置兩個資原始檔(注意主檔名必須):
美式英語資原始檔:wgh_en_US.properties。
loginTitle=login
loginName=username
loginPassword=password
中文資原始檔:wgh_zh_CN.properties。
loginTitle=\u767B\u5F55
loginName=\u7528\u6237\u540D
loginPassword=\u5BC6\u7801
需要注意的是,在字尾名為properties的檔案中,因為編碼格式不同,裡面的漢字均以其他編碼格式顯示。
將資原始檔均放置到src目錄底下,與struts.xml同級。
二、載入配置。
在struts.xml如下配置,標紅部分為配置資源資原始檔的標籤。
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.5//EN"
"http://struts.apache.org/dtds/struts-2.5.dtd">
<struts>
<!-- 修改default.properties常量 -->
<!-- 配置action的字尾名,如果有多個以逗號隔開 -->
<constant name="struts.action.extension" value="action,,do,html"></constant>
<!-- 配置是否為開發模式,報錯更詳細。如果專案上線,需關閉,設定value為false -->
<constant name="struts.devMode" value="true"></constant>
<!-- 配置xml是否重新載入。開發時設定為true,上線後設定為false -->
<constant name="struts.configuration.xml.reload" value="true"></constant>
<!-- 配置瀏覽器是否快取,開發時設定為false。上線後需設定為true -->
<constant name="struts.serve.static.browserCache" value="false"></constant>
<!-- 配置國際化語言設定 name為固定格式 value 填寫自己建立的properties中配置檔案的主檔名-->
<constant name="struts.custom.i18n.resources" value="wgh"/>
<package name="root" extends="struts-default">
<action name="login">
<result name="success">/international.jsp</result>
</action>
</package>
</struts>
1三、頁面使用國際化顯示<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ taglib prefix="s" uri="/struts-tags" %>
<!DOCTYPE html PUBLIC>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Internation</title>
</head>
<body>
<h1>
<s:text name="loginTitle"></s:text>
</h1>
<div>
<s:text name="loginName"></s:text>: <input type="text" placeholder="<s:text name='loginName'></s:text>">
<br>
<s:text name="loginPassword"></s:text>: <input type="password" placeholder="<s:text name='loginPassword'></s:text>">
<br>
<button>
<s:text name="loginTitle"></s:text>
</button>
</div>
<!-- 當我們訪問name為login 的action時,肯定會經過i18n的攔截器,在此攔截器
中會獲取到我們提交的request_locale引數,根據引數的值我們當前介面會從
對應的properties檔案中按照鍵獲取值,例如引數為zh_CNname就從xalo_zh_CN中按照鍵取值
-->
<a href="login.action?request_locale=zh_CN"><s:text name="chinese"></s:text></a>
<a href="login.action?request_locale=en_US"><s:text name="english"></s:text></a>
</body>
</html>
至此啟動伺服器就可以嘗試了。 相關文章
- Django國際化與本地化指南Django
- Spring Boot應用的國際化與本地化支援Spring Boot
- Flask教程第十三章:國際化和本地化Flask
- iOS語言國際化/本地化-實踐總結iOS
- 鴻蒙Next應用全球化之路:國際化與本地化鴻蒙
- Struts2【UI標籤、資料回顯、資源國際化】UI
- Netflix推薦系統(Part Five)-國際化和本地化推薦
- 一步一步搭建Flutter開發架子-國際化,路由,本地化,響應式Flutter路由
- 國際化
- opentack - 本地化
- JetBrains中國公司成立 加速本地化佈局AI
- 王通:Google中國被“本地化”忽悠了Go
- 國際化思考
- Android國際化Android
- 語言本地化
- Swift iOS : 本地化SwiftiOS
- 【spring 國際化】springMVC、springboot國際化處理詳解SpringMVCSpring Boot
- 【UX本地化】超框問題:遊戲本地化的“老大難”?UX遊戲
- iOS 本地化(IB篇)iOS
- .net core國際化
- .Net Core 國際化
- Spring Webflux國際化SpringWebUX
- 濃重中國元素遊戲的本地化地獄遊戲
- 遊戲/應用出海本地化策略 | 韓國市場篇遊戲
- 遊戲/應用出海本地化策略 :泰國市場篇遊戲
- AI如何實施本地化AI
- iOS 本地化(非IB篇)iOS
- Yii2-國際化
- springboot頁面國際化Spring Boot
- Java中的國際化Java
- QT6 國際化QT
- Spring-boot國際化Springboot
- Grails國際化例項AI
- SpringBoot專案國際化Spring Boot
- Webnovel 國際化實踐Web
- jeecg 國際化處理
- 德勤諮詢:跨國企業本地化2.0(附下載)
- vux UI 專案國際化UXUI