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));