阅读(4535) (10)

使用ResourceBundle

2017-10-20 14:17:59 更新

ResourceBundle(资源包)是一组属性文件,与不同语言特定后缀具有相同的基本名称。资源包至少包含两个具有类似基本名称的属性文件,例如 file_en.properties 和 file_de.properties。 

IntelliJ IDEA 能够识别资源包,并用图标 标记它们。

IntelliJ IDEA 支持ResourceBundle资源包的以下功能:

  • 用于创建新资源包的操作。
  • 用于组合和分离属性文件的操作。
  • 专用ResourceBundle资源包编辑器。
  • 突出显示缺少的属性或值时的错误。
  • 资源包的重构包括重命名、移动、复制和安全删除。

创建ResourceBundle资源包

要创建新的资源包,请按照下列步骤操作:

  1. 在“项目”工具窗口中,选择应创建新资源包的目录。
  2. 执行以下操作之一:
    • 按 Alt+Insert。
    • 在选择的上下文菜单中,选择:新建| 资源包(New | Resource Bundle)
    • 在主菜单上选择:文件| 新建| 资源包(File | New | Resource Bundle)
  3. 在打开的对话框中,执行以下操作:
    • 指定资源包的基本名称。
    • 如有必要,请选中“使用基于 XML 的属性文件”复选框。
    • 添加所需的区域设置。为此,请单击 并键入所需区域设置的逗号分隔后缀。
    • 准备就绪后单击 "确定"。

新节点资源包“<base name>”出现在“项目”工具窗口:

IntelliJ IDEA创建ResourceBundle资源包

组合或分离属性

默认情况下,当创建新的资源包时,它将显示已连接。您可以将其分离并只显示属性文件。

分离资源包

  1. 右键单击要分离的资源包。
  2. 在上下文菜单上,选择:分解资源包 <base name>(Dissociate Resource Bundle <base name>)。

将多个属性文件合并到资源包中

  1. 选择要组合的属性文件。
  2. 右键单击所选内容。
  3. 在上下文菜单上,选择"组合到资源包"。
  4. 指定资源束的基本名称。

编辑资源包

在创建了多个具有相同名称的 .properties 文件后,区域设置后缀的不同,IntelliJ IDEA 会自动识别它们,并将项目视图中的组分组到资源包中。

编辑IntelliJ IDEA资源包

调用资源包的属性编辑器

若要调用资源包的属性编辑器,请执行下列操作之一:

  • 在项目工具窗口中,右键单击资源包并选择"跳转到源"。
  • 在"项目" 工具窗口中选择一个资源包,然后按 F4。
  • 打开以编辑作为包一部分的.properties文件,并在编辑器的下边缘单击 资源包选项卡:
    IntelliJ IDEA调用资源包的属性编辑器

编辑属性键和值

要编辑属性键,请按照下列常规步骤操作:

  1. 打开以编辑所需的*.properties文件。
  2. 根据需要添加、更改或删除密钥,更改反映在资源包编辑器中。

要更改值,请使用资源包编辑器,使您能够一次编辑整组属性文件。IntelliJ IDEA 负责在包的每个文件中创建相应的记录。

编辑属性值

  1. 在资源包编辑器的左窗格中选择属性键。
  2. 在目标区域设置框架中,根据需要编辑该值。相应的.properties文件将相应地更改。
    IntelliJ IDEA编辑资源包的属性值

使用技巧和窍门

  • 属性缺少值,或其中一个.properties 文件中省略的值被红色突出显示。
  • \uXXXX 格式中的 *.properties 文件的所有转义字符都将显示在资源包编辑器中,作为未转义的 unicode 字符。
    反之亦然,如果在资源包编辑器中输入了非 ASCII 字符,则它将在基础 *.properties 文件中反映为 \uXXXX 格式的相应转义字符。
    例如,如果 *.properties 文件包含属性值
    Was ich nicht wei\u00df, macht mich nicht hei\u00df 
    那么资源包编辑器将显示
    Was ich nicht weiß, macht mich nicht heiß
    资源包编辑器本身不执行任何转换。要在属性文件中正确解析转义序列,请在 "设置/首选项" 对话框的 "文件编码" 页中选中 "透明 native-to-ascii 转换" 复选框。
  • 可以使用大写和小写十六进制符号(例如 '\u00E3' 与  '\u00e3')来对非 ASCII 码符号进行编码。默认情况下使用大写字母。要使用小写,请将bin/idea.properties 文件中的 'idea.native2ascii.lowercase' 属性设置为 true。

资源文件

资源文件包括属性文件、图像、DTD 和 XML 文件。这些文件位于应用程序的 Classpath 下,通常通过以下方法从 Classpath 中加载:

  • ResourceBundle.getBundle() 用于属性文件和资源包
  • loadResourceAsStream() 用于图标和其他文件

在构建应用程序时,IntelliJ IDEA 将所有资源复制到输出目录中,相对于源路径保存资源的目录结构。默认情况下,下列的文件类型被识别为资源文件:

  • .properties
  • .xml
  • .html
  • .dtd
  • .tld
  • .gif
  • .png
  • .jpeg
  • .jpg

可识别的资源文件的模式被表示为正则表达式并可在编译器对话框中进行配置。

使用资源模式设置,您可以添加自己的文件扩展名,并创建自定义的资源列表。