IOS_分享本地化語言封裝好的類

本文來自 【Null】老早就發給我了,遲遲沒有發


直接上.h文件

//
//  Language.h
//  Crocodile
//
//  Created by Mac on 11-4-9.
//  Copyright 2011 __MyCompanyName__. All rights reserved.
//

#import <Foundation/Foundation.h>


@interface Language : NSObject {

}

+(void)initialize;
+(void)setLanguage:(NSString *)l;
+(NSString *)get:(NSString *)key alter:(NSString *)alternate;
+(NSString *)get:(NSString *)key;
+(NSString *)getLanguage;
+(NSString *)getLanguageName;



+(NSString *)getULanguage;
@end



.m文件

//
//  Language.m
//  Crocodile
//
//  Created by Mac on 11-4-9.
//  Copyright 2011 __MyCompanyName__. All rights reserved.
//

#import "Language.h"


@implementation Language

static NSBundle *bundle = nil;
//拿到當前系統的語言,並設置當前程序語言
+(void)initialize{
	NSUserDefaults *defs = [NSUserDefaults standardUserDefaults];
    NSString *current = [[defs objectForKey:@"setting"] objectForKey:@"user_lang"];//用戶選擇的語言
    if(current==nil){
        NSArray *languages = [defs objectForKey:@"AppleLanguages"];//語言數組
        current = [[languages objectAtIndex:0] retain];
    }
    NSString *path=[[NSBundle mainBundle] pathForResource:current ofType:@"lproj"];
	bundle = [[NSBundle bundleWithPath:path] retain];
}

+(void)setLanguage:(NSString *)l{
	NSUserDefaults *defs = [NSUserDefaults standardUserDefaults];
    NSMutableDictionary *setting=[NSMutableDictionary dictionaryWithDictionary:[defs objectForKey:@"setting"]];
    [setting setObject:l forKey:@"user_lang"];
    [defs setObject:setting forKey:@"setting"];
    
    NSString *path=[[NSBundle mainBundle] pathForResource:l ofType:@"lproj"];
	bundle = [[NSBundle bundleWithPath:path] retain];
}

+(NSString *)get:(NSString *)key alter:(NSString *)alternate{
    return [bundle localizedStringForKey:key value:alternate table:nil];
}
+(NSString *)get:(NSString *)key{
    return [Language get:key alter:nil];
}
+(NSString *)getLanguage{
    return [bundle bundlePath];
}
+(NSString *)getLanguageName{
    NSUserDefaults *defs = [NSUserDefaults standardUserDefaults];
    NSString *current = [[defs objectForKey:@"setting"] objectForKey:@"user_lang"];//用戶選擇的語言
    if(current==nil){
        NSArray *languages = [defs objectForKey:@"AppleLanguages"];//語言數組
        current = [[languages objectAtIndex:0] retain];
    }
    return current;
}

+(NSString *)getULanguage{
    
//      return @"cn";
    
    if ([[Language getLanguageName] isEqualToString:@"zh-Hans"]) {
            return @"cn";
    }else{
            return @"en";    
    }
}
@end


小編:

你們一個個都木有給我完整Demo,玩死我了。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章