java国际化程序创建属性文件_Java国际化(i18n)ResourceBundle类

ResourceBundle类用于存储区域设置敏感的文本和对象。 通常使用属性文件来存储特定于语言环境的文本,然后使用ResourceBundle对象来表示它们。 以下是在基于Java的应用程序中使用特定于语言环境的属性文件的步骤。

第1步:创建属性文件

假设我们需要英文语言环境的属性文件。创建属性文件名称为:XXX_en_US.properties,其中XXX是文件的名称,en_US表示英语(美国)的语言环境。

文件:Messages_en_US.properties -

message=Welcome to zyiz.net!

现在为法语区域设置创建属性文件。创建一个属性文件名称为:XXX_fr_FR.properties,其中XXX是文件的名称,fr_FR表示法语(法国)的语言环境。

文件:Messages_fr_FR.properties -

message=Bienvenue sur zyiz.net!

在这里可以看到键(message)是相同的,但是这个值在属性文件中是特定于语言环境的。

第2步:创建ResourceBundle对象

使用以下语法创建具有属性文件名和区域设置的ResourceBundle对象。

ResourceBundle bundle = ResourceBundle.getBundle("Messages", Locale.US);

第3步:从ResourceBundle对象获取值。

通过传递键,然后从ResourceBundle对象获取值。

String value = bundle.getString("message");

示例

以下示例说明如何使用ResourceBundle对象来显示来自属性文件的特定于区域的值。

文件:IOTester.java -

import java.util.Locale;

import java.util.ResourceBundle;

public class I18NTester {

public static void main(String[] args) {

ResourceBundle bundle = ResourceBundle.getBundle("Messages", Locale.US);

System.out.println("Message in "+Locale.US +": "+bundle.getString("message"));

bundle = ResourceBundle.getBundle("Messages", Locale.FRANCE);

System.out.println("Message in "+Locale.FRANCE +": "+bundle.getString("message"));

}

}

它会打印下面的结果 -

Message in en_US: Welcome to zyiz.net!

Message in fr_FR: Bienvenue sur zyiz.net!

命名约定注意事项

以下是属性文件的命名约定。

对于映射到默认语言环境的属性文件,不需要前缀。 message_en_US.properties等同于message.properties。

对于映射到语言环境的属性文件,可以通过两种方式附加前缀。 message_fr.properties等同于message_fr_FR.properties。

b739ec46bb5c46d9c0aa4ce35ba1ea56.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Java的POI库提供了丰富的API用于读写Excel文件,同时也支持对Excel文件进行国际化处理。下面是一个简单的示例代码,演示如何使用POI实现Excel国际化多语言导出。 ```java public void exportExcel(HttpServletRequest request, HttpServletResponse response) throws Exception { // 获取本地化消息资源 ResourceBundle bundle = ResourceBundle.getBundle("i18n/messages", request.getLocale()); // 创建Excel工作簿 Workbook workbook = new XSSFWorkbook(); // 创建Excel工作表 Sheet sheet = workbook.createSheet(bundle.getString("excel.sheet.name")); // 创建Excel标题行 Row headerRow = sheet.createRow(0); // 设置Excel标题行单元格内容 headerRow.createCell(0).setCellValue(bundle.getString("excel.header1")); headerRow.createCell(1).setCellValue(bundle.getString("excel.header2")); headerRow.createCell(2).setCellValue(bundle.getString("excel.header3")); // 创建Excel数据行 Row dataRow = sheet.createRow(1); // 设置Excel数据行单元格内容 dataRow.createCell(0).setCellValue(bundle.getString("excel.data1")); dataRow.createCell(1).setCellValue(bundle.getString("excel.data2")); dataRow.createCell(2).setCellValue(bundle.getString("excel.data3")); // 设置响应头信息 response.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"); response.setHeader("Content-disposition", "attachment;filename=" + URLEncoder.encode(bundle.getString("excel.filename"), "UTF-8")); // 输出Excel文件流 OutputStream outputStream = response.getOutputStream(); workbook.write(outputStream); outputStream.flush(); outputStream.close(); } ``` 在上述示例代码中,我们通过ResourceBundle获取本地化消息资源,在创建Excel工作表、设置Excel标题行、设置Excel数据行时,使用bundle.getString()方法获取对应的国际化消息。这样就可以实现Excel文件国际化多语言导出。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值