iOS APP內(nèi)切換語言

要點(diǎn):注意要在切換完語言之后重新刷新APP的界面,否則新切換的語言不會生效

#import <Foundation/Foundation.h>
#import "Singleton.h"
#define kMyLanguage @"myLanguage"
@interface OpenHABLocalizedManage : NSObject
singleton_interface(OpenHABLocalizedManage) //此處要用到一個單例宏
- (NSString *)userLanguage;//獲取應(yīng)用當(dāng)前語言
- (void)setUserlanguage:(NSString *)language;//設(shè)置當(dāng)前語言
@end

實(shí)現(xiàn)文件內(nèi)容如下:

#import "OpenHABLocalizedManage.h"
#import "NSBundle+Language.h"
@interface OpenHABLocalizedManage()
// 存儲國際化鍵值對關(guān)系的字典
@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;
}

//設(shè)置語言
- (void)setUserlanguage:(NSString *)language{
        // 設(shè)置語言
        [NSBundle setLanguage:language];
        // 然后將設(shè)置好的語言存儲好,下次進(jìn)來直接加載
        [[NSUserDefaults standardUserDefaults] setObject:language forKey:kMyLanguage];
        [[NSUserDefaults standardUserDefaults] synchronize];
}
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容