/**
*
* 国际化文件的读取
* <功能详细描述>
* @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中的国际化 1. **资源绑定文件(Properties文件)** 在Java中,我们通常使用`.properties`文件来存储不同语言的文本资源。例如,`...
通过以上方法,开发者可以有效地解决Java国际化过程中遇到的中文乱码问题。`BundleEditor` 提供的工具集可以简化这个过程,提高开发效率,并确保应用程序在全球范围内提供一致且正确的用户体验。为了充分利用这个...
总结,Java中读取Properties文件是通过`java.util.Properties`类来实现的,涉及的关键步骤包括加载文件、获取键值对以及处理可能的异常。这种机制在许多场景下都非常实用,如数据库连接配置、应用设置等。理解并熟练...
下面我们将深入探讨Java中实现国际化程序的步骤和关键概念。 首先,我们需要理解`ResourceBundle`类,它是Java i18n的核心。`ResourceBundle`用于存储特定语言或区域的字符串和其他可本地化资源。这些资源通常保存...
在提供的`ConfigInfo.java`文件中,可能包含了实现Properties文件读取的具体逻辑,而`readme.txt`可能是指导如何使用这个类或者解释代码功能的文档。如果你需要查看具体实现,可以查阅这两个文件。通过分析`Config...
`ResourceBundle`是Java提供的一种国际化的资源管理工具,也可以用来读取配置文件。它支持多种语言环境,适合处理多语言配置。不过,它默认只支持.properties格式: ```java ResourceBundle bundle = ...
以下将详细讲解Java中实现国际化涉及的主要知识点: 1. **软件国际化的意义**: - 提高软件的全球适用性,满足不同国家用户的语言和文化习惯。 - 降低维护成本,只需维护一套核心代码,针对不同语言的改动集中在...
本篇文章将深入探讨“国际化插件——读取 .properties的中文文件”这一主题,以及如何在Eclipse中实现对中文资源的管理。 首先,.properties文件是Java平台用于存储配置信息或文本资源的标准格式,特别适用于存储...
Java的i18n(Internationalization)是软件开发中的一个重要概念,它允许应用程序根据用户的地域、语言和文化习惯提供本地化的界面和功能。...通过这样的方式,我们可以创建出适应各种文化的国际化应用程序。
通过以上步骤,你可以为Spring Boot应用实现完整的国际化功能,包括页面的中英文切换,并确保在页面跳转时,语言设置得以保持。记得在实际项目中,还要考虑如何优雅地处理未找到对应语言资源的情况,以及优化语言...
而UTF-8是一种国际化的编码标准,可以表示世界上几乎所有的字符。 在Java中,当使用默认的InputStreamReader或FileReader读取文件时,如果没有指定编码,Java会使用平台默认的编码,这可能导致在跨平台操作时出现...
java.util 包含 collection 框架、遗留的 collection 类、事件模型、日期和时间设施、国际化和各种实用工具类(字符串标记生成器、随机数生成器和位数组)。 java.util.concurrent 在并发编程中很常用的实用工具类...
### Java读取与写入CSV文件的详细解析 在日常的软件开发中,处理CSV(Comma Separated ...最后,值得注意的是,虽然给出的代码示例使用了GBK编码,但在国际化的项目中,更推荐使用UTF-8编码,以确保兼容性和可移植性。
`Translater.java` 是一个用于处理和翻译文本资源的工具类,它的核心功能在于帮助开发者将程序中的硬编码文本替换为可配置的国际化字符串。在Java中,这一过程通常通过使用`java.util.ResourceBundle`类和`....
这种文件格式在Java应用中广泛用于保存应用程序的配置参数、国际化字符串或者数据库连接信息等。读取Properties文件是Java开发中的基础操作,下面我们将详细探讨如何在Java中读取Properties文件的内容。 首先,我们...
此方法适用于国际化(i18n)和本地化(l10n),它能够根据当前的地区设置自动加载对应的资源包。 ```java import java.util.Locale; import java.util.ResourceBundle; public class ReadProperties { public ...
对于更复杂的国际化支持,Java提供了`ResourceBundle`类。它可以处理不同语言和地区的属性文件,例如`messages_en.properties`和`messages_fr.properties`。 在`Resource.java`这个文件中,可能实现了上述的一种或...
总的来说,"JAVA国际化插件"帮助开发者轻松实现跨语言的应用程序,提升了开发效率并确保了用户体验的一致性。通过"jp.gr.java_conf.ussiy.app.propedit_5.3.3"这个工具,开发者可以更加便捷地管理国际化资源,从而...
`ResourceBundle`类主要用于国际化的资源管理,但它也可以用于读取`.properties`文件。这种方法适用于有多种语言版本的配置文件。 ```java import java.util.ResourceBundle; public class ...
在实际开发中,有时我们会遇到国际化(i18n)的需求,这时可以使用`ResourceBundle`类,它可以加载不同语言的属性文件,例如`messages_en.properties`(英文)和`messages_zh_CN.properties`(简体中文)。...