如何资源本地化DevExpress

如何资源本地化DevExpress,第1张

如何资源本地化DevExpress

使应用程序支持各种语言本地化,可以使你的应用程序支持面对各个国家用户的版本的语言。

下面以XtraEditors 为例子进行资源本地化。

你需要哪种语言版本的应用程序,你就需要建立哪种语言的assembly,其中包含该语言的本地资源。

SDK提供了本地化工具Winresexe。工具的具体使用,参见SDK帮助。

默认的情况下,XtraEditors类库仅支持英语。要把编辑器的用户界面转为其他的语言,你需要手工进行。

其中XtraEditors使用的字符都是存储在LocalizationResresx 文件中的。为建立本地资源文件,你需要

以下步骤:

复制 LocalizationResresx 文件到你的应用程序目录,并将其改名,名字遵循资源命名的规则

(例如,德语"LocalizationResderesx")文件LocalizationResresx 的路径:

Developer Express IncNET\XtraEditors\Sources\DevExpressXtraEditors

\DevExpressXtraEditors\LocalizationResresx

注意:至于命名规则在类CultureInfo 中详细列出。

附:

zh-HK 0x0C04 中文 - 香港特别行政区

zh-MO 0x1404 中文 - 澳门特别行政区

zh-CN 0x0804 中文 - 中国

zh-CHS 0x0004 中文(简体)

zh-SG 0x1004 中文 - 新加坡

zh-TW 0x0404 中文 - 台湾

zh-CHT 0x7C04 中文(繁体)

修改资源文件。这意味着将原字符串转为目标字符串。这步工作可以用Visual Studio NET很好的实现

用Resgenexe工具将resx文件转换为resources文件。例如,用下述命令建立包含德语resources文件:

resgen LocalizationResderesx LocalizationResderesources

用AL或者其他SDK工具建立一个DLL,并将resources文件嵌入其中。使用如下命令:

al /out:DevExpressXtraEditorsResourcesDll /v:0000 /culture:de

/embed:LocalizationResderesources,DevExpressXtraEditorsLocalizationResderesources

/keyfile:strongkeysnk

注意:1关于al工具的使用可以查看SDK帮助。

2这里需要的strongkeysnk应该是和DevExpress~使用的相同。如果有必要的话,你可以将

resources文件发送到Support@DevExpresscom ,让公司来编译。

下列代码可以设置应用程序的本地运行语言环境:

static void Main()

{

SystemThreadingThreadCurrentThreadCurrentUICulture = new SystemGlobalizationCultureInfo("de");

ApplicationRun(new Form1());

}

应用到本地对象:

XtraEditors 的运行时用户界面可以加载Localizer对象。为此,你需要首先建立一个Localizer的子类,

接着,重写LocalizerGetLocalizedString方法,这样就可以改变编辑界面的标题了。最后需要的就是将

Localizer实例化,并赋值给LocalizerActive属性,以使其生效。

// creating the Localizer descendant

public class GermanLocalizer : Localizer {

// overriding the GetLocalizedString method

public override string GetLocalizedString(StringId id){

switch(id) {

//

case StringIdPictureEditMenuCut: return "Ausschneiden";

case StringIdPictureEditMenuCopy: return "Kopieren";

case StringIdPictureEditMenuPaste: return "Einfugen";

case StringIdPictureEditMenuDelete: return "Loschen";

case StringIdPictureEditMenuLoad: return "Laden";

case StringIdPictureEditMenuSave: return "Speichern";

//

}

return "";

}

}

using DevExpressXtraEditorsControls;

private void Form1_Load(object sender, SystemEventArgs e) {

GermanLocalizer gLocalizer = new GermanLocalizer();

LocalizerActive = gLocalizer;

}

如果数据源中只包含的链接, 要实现该功能,可通过非绑定列的方式来实现。具体实现方法如下: 1 创建了一个非绑定列并设置其相应的属性,属性设置如下: FieldName设为 Image (该字段名必须是唯一的) UnboundType设为 UnboundColumnTypeObject ColumnEdit设为RepositoryItemPictureEdit类的实例(该 *** 作PictureEdit 为该列的内置编辑器) 2 处理View的CustomUnboundColumnData事件,用于为非绑定列填充数据。在该事件中需加载,将其存放在一个hashtable中,然后再将其提供给对应的单元格。 关键代码: //获取文件路径 string GetFileName(string color) { if(color == null || color == stringEmpty) return stringEmpty; return color + "jpg"; } //处理CustomUnboundColumnData事件,为非绑定列填充数据 private void gridView1_CustomUnboundColumnData(object sender, DevExpressXtraGridViewsBaseCustomColumnDataEventArgs e) { if(eColumnFieldName == "Image" && eIsGetData) { GridView view = sender as GridView; string colorName = (string)((DataRowView)eRow)["Color"]; string fileName = GetFileName(colorName)ToLower(); if(!ImagesContainsKey(fileName)) { Image img = null; try { string filePath = DevExpressUtilsFilesHelperFindingFileName(ApplicationStartupPath, ImageDir + fileName, false); img = ImageFromFile(filePath); } catch { } ImagesAdd(fileName, img); } eValue = Images[fileName]; } } 点击下载示例 本站文章除注明转载外,均为本站原创或翻译

private void pictureEdit1_MouseClick(object sender, MouseEventArgs e)

{

    Point p = eLocation;

 

    Point center;

    centerX = pictureEdit1ClientSizeWidth / 2;

    centerY = pictureEdit1ClientSizeHeight / 2;

   

             

    DevExpressXtraEditorsVScrollBar vScrl = null;

    DevExpressXtraEditorsHScrollBar hScrl = null;

 

    foreach (Control ctrl in pictureEdit1Controls)

    {

       if (ctrl is DevExpressXtraEditorsVScrollBar)

           vScrl = ctrl as DevExpressXtraEditorsVScrollBar;

       if (ctrl is DevExpressXtraEditorsHScrollBar)

           hScrl = ctrl as DevExpressXtraEditorsHScrollBar;

    }

 

     pX += hScrlValue;

     pY += vScrlValue;

 

     int deltaX = pX - centerX;

     int deltaY = pY - centerY;

 

     hScrlValue = deltaX;

     vScrlValue = deltaY;

}

以上就是关于如何资源本地化DevExpress全部的内容,包括:如何资源本地化DevExpress、如何使用 devexpress 里 pivotGridControl 控件 从SQL数据库读取image类型显示图片、devexpress pictureedit显示存储在数据库中的图片,图片过大 参数无效等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/9327313.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-27
下一篇 2023-04-27

发表评论

登录后才能评论

评论列表(0条)

保存