硬编码字符串文本
如果您的源代码包含硬编码字符串文字,您可以启用 Internationalization 代码检测以突出显示它们。 您可以将这些字符串提取到 properties 文件中以进行本地化,或者如果不需要本地化则忽略它们。
启用硬编码字符串文本的高亮显示
打开 设置 对话框 Ctrl+Alt+S ,展开 编辑器 并点击 检查。
请选择所需的配置文件,然后在 Java 下找到节点 国际化。
请启用 硬编码字符串 检查,以在编辑器中突出显示硬编码字符串字面值。
应用更改并关闭对话框。
现在,编辑器将突出显示硬编码的字符串文本,如下图所示:

国际化硬编码字符串对话框
IntelliJ IDEA 提供了一个特殊的意图操作 将硬编码字符串文字进行国际化 ,将字符串文本提取到您的属性文件中。 您可以使用 java.util.ResourceBundle class 或自定义工具类来访问资源束。
条目 | 描述 |
|---|---|
属性文件 | 在此字段中,指定一个现有的 .属性 文件来存储提取的字符串文本。 请手动输入文件路径,或点击 浏览 |
更新资源包中的所有属性文件 | 选中此复选框以更新目标包中的所有 properties 文件。 |
属性键 | 默认情况下,该字段显示建议的键名,基于要提取的字符串值。 保留默认名称或输入所需的名称。 |
属性值 | 默认情况下,此字段显示要提取的字符串的值。 保留默认值,或输入所需的值。 |
资源绑定表达式 | 默认情况下,该字段会显示源代码中资源包声明的资源包表达式。 如果资源包未在源代码中声明,则该字段不会出现。 要定义所需的表达式,请执行以下操作之一:
|
编辑国际化模板 | 点击此链接以打开 编辑文件模板 对话框,您可以在其中更改 I18nized Expression模板,使其指向将用于访问资源 bundle 的自定义实用程序类的方法。 如需更多信息,请参阅 编辑国际化表达式模板。 更改的文件模板是影响所有项目的全局设置。 如果您想恢复默认设置,请打开 文件和代码模板 对话框,在 代码 选项卡中找到 I18nized Expression模板,并点击 重置 按钮 |
预览 | 此只读字段显示应用 意图操作的结果。 |
提取硬编码字符串文本
使用 java.util.ResourceBundle 提取字符串文本
首先,您的项目中必须至少有一个 properties 文件,例如, 我的 .properties 。
在您的源代码中,以如下形式指定将用于存储提取文字的资源包:
private static ResourceBundle <field name> = ResourceBundle.getBundle("<bundle name>");例如:
private static ResourceBundle myBundle = ResourceBundle.getBundle("awesomeBundle");点击突出显示的字符串,按 Alt+Enter 并选择 。 在此示例中,我们使用了创建新 Java 项目时包含的可选示例代码 IntelliJ IDEA。

在 Internationalize Harcoded String对话框中,指定一个现有的目标属性文件、属性的键和值以及资源包表达式。
如果
ResourceBundle字段已在源代码中声明,IntelliJ IDEA会默认建议其名称。 如果您还没有在源代码中声明此字段,则此字段不会出现。 您必须在源代码中包含 ResourceBundle 类型的表达式。
点击 OK。 用硬编码字符串文字的行被替换。
如果资源包已经在源代码中声明:
System.out.println(myBundle.getString("hello.world"));如果在对话框中已定义资源包:
System.out.println(ResourceBundle.getBundle("awesomeBundle").getString("hello.world"));
编辑国际化表达式模板
如果您想使用自定义实用程序类访问资源包,您可以通过设置或 Internationalize Harcoded String 对话框定义 I18nized Expression 模板以指向自定义实用程序类的方法。
打开 设置 对话框 Ctrl+Alt+S ,然后前往 。 在此您可以编辑此模板。

在 国际化硬编码字符串对话框中,选择 编辑国际化模板。 在 文件模板 对话框中,将 本地化表达式指向自定义工具类的方法。

忽略硬编码的字符串文本
如果您想忽略硬编码字符串文本,请使用 不需要国际化 注解。
按 Alt+Enter 显示字符串字面量的意图操作。
选择操作列表中的 将字段 'out' 注释为 '@NonNls'。
请指定您要存储 annotations.xml 文件的位置。