作家
登录

iOS应用内切换本地化语言

作者: 来源: 2017-11-30 15:31:12 阅读 我要评论

CTO练习营 | 12月3-5日,深圳,是时刻成为优良的技巧治理者了


比来碰到个须要在应用内部设置说话的需求,默认应用体系设置的说话,如不雅用户在App内设置了其余说话,今后则按照新设置的说话显示界面。

于是,写了个新轮子SOLocalization,欲望大年夜家爱好,其实代码很简单,有兴趣的可以直接去读源代码,有弥补的可以直接向我提交 pull request。

1.创建本地化文件。

创建本地化字符串文件,文件名可所以默认的 infoPlist.strings,也可所以其余,为这个文件设置好要支撑的说话及内容。

2.导入 SOLocalization。

3.设备 SOLocalization。


设置支撑的说话及默认说话,当体系设置的说话不属于支撑的说话时会应用默认说话。

iOS应用内切换本地化说话

  1. [SOLocalization configSupportRegions:@[SOLocalizationEnglish, SOLocalizationSimplifiedChinese] fallbackRegion:SOLocalizationEnglish]; 

4.设置 UIKit 对象。

为 UIKit 对象设置合适的属性,像下面如许简单,并且如许设置后,当说话切换时,这些 UIKit 对象的文本内容会主动变为新设置的说话,不须要任何额外处理。

  1. UIBarButtonItem *change = [[UIBarButtonItem alloc]initWithTitle:@"" style:UIBarButtonItemStylePlain target:self action:@selector(changeLanguage:)]; 
  2. // 这里的 @"Setting" 就是 strings 文件中对应的那个 key,下同 
  3. change.sol_title = @"Setting";  
  4. self.navigationItem.rightBarButtonItem = change; 
  5. self.label.sol_text = @"label"
  6. [self.button sol_setTitle:@"button" forState:UIControlStateNormal]; 
  7. self.textField.sol_placeholder = @"textField placeholder"
  8. self.navigationItem.sol_title = @"title"

对于 SOLocalization 暂不支撑切换说话后主动修改文本内容的 UIKit 对象,可以如许获取须要的本地化字符串:

  1. // 个中 “title” 为 strings 文件中对应的 key,“infoPlist”是本地化字符串文件名 
  2. NSString *localizedString = SOLocalizedStringFromTable(@"title", @"infoPlist"); 

5.修改应用内应用的说话

  1. // to use English 
  2. [SOLocalization sharedLocalization].region = SOLocalizationEnglish; 
  3. // to use 简体中文 
  4. [SOLocalization sharedLocalization].region = SOLocalizationSimplifiedChinese; 

6.自定义的本地化字符串文件名

SOLocalization 供给的 API 中,默认应用的本地化字符串文件名为 infoPlist.strings 文件,如不雅应用其他文件名(比如应用这个文件名:local.strings),如下即可:

  1. // 对于支撑的 UIKit 对象 
  2. label.sol_table = @"local"
  3. // 应用 SOLocalizedStringFromTable 时 
  4. NSString *localizedString = SOLocalizedStringFromTable(@"title", @"local"); 

【编辑推荐】

  1. 苹不雅机械进修期刊「Siri 三部曲」之一:经由过程跨带宽和跨说话初始化晋升神经收集声学模型
  2. 2017年9月编程说话排行榜:Java、C与C++三巨擘还能统治排行榜多久?
  3. 态牛-Tech Neo 8月刊:说话的选择
  4. Kotlin将超出Java成为Android开辟的第一说话?

      推荐阅读

      一位40岁老程序员总结的编程职业生涯的三个阶段

    CTO练习营 | 12月3-5日,深圳,是时刻成为优良的技巧治理者了我是一名法度榜样员,几个月前刚过完四十岁诞辰。某个礼拜六的凌晨,我参加了一个 React Native 技巧交换会,演讲者正在竭力说服我们为什么>>>详细阅读


    本文标题:iOS应用内切换本地化语言

    地址:http://www.17bianji.com/lsqh/39342.html

关键词: 探索发现

乐购科技部分新闻及文章转载自互联网,供读者交流和学习,若有涉及作者版权等问题请及时与我们联系,以便更正、删除或按规定办理。感谢所有提供资讯的网站,欢迎各类媒体与乐购科技进行文章共享合作。

网友点评
自媒体专栏

评论

热度

精彩导读
栏目ID=71的表不存在(操作类型=0)