使用JavaFX开发PC客户端,可以做到国际化,启动的时候可以设置本地的环境的语言类型。
在工具使用的过程中,比如登录失败要弹窗提示,这些信息国际化,通过我下面的这个工具类,传入key值就可以获取resource/language目录下的资源文件
获取ResourceBoundle中的中文。
获取ResourceBoundle中的英文。
package com.nii.desktop.util.ui;
import com.nii.desktop.type.CommonConstant;
import java.util.Locale;
import java.util.MissingResourceException;
import java.util.ResourceBundle;
/**
* Created by wzj on 2016/12/28.
*/
public final class ResourceBundleUtil
{
/**
* language 资源
*/
private static final ResourceBundle resource;
static
{
resource = ResourceBundle.getBundle("language.message", Locale.ENGLISH);
}
/**
* 私有构造函数
*/
private ResourceBundleUtil()
{
}
/**
* Gets a string from the ResourceBundles.
*
Convenience method to save casting.
*
* @param key the key of the properties.
* @return the value of the property. Return the key if the value is not found.
*/
public static String getStringValue(String key)
{
try
{
return resource.getString(key);
}
catch (MissingResourceException e)
{
return CommonConstant.NO_RESOURCE_DEFINE;
}
}
/**
* Gets the integer from the properties.
*
* @param key the key of the property.
*
* @return the value of the key. return -1 if the value is not found.
*/
public static Integer getIntegerValue(String key)
{
try
{
return Integer.valueOf(resource.getString(key));
}
catch (MissingResourceException e)
{
return new Integer(-1);
}
}
}
在加载获取界面Pane的时候,指定FXML对应的ResourceBoundle
在FXML布局文件中,使用,login.userName和login.password就是在资源文件中定义的Key
最终效果如下:
Locale.setDefault(Locale.ENGLISH); //指定为英文 Locale.setDefault(Locale.CHINA); //指定为中文