# 课程：隔离特定于区域设置的数据

> 原文： [https://docs.oracle.com/javase/tutorial/i18n/resbundle/index.html](https://docs.oracle.com/javase/tutorial/i18n/resbundle/index.html)

必须根据最终用户的语言和区域的惯例来定制特定于语言环境的数据。用户界面显示的文本是区域设置特定数据的最明显示例。例如，在美国使用“取消”按钮的应用程序将在德国具有 Abbrechen 按钮。在其他国家/地区，此按钮将包含其他标签。显然你不想硬编码这个按钮标签。如果你能自动获得给定`Locale`的正确标签，那不是很好吗？幸运的是，只要您在`ResourceBundle`中隔离特定于语言环境的对象，就可以。

在本课程中，您将学习如何创建和访问`ResourceBundle`对象。如果您急于查看一些编码示例，请继续查看本课程的最后两节。然后，您可以回到前两部分来获取有关`ResourceBundle`对象的概念信息。

## [关于 ResourceBundle 类](concept.html)

`ResourceBundle`对象包含特定于语言环境的对象。当您需要特定于语言环境的对象时，可以从`ResourceBundle`获取它，它返回与最终用户的`Locale`匹配的对象。本节介绍`ResourceBundle`如何与`Locale`相关，并描述`ResourceBundle`子类。

## [准备使用 ResourceBundle](prepare.html)

在创建`ResourceBundle`对象之前，您应该做一些计划。首先，确定程序中特定于语言环境的对象。然后将它们组织成类别并相应地将它们存储在不同的`ResourceBundle`对象中。

## [使用属性文件](propfile.html)备份 ResourceBundle

如果您的应用程序包含需要翻译成各种语言的`String`对象，则可以将这些`String`对象存储在`PropertyResourceBundle`中，该对象由一组属性文件备份。由于属性文件是简单的文本文件，因此翻译人员可以创建和维护这些文件。您不必更改源代码。在本节中，您将学习如何设置备份`PropertyResourceBundle`的属性文件。

## [使用 ListResourceBundle](list.html)

`ListResourceBundle`类是`ResourceBundle`的子类，它使用列表管理特定于语言环境的对象。 `ListResourceBundle`由类文件支持，这意味着每次需要支持额外的`Locale`时，您必须编写和编译新的源文件。但是，`ListResourceBundle`对象很有用，因为与属性文件不同，它们可以存储任何类型的特定于语言环境的对象。通过单步执行示例程序，本节演示如何使用`ListResourceBundle`。

## [自定义资源包加载](control.html)

本节介绍了提高`ResourceBundle.getBundle`工厂灵活性的新功能。 `ResourceBundle.Control`类与用于加载资源包的工厂方法协作。这允许将资源包加载过程的每个实质步骤及其高速缓存控制视为单独的方法。