場景
- 用戶可以在手機(jī)設(shè)置->通用->語言和地區(qū)中,設(shè)置語言
- app希望通過用戶設(shè)置的語言,app顯示不同的文本
步驟:
1.新建一個.string文件
是在Source里面去找:
2. 寫法:
"ivykey" = "ivy中文";
3. 添加語言:
先選base,其他的后面再勾選都可以的
去查看工程目錄
多了en.lproj和zh-Hans.lproj.它們分別存放需要國際化的strings文件,如果勾選了base,則Base.lproj里也會有strings文件
4. 代碼使用:
- 如果.strings文件的名字是:Localizable.strings
則用NSLocalizedString宏 就可以了
NSString * strLocalizable = NSLocalizedString(@"ivykey", @"comment");
- 如果.strings文件的名字是自定義的,則要用這個宏, 第二個參數(shù)是名字
NSString * str = NSLocalizedStringFromTable(@"ivykey", @"ivy", @"comment");
這2個宏,很有意思:它們調(diào)用的是這個方法
[[NSBundle mainBundle] localizedStringForKey:(key) value:@"" table:nil]
? If key is nil and value is nil, returns an empty string.
? If key is nil and value is non-nil, returns value.
? If key is not found and value is nil or an empty string, returns key.
? If key is not found and value is non-nil and not empty, return value.
總之,就是誰不為nil且存在,就返回誰.
5. 添加其他語言
這個見我另一個文章的最后面