Devexpress(DXperience) 10.1.6 我有自己简单的方式来汉化

汉化嘛,照说已经有源代码了,汉化是比较简单的事情,不过如果直接修改源代码的话,下次再升级可能会不太好搞,所以一般情况下我不喜欢乱改源代码,而且还有更好的方式汉化。


我是写winform的,插入的控件也不是特别多,好像需要汉化的只有显示的XtraMessageBox.Show下面的“是”“否”“确定”“取消”什么的这些东东需要汉化了。

我相信大家一看到下面这个重写的函数应该就明白差不多了,我只把我需要的几个按钮给替换成中文就好了。

  1  using  DevExpress.XtraEditors.Controls;
  2  namespace  LocalizationCHS
  3  {
  4       public   class  DevExpressXtraEditorsLocalizationCHS : Localizer
  5      {
  6           public   override   string  GetLocalizedString(StringId id)
  7          {
  8               switch  (id)
  9              {
 10                   case  StringId.None:  return   "" ;
 11                   case  StringId.CaptionError:  return   " 错误 " ;
 12                   case  StringId.InvalidValueText:  return   " 无效数值 " ;
 13                   case  StringId.CheckChecked:  return   " 已选 " ;
 14                   case  StringId.CheckUnchecked:  return   " 未选 " ;
 15                   case  StringId.CheckIndeterminate:  return   " Indeterminate " ;
 16                   case  StringId.DateEditToday:  return   " 今天 " ;
 17                   case  StringId.DateEditClear:  return   " 清除 " ;
 18                   case  StringId.OK:  return   " 确定 " ;
 19                   case  StringId.Cancel:  return   " 取消 " ;
 20                   case  StringId.NavigatorFirstButtonHint:  return   " First " ;
 21                   case  StringId.NavigatorPreviousButtonHint:  return   " Previous " ;
 22                   case  StringId.NavigatorPreviousPageButtonHint:  return   " Previous Page " ;
 23                   case  StringId.NavigatorNextButtonHint:  return   " Next " ;
 24                   case  StringId.NavigatorNextPageButtonHint:  return   " Next Page " ;
 25                   case  StringId.NavigatorLastButtonHint:  return   " Last " ;
 26                   case  StringId.NavigatorAppendButtonHint:  return   " Append " ;
 27                   case  StringId.NavigatorRemoveButtonHint:  return   " Delete " ;
 28                   case  StringId.NavigatorEditButtonHint:  return   " Edit " ;
 29                   case  StringId.NavigatorEndEditButtonHint:  return   " End Edit " ;
 30                   case  StringId.NavigatorCancelEditButtonHint:  return   " Cancel Edit " ;
 31                   case  StringId.NavigatorTextStringFormat:  return   " Record {0} of {1} " ;
 32                   case  StringId.PictureEditMenuCut:  return   " Cut " ;
 33                   case  StringId.PictureEditMenuCopy:  return   " Copy " ;
 34                   case  StringId.PictureEditMenuPaste:  return   " Paste " ;
 35                   case  StringId.PictureEditMenuDelete:  return   " Delete " ;
 36                   case  StringId.PictureEditMenuLoad:  return   " Load " ;
 37                   case  StringId.PictureEditMenuSave:  return   " Save " ;
 38                   case  StringId.PictureEditOpenFileFilter:  return   " Bitmap Files (*.bmp)|*.bmp| "   +
 39                           " Graphics Interchange Format (*.gif)|*.gif| "   +
 40                           " JPEG File Interchange Format (*.jpg;*.jpeg)|*.jpg;*.jpeg| "   +
 41                           " Icon Files (*.ico)|*.ico| "   +
 42                           " All Picture Files |*.bmp;*.gif;*.jpg;*.jpeg;*.ico;*.png;*.tif| "   +
 43                           " All Files |*.* " ;
 44                   case  StringId.PictureEditSaveFileFilter:  return   " Bitmap Files (*.bmp)|*.bmp| "   +
 45                           " Graphics Interchange Format (*.gif)|*.gif| "   +
 46                           " JPEG File Interchange Format (*.jpg)|*.jpg " ;
 47                   case  StringId.PictureEditOpenFileTitle:  return   " Open " ;
 48                   case  StringId.PictureEditSaveFileTitle:  return   " Save As " ;
 49                   case  StringId.PictureEditOpenFileError:  return   " Wrong picture format " ;
 50                   case  StringId.PictureEditOpenFileErrorCaption:  return   " Open error " ;
 51                   case  StringId.PictureEditCopyImageError:  return   " Could not copy image " ;
 52                   case  StringId.LookUpEditValueIsNull:  return   " [EditValue is null] " ;
 53                   case  StringId.LookUpInvalidEditValueType:  return   " Invalid LookUpEdit EditValue type. " ;
 54                   case  StringId.LookUpColumnDefaultName:  return   " Name " ;
 55                   case  StringId.MaskBoxValidateError:  return   " The entered value is incomplete.  Do you want to correct it?\r\n\r\n "   +
 56                           " Yes - return to the editor and correct the value.\r\n "   +
 57                           " No - leave the value as is.\r\n "   +
 58                           " Cancel - reset to the previous value.\r\n " ;
 59                   case  StringId.UnknownPictureFormat:  return   " Unknown picture format " ;
 60                   case  StringId.DataEmpty:  return   " No image data " ;
 61                   case  StringId.NotValidArrayLength:  return   " Not valid array length. " ;
 62                   case  StringId.ImagePopupEmpty:  return   " (Empty) " ;
 63                   case  StringId.ImagePopupPicture:  return   " (Picture) " ;
 64                   case  StringId.ColorTabCustom:  return   " Custom " ;
 65                   case  StringId.ColorTabWeb:  return   " Web " ;
 66                   case  StringId.ColorTabSystem:  return   " System " ;
 67                   case  StringId.CalcButtonMC:  return   " MC " ;
 68                   case  StringId.CalcButtonMR:  return   " MR " ;
 69                   case  StringId.CalcButtonMS:  return   " MS " ;
 70                   case  StringId.CalcButtonMx:  return   " M+ " ;
 71                   case  StringId.CalcButtonSqrt:  return   " sqrt " ;
 72                   case  StringId.CalcButtonBack:  return   " Back " ;
 73                   case  StringId.CalcButtonCE:  return   " CE " ;
 74                   case  StringId.CalcButtonC:  return   " C " ;
 75                   case  StringId.CalcError:  return   " Calculation Error " ;
 76                   case  StringId.TabHeaderButtonPrev:  return   " Scroll Left " ;
 77                   case  StringId.TabHeaderButtonNext:  return   " Scroll Right " ;
 78                   case  StringId.TabHeaderButtonClose:  return   " 关闭 " ;
 79                   case  StringId.XtraMessageBoxOkButtonText:  return   " 确定 " ;
 80                   case  StringId.XtraMessageBoxCancelButtonText:  return   " 取消 " ;
 81                   case  StringId.XtraMessageBoxYesButtonText:  return   " " ;
 82                   case  StringId.XtraMessageBoxNoButtonText:  return   " " ;
 83                   case  StringId.XtraMessageBoxAbortButtonText:  return   " 终止 " ;
 84                   case  StringId.XtraMessageBoxRetryButtonText:  return   " 重试 " ;
 85                   case  StringId.XtraMessageBoxIgnoreButtonText:  return   " 忽略 " ;
 86                   case  StringId.TextEditMenuUndo:  return   " &Undo " ;
 87                   case  StringId.TextEditMenuCut:  return   " Cu&t " ;
 88                   case  StringId.TextEditMenuCopy:  return   " &Copy " ;
 89                   case  StringId.TextEditMenuPaste:  return   " &Paste " ;
 90                   case  StringId.TextEditMenuDelete:  return   " &Delete " ;
 91                   case  StringId.TextEditMenuSelectAll:  return   " Select &All " ;
 92                   case  StringId.FilterShowAll:  return   " (Select All) " ;
 93                   case  StringId.FilterGroupAnd:  return   " And " ;
 94                   case  StringId.FilterGroupNotAnd:  return   " Not And " ;
 95                   case  StringId.FilterGroupNotOr:  return   " Not Or " ;
 96                   case  StringId.FilterGroupOr:  return   " Or " ;
 97                   case  StringId.FilterClauseAnyOf:  return   " Is any of " ;
 98                   case  StringId.FilterClauseBeginsWith:  return   " Begins with " ;
 99                   case  StringId.FilterClauseBetween:  return   " Is between " ;
100                   case  StringId.FilterClauseBetweenAnd:  return   " and " ;
101                   case  StringId.FilterClauseContains:  return   " Contains " ;
102                   case  StringId.FilterClauseEndsWith:  return   " Ends with " ;
103                   case  StringId.FilterClauseEquals:  return   " Equals " ;
104                   case  StringId.FilterClauseGreater:  return   " Is greater than " ;
105                   case  StringId.FilterClauseGreaterOrEqual:  return   " Is greater than or equal to " ;
106                   case  StringId.FilterClauseIsNotNull:  return   " Is not blank " ;
107                   case  StringId.FilterClauseIsNull:  return   " Is blank " ;
108                   case  StringId.FilterClauseLess:  return   " Is less than " ;
109                   case  StringId.FilterClauseLessOrEqual:  return   " Is less than or equal to " ;
110                   case  StringId.FilterClauseLike:  return   " Is like " ;
111                   case  StringId.FilterClauseNoneOf:  return   " Is none of " ;
112                   case  StringId.FilterClauseNotBetween:  return   " Is not between " ;
113                   case  StringId.FilterClauseDoesNotContain:  return   " Does not contain " ;
114                   case  StringId.FilterClauseDoesNotEqual:  return   " Does not equal " ;
115                   case  StringId.FilterClauseNotLike:  return   " Is not like " ;
116                   case  StringId.FilterEmptyEnter:  return   " <enter a value> " ;
117                   case  StringId.FilterEmptyParameter:  return   " <enter a parameter> " ;
118                   case  StringId.FilterMenuAddNewParameter:  return   " Add a new parameter ... " ;
119                   case  StringId.FilterEmptyValue:  return   " <empty> " ;
120                   case  StringId.FilterMenuConditionAdd:  return   " Add Condition " ;
121                   case  StringId.FilterMenuGroupAdd:  return   " Add Group " ;
122                   case  StringId.FilterMenuClearAll:  return   " Clear All " ;
123                   case  StringId.FilterMenuRowRemove:  return   " Remove Group " ;
124                   case  StringId.FilterToolTipNodeAdd:  return   " Adds a new condition to this group " ;
125                   case  StringId.FilterToolTipNodeRemove:  return   " Removes this condition " ;
126                   case  StringId.FilterToolTipNodeAction:  return   " Actions " ;
127                   case  StringId.FilterToolTipValueType:  return   " Compare with a value / another field's value " ;
128                   case  StringId.FilterToolTipElementAdd:  return   " Adds a new item to the list " ;
129                   case  StringId.FilterToolTipKeysAdd:  return   " (Use the Insert or Add key) " ;
130                   case  StringId.FilterToolTipKeysRemove:  return   " (Use the Delete or Subtract key) " ;
131                   case  StringId.ContainerAccessibleEditName:  return   " Editing control " ;
132                   case  StringId.FilterCriteriaToStringGroupOperatorAnd:  return   " And " ;
133                   case  StringId.FilterCriteriaToStringGroupOperatorOr:  return   " Or " ;
134                   case  StringId.FilterCriteriaToStringUnaryOperatorBitwiseNot:  return   " ~ " ;
135                   case  StringId.FilterCriteriaToStringUnaryOperatorIsNull:  return   " Is Null " ;
136                   case  StringId.FilterCriteriaToStringUnaryOperatorMinus:  return   " - " ;
137                   case  StringId.FilterCriteriaToStringUnaryOperatorNot:  return   " Not " ;
138                   case  StringId.FilterCriteriaToStringUnaryOperatorPlus:  return   " + " ;
139                   case  StringId.FilterCriteriaToStringBinaryOperatorBitwiseAnd:  return   " & " ;
140                   case  StringId.FilterCriteriaToStringBinaryOperatorBitwiseOr:  return   " | " ;
141                   case  StringId.FilterCriteriaToStringBinaryOperatorBitwiseXor:  return   " ^ " ;
142                   case  StringId.FilterCriteriaToStringBinaryOperatorDivide:  return   " / " ;
143                   case  StringId.FilterCriteriaToStringBinaryOperatorEqual:  return   " = " ;
144                   case  StringId.FilterCriteriaToStringBinaryOperatorGreater:  return   " > " ;
145                   case  StringId.FilterCriteriaToStringBinaryOperatorGreaterOrEqual:  return   " >= " ;
146                   case  StringId.FilterCriteriaToStringBinaryOperatorLess:  return   " < " ;
147                   case  StringId.FilterCriteriaToStringBinaryOperatorLessOrEqual:  return   " <= " ;
148                   case  StringId.FilterCriteriaToStringBinaryOperatorLike:  return   " Like " ;
149                   case  StringId.FilterCriteriaToStringBinaryOperatorMinus:  return   " - " ;
150                   case  StringId.FilterCriteriaToStringBinaryOperatorModulo:  return   " % " ;
151                   case  StringId.FilterCriteriaToStringBinaryOperatorMultiply:  return   " * " ;
152                   case  StringId.FilterCriteriaToStringBinaryOperatorNotEqual:  return   " <> " ;
153                   case  StringId.FilterCriteriaToStringBinaryOperatorPlus:  return   " + " ;
154                   case  StringId.FilterCriteriaToStringBetween:  return   " Between " ;
155                   case  StringId.FilterCriteriaToStringIn:  return   " In " ;
156                   case  StringId.FilterCriteriaToStringIsNotNull:  return   " Is Not Null " ;
157                   case  StringId.FilterCriteriaToStringNotLike:  return   " Not Like " ;
158                   case  StringId.FilterCriteriaToStringFunctionIif:  return   " Iif " ;
159                   case  StringId.FilterCriteriaToStringFunctionIsNull:  return   " IsNull " ;
160                   case  StringId.FilterCriteriaToStringFunctionLen:  return   " Len " ;
161                   case  StringId.FilterCriteriaToStringFunctionLower:  return   " Lower " ;
162                   case  StringId.FilterCriteriaToStringFunctionNone:  return   " None " ;
163                   case  StringId.FilterCriteriaToStringFunctionSubstring:  return   " Substring " ;
164                   case  StringId.FilterCriteriaToStringFunctionTrim:  return   " Trim " ;
165                   case  StringId.FilterCriteriaToStringFunctionUpper:  return   " Upper " ;
166                   case  StringId.FilterCriteriaToStringFunctionCustom:  return   " Custom " ;
167                   case  StringId.FilterCriteriaToStringFunctionLocalDateTimeThisYear:
168                   case  StringId.FilterCriteriaToStringFunctionLocalDateTimeThisMonth:
169                   case  StringId.FilterCriteriaToStringFunctionLocalDateTimeLastWeek:
170                   case  StringId.FilterCriteriaToStringFunctionLocalDateTimeThisWeek:
171                   case  StringId.FilterCriteriaToStringFunctionLocalDateTimeYesterday:
172                   case  StringId.FilterCriteriaToStringFunctionLocalDateTimeToday:
173                   case  StringId.FilterCriteriaToStringFunctionLocalDateTimeNow:
174                   case  StringId.FilterCriteriaToStringFunctionLocalDateTimeTomorrow:
175                   case  StringId.FilterCriteriaToStringFunctionLocalDateTimeDayAfterTomorrow:
176                   case  StringId.FilterCriteriaToStringFunctionLocalDateTimeNextWeek:
177                   case  StringId.FilterCriteriaToStringFunctionLocalDateTimeTwoWeeksAway:
178                   case  StringId.FilterCriteriaToStringFunctionLocalDateTimeNextMonth:
179                   case  StringId.FilterCriteriaToStringFunctionLocalDateTimeNextYear:
180                       return  id.ToString().Substring( " FilterCriteriaToStringFunctionLocalDateTime " .Length);
181                   case  StringId.FilterCriteriaToStringFunctionIsOutlookIntervalBeyondThisYear:
182                   case  StringId.FilterCriteriaToStringFunctionIsOutlookIntervalLaterThisYear:
183                   case  StringId.FilterCriteriaToStringFunctionIsOutlookIntervalLaterThisMonth:
184                   case  StringId.FilterCriteriaToStringFunctionIsOutlookIntervalNextWeek:
185                   case  StringId.FilterCriteriaToStringFunctionIsOutlookIntervalLaterThisWeek:
186                   case  StringId.FilterCriteriaToStringFunctionIsOutlookIntervalTomorrow:
187                   case  StringId.FilterCriteriaToStringFunctionIsOutlookIntervalToday:
188                   case  StringId.FilterCriteriaToStringFunctionIsOutlookIntervalYesterday:
189                   case  StringId.FilterCriteriaToStringFunctionIsOutlookIntervalEarlierThisWeek:
190                   case  StringId.FilterCriteriaToStringFunctionIsOutlookIntervalLastWeek:
191                   case  StringId.FilterCriteriaToStringFunctionIsOutlookIntervalEarlierThisMonth:
192                   case  StringId.FilterCriteriaToStringFunctionIsOutlookIntervalEarlierThisYear:
193                   case  StringId.FilterCriteriaToStringFunctionIsOutlookIntervalPriorThisYear:
194                       return   " Is "   +  id.ToString().Substring( " FilterCriteriaToStringFunctionIsOutlookInterval " .Length);
195                   case  StringId.FilterCriteriaInvalidExpression:
196                       return   " The specified expression contains invalid symbols (line {0}, character {1}). " ;
197                   case  StringId.FilterCriteriaInvalidExpressionEx:
198                       return   " The specified expression is invalid. " ;
199                   case  StringId.Apply:  return   " Apply " ;
200                   case  StringId.PreviewPanelText:  return   " Preview: " ;
201                   case  StringId.TransparentBackColorNotSupported:  return   " This control does not support transparent background colors " ;
202                   case  StringId.FilterOutlookDateText:
203                       return   " Show all|Show Empty|Filter by a specific date:|Beyond this year|Later this year|Later this month|Next week| "   +
204                              " Later this week|Tomorrow|Today|Yesterday|Earlier this week|Last week|Earlier this month|Earlier this year| "   +
205                              " Prior to this year " ;
206                   case  StringId.FilterDateTextAlt:
207                       return   " Show all|Show Empty|Filter by a specific date:|Beyond|||Next week|Today|This week|This month|Earlier|{0:yyyy}, {0:MMMM} " ;
208                   case  StringId.FilterDateTimeConstantMenuCaption:
209                       return   " DateTime constants " ;
210                   case  StringId.FilterDateTimeOperatorMenuCaption:
211                       return   " DateTime operators " ;
212              }
213               return   "" ;
214          }
215      }
216  }
217   
 

这些代码可以直接放在winform项目里,也可以作为一个单独的DLL存放了。

然后再把这句加入到Winform的Form_load第一行里就可以了 
 DevExpress.XtraEditors.Controls.Localizer.Active = new LocalizationCHS.DevExpressXtraEditorsLocalizationCHS();

 有人可能要问我上面重写的函数是怎么来的。很简单,直接在Devexpress(DXperience) 10.1.6源代码里搜索就有了。找到了COPY一份出来,然后把需要的内容改成中文就好了。

 

我的汉化方式只适合于小量的汉化, 不适合规模太大的。

如果在现成完整的

Devexpress 在设计的时候已经有一套比较完善的多语言方案了。官方也有相关的下载,但我没有用到,以后用到的可能性也不是太大,所以我没有研究,大家可以去官方多看看。

 

 

还有一套现成的比较完整的方案是fosoyo.com提供的。我是花钱买来的,不是我舍不得钱,只是人家自己搞点东西....不能肆意的糟蹋嘛。

转载于:https://www.cnblogs.com/shaoming01/archive/2010/09/09/devexpress_Chinesization.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值