多语言包集锦
多语包使用的方法看Resource的注释即可,所有的功能都在Resource中定义了。
在XMLResource类中有Main方法,可以直接运行。
在调用之前先执行XMLResource.import方法把文件调入。
软件使到了一个资源文件为XML文件,格式如最后所示。
以下文件编译即可运行
=======================Resource.java =======================
package org.fswan;
import java.util.Locale;
import java.util.Properties;
/**
* @author Swan Fong(方志文)
* e-mail:fswan@yah.net
* 用来读资源文件用的接口,跟不同语言获取不同的字符串
* 如果在获取资源的同传入的地区代码为NULL的话则使用缺省的地区代码
*/
public interface Resource {
/**
* 获取跟名称相对应的资源的内容
* @param name 名称
* @param locale 语言
* @return 资源内容
*/
public String getResource(String name,Locale locale);
/**
* 获取带有参数的资源的内容
* @param name 资源的名称
* @param property 资源的参数值
* @param locale 语言
* @return 资的内容
*/
public String getResource(String name,String[] property,Locale locale);
/**
* 获取一组资源
* 如果目录名为common.title,是把处于common下title下的所有的所有的资源显示出来
* property是参数名,对应category下资源的长度,第二维为长度。如果长度小于category的长度
* 则把最后一个作为这之后的所有的资源的参数,如果为null则所有的资源都没参数。
* @param category 目录名
* @param property 参数
* @param locale 语言
* @return 资源数组
*/
public Properties getResource(String category,String[][] property,Locale locale);
/**
* 获取目录下所有的资源的名
* @param category 目录名
* @param locale 语言
* @return 所有的子项的数组
*/
public String[] getResourceNames(String category,Locale locale);
/**
* 获取目录下所有的资源或子目录
* @param category 目录名
* @param isCategory 返回的是子目录还是资源
* @param locale 语言
* @return 返回的内容
*/
public String[] getResourceNames(String category,boolean isCategory,Locale locale);
}
===============End ================================
==============XMLResource.java======================
package org.fswan;
import java.io.File;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Hashtable;
import java.util.Locale;
import java.util.Properties;
import java.util.StringTokenizer;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.FactoryConfigurationError;
import javax.xml.parsers.ParserConfigurationException;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.NodeList;
import org.xml.sax.SAXException;
/**
* @author Swan Fong(方志文)
* E-mail:fswan@yeah.net
* 从XML文件获取资源的类
* 资源的定位方式为树形层之间用逗号隔开。
* 如资源文件内容为以下内空
* <resource>
* <form1><title1>Title1</title1><title2>Title2</title2>
* </form1>
* </resource>
* 则获取资源form1.title1的内容为Title1
* 获取资源form1的内容为title1
本文地址:http://www.45fan.com/a/question/72206.html