多语言资源文件加载的一种解决方案

来源:网络 责任编辑:栏目编辑 发表时间:2013-07-02 02:40 点击:

IOS上对于字符串,提供能国际化支持,可以用NSLocalizedString来实现国际化,但是对于图片,声音等文件,就需要我们自己来控制了。下面IOS上多种语言资源文件加载的一种解决方案,如果大家有什么更好的想法,欢迎留言告知。
[cpp]
// 
// 
//  ResManager.h 
// 
//  Created by 周海锋 on 12-4-16. 
//  Copyright (c) 2012年 CJLU. All rights reserved. 
// 
 
#import <foundation h="" foundation=""> 
#import <uikit h="" uikit=""> 
 
typedef enum  { 
    Chinese, 
    English, 
    Tradition, 
    }Language; 
 
@interface ResManager : NSObject 

    Language language; 

 
@property (nonatomic,assign) Language language; 
 
+(ResManager *)ShareManager; 
-(UIImage *) LoadImage:(NSString *) img;  
@end 
</uikit></foundation> 

[cpp]
// 
//  ResManager.m 
// 
//  Created by 周海锋 on 12-4-16. 
//  Copyright (c) 2012年 CJLU. All rights reserved. 
// 
 
#import "ResManager.h" 
 
@implementation ResManager 
@synthesize language; 
static ResManager * resManger = nil; 
 
+(ResManager *)ShareManager 

    @synchronized(self) { 
        if (resManger == nil) { 
           resManger = [[self alloc] init]; 
        } 
    } 
    return resManger; 

 
//唯一一次alloc单例,之后均返回nil 
+ (id)allocWithZone:(NSZone *)zone 

    @synchronized(self) { 
        if (resManger == nil) { 
            resManger = [super allocWithZone:zone]; 
            return resManger; 
        } 
    } 
    return nil; 

 
//copy返回单例本身 
- (id)copyWithZone:(NSZone *)zone 

    return self; 

 
-(id) init 

    if (self = [super init]) { 
        language = Chinese; 
    } 
    return self; 

 
-(UIImage *) LoadImage:(NSString *) name 

     
    switch (language) { 
        case Chinese: 
            name = [name stringByAppendingString:@"_c.png"]; 
            break; 
        case English: 
            name = [name stringByAppendingString:@"_e.png"]; 
            break; 
        case Tradition: 
            name = [name stringByAppendingString:@"_t.png"]; 
   &nbs

    相关新闻>>

      发表评论
      请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
      用户名: 验证码:点击我更换图片
      最新评论 更多>>

      推荐热点

      • Lexical or Preprocessor Issue 'xxx.h
      • ios学习笔记(二)xcode 4.3.2下实现基本交互
      • ios版本的helloworld
      • iphone(object-c) 内存管理(3) 有效的内存管理 前半部分
      • ios学习笔记(一)xcode 4.3.2下创建第一个ios项目
      • IOS类似iphone通讯录TableView的完整demo【附源码】
      • UITableView一些方法
      • [iPhone中级]iPhone团购信息客户端的开发 (二)
      • 如何为Iphone应用创建启动界面
      网站首页 - 友情链接 - 网站地图 - TAG标签 - RSS订阅 - 内容搜索
      Copyright © 2008-2015 计算机技术学习交流网. 版权所有

      豫ICP备11007008号-1