iOS国际化和genstrings所有子文件夹本地化字符串

  在最近的一个繁忙的对外工程。每天加班。没有时间更新博客。简单谈一下知识的国际化。

  

  首先,我们使用串。必须NSLocalizedString(key,comment),所以,我们是不同的Localizable.strings对key指定不同的值,系统会依据当前系统语言。去不同的lproj找不同的字符串。用个图显示吧:



我们应用仅仅支持中文,英文,所以仅仅建了zh-Hans.lproj和en.lproj,然后在Localizable.strings指定了不同的值。举比例如以下:

 这样程序就能依据系统语言,去选择“登录”还是“Log In”。

 

  可是假设每次加了一个本地化字符串,就得手动去Localizable.strings加入相应的key,那就太麻烦了,幸好苹果提供了快捷生成本地化key的命令。以下以en.lproj的生成为例:

  首先,我们进入程序project所在的文件夹,用命令建立en.lproj

   mkdir en.lproj  

  然后我们遍历全部的子文件夹文件。去生成Localizable.strings,命令例如以下:

   find ./ -name *.m -print0 | xargs -0 genstrings -o en.lproj

  (基本都说genstrings -o en.lproj *.m就能够生成Localizable.strings。可是这个命令仅仅能生成当前文件夹的。并没有遍历子文件夹。所以基本没用)

  这样系统就会把子文件夹用到NSLocalizedString函数的key值都写到文件中。

  须要注意的是,NSLocalizedString(key,comment)。用这个函数时,key不能是宏定义或者一些动态字符串,否则用上面的命令会报错。

 

      今天又一次回来做国际化,发现上面的命令是仅仅能遍历.m文件的。但实际发现常常有字符串放在了.h文件。所以应该用例如以下命令去遍历整个.h和.m文件,特它的目的是加:

   find . \( -name '*.m' -o -name '*.h' \) -print0 | xargs -0 genstrings -o en.lproj

 

  最后,使,标准化是非常必要的。如果你从来没有使用的代码NSLocalizedString。那就麻烦了。

iOS国际化和genstrings所有子文件夹本地化字符串的更多相关文章

  1. C# 获得目录下所有文件或指定文件类型文件(包含所有子文件夹)

    public partial class FileGet { /// <summary> /// 私有变量 /// </summary> private static List ...

  2. [R语言]读取文件夹下所有子文件夹中的excel文件,并根据分类合并。

    解决的问题:需要读取某个大文件夹下所有子文件夹中的excel文件,并汇总,汇总文件中需要包含的2部分的信息:1.该条数据来源于哪个子文件夹:2.该条数据来源于哪个excel文件.最终,按照子文件夹单独 ...

  3. java基础 File与递归练习 使用文件过滤器筛选将指定文件夹下的小于200K的小文件获取并打印按层次打印(包括所有子文件夹的文件) 多层文件夹情况统计文件和文件夹的数量 统计已知类型的数量 未知类型的数量

    package com.swift.kuozhan; import java.io.File; import java.io.FileFilter; /*使用文件过滤器筛选将指定文件夹下的小于200K ...

  4. DFS遍历拷贝所有子文件夹及目录列表 (Java版)

    如题 注意,文件夹是不能拷贝的, 需要mkdir的 文件选择合适的流进行拷贝 main测试方法 /** * 主测试类,默认将D:\\base01 下的复制到D:\\base02 * @param ar ...

  5. matlab遍历文件夹下所有图片和遍历所有子文件夹下图片

    做图像处理实验,经常需要遍历当前文件下所有图片.matlab当然很早就考虑了这个问题,库函数dir就是完成这个工作的.函数返回的是一个存放所有目录下文件信息的结构体,通过遍历结构体就可以达到访问所有文 ...

  6. iOS国际化和genstrings所有子目录本地化字符串

    最近在忙着一个国外项目,天天加班,没时间更新博客.就简单讲讲国际化的知识. 首先,我们使用字符串,必须用NSLocalizedString(key,comment),这样我们在不同的Localizab ...

  7. 使用Dir,遍历文件夹下所有子文件夹及文件

    '------------------------------------------- '获取某文件夹下所有文件和子目录下的文件 '--------------------------------- ...

  8. C#TreeView控件遍历文件夹下所有子文件夹以及文件

    一直对递归的理解不深刻,有时候觉得很简单,可是用起来总会出错.这里需要在TreeView控件里显示一个文件夹下的所有目录以及文件,毫无意外的需要用到递归. 一开始,想到用递归写一个生成每一个节点(Tr ...

  9. C# 遍历文件夹下所有子文件夹中的文件,得到文件名

    假设a文件夹在F盘下,代码如下.将文件名输出到一个ListBox中using System.Data;using System.Drawing;using System.Linq;using Syst ...

随机推荐

  1. Ajax技术--考试计时并自动提交试卷

    1.概述 在开发网络考试系统时,考试计时并自动提交试卷是必不可少的功能.由于在答卷过程中,试卷不能刷新,所以需要使用Ajax实现无刷新操作.运行本实例,访问准备考试页面index.jsp,在该页面中, ...

  2. MP3文件的结构与编程

    有一个朋友喜欢听MP3,为了获取MP3,写了一个程序,专门从一家音乐网站上搜索下载mp3,一下子下载了有上千首.这时朋友又犯愁了,这些MP3的歌曲名字都是使用1,2,3,4,..等数字命名,挑选起来十 ...

  3. Oracle 执行计划了的rows概念

    alter session set statistics_level=all; select t1.* from t1,t2 where t1.id=t2.id and t1.id<3; sel ...

  4. RobotFrameWork(十一)AutoItLibrary测试库在win7(64bit)下安装及简单使用

    最近安装AutoItLibrary,发现在win7 x64下无法安装成功,后来经过定位,发现是3rdPartyTools\AutoIt目录下面AutoItX3.dll的问题.因为AutoItX3.dl ...

  5. Swift 可展开可收缩的表视图

    主要学习与运行效果 在本节的内容中,我们将通过一个具体实例的实现过程,详细讲解在表视图当中,如何创建一个可展开可收缩的表视图.为了让读者有着更为直观的印象,我们将通过模仿QQ好友列表来实现这个效果. ...

  6. C#写的客户端连接 php的服务器端的小例子

    C#写的客户端连接 php的服务器端的小例子 php的server 端 <?php // server.php set_time_limit( 0 ); ob_implicit_flush(); ...

  7. Matlab实现Hough变换检測图像中的直线

    Hough变换的原理: 将图像从图像空间变换至參数空间.变换公式例如以下: 变换以后,图像空间与參数空间存在下面关系: 图像空间中的一点在參数空间是一条曲线,而图像空间共线的各点相应于參数空间交于一点 ...

  8. hibernate学习(二)

    hibernate 单向一对多映射 一.数据表设计 数据库名:hibernate5 数据表: ①表名:CUSTOMERS 字段: CUSTOMER_ID  CUSTOMER_NAME ②表名:ORDE ...

  9. 用Qt开发Web和本地混合的应用

    QtWebkit 模块使得Qt widget能够通过HTML的object标签嵌入到web页面中,并通过JavaScript代码进行访问,而Qt对象也能相应的访问web页面元素. 将Qt对象插入到we ...

  10. thinkPHP四种URL访问方式(二)

    原文:thinkPHP四种URL访问方式(二) 四.url的4种访问方式      1.PATHINFO 模式 -- (重点) http://域名/项目名/入口文件/模块名/方法名/键1/值1/键2/ ...