我有一个Xcode的ObjC项目,按照project.pbxproj语言相关的属性
developmentRegion = English;
knownRegions = ( en, Base, sk, cs, );
此外Info.plist中有<key>CFBundleDevelopmentRegion</key>
设置为<string>en</string>
。所有设计文件(故事板,视图等)都设计在英语。
每当我在项目的根文件夹中运行bartycrouch interfaces -p "."
,我让所有的* .strings文件更新,但是所有从设计师的文件中的字符串写入在cs.lproj文件夹(捷克语应该是)的文件,而不是该en.proj文件夹。
是不是有什么毛病我的项目?或者是有办法(参数?)可以指定我的bartycrouch基本语言?
我打开项目的GitHub(https://github.com/Flinesoft/BartyCrouch/issues/91),但两个星期没有反应的问题,所以我希望我可以在这里找到更多的活跃用户。
我已经回答了相关问题GitHub的这个问题,但让我在这里解释一下,也为了完整的目的:
这里的变化在cs.lproj
发生时BartyCrouch在项目运行的摘录:
在一个可能认为一见钟情,为什么BartyCrouch与英国一个替换正确的捷克语翻译?为什么是不是这样做的斯洛伐克语?
这里发生的事情:如果在评论看一看,你会发现它是两种语言相同。作为事实上,在创建字符串时,文件在Xcode中第一次时,Xcode将自动从XIB或故事板的值,并把它们放进意见。它也永远不会改变的评论价值,即使你做的XIB或故事板文件的更改,让你有三个不同的值,每个条目:实际值,注释值和XIB /故事板价值。在开始的时候,后两者是相同的,但由于Xcode中不更新他们,他们往往是在不同的时间。
因为我们可以看到,在注释的值是捷克语,我可以假设,在您第一次让Xcode中生成的字符串的文件,你的XIB或故事板在捷克语有值的时间。看来你以后改变了这一点,并作出或XIB内的每个值故事板是英语。 BartyCrouch有一个特点,内置的,将自动为您更新自己的评论价值。所以这就是为什么我们看到在上面的两个例子语言注释行的变化。 BartyCrouch的另外一个特点是 - 万一评论值完全匹配的真正价值 - 也更新了真正的价值。由于捷克语翻译的实际值是一样的评论价值,这是在这里发生了什么,是什么让BartyCrouch也更新值,并与新的英语值,它在XIB或故事板文件中找到替换它。
现在我们知道问题是什么,让我们来看看能够做些什么来解决这个问题,和/或防止它在未来:
/* Class = "UILabel"; text = "Proveďte synchronizaci."; ObjectID = "RvR-Nz-aYE"; */
将需要手动更改为
/* Class = "UILabel"; text = "Sync to get data."; ObjectID = "RvR-Nz-aYE"; */
我希望我能帮助。