作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
为了使程序国际化,我获得了以下代码,允许我根据用户选择使用多种语言。
import java.util.*;
public class I18NSample {
static public void main(String[] args) {
String language, country;
if (args.length != 2) { // default is English-language
language = new String("en"); country = new String("US");
} else {
language = new String(args[0]); country = new String(args[1]);
}
Locale currentLocale = new Locale(language, country);
ResourceBundle messages =
ResourceBundle.getBundle("MessagesBundle", currentLocale);
System.out.println(messages.getString("greetings"));
System.out.println(messages.getString("inquiry"));
System.out.println(messages.getString("farewell"));
}
}
这是我的 MessagesBundle 文件:
greetings = Hello.
farewell = Goodbye.
inquiry = How are you?
但是,当在我的程序中实现此代码时,我无法在其他类中使用 messages.getString 函数,并且我在 main 中需要此代码,因为它需要 String[] 参数。有没有办法解决?
最佳答案
当然,只需将消息初始化移至类上方并将其公开,如下所示:
import java.util.*;
public class I18NSample {
public ResourceBundle messages;
static public void main(String[] args) {
String language, country;
if (args.length != 2) { // default is English-language
language = new String("en"); country = new String("US");
} else {
language = new String(args[0]); country = new String(args[1]);
}
Locale currentLocale = new Locale(language, country);
messages =
ResourceBundle.getBundle("MessagesBundle", currentLocale);
System.out.println(messages.getString("greetings"));
System.out.println(messages.getString("inquiry"));
System.out.println(messages.getString("farewell"));
}
}
这样,您就可以使用 I18NSample.ResourceBundle
从其他类访问它
关于Java - 内部化问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27090344/
我已经阅读了引用手册,查看了论坛帖子(例如,How to hold japanese characters in SPRING MVC POJO's field),据我所知,我已经完成了国际化 Spr
Spree I18n 2.3 Setting the Default Locale The default locale for Spree is en. This can be changed by
我是一名优秀的程序员,十分优秀!