`
alvinqq
  • 浏览: 181729 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

Java类中国际化的读取

    博客分类:
  • java
阅读更多
/**
 * 
 * 国际化文件的读取
 * <功能详细描述>
 * @author  zengqiang
 * @version  [版本号, 2009-8-18]
 * @see  [相关类/方法]
 */
public class Internationalization
{  
    private static Map<String, String> languageMap = new HashMap<String, String>();
    
    private static String PATH = null;
    
    /**
     * 初始化PATH
     */
    @SuppressWarnings("static-access")
    public Internationalization(String projectName)
    {
        this.PATH =
            PortalHelper.getInstance().getURL("dpf_dms") == null ? System.getProperty("catalina.home")
                + File.separatorChar + "webapps" + projectName + File.separatorChar + "WEB-INF" + File.separatorChar
                + "classes" + File.separatorChar : PortalHelper.getInstance().getURL("dpf_dms") + File.separatorChar
                + "WEB-INF" + File.separatorChar + "classes" + File.separatorChar;
    }
    
    /** 读取国际化文件
     * @param language 语种
     * @throws IOException 
     */
    public static String getProperties(String language, String key)
        throws IOException
    {
        DebugLogger.inf("getProperties  method param language:" + language + "  param key:" + key);
        if (null != languageMap.get("language"))
        {
            if (language.equals(languageMap.put("language", language)))
            {
                Properties propertys;
                try
                {
                    propertys = Tools.loadProperties(PATH + "dpf_" + language + ".properties");
                    if (null != key)
                    {
                        return propertys.getProperty(key);
                    }
                }
                catch (InitException e1)
                {
                    DebugLogger.err("loadProperties  to  Exception", e1);
                    e1.printStackTrace();
                }
            }
            else
            {
                languageMap.put("language", language);
            }
        }
        else
        {
            languageMap.put("language", language);
        }
        return null;
    }  
    /**
     * 根据国际化名称得到值
     */
    public static String getProperty(String key)
    {
        DebugLogger.inf("getProperty  method  param key:" + key);
        try
        {
            return getProperties(languageMap.get("language"), key);
        }
        catch (IOException e)
        {
            DebugLogger.err("getProperty  to  Exception", e);
            e.printStackTrace();
        }
        return "Key_Error";
    }    
}
public final class Tools{
     public static Properties loadProperties(String fileURL)
        throws InitException
    {
        Properties prop = new Properties();
        FileInputStream in = null;
        try
        {
            File f = new File(fileURL);
            if (!f.exists())
            {
                throw new InitException("Can't find  properties file from  URL [" + f.getAbsolutePath() + "].");
            }
            in = new FileInputStream(f);
            prop.load(in);
        }      
        catch (IOException e)
        {
            
        }
    }
}
分享到:
评论

相关推荐

    java国际化中文乱码问题解决包

    java国际化中文乱码问题解决包ResourceBundleEditor_v0.8.0.zip

    java web 国际化

    java web 开发速学宝典第八章 李宁著 。实现国际化功能最直接的方法就是为每一个...为了解决这个问题,现在普遍的做法是将需要国际化的资源信息保存在资源文件中,并根据本地信息来读取相应资源文件中的国际化信息。

    spring boot国际化 i18n

    自己整理的sping boot国际化,切换中英文页面,切换时,将当前语言类型保存到session中,保证跳转页面时,语言类型沿用上个页面的语言类型

    JAVA_API1.6文档(中文)

    java.util 包含 collection 框架、遗留的 collection 类、事件模型、日期和时间设施、国际化和各种实用工具类(字符串标记生成器、随机数生成器和位数组)。 java.util.concurrent 在并发编程中很常用的实用工具类...

    Java 1.6 API 中文 New

    java.util 包含 collection 框架、遗留的 collection 类、事件模型、日期和时间设施、国际化和各种实用工具类(字符串标记生成器、随机数生成器和位数组)。 java.util.concurrent 在并发编程中很常用的实用工具类。...

    JavaAPI1.6中文chm文档 part1

    java.util 包含 collection 框架、遗留的 collection 类、事件模型、日期和时间设施、国际化和各种实用工具类(字符串标记生成器、随机数生成器和位数组)。 java.util.concurrent 在并发编程中很常用的实用工具类...

    java常用工具类的使用

    而Date的其他构造方法和普通方法的API都不容易实现国际化,因此目前Date类的大多数方法都被标识为过时,表示更灵活的时间类请参考java.util.Calendar。 Date的输出结果是按照国际通用格式输出的,而中国更习惯于...

    JavaAPI中文chm文档 part2

    java.util 包含 collection 框架、遗留的 collection 类、事件模型、日期和时间设施、国际化和各种实用工具类(字符串标记生成器、随机数生成器和位数组)。 java.util.concurrent 在并发编程中很常用的实用工具类...

    java api最新7.0

    java.util 包含 collection 框架、遗留的 collection 类、事件模型、日期和时间设施、国际化和各种实用工具类(字符串标记生成器、随机数生成器和位数组)。 java.util.concurrent 在并发编程中很常用的实用工具类。...

    java jdk-api-1.6 中文 chmd

    java.util 包含 collection 框架、遗留的 collection 类、事件模型、日期和时间设施、国际化和各种实用工具类(字符串标记生成器、随机数生成器和位数组)。 java.util.concurrent 在并发编程中很常用的实用工具类...

    一个利用struts做的简单国际化

    3、在jsp中采用标签来读取国际化消息文本 4、了解利用struts默认将locale放到session中的特性,完成采用编程的方式切换语言设置,设置语言到session中的,key为Globals.LOCALE_KEY,value为当前设置的语言. * 参见:...

    java操作属性文件.pdf

    * 国际化:属性文件可以存储不同的语言翻译信息,使得程序可以在不同的语言环境中运行。 * 用户设置:属性文件可以存储用户的个性化设置,例如界面设置、语言设置等。 Java 操作属性文件是 Java 编程语言中的一种...

    java 面试题 总结

    forward是服务器请求资源,服务器直接访问目标地址的URL,把那个URL的响应内容读取过来,然后把这些内容再发给浏览器,浏览器根本不知道服务器发送的内容是从哪儿来的,所以它的地址栏中还是原来的地址。 redirect...

    JAVA面试题最全集

    60.JAVA语言国际化应用,Locale类,Unicode 61.描述反射机制的作用 62.如何读写一个文件? 63.在图形界面中,一个按钮如何处理鼠标点击事件? 64.在图形界面中,一个表格,如何实现编辑单元格时弹出下拉框? ...

    常用java IO操作以及用jxl读写excel 工具源代码

    常用java IO操作以及用jxl读写excel 工具源代码 此工具作用:把目录里面的文件旧的国际化key值换成新的国际化值。根据excel文件。

    [Java参考文档]

    java.util 包含 collection 框架、遗留的 collection 类、事件模型、日期和时间设施、国际化和各种实用工具类(字符串标记生成器、随机数生成器和位数组)。 java.util.concurrent 在并发编程中很常用的实用工具类...

Global site tag (gtag.js) - Google Analytics