iOS APP內切換語言

要點:注意要在切換完語言之后重新刷新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];
}
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容