2019独角兽企业重金招聘Python工程师标准>>>

iOS中本地化字符串

04月18日Array428

编辑/纠错

本地化字符串最常用的工具是NSLocalizedString。这个函数会查找Localizeable.strings中给定的键,然后返回找到的值,没找到值的话返回键本身。Localizeable.strings是个本地化的文件,所以每个语言一个版本,而NSLocalizedString会根据当前语言环境自动选择正确的版本。genstrings命令行工具会自动查找文件中对NSLocalizedString的调用,生成Localizeable.strings文件的初始版本。

最简单的办法是用字符串作为自身的键(第二个参数是写给本地化人员的注释):

1
2
3
NSString *string =NSLocalizedString(@"Welcome to the show.",@"Welcome message");

要运行genstrings,你可以打开一个命令行终端,切换到源码目录,然后按如下方式运行它(假设是英文的本地化工程):

1
 genstrings -o en.lproj *.m

它会创建一个名为en.lproj/Localizeable.string的文件,含有以下内容:

1
2
/* Welcome message */
"Welcome to the show." = "Welcome to the show.";

即使不运行genstrings,它也能在开发者使用的语言中工作,因为它会自动将该键作为本地化字符串返回。

大多数情况中,我推荐使用字符串作为自身的键并在可以将工程交给本地化人员时自动生成Localizeable.stings文件。这种方法能够简化开发过程,并能够使Localizeable.strings文件不累积不再使用的键。

转载于:https://my.oschina.net/u/1049180/blog/215559

iOS中本地化字符串相关推荐

  1. ios开发中的字符串常量如何处理

    ios开发中的字符串常量如何处理 转载于:https://www.cnblogs.com/so-magic/p/4623547.html

  2. latex中biblatex参考文献的标点、分隔符、本地化字符串中英文切换

    latex中biblatex参考文献的标点.分隔符.本地化字符串中英文切换 引言 在中文环境下使用中文的标点符号是一个常见的需求,所以有时我们需要对这些符号进行中英文(全半角)切换.latex中利用b ...

  3. 3分钟实现iOS语言本地化/国际化(图文详解)

    为什么80%的码农都做不了架构师?>>>    原文 前言 语言本地化,又叫做语言国际化.是指根据用户操作系统的语言设置,自动将应用程序的语言设置为和用户操作系统语言一致的语言.往往 ...

  4. iOS中ImageIO框架详解与应用分析

    2019独角兽企业重金招聘Python工程师标准>>> iOS中ImageIO框架详解与应用分析 一.引言 ImageIO框架提供了读取与写入图片数据的基本方法,使用它可以直接获取到 ...

  5. iOS语言本地化/国际化宝典

    语言本地化,又叫做语言国际化.是指根据用户操作系统的语言设置,自动将应用程序的语言设置为和用户操作系统语言一致的语言.往往一些应用程序需要提供给多个国家的人群使用,或者一个国家有多种语言,这就要求应用 ...

  6. iOS 中的 CFBundleShortVersionString 与 CFBundleVersion

    原文地址:iOS 中的 CFBundleShortVersionString 与 CFBundleVersion iOS 开发中经常看到 CFBundleShortVersionString 和 CF ...

  7. ios中常用的第三方库

    下拉刷新 EGOTableViewPullRefresh – 最早的下拉刷新控件. SVPullToRefresh – 下拉刷新控件. MJRefresh – 仅需一行代码就可以为UITableVie ...

  8. iOS中几种数据持久化方案总结

    概论 所谓的持久化,就是将数据保存到硬盘中,使得在应用程序或机器重启后可以继续访问之前保存的数据.在iOS开发中,有很多数据持久化的方案,接下来我将尝试着介绍一下5种方案: plist文件(属性列表) ...

  9. ios开发 ajax hook,IOS中的网络拦截总结

    因为业务场景需要,要求对App中网络请求进行拦截.这里包括原生网络请求和WebView里的网络请求.之前我们了解过原生网络请求的拦截是可以实现的,但是WebView中网络请求似乎还不太可能,所以抱着尝 ...

最新文章

  1. 为什么不推荐使用汉字作为密码?
  2. 机器学习:协方差矩阵
  3. Hibernate- 子查询
  4. 大龄开发人员如何破局
  5. linux下使用python_Python随笔(一)、Linux系统下python环境的安装
  6. 算法设计与分析——递归与分治策略——最接近点对问题
  7. input点击链接另一个页面,各种操作。
  8. k1658停运到什么时候_最近网传的春节快递停运时间表,是假的!
  9. 活动目录的灾难恢复操作指导之三
  10. Java中的方法(形参及实参)return返回类型
  11. 【转】Maven实战(八)---模块划分
  12. 基于openstack的自动化测试平台设计头脑风暴
  13. |Vijos|NOIP2015|模拟|P1975 扫雷游戏
  14. cocos2d-基本概念(5)-Effects 效果
  15. jQuery炫酷特效之遮罩移动效果
  16. php依赖安装顺序,PHP安装GD依赖
  17. Golang通过包长协议处理TCP粘包
  18. 句子迷网站 据说战争与和平很牛
  19. 小程序IOS安全区域优化:safe-area-inset-bottom
  20. MemSQL初体验 - 性能测试

热门文章

  1. 使用Anaconda完全替代官方Python
  2. PCB为什么要做无盘设计及其在Allegro中的具体操作
  3. 光流 | 基于LK(Lucas-Kanade)光流算法的运动目标检测
  4. fdtd中时间监视器怎么放_FDTDsolutions经典问题集.pdf
  5. DOS下perl调试命令
  6. 计算机二级asscii的知识点,计算机二级试题及答案
  7. Debug Tensorflow: tensorflow.python.framework.errors_impl.InvalidArgumentError: OpKernel ‘ConcatV2‘
  8. 牛客一 G-Game of Swapping Numbers
  9. 【Python】如何用python做一个简单的输入输出交互界面?
  10. 个人对北理工2020级硕士研究生张××一篇学术论文涉嫌抄袭的看法