1.在clipsee中创建这样一个文件ApplicationResources.properties_zh,自然里边就用来保存中文了.而且系统会自动地以GBK的方式存储该文件,所有该文件在eclipse里也可以显示,不至于像 ApplicationResources.properties 那样出现乱码.
2.用native2ascii工具转换该文件成unicode码,这个工具就在jdk的bin下,使用的方式如下:
native2ascii.exe ApplicationResources.properties_zh ApplicationResources.properties
ant:
<native2ascii src="${dir.target}" includes="Resources.properties" dest="${dir.target}/ascii" encoding="utf-8"/>
详细说明:http://ant.apache.org/manual/OptionalTasks/native2ascii.html
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
测试 ResourceBundleTest.java
import java.util.Locale;
import java.util.ResourceBundle;

public
class
ResourceBundleTest
...
{
public static void main(String args[]) ...{
ResourceBundle rb = ResourceBundle.getBundle("LocalStrings", Locale.CHINA);
//LocalStrings 为peoperties文件的文件名称
String title = rb.getString("helloworld.title");
System.out.println(title);
}
}
LocalStrings_zh.properties
# This locale
is
zh_CN
helloworld.title
=
你好啊
~~
输出乱码~~
用native2ascii.exe把中文格式化
# This locale
is
zh_CN
helloworld.title
=
你好啊
~~
输出:
你好啊~~
在Servlet中的例子应用,Tomcat下的例子,根据request不同选择响应的语言也不相同
/**/
/*
* Copyright 2004 The Apache Software Foundation
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/

/**/
/**/
/**/
/* $Id: HelloWorldExample.java,v 1.3 2004/03/18 16:40:33 jfarcand Exp $
*
*/

import java.io.
*
;
import java.text.
*
;
import java.util.
*
;
import javax.servlet.
*
;
import javax.servlet.http.
*
;

/**/
/** */
/**/
/**
* The simplest possible servlet.
*
* @author James Duncan Davidson
*/


public
class
HelloWorldExample extends HttpServlet
...
{

public void doGet(HttpServletRequest request,
HttpServletResponse response)
throws IOException, ServletException
...{
ResourceBundle rb =
ResourceBundle.getBundle("LocalStrings",request.getLocale());
response.setContentType("text/html");
PrintWriter out = response.getWriter();
out.println("<html>");
out.println("<head>");
String title = rb.getString("helloworld.title");
out.println("<title>" + title + "</title>");
out.println("</head>");
out.println("<body bgcolor="white">");
// note that all links are created to be relative. this
// ensures that we can move the web application that this
// servlet belongs to to a different place in the url
// tree and not have any harmful side effects.
// XXX
// making these absolute till we work out the
// addition of a PathInfo issue
out.println("<a href="../helloworld.html">");
out.println("<img src="../images/code.gif" height=24 " +
"width=24 align=right border=0 alt="view code"></a>");
out.println("<a href="../index.html">");
out.println("<img src="../images/return.gif" height=24 " +
"width=24 align=right border=0 alt="return"></a>");
out.println("<h1>" + title + "</h1>");
out.println("</body>");
out.println("</html>");
}
}
本文介绍如何在Java项目中使用资源文件进行多语言支持,包括创建ApplicationResources.properties_zh文件存储中文资源,使用native2ascii工具将文件转换为Unicode格式,并通过ResourceBundle获取不同语言环境下的字符串。

被折叠的 条评论
为什么被折叠?



