【问题标题】:Adding XIB localizations screwing up source-control system in Xcode添加 XIB 本地化会破坏 Xcode 中的源代码控制系统
【发布时间】:2011-07-04 04:18:57
【问题描述】:

当在 Xcode 中获取一个未本地化的 XIB 文件并使其可本地化时,它会自动将默认区域/本地化添加到 XIB 文件中,例如“en”或“英语”。这实际上将 XIB 文件 移动en.lprojEnglish.lproj 目录中。如果 XIB 文件在 SVN 等版本控制系统中,SVN 会因为文件没有在版本控制系统中移动而开始崩溃,并认为它丢失了。该怎么办?有没有办法让 Xcode 以对版本控制友好的方式移动 XIB 文件,还是我需要在终端中使用 SVN 命令提示符移动文件?

【问题讨论】:

    标签: xcode svn localization internationalization xib


    【解决方案1】:

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

    【讨论】:

    • 虽然此解决方案有效,但我想知道是否没有办法解决有关 XIB 本地化和 SVN 的原始问题。我遇到了同样的问题,我可能不得不最终从 SVN 中删除文件,同时将其保留在项目中,应用本地化,然后将其重新添加到 SVN。我目前使用原始方法遇到的具体错误是“svn: Can't move '*/.svn/tmp/entries' to '*/.svn/entries': Operation not allowed”。
    【解决方案2】:

    当我最初尝试将签入到 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 起来
    4. svn 清理

    然后我可以在 Xcode 中本地化 .xib 文件。之后,SVN 正确跟踪了从相关文件夹中删除 .xib 文件以及添加新的本地化文件夹(在我的例子中为 en.lproj)和移动的 .xib 文件到这个新文件夹。

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

    【讨论】:

      猜你喜欢
      • 2017-12-20
      • 1970-01-01
      • 1970-01-01
      • 2019-12-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-09-17
      相关资源
      最近更新 更多