所有 ComponentOne Editor for WinForms 中用户可见的字符串都支持本地化。Editor for WinForms 本地化基于 .NET Windows forms 标准本地化原理,通过 Localizable 属性实现。在Windows Forms程序中, 你可以为 C1Editor创建后缀为.resx 的resource 文件。当应用程序运行时,你可以切换当前的资源文件及语言。应用程序中所有用到 C1Editor 的 DLL 都必须使用相同的资源。
本地化对话框
本地化 C1Editor 控件, 选择C1Editor Localize 项。
如图所示:
点击Localize 打开本地化对话框:
本地化对话框允许你本地化ComponentOne Editor for WinForms程序集(C1.Win.C1Editor.2.dll)同时自动在工程中保存资源文件。
资源对话框的左侧为资源字符串的树形列表,右侧为当前选择项的当前资源信息。资源信息结构如下
列 |
Description |
名称 |
当前资源名称 ID |
默认值 |
默认英文值 |
翻译值 |
目标语言翻译值 |
以下为本地化对话框Toolbar 列表。
本地化对话框工具条
本地化对话框包含如下选项:
Button |
Description |
创建新的本地化资源文件。 |
|
打开现有资源文件。 |
|
保存当前翻译文件。 |
|
另存为当前资源文件,可以选择存储工程位置。 |
|
新增语言。 |
|
从语言列表中删除当前资源文件。 |
|
选择语言。 |
|
Options设置资源对话框的显示方式。 |
创建新的翻译资源
点击Create new translation按钮,开始创建新的ComponentOne 程序集资源文件. 在弹出的对话框中选择将要本地化的程序集。
注意: 程序集必须已经添加到当前项目的引用中。
Open
点击Open按钮打开已有的资源文件。翻译文件将会被存储为.resx 后缀文件。如图所示:
在你创建并且存储翻译文件之后,该对话框中将显示现有资源文件列表以供选择。
Save
点击 Save按钮可以保存当前资源文件。
当资源文件被保存后,工程中会自动创建名为C1LocalizedResources的文件夹 (如果当前工程非 read only),同时资源文件会自动存储在该文件夹下。针对不同的语言,会创建单独的.resx 文件。这些文件在Solution Explorer 窗体中是可见的。.
注意: 如果资源文件只应用于 invariant culture, .resx 文件将不包含语言后缀。
Save As
另存为当前资源文件,可以选择存储工程位置。
添加资源文件
点击Add culture按钮添加新的资源文件。
你可以创建不同的资源文件,同时,在运行时自动切换。点击Add culture按钮,弹出对话框如下,可以选择目标语言:
删除已有 Culture
点击 Delete culture按钮删除当前已有资源文件。如图所示:
选择文件,点击OK删除。
选择资源文件 Culture
点击 Culture下拉列表可以选择和编辑当前资源文件。
设置当前语言
C1Editor控件将根据选择的语言自动显示相应的资源文件。代码如下:
Visual Basic Code
Public Sub New() ' Set desired culture, for example here the French (France) locale. System.Threading.Thread.CurrentThread.CurrentCulture = New System.Globalization.CultureInfo("fr-FR") ' This call is required by the Windows Form Designer. InitializeComponent() ' Add any initialization after the InitializeComponent() call. End Sub
C# Code
public Form1() {// Set desired culture, for example here the French (France) locale. System.Threading.Thread.CurrentThread.CurrentCulture = new System.Globalization.CultureInfo("fr-FR"); // This call is required by the Windows Form Designer. InitializeComponent(); // Add any initialization after the InitializeComponent() call. }
运行时切换资源文件:
创建资源文件后,可以在运行时轻松切换资源文件:
Visual Basic Code
' This will switch to German locale. System.Threading.Thread.CurrentThread.CurrentUICulture = New CultureInfo("de")
C# Code
// This will switch to German locale. System.Threading.Thread.CurrentThread.CurrentUICulture = new CultureInfo("de");
总结:
这里总结下本地化步骤:
1.通过 Smart tag/Context menu 打开C1Editor对话框.
2. 点击New Culture’按钮。
3.在 Culture 列表中选择目标语言。
4. 设置自定义字符串名称。
5. 点击 ‘Save As’ 按钮保存本地化字符串。
6. 关闭本地化对话框。
7. 添加更改资源文件后台代码: