zoukankan      html  css  js  c++  java
  • 一个多语言实现方案(Koala1.0.0.0 ,采用Mustang1.0.0.0)

    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

  • 相关阅读:
    暑假N天乐【比赛篇】 —— 2019牛客暑期多校训练营(第二场)
    莫比乌斯反演入门解析
    暑假N天乐【比赛篇】 —— 2019牛客暑期多校训练营(第一场)
    暑假N天乐 —— 多重+分组背包及变形
    暑假N天乐 —— 完全背包及变形
    暑假N天乐【比赛篇】 —— 牛客假日团队赛6
    暑假N天乐 —— 01背包及变形
    离线线段树 SPOJ
    [Python]数据类型、常量、变量和运算符(未完待续)
    [Python]从哪里开始学习写代码(未完待续)
  • 原文地址:https://www.cnblogs.com/flyfish/p/349537.html
Copyright © 2011-2022 走看看