xcode国际化工具genstrings体验总结
genstrings是苹果推出的一个用于自动从代码的nslocalizedstring等提取生成国际化字符串的工具;
xcode的国际化文件方案一直以来都不太智能,我记得很久以前.strings文件库上的修改好像是必然会引发冲突的(别人在你修改过程中提交);
在代码中写完国际化的字符串还要单独打开.strings文件进行编辑,比较麻烦。
鉴于此,很多开发者在这个方面也做了不少的努力:
比如xcode里面对genstrings的扩展或者是改写,支持merge功能等(在github里面搜索genstrings会出现一票的仓库)。
其中值得一提的是DTLocalizableStringScanner,它不是基于genstrings而是全部自己开发的开源代码,希望自己定制开发功能的朋友可以考虑基于它进行改造。
还有商业化的产品:
https://www.delitestudio.com/why-not-use-genstrings/
愿意付费的朋友可以尝试,应该可以值回5美元的票价。
还有别的思路,根据资源文件自动补全字符串(类似ksimageNamed):
https://github.com/questbeat/Lin
这个插件实际测试在xcode8下已经无法安装了(笔者使用的是反和谐的xcode,是可以安装其他插件的)。
目前现有的方案都不太令人满意,要想让这套工作变得舒服,还是要打造一套完整、好用的工具链,目前可用的工具我个人认为离这个目标还是有点远。
这块应该算上是苹果开发中的痛点了,所以其中对于开发者而言也同时蕴含了机会,如果有好的工具或是产品出现,个人感觉应该会比较受欢迎。
另外,个人认为国际化文件也分模块会比较好,这样也有利于模块化。
理想中的流程:
新模块:
NSString -> LocalizedXXX ->自动生成.strings,进入其中进行编辑
pending:
NSString -> LocalizedXXX ->自动生成/merge.strings,进入其中进行编辑
xcode国际化工具genstrings体验总结的更多相关文章
- iOS国际化和genstrings所有子文件夹本地化字符串
iOS国际化和genstrings所有子文件夹本地化字符串 在最近的一个繁忙的对外工程.每天加班.没有时间更新博客.简单谈一下知识的国际化. 首先,我们使用串.必须NSLocalizedString( ...
- 功能强大的Xcode辅助工具Faux Pas:帮你找到各种隐形的bug
本文转载至 http://www.cocoachina.com/industry/20140804/9307.html Faux Pas(Beta版下载地址)是一个Xcode辅助工具,用以检查Xcod ...
- Windows Phone开发工具初体验【转载】
Windows Phone开发工具在MIX 2010上火热登场了.Windows Mobile开发者们压抑许久的热情终于爆发出来,对于Windows Phone的华丽转身,开发者们褒贬不一,有人对Si ...
- iOS国际化和genstrings所有子目录本地化字符串
最近在忙着一个国外项目,天天加班,没时间更新博客.就简单讲讲国际化的知识. 首先,我们使用字符串,必须用NSLocalizedString(key,comment),这样我们在不同的Localizab ...
- 开源静态分析工具androguard体验
原文链接:http://blog.csdn.net/xbalien29/article/details/21885297 虽然在windows端免费版的IDA.VTS等工具都可用来静态分析,但相对来说 ...
- Xcode编译工具
一.关于Other Linker Flags xcode中,在“Targets”选项下有Other Linker Flags选项,在这里可以填写xcode链接器的参数,如:-ObjC.-all_loa ...
- BERT可视化工具bertviz体验
BERT可视化工具体验:bertviz是用于BERT模型注意力层的可视化页面. 1,bertviz的github地址:https://github.com/jessevig/bertviz 2,将be ...
- Xcode开发工具问题
昨天打开Xcode 发现鼠标光标变成了黑色的块状,不能编辑内容了,且Content区域还多出了一个显示文件路径的框框 如下图: 然后自己百度,到论坛提问.到QQ群里问;卸载重装Xcode.重装系统各种 ...
- Xcode 注释工具的使用
1:Xcode 8之后 Goodbye World In Xcode 8, Apple integrated a comment documentation generator plugin, whi ...
随机推荐
- C# mongodb 驱动操作(Z)
Query.All("name", "a", "b");//通过多个元素来匹配数组 Query.And(Query.EQ("nam ...
- Delete,Update与LEFT Join
UPDATE:UPDATE A SET ApproverID=NULL FROM [SH_MaterialApplyBuyBill] A LEFT JOIN [SH_MaterialApplyBuyB ...
- ASM:《X86汇编语言-从实模式到保护模式》越计卷:实模式下对DMA和Sound Blaster声卡的控制
说实话越计卷作者用了16页(我还是删过的),来讲怎么控制声卡,其实真正归纳起来就那么几点. ★PART1:直接存储访问 1. 总线控制设备(bus master) 在硬件技术不发达的早期,处理器是最重 ...
- MyEclipse无法删除项目下的文件
想删除老版本的jar包或文件,却怎么也删不了, 总是提示Problems encountered while deleting resources. Could not delete 后来关闭myec ...
- quartz 线程问题
2个任务一起使用quartz来调度,但是有一个任务总是会莫名其妙的暂停掉,排查了下,原来组内成员在写JOB任务时候,在JOB中写了个while(true) { 执行业务 休眠10分钟} 导 ...
- code first 创建和初始化数据库
1.前言 Code First是Entity Framework提供的一种新的编程模型.通过Code First我们可以在还没有建立数据库的情况下就开始编码,然后通过代码对象来生成数据库.当然我们在实 ...
- [LeetCode] Best Time to Buy and Sell Stock
Say you have an array for which the ith element is the price of a given stock on day i. If you were ...
- hadoop入门(2)——HDFS2.0应用场景、原理、基本架构及使用方法
一.HDFS概述 优点:高容错性.适合批处理.适合大数据处理.流式文件访问:一次写入,多次读取. 缺点:不适合低延迟数据访问.不适合小文件存取(受限于NameNode) ...
- wp8 入门到精通 仿美拍评论黑白列表思路
static bool isbool = false; private void BindGameDelete() { Tile tile = new Tile(); List<Color> ...
- ubuntu14.0.4.3 devstack 安装openstack
参考网址: http://www.chenshake.com/install-ubuntu-14-04-devstack/ 现在装完一切正常,就是不能重启,一旦重启VM,会导致给br-ex设置的IP地 ...