java - java中如何实现国际化

标签 java internationalization

我有一个名为 Info 的类,其中描述了一堆 static String 变量。

public class Info{

    public static stringOne= "Hello";
    public static stringTwo = "world";

}

我希望从其他类中以 Info.stringTwo 的形式访问这些变量。

1.) 我需要知道这是否是我在这里应用的java-Internationalization? (我拥有将在本类(class)分配的应用程序中显示的所有消息。而且,我希望该应用程序也能支持不同的语言)

最佳答案

看看Resource bundle

文档中的复制粘贴:

当您的程序需要特定于语言环境的对象时,它会使用 getBundle 方法加载 ResourceBundle 类:

 ResourceBundle myResources =
 ResourceBundle.getBundle("MyResources", currentLocale);

资源包包含键/值对。这些键唯一地标识包中特定于语言环境的对象。

这是一个包含两个键/值对的 ListResourceBundle 示例:

 public class MyResources extends ListResourceBundle {
     protected Object[][] getContents() {
         return new Object[][] {
             // LOCALIZE THE SECOND STRING OF EACH ARRAY (e.g., "OK")
             {"OkKey", "OK"},
             {"CancelKey", "Cancel"},
             // END OF MATERIAL TO LOCALIZE
        };
     }
 }

键总是字符串。在这个例子中,键是“OkKey”和“CancelKey”。在上面的例子中,值也是字符串——“OK”和“Cancel”——但它们不是必须的。这些值可以是任何类型的对象。 您使用适当的 getter 方法从资源包中检索对象。因为“OkKey”和“CancelKey”都是字符串,所以您可以使用 getString 来检索它们:

button1 = new Button(myResources.getString("OkKey"));
button2 = new Button(myResources.getString("CancelKey"));

关于java - java中如何实现国际化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13632663/

相关文章:

java - 如何在用户之间共享 Eclipse 项目首选项?

c++ - 如何将原始 MBCS 字符串 (SHIFT-JIS) 从 Windows 转换为 Linux 上的 UTF-8

java - Spring消息不显示

unicode - 关于 Unicode 我需要了解什么?

java - 在Android中获取 "My Documents"文件

java - 创建 Maven 项目时无法计算构建计划

java - 如何更改 SimpleDateFormat 使用的月份名称的大小写?

angular - 在 Angular 的 i18n 中是否有理由使用 XMB 和 XTB 消息格式而不是 XLF 或 XLIFF?

java - 静态声明和非静态声明的区别

java - 在 Android 中获取 LayoutInflater 的正确方法是什么?