java返回国际化_Java国际化

本文介绍了Java编程中的国际化处理,包括创建国际化资源文件、使用ResourceBundle和MessageFormat进行文本国际化,并展示了如何根据用户地区加载相应语言的资源。示例代码演示了如何在不同环境下输出国际化消息。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

同计算机编程有关的国际化是设计和编写应用程序以便可以在全球或多国环境中使用的过程。国际化程序能够支持不同的语言以及不同格式的日期、时间、货币和其它值,而无须软件修改。这通常涉及“软编码”或将文本组件同程序代码分离并且可能涉及可插入代码模块。

国际化资源文件命名:  名称_语言_国家.properties

英文: Message_en_US.properties

内容:

k1=hello!

k2=good bye!

k3=Can I help you! {0},{1}

中文: Message_zh_CN.properties

内容:

k1=你好吗?

k2=再见!

k3=我能帮助你吗?{0},{1}

k1=hello!

k2=good bye!

k3=Can I help you! {0},{1}

k1=\u4F60\u597D\u5417\uFF1F

k2=\u518D\u89C1\uFF01

k3=\u6211\u80FD\u5E2E\u52A9\u4F60\u5417\uFF1F{0}\uFF0C{1}

package com.what21.base29;

import java.text.MessageFormat;

import java.util.Locale;

import java.util.ResourceBundle;

/**

* Java国际化

*/

public class I18NTest {

/**

* 获取计算机默认的locale

*

* @return

*/

public static Locale getDefaultLocale() {

Locale defaultLocale = Locale.getDefault();

String defaultLanguage = defaultLocale.getLanguage();

String defaultCountry = defaultLocale.getCountry();

System.out.println("默认语言:" + defaultLanguage);

System.out.println("默认国家:" + defaultCountry);

return defaultLocale;

}

/**

* 获取构造的Locale

*

* @param language

* @param country

* @return

*/

public static Locale getNewLocale(String language, String country) {

Locale locale = new Locale(language, country);

String newLanguage = locale.getLanguage();

String newCountry = locale.getCountry();

System.out.println("语言:" + newLanguage);

System.out.println("国家:" + newCountry);

return locale;

}

/**

* 输出国际化资源文件

*

* @param fileName

* @param locale

* @param str1

* @param str2

*/

public static void message(String fileName, Locale locale,

String str1, String str2) {

ResourceBundle bundle = ResourceBundle.getBundle(fileName, locale);

System.out.println("k1 = " + bundle.getString("k1"));

System.out.println("k2 = " + bundle.getString("k2"));

// 填充占位符(2个占位符)

MessageFormat messageFormat = new MessageFormat(bundle.getString("k3"));

String k3 = messageFormat.format(new Object[] { str1, str2 });

System.out.println("k3 = " + k3);

}

/**

* @param args

*/

public static void main(String[] args) {

message("com/what21/base29/Message", getDefaultLocale(), "汤姆", "小张");

System.out.println("---------------------------------------------");

message("com/what21/base29/Message", getNewLocale("en", "US"), "tom", "zhang");

}

}

package com.what21.base29;

import java.util.Locale;

/**

* Java国际化

*/

public class LocaleTest {

public static void main(String[] args) {

// 返回所有已安装语言环境的数组

Locale[] locals = Locale.getAvailableLocales();

for (Locale locale : locals) {

// 国家

System.out.print(locale.getDisplayCountry() + " : "

+ locale.getCountry() + " | ");

// 语言

System.out.println(locale.getDisplayLanguage() + " : "

+ locale.getLanguage());

}

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值