项目中国际化语言包的处理

 程序中对中文进行处理,我们尽量避免程序中使用中文,但是我们要在客户端显示中文版、英文版或者其他,改怎么办呢?我们可以把它叫着国际化。
我们将中文抽取到一个txt文件中,按照key、value的命名方式,如key:value。然后讲该文件解析出来,按照key来保存value,程序中
通过key来得到value。这样就可以达到抽取语言包的效果,程序不用编译,直接替换资源文件即可。

如:

package game.managers
{
 import flash.utils.Dictionary;
 /**
  * 资源文件处理
  * @author lxh
  */ 
 public class LanguageManager
 {
  private static var _words:Dictionary = new Dictionary();
  private static var _familyNames:Dictionary = new Dictionary();

 

  public static function setup(data:String):void
  {
   _words = new Dictionary();
   
   var t:String = data;
   data = data.split("\\n").join("\n");
   var list:Array = data.split("\r\n");
   
   for(var i:int = 0; i < list.length; i++){
    var s:String = list[i];
    if(s == "")continue;
    if(s.indexOf("//") == 0)continue;
    var n:int = s.indexOf(":");
    if(n != -1){
     var name:String  = s.substring(0,n);
     var value:String = s.substr(n + 1);
     _words[name]     = value;
    }
   }
  }

  public static function setupToo(data:String):void
  {
   if(!data) return ;
   _familyNames = new Dictionary();
   
   var t:String = data;
   data = data.split("\\n").join("\n");
   var list:Array = data.split("\r\n");
   
   for(var i:int = 0; i < list.length; i++){
    var s:String = list[i];
    if(s == "")continue;
    if(s.indexOf("//") == 0)continue;
    var n:int = s.indexOf(":");
    if(n != -1){
     var name:String = s.substring(0,n);
     var value:String = s.substr(n + 1);
     _familyNames[name] = value;
    }
   }
  }

  public static function getNames(id:String,...args):String
  {
   var s:String = _familyNames[id];
   if(s != null){
    if(args.length > 0){
     for(var i:int = 0; i < args.length; i++){
      s = s.split("{" + (i + 1) + "}").join(args[i]);
     }
    }
    return s;
   }
   return "";
  }
  

  public static function getWord(id:String,...args):String
  {
   var s:String = _words[id];
   if(s != null){
    if(args.length > 0){
     for(var i:int = 0; i < args.length; i++){
      s = s.split("{" + (i + 1) + "}").join(args[i]);
     }
    }
    return s;
   }
   return "";
  }
  
 }
}

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值