EPR类企业管理系统

在我们现有系统基础上或全新开发,提供定制服务
为您的企业高效快速实施ERP,WMS,MES,CRM管理系统
全面管控物料仓库、销售业务、采购业务、仓库业务
生产过程、质量检验、组织架构、业务报表


定制
QQ:460-3528

开发
QQ群:3360-90194

源码
微信:136-3650-3721

本地化(汉化)基础

eXpressApp框架提供本地化您的WinForms,ASP.NET和移动应用程序的简单方法。UI中的所有字符串都是从“应用程序模型”中读取的。应用程序模型中的某些属性是可本地化的,即,根据其语言,它们可以具有不同的值。例如,通常任何应用程序模型节点的Caption属性都是可本地化的。在本主题中,您将学习如何使用这些属性来本地化应用程序。若要查看如何将WinForms和ASP.NET应用程序本地化,请参阅XAF随附的FeatureCenter演示中的“本地化”部分。该演示位于%PUBLIC%\ Documents \ DevExpress演示19.2中\ Components \ eXpressApp Framework \ FeatureCenter文件夹默认情况下。该MainDemo,位于%PUBLIC%\文件\ DevExpress的演示19.2 \组件\ eXpressApp框架\ MainDemo的默认文件夹,演示了移动应用程序如何进行本地化。

本地化的UI元素

与数据表示和功能有关的所有UI元素都可以本地化:查看项目标题, 列表查看列标题,业务对象标题,操作标题和操作项目标题,等等。为此,应用程序模型的适当节点具有可本地化的标题属性。

此外,UI元素(例如消息,异常,按钮标题,表单标题等)也可以进行本地化。为此,应用程序模型具有特殊的本地化节点。该节点的子节点代表列出的元素的组。每个组项目都有可以本地化的Value属性。

如果使用新属性扩展应用程序模型,则可以指定要本地化的属性。请参阅“应用程序模型结构”主题以了解如何执行此操作。您还可以通过“本地化”节点本地化自定义字符串常量。请参阅“如何:本地化自定义字符串常量”主题以了解如何。

一般信息

要本地化用户界面,请使用“模型编辑器”。在那里,您将在“模型编辑器”工具栏上找到“语言”组合框。

本地化工具栏

默认情况下,下拉列表中包含两个选项:(默认语言)语言管理器...。该(默认语言)选项对应的默认语言(英语),而不是任何国家/地区。要添加更多语言选项,请选择“语言管理器...”。在调用的对话框中,添加所需的语言。

Tutorial_UIC_Lesson11_0

注意

您可以使用特定的语言(例如“ fr-FR”),而不要使用中性的语言(例如“ fr”)。推荐使用特定的语言,因为格式选项(例如,货币)对于说相同语言的文化(例如,法国,比利时和卢森堡)可能会有所不同。有关详细信息,请参见文化特定的格式设置主题。

重新启动Visual Studio,然后使用工具栏中的“语言”组合框选择所需的语言。

Tutorial_UIC_Lesson11_0_1

您可以根据需要设置多种语言。特定语言的所有更改都保存到相应的Model.DesignedDiffs.Localization。<语言代码> .xafmlModel <语言代码> .xafml_文件中。这些文件类似于Model.DesignedDiffs.xafmlModel.xafml文件,它们以默认语言(英语)存储在“应用程序模型”中所做的更改。存储在Model.DesignedDiffs.Localization。<语言代码> .xafmlModel <语言代码中的更改> .xafml_文件也将叠加在先前的模型层上。要查看这些更改,请右键单击这些文件之一,然后选择“查看代码”。有关具有更改和应用程序模型层的文件的信息,请参阅“应用程序模型基础”主题。

请参阅“如何:本地化XAF应用程序”主题,以了解有关应用程序本地化过程的更多信息。

指定应用程序语言的方法

在应用模型中

要指定应用程序运行所使用的语言,请调用模型编辑器,导航到“应用程序”节点,并为IModelApplication.PreferredLanguage属性设置所需的语言。以下选项可用。

  • (默认语言)

    不会考虑生成的Model.DesignedDiffs <语言代码> .xafml_和Model <语言代码> .xafml_文件。所有可本地化的元素都将设置为在Model.DesignedDiffs.xafmlModel.xafml文件中指定的值。

  • (用户语言)

    来自Model.DesignedDiffs <语言代码> .xafml_和模型<语言代码> .xafml_文件的值将叠加在具有默认语言(Model.DesignedDiffs.xafmlModel.xafml)的文件的值上。在Windows Forms和Mobile应用程序中,<语言代码>来自操作系统设置。在ASP.NET应用程序中,<语言代码>由浏览器首选项确定。如果没有适当的Model.DesignedDiffs <语言代码> .xafml_和Model <语言代码> .xafml_文件,将仅应用默认值。

  • 某些语言

    来自Model.DesignedDiffs <语言代码> .xafml_和模型<语言代码> .xafml_文件中与指定语言相对应的值将被叠加。

在代码中

如果需要根据条件设置首选语言,请处理XafApplication.CustomizeLanguage事件。请注意,您无法在运行时通过应用程序模型更改在此事件处理程序中设置的语言。

本地化规则

构建UI时,系统使用适当的特定于语言的xafml文件。例如,如果必须在应用程序中使用德语,则系统使用Model_de.xafml xafml文件,其中属性设置为德语值。但是,在特定于语言的xafml文件中可能找不到某些值。如果在将应用程序本地化为所需语言时省略了属性,则可能会发生这种情况。在这种情况下,有两个用于获取值的规则。

  • 如果未从另一个属性计算未找到其本地化值的属性,则其值将从默认语言的xafml文件中获取。

    LocalizationForTypicalAttributes

  • 如果未从其他属性计算出其本地化值的属性,则采用源属性的本地化值。但是,如果找不到源属性的本地化值,则使用默认语言(下图中的虚线箭头)从xafml文件中获取计算出的属性值。

    LocalizationForCalculatedAttributes

可以从以下来源检索支持的语言列表:

  1. 配置文件的appSettings部分中的Languages键:

    <configuration>
      <appSettings>
        <!-- ... -->
        <add key="Languages" value="en;de;fr" />
        <!-- ... -->
      </appSettings>
      <!-- ... -->
    <configuration>
    

    该键的值包含可用的语言代码,以分号分隔。

  2. 与当前项目/应用程序的差异文件名。

    语言特定模型

当将模型编辑器作为Visual Studio设计器调用时,仅第二个源可用。在运行时,将这些源合并在一起。因此,如果某种语言没有差异,但是在配置文件中添加了该语言,则可以将该语言指定为首选语言,并且将在UI中使用存储在相应附属程序集中的值。

注意

若要从附属程序集中加载本地化的属性值,必须重新启动Visual Studio或正在运行的应用程序。添加语言后,但附属程序集不可用时,可以在调试时获取System.IO.FileNotFoundException异常。这些异常在内部正确处理,不会在运行时导致应用程序崩溃。要自动跳过这些异常,请单击“调试” | “调试”。Visual Studio菜单中的“例外...”项,然后取消选中“公共语言运行时例外” |“例外”。System.IO

相关文章

转载保留此链接,注明出处