国际化NetBeans IDE 5.5中的一个GUI窗体

国际化NetBeans IDE 5.5中的一个GUI窗体

http://www.netbeans.org/kb/55/gui-automatic-i18n.html

 

国际化NetBeans IDE 5.5中的一个GUI窗体

撰稿人:Jana MaleckovaMarek Grummich

以下教材将介绍在NetBeans IDE 5.5中将设置国际化的一些基本步骤。我们将对一个窗体设置国际化,随后对这样设置的窗体进行设计,最后对在几个封装中包含数个窗体的整个项目进行国际化。可通过两种方法将设置国际化。本教材的第一部分介绍自动国际化,第二部分使用一个特殊的向导。

预计持续时间:30分钟

先决条件

本教材假设读者具有以下技术的基本知识或编程经验:

l         NetBeans IDE

本教材介绍:

l         国际化的原理

l         如何安装更新包(Update Pack

l         如何在Design Time中设置自动国际化

l         国际化一个完整项目

l         国际化单个窗体

l         相关主题

国际化的原理

国际化可以使应用程序适应各种语言和地区,不需要技术上的变更或者重新编译。国际化程序可以使诸如状态信息和GUI组件标签等文本元素存储在源代码的外部,并以动态方式将它们找回,而不是在程序中进行编码。

一般将国际化字符串以键/值对的形式存储在属性文件中。键是程序用来调回文本的标识符,值是实际的文本。为每一个用来翻译程序的场所(或语言)创建一个属性,在每个场所中将是相同的仅字符串不同。

IDE为进行以下工作提供工具:

l         在创建GUI窗体或Java程序时插入国际化字符串

l         使用国际化的字符串替换独立文件或文件组中的所有硬编码字符串

更新包的安装

国际化支持是NetBeans IDE 5.5默认安装的一部分,但是如果希望针对某个窗体使用特殊的自动国际化,必须安装Beta更新中心的GUI Builder更新包,这种更新还包含许多GUI Builder的其他功能。http://form.netbeans.org/updates/update55.html上可以找到更多的信息。

一旦NetBeans IDE 5.5运行起来,请遵照以下步骤进行:

1.         在主菜单中,选择“工具”>“更新中心”。

2.         在已知的更新中心表中,点选NetBeans Update Center Beta. (不选其他,以加快连接过程。)

3.         单击“下一步”。IDE将连接至更新中心,并显示所有可用的更新。

4.         在“功能”节点内,选择NetBeans 5.5 GUI Builder更新包,并单击“添加”。“包含安装”列表中将出现所有必要的模块。

5.         单击“下一步”并接受许可。

6.         下载模块之后,单击“下一步”继续。

7.         务必选择安装所有模块(带复选框的左列)。

8.         单击“完成”并重新启动IDE

IDE重新启动后,安装完成,可以开始使用新功能了。

手动安装(二中择一)

也可以手动下载文件,安装更新包。只下载以下链接的文件,然后在“工具” |“更新中心”中选择“安装手动下载的模块”选项。

l         org-jdesktop-layout.nbm

l         org-netbeans-modules-i18n.nbm

l         org-netbeans-modules-form.nbm

l         org-netbeans-modules-i18n-form.nbm

l         org-netbeans-modules-properties.nbm

Design Time中国际化一个GUI窗体

在本练习中,我们将打开演示Java应用程序项目,该项目包含一个使用GUI Builder创建的有名的发现对话框。下一步,对FindDialog.java窗体进行自动国际化,为了测试国际化了的GUI窗体,我们将向属性文件添加一个新的场所,并在非默认场所运行窗体。

打开示例项目

1.         下载InternationlizeDemo.zip 项目,并将其解压在计算机的某个位置上。

2.         选择“文件”>“打开项目”(Ctrl-Shit-O),选择在上一步中创建的InternationalizeDemo文件夹,然后单击“打开”。

3.         展开“源封装”>“演示”并双击FindDialog.java。在GUI Builder中打开样本窗体。

 

要想查看如何创建该GUI窗体的演示,请单击“查看演示”。

打开自动国际化

1.         在“检查器窗口”中选择根节点(名为FindDialog窗体)。

 

 

2.         在“属性”窗口中,选择“自动国际化开”属性复选框。

 

 

设定复选框时,IDE在“演示”封装中创建Bundle.properties文件,就像在“属性绑定文件”(Properties Bundle File)属性中设置的一样。如果需要将该文件放在不同的位置,可以调用“定制编辑器()”并选择一个位置或者直接在属性的文本字段中直接键入路径。

 

 

3.         在“项目”窗口中,双击“项目窗口”中的“绑定”(Bundle)节点,或者右键单击节点并选择“编辑”。
在“源编辑器”中打开属性文件。可以发现,生成了针对FindDialog.java窗体的所有合适的“键”和“值”。(每个键的名称来自窗体名称和组件“变量”名称。)例如,FindDialog.jLabel1.text键是为窗体文件FindDialog中变量名为jLabel1的组件而生成的。本例中,jLabel1值代表组件的“文本”属性。

国际化独立GUI组件

我们现在将使用GUI构建器为窗体中JLabelsJbuttons输入国际化字符串。

1.       在“设计区域”中选择合适的GUI组件(例如:jLabel1)。

2.       在“属性”窗口中,为“文本”属性单击省略符号()按钮。注意,还可以国际化其他拥有“字符串”值的属性,例如:MnemonicAccessible Name Accessible Descriptor,以及ToolTip

3.       将属性编辑器切换至资源绑定模式。检查“绑定名称”字段是否设置成demo.Bundle,“键”字段包含字符串FindDialog.jLabel1.text

4.       在“值”字段中键入Find What:

5.       单击“确定”。

针对所有组件重复上述步骤,窗体如下图所示:

 

 

要查看国际化jLabel1演示,单击“查看演示”

注意:可以用更简单和更快速的方法执行第1-5步:在设计视窗中双击jLabel1,将文本从jLabel1改成Find What:然后按下“回车”。结果与以上步骤给出的相同。

添加一个新的场所

1.       在“检查器窗口”(FindDialog窗体节点)中选择根节点。

2.       在“属性”窗口中,为“设计场所”属性单击省略符号()按钮。

3.       在“国家代码”字段中输入ES

4.       单击“确定”。

在“绑定属性”节点的下面出现新场所,如下所示:

 

 

5.       在“项目”窗口中,右键单击Bundle.properties,并选择“打开”。

6.       将表中相应列中的独立信息翻译成新的语言(例如:西班牙语),如下所示:

 

 

7.       在“检查器窗口”中右键单击根节点,然后选择“重新装入窗体”(或者按下Ctrl-R)。重新打开窗体,在设计中载入“西班牙语”场所,如下所示:

 

 

在该“Flash演示中”可见到这些功能的运行(虽然不能与本教材完全相同)。

测试一个非默认的场所

1.       在“项目”窗口中,右键单击InternationalizeDemo项目,并选择“属性”。

2.       在“类别”窗口中,选择“运行”节点。

3.       在“VM选项”中输入-Duser.language=es -Duser.country=ES

 

 

4.       单击“确定”。

5.       右键单击InternationalizeDemo项目,并选择“运行项目”

IDE在西班牙语场所运行FindDialog对话。

国际化一个完整项目

一般情况下,在默认场所中我们拥有几个文件,需要对它们进行修改,以便将它们翻译成其他语言。在这种任务中,“国际化向导”是一种完美的工具,因为它能够一次国际化多个文件。我们将在“GUI窗体”示例项目中展示这一功能,该项目包含在GUI Building Tutorial中创建的窗体。

创建一个示例项目

1.       选择“文件”>“新项目”,或者单击IDE工具栏中的“新项目”图标。

2.       在“类别”窗口中,选择“示例”>“常规”节点,并且在“项目”窗口中选择“GUI窗体示例”。单击“下一步”。

3.       在“项目名称”字段中输入GUIFormExamples,然后指定项目的位置(例如:/space/projects)。

4.       务必选择“设置为主项目”复选框。

5.       单击“完成”。

 

 

准备属性文件

1.       选择“文件”>“新项目”,或者单击IDE工具栏中的“新文件”图标。

2.       在“类别”窗口中,选择“其他”节点,在“文件类型”窗口中选择“属性文件”。单击“下一步”。

3.       在“文件名称”字段中输入ContactEditor,将src/examples文件夹指定为文件位置。

4.       单击“完成”。

IDE创建ContactEditor.properties文件,并在“源编辑器”中打开 ContactEditor(默认语言) 文件。

重复以上步骤创建另一个Antenna.properties文件。

 

调用国际化向导

1.       在“项目”窗口中,右键单击Source Packages节点,并选择“工具”>“国际化”>“国际化向导”。

2.       为了进行展示,选择Find.java,并单击“取消源”按钮。

3.       单击“下一步”。

4.       检查“国际化”向导是否提供了正确的属性文件examples.Antenna examples.ContactEditor。如果不是,使用“选择资源”按钮来选择正确的属性文件。

 

 

 

 

 

 

 

 

 

 

 

 

 


 

5.       单击“下一步”。

6.       在“国际化”向导的最后一步显示所有硬编码的字符串,可以确定它们中哪些来自属性文件(使用复选框)。通过为某个字符串单击省略符号()按钮,可以进一步自定义独立的键、值、注释,以及被替换字符串的格式。

 

 

7.       单击“完成”。

现在完成了源代码的国际化,另一个场所可以是addedtested ,如上所示。

国际化单个窗体

使用I18n功能是国际化一个GUI窗体的最简单方法。但是,如果没有安装更新包,或者还希望国际化不是由“窗体编辑器”生成的代码,使用“国际化”窗口是一种解决办法。(这种功能可用于任何.Java文件,不只是使用“窗体编辑器”创建的文件)下一个例子使用“国际化”窗口,该窗口是默认Netbeans IDE 5.5安装的一个部分。

 

在这个最后的练习中,我们将重新使用“GUI窗体示例”项目,并国际化Find.java窗体,该窗体不包含在以上的练习中。我们将调用“国际化”对话框,来替换该文件中的所有硬编码字符串。最后,我们将了解如何在编写程序时在源代码中插入一个国际化字符串。

 

使用国际化对话框

1.       项目窗口中右键单击Find.java并选择工具>国际化”(Internationalization>国际化”(Internationalize

IDE显示“国际化”对话框,并预填充来自Find.java源代码的第一个硬编码的字符串。

2.       单击“浏览”,选择一个特别的属性文件,或者创建一个新的属性文件(例如:Find.properties)。

3.       可以在必要的时候修改所替换字符串、键、值,或者注释的格式。我们只是保持默认值。

4.       单击“替换”,确认变更,并将光标移向下一个硬编码的字符串。

如果不需要更换硬编码字符串,单击“跳过”按钮

 

要查看国际化对话框的演示,单击“查看演示”

插入单个已国际化的字符串

1.       在“项目”窗口中,右键单击Find.java,并选择“编辑”。

IDE在“源编辑器”中打开Find.java文件。

2.       翻动源代码,找到main方法。

3.       main方法中用粗体加入以下行

 

public static void main(String args[]) {

        System.out.println();

   java.awt.EventQueue.invokeLater(new Runnable() {

            public void run() {

                new Find().setVisible(true);

            }

        });

}

 

4.       按下Ctrl-Shift-J,调出“国际化字符串对话框”。

5.       对于“绑定名称”,单击“新”按钮,选择“源封装”>示例文件夹,然后输入Find作为“绑定”的名称。然后单击“确定”。“绑定名称”字段显示examples.Find

6.       下拉框中键入Start字段中键入Start Find Dialog然后单击确定

 

 

7.       IDE插入一个国际化字符串:

 

public static void main(String args[]) {

        System.out.println(java.util.ResourceBundle.getBundle("examples/Find").getString("Start"));

        java.awt.EventQueue.invokeLater(new Runnable() {

            public void run() {

                new Find().setVisible(true);

            }

        });

}

 

要查看插入国际化字符串演示,单击“查看演示”

 

相关主题

更多信息请查看以下链接:

l         Java GUIs and Project Matisse Learning Trail   使用NetBeans GUI构建器Project Matisse创建Java图形用户界面(GUI)的文章、指南,以及教材的完整清单。

l         GUI Building Tutorial  详细的NetBeans GUI 构建器教材。

l         Matisse GUI Builder FAQ  使用NetBeans GUI构建器有用的提示和技巧集。

 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值