JS
login.myprofile.emailacct=Email Account
login.myprofile.emailpwd=Email Password
errors.optinvalid=[0] or [1] is invalid.
function concatMsg(jsMsg, inParam){
for(idx_i=0;idx_i<inParam.length;idx_i++){
var idx = jsMsg.indexOf('['+idx_i+']');
if (idx!=-1)
jsMsg = jsMsg.substring(0,idx) + inParam[idx_i] + jsMsg.substring(idx+3);
}
return jsMsg;
}
var temp = new Array('<bean:message key="login.myprofile.emailacct" />','<bean:message key="login.myprofile.emailpwd" />');
var jsMsg2=concatMsg("<bean:message key='errors.optinvalid'/>",temp);
Java
label.msg.maxFileSizeLimit=Maximum attachment file size is {0} KB
String [] arg={"2000"};
String errMsg = MessageUtil.getMessage(request,"label.msg.maxFileSizeLimit",arg);
package com.eastpro.common.util.language;
import java.util.Locale;
import javax.servlet.http.HttpServletRequest;
import org.apache.log4j.Logger;
import org.apache.struts.Globals;
import com.eastpro.util.Constants;
import com.eastpro.util.LoginUserMgr;
public class LanguageUtil {
protected final static Logger log = Logger.getLogger(new LanguageUtil()
.getClass());
/**
* Set the user's currently selected Locale.
*
* @param request
* The request we are processing
* @param cultureCode
* login user current culture langugage or langCode 0:ENGLISH /1:TW_CHINESE/2:CN_CHINESE.
* @param locale
* The user's selected Locale to be set, or null to select the
* server's default Locale
*/
public static void setLocaleInSession(HttpServletRequest request, String cultureCode) {
String v_cultureCode=null;
v_cultureCode = getCultureCode(cultureCode);
Locale locale = getLocale(v_cultureCode);
log.debug("v_cultureCode ---------->" +v_cultureCode);
log.debug("setLocale ---------->" + locale.toString());
LoginUserMgr.setCurrentLocale(request, locale);
LoginUserMgr.setCurrentVersion(request, v_cultureCode);
request.getSession().setAttribute(Globals.LOCALE_KEY, locale);//struts locale
}
/**
* Get Locale by cultureCode/langCode
* @param cultureCode login user current culture langugage or langCode 0:ENGLISH /1:TW_CHINESE/2:CN_CHINESE.
* @return Locale
*/
public static Locale getLocale(String cultureCode) {
Locale locale = Locale.ENGLISH;
String v_cultureCode = null;
v_cultureCode = getCultureCode(cultureCode);
if (Constants.ENGLISH_VERSION.equalsIgnoreCase(v_cultureCode)) {
locale = Locale.ENGLISH;
} else if (Constants.TW_CHINESE_VERSION.equalsIgnoreCase(v_cultureCode)) {
locale = Locale.TRADITIONAL_CHINESE;
} else if (Constants.CN_CHINESE_VERSION.equalsIgnoreCase(v_cultureCode)) {
locale = Locale.SIMPLIFIED_CHINESE;
}
return locale;
}
/**
* Get the user's currently selected Locale.
* @param cultureCode login user current culture langugage or login user current culture langugage
* 0:ENGLISH /1:TW_CHINESE/2:CN_CHINESE
* @return cultureCode
* The user's selected culture in report page to be set, or null to select the
* server's default Locale
*/
public static String getCultureCode(String cultureCode) {
String v_cultureCode = Constants.DEFAULT_VERSION;
if (cultureCode == null
||cultureCode.equals("")
||cultureCode.equals("null")) {
v_cultureCode = Constants.DEFAULT_VERSION;
}else if ("0".equalsIgnoreCase(cultureCode )
||Constants.ENGLISH_VERSION.equalsIgnoreCase(cultureCode)){
v_cultureCode = Constants.ENGLISH_VERSION;
}else if ("1".equalsIgnoreCase(cultureCode )
||Constants.TW_CHINESE_VERSION.equalsIgnoreCase(cultureCode)){
v_cultureCode = Constants.TW_CHINESE_VERSION;
}else if ("2".equalsIgnoreCase(cultureCode )
||Constants.CN_CHINESE_VERSION.equalsIgnoreCase(cultureCode)){
v_cultureCode = Constants.CN_CHINESE_VERSION;
}
return v_cultureCode;
}
/**
* Get the user's currently selected langCode.
* @param cultureCode The user's selected culture in report page to be set, or null to select the
* server's default Locale
* @return langCode login user current culture langugage
* 0:ENGLISH /1:TW_CHINESE/2:CN_CHINESE
*/
public static String getLangCode(String cultureCode) {
String langCode="0";
if ( Constants.ENGLISH_VERSION.equalsIgnoreCase(cultureCode)
||"0".equalsIgnoreCase(cultureCode))
langCode = "0";
else if ( Constants.TW_CHINESE_VERSION.equalsIgnoreCase(cultureCode)
||"1".equalsIgnoreCase(cultureCode))
langCode = "1";
else if ( Constants.CN_CHINESE_VERSION.equalsIgnoreCase(cultureCode)
||"2".equalsIgnoreCase(cultureCode))
langCode = "2";
return langCode;
}
public static void main(String[] args) throws Exception {
log.debug(LanguageUtil.getLangCode("EN"));
log.debug(LanguageUtil.getLangCode("ZH_TW"));
log.debug(LanguageUtil.getLangCode("ZH_cn"));
log.debug(LanguageUtil.getCultureCode("0"));
log.debug(LanguageUtil.getCultureCode("1"));
log.debug(LanguageUtil.getCultureCode("2"));
}
/**
* get DbFiledName By LangCode
* @author: xiaoming.yu
* @param langCode : EN_US"0" , ZN_TW"1" , ZN_CN"2"
* @return
* if Constants.LANGCODE_EN_US(0) ,then return ""
* else if Constants.LANGCODE_ZN_TW(1),then return "_OTH"
* else if Constants.LANGCODE_ZN_CN(2),then return "_OTH2"
*/
public static String getDbFiledNameByLangCode(String langCode) {
String result=null;
if(Constants.LANGCODE_EN_US.equals(langCode) ){
result="";
}else if (Constants.LANGCODE_ZN_TW.equals(langCode)){
result="_OTH";
}else if (Constants.LANGCODE_ZN_CN.equals(langCode)){
result="_OTH2";
}
return result;
}
}
package com.eastpro.common.util.message;
import org.apache.struts.Globals;
import org.apache.struts.action.Action;
import org.apache.struts.util.MessageResources;
import com.eastpro.common.util.language.LanguageUtil;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;
import javax.servlet.ServletContext;
import java.util.Locale;
public class MessageUtil extends org.apache.struts.util.RequestUtils {
/**
* For java to get propertie file message.
* @param request
* @param key
* @param args
* @return
*/
public static String getMessage(HttpServletRequest request,String key , Object args[] ){
return message(request,null,null, key, args);
}
public static String getMessage(HttpServletRequest request,String key ){
return message(request,null,null, key, null);
}
/**
* For java to get propertie file message by culture code
* @param request
* @param key
* @param args
* @param cultureCode
* @return
*/
public static String getMessageByCultureCode(HttpServletRequest request, String key ,String cultureCode, Object args[] ){
return message(request,null,cultureCode, key, args ,"Y");
}
/**
* For java to get propertie file message by culture code
* @param request
* @param key
* @param cultureCode
* @return
*/
public static String getMessageByCultureCode(HttpServletRequest request, String key, String cultureCode){
return getMessageByCultureCode( request, key , cultureCode ,null);
}
/**
* For java to get propertie file message by culture code by MessageResources
* @param resources MessageResources Action.getResources(request)
* @param cultureCode report cultureCode
* @param key message key
* @param args message param.
* @return message String
*/
public static String getMessage(MessageResources resources, String cultureCode, String key, Object args[]){
if (resources == null) {
return null;
}
// Look up the requested Locale
if (cultureCode == null)
cultureCode = Action.LOCALE_KEY;
Locale userLocale = getLocale(cultureCode);
// Return the requested message
if (args == null){
return (resources.getMessage(userLocale, key));
}else{
return (resources.getMessage(userLocale, key, args));
}
}
/**
* @param request
* @param bundle
* @param locale
* @param key
* @param args
* @param flag
* @deprecated
* @return
*/
public static String message(HttpServletRequest request, String bundle, String locale, String key, Object args[],String flag){
HttpSession session = request.getSession();
ServletContext servletContext = session.getServletContext();
Locale userLocale = null;
// Look up the requested MessageResources
if (bundle == null)
bundle = Action.MESSAGES_KEY;
MessageResources resources = (MessageResources)
servletContext.getAttribute(bundle);
if (resources == null) {
return null;
}
// Look up the requested Locale
if (locale == null)
locale = Globals.LOCALE_KEY;
if("Y".equalsIgnoreCase(flag)){
userLocale = getLocale(locale);
}else{
userLocale = (Locale)
session.getAttribute(locale);
if (userLocale == null)
userLocale = Locale.getDefault();
}
// Return the requested message
if (args == null){
return (resources.getMessage(userLocale, key));
}else{
return (resources.getMessage(userLocale, key, args));
}
}
/**
* @param request
* @param bundle
* @param locale
* @param key
* @param args
* @deprecated
* @return
*/
public static String message(HttpServletRequest request, String bundle, String locale, String key, Object args[]){
return message(request, bundle,locale, key, args,null);
}
/**
* @param request
* @param bundle
* @param locale
* @param key
* @param args
* @deprecated
* @return
*/
public static String message(HttpServletRequest request, Locale locale, String key, Object args[]){
HttpSession session = request.getSession();
ServletContext servletContext = session.getServletContext();
// Look up the requested MessageResources
MessageResources resources = (MessageResources)
servletContext.getAttribute(Action.MESSAGES_KEY);
if (resources == null) {
return null;
}
if (locale == null)
locale = Locale.getDefault();
// Return the requested message
if (args == null)
return (resources.getMessage(locale, key));
else
return (resources.getMessage(locale, key, args));
}
/**
* Get Locale by cultureCode/langCode
* @param cultureCode login user current culture langugage or langCode 0:ENGLISH /1:TW_CHINESE/2:CN_CHINESE.
* @return Locale
*/
private static Locale getLocale(String cultureCode){
return LanguageUtil.getLocale(cultureCode);
}
}