CTO练习营 | 12月3-5日,深圳,是时刻成为优良的技巧治理者了
比来碰到个须要在应用内部设置说话的需求,默认应用体系设置的说话,如不雅用户在App内设置了其余说话,今后则按照新设置的说话显示界面。
于是,写了个新轮子SOLocalization,欲望大年夜家爱好,其实代码很简单,有兴趣的可以直接去读源代码,有弥补的可以直接向我提交 pull request。
1.创建本地化文件。
创建本地化字符串文件,文件名可所以默认的 infoPlist.strings,也可所以其余,为这个文件设置好要支撑的说话及内容。
2.导入 SOLocalization。
3.设备 SOLocalization。
设置支撑的说话及默认说话,当体系设置的说话不属于支撑的说话时会应用默认说话。
- [SOLocalization configSupportRegions:@[SOLocalizationEnglish, SOLocalizationSimplifiedChinese] fallbackRegion:SOLocalizationEnglish];
4.设置 UIKit 对象。
为 UIKit 对象设置合适的属性,像下面如许简单,并且如许设置后,当说话切换时,这些 UIKit 对象的文本内容会主动变为新设置的说话,不须要任何额外处理。
- UIBarButtonItem *change = [[UIBarButtonItem alloc]initWithTitle:@"" style:UIBarButtonItemStylePlain target:self action:@selector(changeLanguage:)];
- // 这里的 @"Setting" 就是 strings 文件中对应的那个 key,下同
- change.sol_title = @"Setting";
- self.navigationItem.rightBarButtonItem = change;
- self.label.sol_text = @"label";
- [self.button sol_setTitle:@"button" forState:UIControlStateNormal];
- self.textField.sol_placeholder = @"textField placeholder";
- self.navigationItem.sol_title = @"title";
对于 SOLocalization 暂不支撑切换说话后主动修改文本内容的 UIKit 对象,可以如许获取须要的本地化字符串:
- // 个中 “title” 为 strings 文件中对应的 key,“infoPlist”是本地化字符串文件名
- NSString *localizedString = SOLocalizedStringFromTable(@"title", @"infoPlist");
5.修改应用内应用的说话
- // to use English
- [SOLocalization sharedLocalization].region = SOLocalizationEnglish;
- // to use 简体中文
- [SOLocalization sharedLocalization].region = SOLocalizationSimplifiedChinese;
6.自定义的本地化字符串文件名
SOLocalization 供给的 API 中,默认应用的本地化字符串文件名为 infoPlist.strings 文件,如不雅应用其他文件名(比如应用这个文件名:local.strings),如下即可:
- // 对于支撑的 UIKit 对象
- label.sol_table = @"local";
- // 应用 SOLocalizedStringFromTable 时
- NSString *localizedString = SOLocalizedStringFromTable(@"title", @"local");
【编辑推荐】
- 苹不雅机械进修期刊「Siri 三部曲」之一:经由过程跨带宽和跨说话初始化晋升神经收集声学模型
- 2017年9月编程说话排行榜:Java、C与C++三巨擘还能统治排行榜多久?
- 态牛-Tech Neo 8月刊:说话的选择
- Kotlin将超出Java成为Android开辟的第一说话?
推荐阅读
CTO练习营 | 12月3-5日,深圳,是时刻成为优良的技巧治理者了我是一名法度榜样员,几个月前刚过完四十岁诞辰。某个礼拜六的凌晨,我参加了一个 React Native 技巧交换会,演讲者正在竭力说服我们为什么>>>详细阅读
本文标题:iOS应用内切换本地化语言
地址:http://www.17bianji.com/lsqh/39342.html
1/2 1