如何在XCode 4中将分组(本地化)文件的位置从绝对路径更改为相对路径?

10

我在XCode 4中遇到了所有文件位置路径都要变为相对路径的问题。

我有多个infoPlist.strings和CustomLocalizable.strings(针对不同的语言),它们被自动地分组在一起(这是XCode自动完成的)。当查看这些文件的文件检查器(View>>Utilities>>Show File Inspector)时,除了英语是默认语言外,其他语言的“位置”都是“绝对路径”。

问题在于,这些文件在文件检查器中的位置下拉菜单已被禁用,无法更改文件位置从绝对路径变为相对路径描述。

我需要做什么才能使组内所有文件路径位置变为相对路径?

我已经尝试将文件组的路径位置更改为“相对于组”或“相对于项目”。对于该组,我还点击了文件检查器中位置下拉菜单下方的小图标来设置相对路径。

我已经搜索了一段时间以寻找解决方案,如果有人能帮助我回答上述问题,我将不胜感激。

谢谢!


7
我找到了自己问题的答案:
  1. 选择组中的一个本地化文件(例如infoPlist.strings,CustomLocalizable.strings):在项目树中单击该文件。
  2. 在“文件检查器”中的“本地化”面板中,使用“-”按钮删除该文件具有绝对路径的所有语言。
  3. 再次添加语言,使用“+”>>“全部添加”或特定语言。
这些分组和本地化文件将再次显示在树中。在文件检查器中,您将看到位置已更改为“相对于组”。希望这也能帮助到您。祝好,Freddy
- Visionscaper
谢谢,太棒了!你应该把这个作为你自己的答案添加上去,让其他人看到这个问题已经解决了!干杯 - Omer
1
@FreddySnijder,你是我的英雄,谢谢 :) - relower
谢谢,这对我很有帮助,我使用的是Xcode 4.2。这绝对是苹果的一个错误,将所有本地化设置为绝对路径。 - jd.
@Omer Relower和jd,有点晚了,但我很高兴这个方案对你们有效;我刚把我的回答加为官方答案。 - Visionscaper
3个回答

8

根据您的回答,我在评论中给出了我的答案,似乎是有效的。因此,这里将其作为官方答案:

  1. 选择组中的本地化文件之一(例如infoPlist.strings,CustomLocalizable.strings):单击项目树中的文件

  2. 在文件检查器中的本地化面板中,使用“-”按钮删除所有具有绝对路径的文件所在的语言。

  3. 再次添加语言,使用“+”>>“添加全部”或特定语言。分组和本地化文件将再次显示在树中。在文件检查器中,您会看到位置已更改为“相对于组”


@ShivanRaptor,我已经测试过了,这些操作并没有替换我的现有本地化文件。顺便说一句,作为另一种选择,我实际上通过简单地编辑我的项目文件并将绝对路径转换为相对路径来解决了这个问题。仍然很遗憾,苹果的默认设置是(不正确的)绝对路径。 - jd.

2

谢谢,问题中提供的评论答案在我的Xcode 4.2上有效。这明显是苹果的一个bug,将所有本地化文件条目设置为绝对路径。

另一种选择是...搜索您的project.pbxproj以查找字符串文件,并查找绝对路径。您可以尝试在文本编辑器中编辑条目,使其看起来像这样:

9E0D4EC0148727D300456F82 /* fr */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = fr; path = fr.lproj/Localizable.strings; sourceTree = "<group>"; };

如果有大量的文件,UI方法会太慢,可以尝试这个方法!


0

你可以在不删除和重新添加文件的情况下更改文件的路径:

  1. 在项目导航器中,找到丢失的文件(以红色表示未找到)并将其中一个突出显示。
  2. 显示文件检查器。
  3. 在“位置”下,将“绝对路径”更改为“相对于组”或“相对于项目”,
  4. 然后将路径旁边的小白色图标点击一下,并选择文件的位置。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接