添加XIB本地化搞乱了Xcode中的源代码控制系统

时间:2011-02-25 09:12:54

标签: xcode svn localization internationalization xib

当在Xcode中获取非本地化的XIB文件并使其可本地化时,它会自动将默认区域/本地化添加到XIB文件,例如: “en”或“English”。实际上移动 XIB文件到 en.lproj English.lproj 目录中。如果XIB文件位于版本控制系统(如SVN)中,则SVN开始变坏,因为文件未在版本控制系统中移动,并且认为它丢失了。该怎么办?有没有办法让Xcode以版本控制友好的方式移动XIB文件,还是需要在终端中使用SVN命令提示移动文件?

2 个答案:

答案 0 :(得分:0)

我想我会发布自己的解决方案来解决这个问题。它不是最“优雅”的解决方案,但它对我有用。本质上,我没有直接“本地化”XIB文件,但我将其中包含文本的每个UI对象连接到IBOutlet,并在我的UIView类中以编程方式设置文本。这样,我的所有字符串都以常规字符串文件结尾,而不是为XIB文件提供单独的字符串文件集。到目前为止,它运作良好。

答案 1 :(得分:0)

当我最初尝试本地化已签入SVN的.xib文件时,我最初获得了“svn:无法移动'{path} / .svn / tmp / entries'到'{path} /。 svn / entries':不允许操作。“错误。

根据此博客文章(http://www.devcha.com/2008/03/mac-os-cant-move-svntmpentries-to.html),我通过在目录中执行以下操作成功修复了错误包含终端中有问题的.xib文件:

  1. cd {包含您要本地化的.xib文件的文件夹}
  2. chflags -R nouchg。
  3. svn up
  4. svn cleanup
  5. 然后我能够从Xcode中本地化.xib文件。之后,SVN正确跟踪从相关文件夹中删除.xib文件,以及添加新的本地化文件夹(在我的情况下为en.lproj)和移动的.xib文件到此新文件夹。

    基于chflags的man条目,-R代表“更改文件层次结构的文件标志,而不仅仅是文件本身。”,“nouchg”代表“清除用户不可变标志(所有者)或仅限超级用户)“并使用”。“之后的字符将更改应用于当前文件夹。