CSFrameworkV6旗舰版 - 多语言及国际化
CSFrameworkV6旗舰版 - 多语言及国际化
目录
CSFramework国际化多语言原理
- 每条语言资料对应一个唯一的对象标识(ObjectID);
- 通过枚举窗体的组件成员名称,读取.Text属性值,并自动生成语言资料;
- 用户维护LanData资料,界面显示修改后的内容;
- 对象类型(ObjectType)分为Message(消息)和Control(控件);
多语言效果
中文简体 zh-chs
英文 - en
切换多语言
登录界面
主界面
开发环节 & 注意事项
重写override SetLanguage方法
若界面有特殊的多语言信息处理,需要重写SetLanguage方法,参考主窗体frmMain。
C# 全选
public override void SetLanguage()
{
//设置当前窗体的多语言
}
固定的消息提示
C# 全选
Msg.ShowInformation(LanLib.Get("您好,系统初始化将清除所有数据..."));
C# 全选
splash.UpdateMessage(LanLib.Get("正在初始化主窗体..."));
带参数的语言资料
C# 全选
private void ShowMessageText(int count)
{
var msg = String.Format(LanLib.Get("您有{0}条未读消息"), count);
btnMessagePrompt.Caption = msg;
}
自由组合内容
C# 全选
lblCopyRights.Caption = $"Copyrights 2006-{DateTime.Today.Year},{LanLib.Get("C/S框架网版权所有")}";
扩展按钮的多语言设置
C# 全选
public override void SetLanguage()
{
base.SetLanguage();
this.Buttons.GetButtonByName("btnExportFile").Caption = LanLib.Get("导出模版文件");
this.Buttons.GetButtonByName("btnImportFile").Caption = LanLib.Get("导入模版数据");
}
界面设计
Label标签设置
如果界面没有使用LayoutControl自适应控件,需要对Label标签预留宽度,然后设置右对齐。
使用LayoutControl自适应控件
如果使用LayoutControl自适应控件,不需要对Label标签预留宽度。
相关文章
CSFramework开发框架使用.NET Reactor加壳软件导致多语言失效
https://www.cscode.net/archive/newdoc/611633435344901.html
版权声明:本文为开发框架文库发布内容,转载请附上原文出处连接
NewDoc C/S框架网