liferay 如何 用 国际化

1 首先写三个language.properties文件如下图

liferay 如何 用 国际化_第1张图片

2 传入参数判断 为哪一种语言


  String editon = request.getParameter("editon") == null ? "e" : request.getParameter("editon");
     String separator=File.separator;
     String path="en_US";
     if(editon.equals("e"))
     {
        path="en_US";
     }
     else if(editon.equals("s"))
     {
        path="zh_CN";
     }else if(editon.equals("t")){
       path="zh_tw";
     }

3 初始化配置取出相应的值得

 String paths =  this.getServletContext().getRealPath("/") +"language" + separator + path + separator +"language.properties";
     System.out.println( " add_user_alert_rulers.jsp paths = " + paths);
     VtcMessage msg = new VtcMessage(paths);
     InternationalUtil international=new InternationalUtil();

4 VtcMessage.java 

package pcpapp;

import java.io.FileInputStream;
import java.io.InputStream;
import java.io.PrintStream;
import java.util.Properties;

public class VtcMessage
{
  private static Properties prpIniKeys = new Properties();

  private static String strMessageFileName = "strMessageFileName";

  private static String charsetName = "GBK";

  private boolean debug = false;

  public void setDebug(boolean blnDebug)
  {
    this.debug = blnDebug;
  }

  public boolean getDebug()
  {
    return this.debug;
  }

  public void setCharset(String charsetName) {
    charsetName = charsetName;
  }

  public String getCharset() {
    return charsetName;
  }

  public String getMessage(String sErrorCode)
  {
    String sTmp = "";
    try {
      sTmp = prpIniKeys.get(sErrorCode).toString();
      sTmp = new String(sTmp.getBytes("iso-8859-1"), charsetName);

      return sTmp;
    }
    catch (Exception e)
    {
      e = 
        e;

      sTmp = "The System/Error Message not found. Error Code No.: " + sErrorCode;

      return sTmp; } finally {  } return sTmp;
  }

  public String getMessage(String sErrorCode, String sParam)
  {
    int nStart = 0;
    String sTmp = new String();
    String sReturn = new String();
    try {
      sTmp = prpIniKeys.get(sErrorCode).toString();
      nStart = sTmp.indexOf("PARAMETER1");
      sReturn = sTmp.substring(0, nStart) + sParam + sTmp.substring(nStart + 10);
      sReturn = new String(sReturn.getBytes("iso-8859-1"), charsetName);

      return sReturn;
    }
    catch (Exception e)
    {
      e = 
        e;

      sReturn = "The System/Error Message not found. Error Code No.: " + sErrorCode;

      return sReturn; } finally {  } return sReturn;
  }

  public String getMessage(String sErrorCode, String sParam1, String sParam2)
  {
    int nStart1 = 0;

    String sTmp = "";
    String sReturn = "";
    try {
      sTmp = prpIniKeys.get(sErrorCode).toString();
      nStart1 = sTmp.indexOf("PARAMETER1");
      int nStart2 = sTmp.indexOf("PARAMETER2");
      sReturn = sTmp.substring(0, nStart1) + sParam1 + sTmp.substring(nStart1 + 10, nStart2) + sParam2 + sTmp.substring(nStart2 + 10);
      sReturn = new String(sReturn.getBytes("iso-8859-1"), charsetName);

      return sReturn;
    }
    catch (Exception e)
    {
      e = 
        e;

      sReturn = "The System/Error Message not found. Error Code No.: " + sErrorCode;

      return sReturn; } finally {  } return sReturn;
  }

  public VtcMessage()
  {
    String strUatPath = "/ini/characterRes.ini";
    try
    {
      InputStream is = VtcMessage.class.getResourceAsStream(strUatPath);
      prpIniKeys.load(is);

      is.close();
    } catch (Exception e) {
      e.printStackTrace();
    }
  }

  public VtcMessage(String strUatPath)
  {
    try
    {
      FileInputStream inpStreamIni = new FileInputStream(strUatPath);
      prpIniKeys.load(inpStreamIni);
      inpStreamIni.close();
    } catch (Exception e) {
      e.printStackTrace();
    }
  }

  public static void main(String[] args)
  {
    VtcMessage vtcMsg = new VtcMessage();
    System.out.println(vtcMsg.getMessage("CN006006"));
  }
}


6 internalUit.java

package com.cpcnet.mc.util;

import java.lang.reflect.Field;
import java.util.Properties;

import pcpapp.VtcMessage;



public class InternationalUtil extends VtcMessage{
     /**
      * ��д��ȡ���ʻ��ַ��������������
      */
	public String getMessage(String sErrorCode, Class vtcClass) {
		String sTmp = "";
		try {
			if ("VtcMessage".equals(vtcClass.getSimpleName())) {
				Field field = vtcClass.getDeclaredField("prpIniKeys");
				field.setAccessible(true);
                Properties prpIniKeys = (Properties) field.get(null);
                sTmp=prpIniKeys.get(sErrorCode).toString();
				return sTmp;
			}else{
				super.getMessage(sErrorCode);
			}
		} catch (Exception e) {
			sTmp = "The System/Error Message not found. Error Code No.: "
					+ sErrorCode;
			return sTmp;
		}
		return sTmp;
	}

}





你可能感兴趣的:(liferay 如何 用 国际化)