在Java中,可以使用ResourceBundle
类来实现国际化输出。下面是一个示例代码,演示如何使用ResourceBundle
和String.format
方法结合printf
进行国际化输出:
import java.util.Locale;
import java.util.ResourceBundle;
public class Main {
public static void main(String[] args) {
Locale locale = Locale.getDefault();
ResourceBundle messages = ResourceBundle.getBundle("Messages", locale);
String name = "Alice";
int age = 30;
double salary = 50000.00;
String greeting = messages.getString("greeting");
String output = String.format(messages.getString("output"), name, age, salary);
System.out.printf(greeting + "\n");
System.out.printf(output + "\n");
}
}
在上面的示例代码中,假设有一个Messages
资源文件,其中包含了不同语言的字符串资源。greeting
和output
是资源文件中定义的键,分别对应不同语言环境下的问候语和输出格式。
通过ResourceBundle.getBundle
方法获取相应语言环境的资源文件,然后通过String.format
方法将变量插入到输出字符串中,最后通过System.out.printf
方法输出国际化字符串。
要实现国际化输出,需要为不同语言环境创建不同的资源文件,文件名格式为[basename]_[language code]_[country code].properties
,如Messages_en_US.properties
和Messages_fr_FR.properties
。在资源文件中,可以定义不同语言环境下的字符串资源,并通过键值对的形式进行访问。