iOS 國際化多語言(下)

前言

上一片文章介紹的是根據(jù)系統(tǒng)語言自動切換,現(xiàn)在我們來說說怎么在APP中手動切換多語言。
iOS 國際化多語言(上)

配置

配置內(nèi)容還是和上篇文章一樣,不知道的可以點(diǎn)擊上面鏈接。

步驟

先新建一個(gè)Strings File 文件(iOS->Resource->Strings File)。文件名稱Language,名稱可以隨意,放的位置也可以隨意。

新建Language文件
然后選擇這個(gè)文件,右邊點(diǎn)擊Localize,會彈出一個(gè)對話框,展開對話框列表,發(fā)現(xiàn)下拉列表所展示的語言正是我們在上面配置的需要國際化的語言,選擇我們需要本地化的語言,然后點(diǎn)擊對話框的Localize按鈕。
選擇語言
在中文文件和英文文件中添加對應(yīng)的內(nèi)容
英文

中文

啟動時(shí)判斷一下系統(tǒng)語言,在AppDelegate中的didFinishLaunchingWithOptions方法里設(shè)置語言,也可以自己寫死中文什么的。用NSUserDefaults本地保存記錄設(shè)置的語言。
首次設(shè)置語言
if (![[NSUserDefaults standardUserDefaults] objectForKey:@"appLanguage"]) {
        NSArray *languages = [NSLocale preferredLanguages];
        NSString *language = [languages objectAtIndex:0];
        if ([language hasPrefix:@"zh-Hans"]) {//開頭匹配
            [[NSUserDefaults standardUserDefaults] setObject:@"zh-Hans" forKey:@"appLanguage"];
        }else{
            [[NSUserDefaults standardUserDefaults] setObject:@"en" forKey:@"appLanguage"];
        }
        [[NSUserDefaults standardUserDefaults] synchronize];
    }

修改語言,我們可以第一個(gè)宏,或者自行封裝

// 宏
#define Localized(key)  [[NSBundle bundleWithPath:[[NSBundle mainBundle] pathForResource:[NSString stringWithFormat:@"%@",[[NSUserDefaults standardUserDefaults] objectForKey:@"appLanguage"]] ofType:@"lproj"]] localizedStringForKey:(key) value:nil table:@"Language"]

// 方法
NSString *str = [[NSUserDefaults standardUserDefaults] objectForKey:@"appLanguage"];
NSString *path = [[NSBundle mainBundle] pathForResource:str ofType:@"lproj"];
NSBundle *bundle = [NSBundle bundleWithPath: path];
NSString *value = [bundle localizedStringForKey:strL value:nil table:@"Language"];
使用
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

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

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