【IOS】多语言资源文件加载的一种解决方案
2012-09-24 13:48
351 查看
转载原文地址:/article/1358361.html】
IOS上对于字符串,提供能国际化支持,可以用NSLocalizedString来实现国际化,但是对于图片,声音等文件,就需要我们自己来控制了。下面IOS上多种语言资源文件加载的一种解决方案,如果大家有什么更好的想法,欢迎留言告知。
[cpp] view
plaincopy
//
//
// 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>
[cpp] view
plaincopy
//
// 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
IOS上对于字符串,提供能国际化支持,可以用NSLocalizedString来实现国际化,但是对于图片,声音等文件,就需要我们自己来控制了。下面IOS上多种语言资源文件加载的一种解决方案,如果大家有什么更好的想法,欢迎留言告知。
[cpp] view
plaincopy
//
//
// 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>
[cpp] view
plaincopy
//
// 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
相关文章推荐
- 【IOS】多语言资源文件加载的一种解决方案
- 【IOS】多语言资源文件加载的一种解决方案
- 【IOS】多语言资源文件加载的一种解决方案
- iOS WebView 加载本地资源(图片,文件等)
- 黑莓ECLIPSE3.5开发环境不识别资源文件导致编译不通过解决方案附文件(系统语言问题)
- ios wkwebview离线化加载h5资源解决方案
- BCB如何加载字符串资源文件(语言资源文件)?
- iOS 通过加载KML资源文件在地图上绘制
- IOS开发(7)WKWebView加载本地HTML、CSS、JS文件JS(解决html内访问其他资源路径问题)
- ios从.plist文件中加载资源
- iOS WebView 加载本地资源(图片,文件等)
- iOS中读取Cell的两种方式(资源包种加载Cell,从nib文件中注册cell)和xib知识点
- 终极ios学习笔记1.0.2-ios无法加载项目内资源文件
- 把资源写入到文件的一种方法
- 利用apktool将APK反编译,生成程序的图片、XML配置、语言资源等文件
- [IOS]UIWebView 请求网络页面或者加载本地资源页面
- 用c# 创建支持多语言的应用程序 资源文件 resx
- C# 多语言资源文件的访问
- 从资源文件里加载文件(C#)
- 基于Java Web的文件上传进度显示的一种解决方案(转)