詳細完成DevExpress社コントロール(Webフォーム)リプリント

書かれたように悪い良い思い出。次のレコード、そこにいるので見ることができるようにする必要があります。

すべての開発者Expressの.NET製品は、ボタンのプロパティとしてローカライズされたリソースは、属性が制御し、メニュー項目を記述し、間違った情報を確認し、その上、これらのリソースのすべての文字列を簡単に様々な言語に翻訳することができました。

以下の絵を見て前と後に話すこと:

前に言えば

後にいえば

 

上記を達成するためにどのようにそれを終え?デベロッパーは、3つの一般形で仕上がっ結論:1はすでに良いパッケージを終えたリソースを使用することで、ローカルオブジェクトクラスを使用することで、コードを終え、バンドルとの組み合わせでコードがあります。のは、これら3例と、それぞれの長所と短所の実施に関する詳細な説明をしてみましょう。

まず、リソースパッケージの使用が終了します

まず、リソースのパッケージを使用する方法を終了

まず、あなたは(リソースキットホイ中国は科学技術、ダウンロードリンクアドレスですが提供する既存のリソースパックをダウンロードする必要がwww.devexpress.com/kb=A421)zh-、必要なリソースのZH-CHS中国語(簡体字)終了CN中国(中国語)、実行ディレクトリにコピーZH-TW中国語(台湾)。使用CurrentThread.CurrentUICultureは、リソースバンドルをロードします。次のように参照するコードです。

コード

1static void Main()
2{
3 System.Threading.Thread.CurrentThread.CurrentUICulture = new System.Globalization.CultureInfo("zh-CHS");
4 Application.Run(new Form1());
5}
6

第二に、どのようにリソースキットを変更します

devが同じ厳密な名前のキーコンポーネントファイルStrongKey.snk持つリソースバンドルを持っています。あなたは、リソースファイルをコンパイルしたい場合は、限り、あなたは完全なコンポーネントのソースコードを持っているように、自分のStrongKey.snkを取得し、厳密な名前のキーファイルを再割り当て、それを行うことができます。具体的な実装は、MSDNライブラリで見つけることができます。

1、インストールStrongKey.snkコピーソースコードディレクトリから、「プログラムファイル」開発者Expressの.NET vX.Y「ソース」DevExpress.Key「現在のリソースのパッケージDevExpress.Keyディレクトリに移動します。(VX.Y現在のバージョンのインストール)

2、下記の方法によれば、もちろん、あなたがソースコードを購入した場合も記載されているクラスのローカリゼーションローカライズメソッド内のソースコードを表示することができ、ローカライズの性質を調べるために終了する変数リソースパックLocalization.slnプロジェクトを開きますあなたは、ローカライズを実現する必要があります。

3、DevExpress.DLLクリップファイル内のリソースファイルは、対応するDLLを再生成します。

注意:使用して簡単に既存のリソースのローカライズパッケージを使用するだけでなく、最も一般的なの使用が、現在は不完全な仕上げのリソースは、彼らが資源パッケージを変更する傾向があります。しかし、それは彼らの署名であるため、厳密な名前のキーファイルのビジネスは、提供することはできませんStrongKey.snk。あなたは、自分のリソースStrongKey.snk状況が存在しない状態でパッケージを再コンパイルする場合、それだけで再コンパイル支援するための手段の企業が、独自の優れたリソースファイルを変更することができるだろう。

第二に、ローカルオブジェクトのローカライズを使用します

DEVは、各コンポーネントは、対応するまたはライブラリベースの局在性を有しています。実際には、ローカリゼーションプロセスは非常に単純であり、最初のサブクラスは、(以下の表を参照)局在オーバーロードGetLocalizedString方法に対応するベースクラスを継承作成し、この方法は、特定の文字列リソース識別子文字列を返すべきです。第二に、それは静的なActiveプロパティは、クラスに対応するインスタンス化し、クラスを呼び出すことです。

コントロール
クラス

XtraBars
DevExpress.XtraBars.Localization.BarLocalizer

XtraCharts
DevExpress.XtraCharts.Localization.ChartLocalizer

XtraEditorsライブラリ
DevExpress.XtraEditors.Controls.Localizer

XtraGrid
DevExpress.XtraGrid.Localization.GridLocalizer

XtraLayout
DevExpress.XtraLayout.Localization.LayoutLocalizer

XtraNavBar
DevExpress.XtraNavBar.NavBarLocalizer

XtraPrintingライブラリ
DevExpress.XtraPrinting.Localization.PreviewLocalizer

