如何资源本地化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显示存储在数据库中的图片,图片过大 参数无效等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)