DXperience WinForms如何通过Localizer对象进行资源汉化

作者:控件中国网   出处:控件中国网   2015-11-24 14:55:25   阅读:3

每一个DevExpress控件或者库都提供了一个特别的Localizer类,该类里包含了很多本地化字符串,例如在Data Grid控件中,就包含了GridLocalizer 类,注意:并不是所有字符串都可以通过Localizer类进行汉化,一些控件的汉化包含在了资源里面,这种控件就只有通过创建satellite assemblies,下面的事例就如何对DXperience WinForms Subscription套包中的Grid Control UI 和 the DevExpress Editors Library UI转换为德语做介绍,首先为 GridLocalizer 和 Localizer类创建一个继承,然后再设置字符串的值,具体可以参考下面的代码:
HelpResource.jpg
using DevExpress.XtraEditors.Controls;
using DevExpress.XtraGrid.Localization;
 
public class GermanGridLocalizer : GridLocalizer {
    public override string Language { get { return "Deutsch"; } }
    public override string GetLocalizedString(GridStringId id) {
        string ret = "";
        switch (id) {
            // ...  
            case GridStringId.GridGroupPanelText: return "Ziehen Sie eine Spaltenüberschrift in diesen Bereich, um nach dieser zu gruppieren";
            case GridStringId.MenuColumnClearSorting: return "Sortierung entfernen";
            case GridStringId.MenuGroupPanelHide: return "Gruppierungsfeld ausblenden";
            case GridStringId.MenuColumnRemoveColumn: return "Spalte entfernen";
            case GridStringId.MenuColumnFilterEditor: return "Filter &bearbeiten";
            case GridStringId.MenuColumnFindFilterShow: return "Suche einblenden";
            case GridStringId.MenuColumnAutoFilterRowShow: return "Zeige Auto Filterzeile";
            case GridStringId.MenuColumnSortAscending: return "Aufsteigend sortieren";
            case GridStringId.MenuColumnSortDescending: return "Absteigend sortieren";
            case GridStringId.MenuColumnGroup: return "Gruppieren fur dieses Feld";
            case GridStringId.MenuColumnUnGroup: return "Gruppierung aufheben";
            case GridStringId.MenuColumnColumnCustomization: return "Laufzeit benutzerdefinierte Spalte";
            case GridStringId.MenuColumnBestFit: return "Optimale Breite";
            case GridStringId.MenuColumnFilter: return "Kann gruppieren";
            case GridStringId.MenuColumnClearFilter: return "Filter aufheben";
            case GridStringId.MenuColumnBestFitAllColumns: return "Optimale Breite (alle Spalten)";
            // ...  
            default:
                ret = base.GetLocalizedString(id);
                break;
        }
        return ret;
    }
}
 
public class GermanEditorsLocalizer : Localizer {
   public override string Language { get { return "Deutsch"; }}
   public override string GetLocalizedString(StringId id) {
      switch(id) {
         // ... 
         case StringId.NavigatorTextStringFormat: return "Zeile {0} von {1}";
         case StringId.PictureEditMenuCut: return "Ausschneiden";
         case StringId.PictureEditMenuCopy: return "Kopieren";
         case StringId.PictureEditMenuPaste: return "Einfugen";
         case StringId.PictureEditMenuDelete: return "Loschen";
         case StringId.PictureEditMenuLoad: return "Laden";
         case StringId.PictureEditMenuSave: return "Speichern";
         // ... 
      }
      return "";
   }
}
 
要使用创建好的德语本地化类,还需要在下面的代码中激活:
private void Form1_Load(object sender, System.EventArgs e) {
   GridLocalizer.Active = new GermanGridLocalizer();
   Localizer.Active = new GermanEditorsLocalizer();
}
Copyright© 2006-2015 ComponentCN.com all rights reserved.重庆磐岩科技有限公司(控件中国网) 版权所有 渝ICP备12000264号 法律顾问:元炳律师事务所
客服软件
live chat