Localization Xcode 6.1-XLIFF文件包含重复的密钥

Localization Xcode 6.1-XLIFF文件包含重复的密钥,localization,xcode6,xliff,Localization,Xcode6,Xliff,我导出了本地化xliff文件,没有错误。我本地化了文件,导入回Xcode并运行了应用程序。一切都很好 我再次导出了本地化xliff文件以进行第二轮本地化。我发现很多钥匙都是复制的,当然,它们没有翻译。为什么会这样?这是Xcode中的bug吗?如何解决这个问题 可能有帮助的旁注:我有测试目标 前几天我注意到了这个问题,我认为这是因为翻译无法区分本地化,通常使用本地化,你可以通过键入以下内容来偷懒: NSLocalizedString(@"Blue", nil); 使用nil是有效的,但不提供有关

我导出了本地化xliff文件,没有错误。我本地化了文件,导入回Xcode并运行了应用程序。一切都很好

我再次导出了本地化xliff文件以进行第二轮本地化。我发现很多钥匙都是复制的,当然,它们没有翻译。为什么会这样?这是Xcode中的bug吗?如何解决这个问题


可能有帮助的旁注:我有测试目标

前几天我注意到了这个问题,我认为这是因为翻译无法区分本地化,通常使用本地化,你可以通过键入以下内容来偷懒:

NSLocalizedString(@"Blue", nil);
使用nil是有效的,但不提供有关翻译上下文的信息,如果字符串更详细,并且该字符串只使用一次,那么nil就可以了。在上面的示例中,尽管上下文可能有多种含义(颜色、感觉等),但在编写本地化代码时,请确保如果多次使用,请为代码添加注释,并且只要与另一个本地化文本相同,则翻译的字符串应合并

范例

  • 创建2个本地化项目

    NSLocalizedString(@"Blue", @"Colour");
    NSLocalizedString(@"Blue", @"Feeling");
    
    NSLocalizedString(@"Blue", nil);
    NSLocalizedString(@"Blue", nil);
    
  • 创建2个本地化项目

    NSLocalizedString(@"Blue", @"Colour");
    NSLocalizedString(@"Blue", @"Feeling");
    
    NSLocalizedString(@"Blue", nil);
    NSLocalizedString(@"Blue", nil);
    
  • 创建1个本地化项

    NSLocalizedString(@"Blue", @"Colour");
    NSLocalizedString(@"Blue", @"Colour");
    

  • 正如我所料,导出XLIFF文件在测试目标中也包含本地化字符串。我现在使用的是Xcode 6.2,但仍然无法从这个过程中排除测试目标

    我必须使用文本编辑器(例如TextEdit)打开文件,并删除测试目标的所有本地化节点