要點:注意要在切換完語言之后重新刷新APP的界面,否則新切換的語言不會生效
#import <Foundation/Foundation.h>
#import "Singleton.h"
#define kMyLanguage @"myLanguage"
@interface OpenHABLocalizedManage : NSObject
singleton_interface(OpenHABLocalizedManage) //此處要用到一個單例宏
- (NSString *)userLanguage;//獲取應用當前語言
- (void)setUserlanguage:(NSString *)language;//設置當前語言
@end
實現文件內容如下:
#import "OpenHABLocalizedManage.h"
#import "NSBundle+Language.h"
@interface OpenHABLocalizedManage()
// 存儲國際化鍵值對關系的字典
@property (nonatomic, strong) NSDictionary *locDic;
@end
@implementation OpenHABLocalizedManage
singleton_implementation(OpenHABLocalizedManage)
- (NSString *)userLanguage
{
if ([[NSUserDefaults standardUserDefaults] objectForKey:@"myLanguage"]
&& ![[[NSUserDefaults standardUserDefaults] objectForKey:@"myLanguage"] isEqualToString:@""]) {
return [[NSUserDefaults standardUserDefaults] objectForKey:@"myLanguage"];
}
else
{
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
NSArray *languages = [defaults objectForKey:@"AppleLanguages"];
NSString *currentLanguage = [languages objectAtIndex:0];
return currentLanguage;
}
return nil;
}
//設置語言
- (void)setUserlanguage:(NSString *)language{
// 設置語言
[NSBundle setLanguage:language];
// 然后將設置好的語言存儲好,下次進來直接加載
[[NSUserDefaults standardUserDefaults] setObject:language forKey:kMyLanguage];
[[NSUserDefaults standardUserDefaults] synchronize];
}