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

【原创作品, 欢迎转载,转载请在明显处注明! 谢谢。

原文地址:http://blog.youkuaiyun.com/toss156/article/details/7468288

IOS上对于字符串,提供能国际化支持,可以用NSLocalizedString来实现国际化,但是对于图片,声音等文件,就需要我们自己来控制了。下面IOS上多种语言资源文件加载的一种解决方案,如果大家有什么更好的想法,欢迎留言告知。

// // // ResManager.h // // Created by 周海锋 on 12-4-16. // Copyright (c) 2012年 CJLU. All rights reserved. // #import <foundation foundation="" h=""> #import <uikit uikit="" h=""> 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>
// // 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"]; break; default: break; } UIImage *image = [UIImage imageNamed:name]; return image; } @end
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值