package com.github.walker.easydb.assistant;
import java.util.HashMap;
import java.util.Locale;
import java.util.ResourceBundle;
/**
* This class provides multiple languages for message.
*
* @author Huqingmiao
*/
public class LingualResource {
private static HashMap<String, LingualResource> instances = new HashMap<String, LingualResource>(2); // instance
// pool
private String baseFileName = null;
private ResourceBundle resourceBundle = null;
/**
* @param languageCode 语种代码
* @param regionCode 地区代码
*/
private LingualResource(String languageCode, String regionCode) {
String localeCode = makeLocaleCode(languageCode, regionCode);
Locale locale = new Locale(languageCode, regionCode);
baseFileName = "res";
// load the resource file, such as:res_en_US.properties
resourceBundle = ResourceBundle.getBundle(baseFileName, locale);
// put the instance into pool
instances.put(localeCode, this);
}
/**
* 取得某语种的资源信息提取类
*
* @param language 语种代码
* @param region 地区代码
*/
public synchronized static LingualResource getInstance(String language, String region) {
String tmpCode = makeLocaleCode(language, region);
if (instances.containsKey(tmpCode)) {
return (LingualResource) instances.get(tmpCode);
}
return new LingualResource(language, region);
}
public String getLocaleString(String code) {
return resourceBundle.getString(code);
}
private static String makeLocaleCode(String language, String region) {
return language + "_" + region;
}
}