Java 如何根据设置本地化程序文本?

Java 如何根据设置本地化程序文本?,java,localization,Java,Localization,例如,我有一个Language类,它将包含String类型的常量属性,它将在整个程序中使用,根据启动程序时的设置打印x或y字符串 我怎么能这样做?我曾尝试过使用Enum,但缺乏使用经验,未能正确应用;尝试了不同的类,这些类继承了语言,并且必须指定每个字符串的值,但看起来像是自制的枚举 另外,我希望有一个包含每个字符串内容的XML文件,但我完全不知道如何在java中获取XML文件的值(我可能知道如何将它们分开)。如果可能,请提供一些示例或文档 谢谢。您可以使用属性文件,即将它们命名为en-GB.p

例如,我有一个
Language
类,它将包含
String
类型的常量属性,它将在整个程序中使用,根据启动程序时的设置打印
x
y
字符串

我怎么能这样做?我曾尝试过使用
Enum
,但缺乏使用经验,未能正确应用;尝试了不同的类,这些类继承了
语言
,并且必须指定每个
字符串
的值,但看起来像是自制的
枚举

另外,我希望有一个包含每个
字符串
内容的XML文件,但我完全不知道如何在java中获取XML文件的值(我可能知道如何将它们分开)。如果可能,请提供一些示例或文档


谢谢。

您可以使用属性文件,即将它们命名为en-GB.properties、en-US.properties等,文件的外观如下:

en-GB属性

file=File
edit=Edit
file=File
edit=Modifica
it-it.properties

file=File
edit=Edit
file=File
edit=Modifica
“=”符号前面的字符串是属性名称,后面的字符串是属性值,这是访问它的代码:

    Properties prop = new Properties();

    try {
        //load a properties file
        prop.load(new FileInputStream("it-IT.properties"));

        //get the property value and print it out
        System.out.println(prop.getProperty("file"));  //prints "File"
        System.out.println(prop.getProperty("edit"));//prints "Modifica"

    } catch (IOException ex) {
        ex.printStackTrace();
    }

希望这能有所帮助

看来我没有尽我所能去搜索。谢谢