一个多语言实现方案(Koala1.0.0.0 ,采用Mustang1.0.0.0)
2006-03-14 08:00
435 查看
http://microsheen.cnblogs.com/archive/2005/08/30/225684.html
摘要:目前,面向国际或一些本地的跨国公司的软件和项目越来越多,这些系统往往要求实现多语言显示界面,所以实现多语言方案也是很有必要的。本方案中语言内容和界面采用了Mustang 1.0.0.0的映射机制。
解决问题:
1)界面的多语言显示
2)能够把正常的开发和多语言的工作分开,并行来做。一般来说,多语言的工作量巨大,让开发人员来做并有点可惜。可以把多语言从开发中剥离出来,交给其他的人来做,而不需要修改程序。
1.0.0.0版本说明:
1.方案介绍:采用.net的资源文件作为多语言的信息文件(位于KoalaExample\resource下) 。采用Mustang 1.0.0.0作为界面控件和多语言关键字的映射机制。
2.结构介绍:
1)在Global.asax中初始化资源文件信息,把资源文件加入到Cache中
//得到资源文件的路径
if (_resourcePath == null)
{
_resourcePath = this.Request.PhysicalApplicationPath + Path.DirectorySeparatorChar + "resources" + Path.DirectorySeparatorChar;
_helper = new ResourceHelper(this.Context.Cache);
LanguageManager.Initial(_resourcePath);
_helper.SetCacheDependency(MultiLanguageConfig.DefaultConfig.GetValue(MultiLanguageConfig.Languages), this.Context.Cache);
}
2) 一个页面一个映射文件,内容如下:
<?xml version="1.0" encoding="utf-8" ?>
<mustang-mapping xmlns="urn:mustang-mapping" controlgettertype="Mustang.Parse.WebControlGetter, Mustang">
<object name="Page" type="KoalaExample.QuickStart, KoalaExample">
<property controlid="lblUserID" name="SysUser.UserID" convertertype="Koala.ResourceConverter, Koala" />
<property controlid="lblUserName" name="SysUser.UserName" convertertype="Koala.ResourceConverter, Koala" />
<property controlid="lblLoginID" name="SysUser.LoginID" convertertype="Koala.ResourceConverter, Koala" />
</object>
</mustang-mapping>
映射文件的说明见:http://microsheen.cnblogs.com/archive/2005/08/29/225575.html
3)在页面进行绑定,大概内容如下:
protected void InitialEntity()
{
if (this.CurrentLanguage == Koala.Language.Chinese)
{
this.btnLanguage.Text = "中文";
this.CurrentLanguage = Koala.Language.English;
}
else
{
this.btnLanguage.Text = "English";
this.CurrentLanguage = Koala.Language.Chinese;
}
}
protected void ToUI()
{
this.UIService.BindObjectToUI(this, "Page");
}
部署说明:
1)请保证asp.net帐号对解压后KoalaExample\resource及其子文件夹有完全访问的权限。这里面有多语言的资源包
源码和例子下载: Koala1.0.0.0
摘要:目前,面向国际或一些本地的跨国公司的软件和项目越来越多,这些系统往往要求实现多语言显示界面,所以实现多语言方案也是很有必要的。本方案中语言内容和界面采用了Mustang 1.0.0.0的映射机制。
解决问题:
1)界面的多语言显示
2)能够把正常的开发和多语言的工作分开,并行来做。一般来说,多语言的工作量巨大,让开发人员来做并有点可惜。可以把多语言从开发中剥离出来,交给其他的人来做,而不需要修改程序。
1.0.0.0版本说明:
1.方案介绍:采用.net的资源文件作为多语言的信息文件(位于KoalaExample\resource下) 。采用Mustang 1.0.0.0作为界面控件和多语言关键字的映射机制。
2.结构介绍:
1)在Global.asax中初始化资源文件信息,把资源文件加入到Cache中
//得到资源文件的路径
if (_resourcePath == null)
{
_resourcePath = this.Request.PhysicalApplicationPath + Path.DirectorySeparatorChar + "resources" + Path.DirectorySeparatorChar;
_helper = new ResourceHelper(this.Context.Cache);
LanguageManager.Initial(_resourcePath);
_helper.SetCacheDependency(MultiLanguageConfig.DefaultConfig.GetValue(MultiLanguageConfig.Languages), this.Context.Cache);
}
2) 一个页面一个映射文件,内容如下:
<?xml version="1.0" encoding="utf-8" ?>
<mustang-mapping xmlns="urn:mustang-mapping" controlgettertype="Mustang.Parse.WebControlGetter, Mustang">
<object name="Page" type="KoalaExample.QuickStart, KoalaExample">
<property controlid="lblUserID" name="SysUser.UserID" convertertype="Koala.ResourceConverter, Koala" />
<property controlid="lblUserName" name="SysUser.UserName" convertertype="Koala.ResourceConverter, Koala" />
<property controlid="lblLoginID" name="SysUser.LoginID" convertertype="Koala.ResourceConverter, Koala" />
</object>
</mustang-mapping>
映射文件的说明见:http://microsheen.cnblogs.com/archive/2005/08/29/225575.html
3)在页面进行绑定,大概内容如下:
protected void InitialEntity()
{
if (this.CurrentLanguage == Koala.Language.Chinese)
{
this.btnLanguage.Text = "中文";
this.CurrentLanguage = Koala.Language.English;
}
else
{
this.btnLanguage.Text = "English";
this.CurrentLanguage = Koala.Language.Chinese;
}
}
protected void ToUI()
{
this.UIService.BindObjectToUI(this, "Page");
}
部署说明:
1)请保证asp.net帐号对解压后KoalaExample\resource及其子文件夹有完全访问的权限。这里面有多语言的资源包
源码和例子下载: Koala1.0.0.0
相关文章推荐
- 一个多语言实现方案(Koala1.0.0.0 ,采用Mustang1.0.0.0)
- 搞了一天终于实现了 DataGrid 中的多国语言的问题,采用了中文向其他语言自动翻译的方法,其实不难,主要是想法(本文不涉及这个计算机技术问题,仅以此作为标题)
- 多语言网站实现方案
- Android4.0中添加新语言实现方案(以缅甸语为例)
- Jackson采用编码方案实现属性是否生成在json串中
- 应用开源项目StringResourceTool2 实现.NET多国语言方案
- 多语言网站实现方案
- Java跨语言调用实现方案
- 实现MFC编译时多语言方案
- 多语言网站实现方案
- 多语言网站实现方案
- 采用静态或者全局变量的实现方案(转)
- 一个多语言网站的解放方案(asp+xml)
- Java 跨语言实现方案
- postgresql双机热备、高可用方案(采用pacemaker+corosync实现)
- 一个轻client,多语言支持,去中心化,自己主动负载,可扩展的实时数据写服务的实现方案讨论
- Java跨语言调用实现方案(转)
- 软件系统多语言实现方案(重点介绍VB.net利用微软的国际化支持实现软件系统多语言)
- 网站设计--多语言网站实现方案
- 门户多语言方案-CommunityServer的多语言实现方案