Files
JavaFX-Plus/src/main/java/cn/edu/scau/biubiusuisui/utils/ResourceBundleUtil.java
yangsuiyu b48325cd63 v1.2.0更新
1. 设计代码模块文件,导入IDE后可快速生成符合JavaFX-Plus编程规范的FXPlusController、FXPlusWindow、FXPlusApplication、FXPlusFXML文件
2. 完善多窗口切换功能,可携带数据跳转
3. 新增注解@FXWindow中的icon属性,传入String类型的图标URL,可为窗口标题栏增设图标
4. 完善JavaFX-Plus生命周期
5. 新增日志log模块
6. 新增语言国际化操作
7. 新增测试生命周期LifeDemo示例和测试国际化的LanguageDemo示例代码
8. 规范化代码和更新README
2020-05-04 15:13:58 +08:00

107 lines
3.2 KiB
Java
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
package cn.edu.scau.biubiusuisui.utils;
import cn.edu.scau.biubiusuisui.entity.FXPlusLocale;
import cn.edu.scau.biubiusuisui.exception.ProtocolNotSupport;
import cn.edu.scau.biubiusuisui.log.FXPlusLoggerFactory;
import cn.edu.scau.biubiusuisui.log.IFXPlusLogger;
import java.io.File;
import java.util.Locale;
import java.util.MissingResourceException;
import java.util.ResourceBundle;
/**
* @author suisui
* @version 1.2
* @description 语言国际化工具类
* @date 2020/5/1 11:15
* @since JavaFX2.0 JDK1.8
*/
public class ResourceBundleUtil {
private static final IFXPlusLogger logger = FXPlusLoggerFactory.getLogger(ResourceBundleUtil.class);
/**
* @param baseName
* @param fxPlusLocale
* @return
* @description 获取Java的ResourceBundle
*/
public static ResourceBundle getResourceBundle(String baseName, FXPlusLocale fxPlusLocale) {
baseName = StringUtil.trimExtension(baseName);
baseName = StringUtil.splashToDot(baseName);
Locale locale = ResourceBundleUtil.getLocale(fxPlusLocale);
// logger.info(baseName);
if (locale != null) {
return ResourceBundle.getBundle(baseName, locale);
}
return null;
}
/**
* @param fxPlusLocale
* @return
* @description 通过FXPlusLocale枚举类型获取Locale
*/
private static Locale getLocale(FXPlusLocale fxPlusLocale) {
switch (fxPlusLocale) {
case SIMPLIFIED_CHINESE:
return Locale.SIMPLIFIED_CHINESE;
case FRANCE:
return Locale.FRANCE;
case KOREAN:
return Locale.KOREAN;
case ENGLISH:
return Locale.UK;
case GERMANY:
return Locale.GERMANY;
case ITALIAN:
return Locale.ITALIAN;
case AMERICAN:
return Locale.US;
case JAPANESE:
return Locale.JAPAN;
case TRADITIONAL_CHINESE:
return Locale.TRADITIONAL_CHINESE;
default:
return null;
}
}
/**
* @param key
* @return
* @description 通过key获取String类型的value值失败或不存在返回空字符串
*/
public static String getStringValue(ResourceBundle resource, String key) {
if ("".equals(key) || null == key) {
return "";
}
try {
return resource.getString(key);
} catch (MissingResourceException | ClassCastException e) {
logger.error(e.getMessage());
// e.printStackTrace();
return "";
}
}
/**
* @param key
* @return
* @description 通过key获取Integer类型的value值失败或不存在返回-1
*/
public static Integer getIntegerValue(ResourceBundle resource, String key) {
if ("".equals(key) || null == key) {
return -1;
}
try {
return Integer.valueOf(resource.getString(key));
} catch (MissingResourceException | NumberFormatException e) {
logger.error(e.getMessage());
// e.printStackTrace();
return -1;
}
}
}