通过 Java,您无需转换 Java 源代码文件中的字符串并为每种语言创建新的可执行文件,而是使用资源束通过属性文件来重定向字符串。有关外部化字符串的更多信息,请参阅外部化字符串。
Java 可视编辑器支持显示外部化字符串。通常它们将显示资源文件中存储的实际值。
但是,如果在外部化字符串之后更改了可视编辑器中某个组件的文本属性,那么文本属性将覆盖外部化,而不是更改资源文件。要反映对资源文件的更改,必须关闭可视编辑器然后再次打开。在选择要外部化的字符串时须仔细。 缺省情况下,将外部化所有字符串,包含那些未在 GUI 上显示的字符串(例如,字体名称)。
在外部化字符串之前,字符串将以文字的形式显示在源代码中。例如:
ivjJFrame.setTitle("Hello World");
使用“外部化字符串”向导之后,将在从资源束检索值的文件中通过静态查询来检索字符串。
ivjJFrame.setTitle(Messages.getString("Hello_World_1"));
//$NON-NLS-1$
作为 setTitle 方法调用参数的字符串将外部化,但是表示束密钥的字符串不会外部化,因为用户看不到该字符串。为了表示此字符串不是用户可以看到的字符串,从而使“外部化字符串”向导不会尝试从束检索此字符串,注释 //$NON-NLS-1$ 附加到语句中时会带有 1,表示指的是行中出现的第一个字符串。