XtraPivotGrid
DevExpress.XtraPivotGrid.Localization.PivotGridLocalizer

XtraReports
DevExpress.XtraReports.Localization.ReportLocalizer

XtraScheduler
DevExpress.XtraScheduler.Localization.SchedulerLocalizer

XtraSpellChecker
DevExpress.XtraSpellChecker.Localization.SpellCheckerLocalizer

XtraTreeList
DevExpress.XtraTreeList.Localization.TreeListLocalizer

XtraVerticalGrid
DevExpress.XtraVerticalGrid.Localization.VGridLocalizer

特定のコードの実装:

まず、上記の完成を達成するために、あなたは、コードに次のコードを追加する必要があります。

コードをいえば

1 public class ChEditLocalizer : Localizer
2 { // 重载 GetLocalizedString 方法
3 public override string GetLocalizedString(StringId id)
4 { switch (id)
5 { // PictureEdit 菜单汉化
6 case StringId.PictureEditMenuCut: return "剪切";
7 case StringId.PictureEditMenuCopy: return "复制";
8 case StringId.PictureEditMenuPaste: return "粘贴";
9 case StringId.PictureEditMenuDelete: return "删除";
10 case StringId.PictureEditMenuLoad: return "加载";
11 case StringId.PictureEditMenuSave: return "保存";
12 // TextEdit 菜单汉化
13 case StringId.TextEditMenuCut: return "剪切";
14 case StringId.TextEditMenuCopy: return "复制";
15 case StringId.TextEditMenuPaste: return "粘贴";
16 case StringId.TextEditMenuDelete: return "删除";
17 case StringId.TextEditMenuSelectAll: return "全选";
18 case StringId.TextEditMenuUndo: return "返回";
19 // DateEdit 控件汉化
20 case StringId.DateEditToday: return "今天";
21 case StringId.DateEditClear: return "取消";
22 }
23 return "";
24 }
25}
26
27 public class MyTreeListLocalizer : TreeListLocalizer
28 {
29 public override string GetLocalizedString(TreeListStringId id)
30 {
31 switch (id)
32 {
33 //TreeList列菜单汉化
34 case TreeListStringId.MenuColumnSortAscending: return "升序";
35 case TreeListStringId.MenuColumnSortDescending: return "升序";
36 case TreeListStringId.MenuColumnBestFit: return "固定列";
37 case TreeListStringId.MenuColumnBestFitAllColumns: return "固定所有列";
38 case TreeListStringId.MenuColumnColumnCustomization: return "自定义列";
39 }
40 return "";
41 }
42 }
43

第二に、あなた一度ChEditLocalizerを作成することができ、MyTreeListLocalizerはアクティブセット、以下の実装への参照に対応します:

Active
private void Form1_Load(object sender, EventArgs e)
{
Localizer.Active = new ChEditLocalizer();
TreeListLocalizer.Active = new MyTreeListLocalizer();
}

コードは、ユーザーが完成中国のコンテンツをカスタマイズすることができますが、GetLocalizedStringメソッドのオーバーロードと、それは、全体のオブジェクトクラスのために大量のコードを終了する必要があります注意してください。あなただけのローカル中国語、英語、他の予約を属性にしたい場合はもちろん、あなたは空のコードを返すことができます。

base.GetLocalizedString(ID)を返すように改変; "" を返します。

コードリソース・バンドルとの組み合わせで、サード

この方法は、両方の局在コードの作業負荷を低減すること、リソース・バンドルを使用して、上記の二つの方法の間に介在し、余分なパケットは、完成を満たすためにリソースに基づいて完成されていない修正が、このようなパケット複製XtraEditorsなどのリソースが残っていています中国とペーストスワップ、それは全体の中国のローカライザークラスのメンバーの場合でなければなりません。特定の実装は、同時にアプリケーションの初期化時に、次のコードを追加してもよいです。

コード

System.Threading.Thread.CurrentThread.CurrentUICulture = new System.Globalization.CultureInfo("zh-CHS");
Localizer.Active = new ChEditLocalizer();

注:あなたがソースコードを購入し、自分のStrongKey.snk厳密な名前のキーファイルを持っている場合は、直接、直接達成するために、対応するソースコードを制御し、ソースコードのDLLファイルを再コンパイル使用して、各戻り値のGetLocalizedStringを変更目的と言えば、それはまた、多くの作業がかかります。

ます。https://my.oschina.net/cookblack/blog/621392で再現

おすすめ

転載: blog.csdn.net/weixin_33797791/article/details/92046067