當前位置:成語大全網 - 英語詞典 - iOS開發中如何切換顯示語言實現國際化

iOS開發中如何切換顯示語言實現國際化

1.在項目設置中,添加中文和英文:

2.創建壹個新的Localizable.strings文件,該文件可用作多語言詞典來存儲多種語言。點擊右邊的本地化,勾選中文和英文:

3.添加壹個字段,

英文,加:SUBMIT _ BTN _ TITLE = Go;

中文加:SUBMIT _ BTN _ TITLE = start;

4.壹個工具類GDLocalizableController,用於切換本地語言:

//

// ?GDLocalizableController.h

// ?旅遊指南

//

// ?由why於7/16/14創建。

// ?版權所有(c) 2014為什麽。版權所有

//

#導入

@ interface gdlocalizable controller:ns object

+(ns bundle *)bundle;//獲取當前資源文件

+(void)init user language;//初始化語言文件

+(ns string *)user language;//獲取應用程序的當前語言。

+(void)set user language:(ns string *)語言;//設置當前語言

@end

//

// ?GDLocalizableController.m

// ?旅遊指南

//

// ?由why於7/16/14創建。

// ?版權所有(c) 2014為什麽。版權所有

//

#導入GDLocalizableController.h

@實現GDLocalizableController

靜態NSBundle * bundle = nil

+ ( NSBundle *)捆綁包{

返回捆綁包;

}

+(void)initUserLanguage{

nsuserrefaults * def =[nsuserrefaults standardUserDefaults];

ns string * string =[def valueForKey:@ user language];

if(string.length == 0){

//獲取系統的當前語言版本。

NSArray * languages =[def objectForKey:@ apple languages];

ns string * current =[languages objectAtIndex:0];

string =當前;

[def setValue:current forKey:@ user language];

[定義同步];//持久化,不添加就不保存。

}

//獲取文件路徑

ns string * path =[[ns bundle main bundle]path for resource:string of type:@ lproj];

bundle =[ns bundle bundle with path:path];//生成捆綁包

}

+(NSString *)用戶語言{

nsuserrefaults * def =[nsuserrefaults standardUserDefaults];

ns string * language =[def valueForKey:@ user language];

返回語言;

}

+(void)setuser language:(ns string *)language {

nsuserrefaults * def =[nsuserrefaults standardUserDefaults];

//1.第1步更改bundle的值。

ns string * path =[[ns bundle main bundle]path for resource:language of type:@ lproj];

bundle =[ns bundle bundle with path:path];

//2.堅持的

[def setValue:language forKey:@ user language];

[定義同步];

}

@end

5.自定義宏以便於處理:

//-多語言設置

#定義中文@zh-Hans

#定義英語@en

# define GDLocalizedString(key)[[gdlocalizable controller bundle]localizedStringForKey:(key)value:@ table:nil]

使用:

【GDLocalizableController setuser language:中文】;

NSLog(GDLocalizedString(@ SUBMIT _ BTN _ TITLE));

[GDLocalizableController setuser language:ENGLISH];

NSLog(GDLocalizedString(@ SUBMIT _ BTN _ TITLE));