我没有错误地导出了本地化 xliff 文件。我本地化了文件,导入回 Xcode 并运行了应用程序。一切都很好。
我再次导出了本地化 xliff 文件以进行第二轮本地化。我发现很多键是重复的,当然它们没有被翻译。为什么会这样?它是 Xcode 中的错误吗?如何解决它?
可能有帮助的旁注:我有测试目标。
我没有错误地导出了本地化 xliff 文件。我本地化了文件,导入回 Xcode 并运行了应用程序。一切都很好。
我再次导出了本地化 xliff 文件以进行第二轮本地化。我发现很多键是重复的,当然它们没有被翻译。为什么会这样?它是 Xcode 中的错误吗?如何解决它?
可能有帮助的旁注:我有测试目标。
正如我所料,Export XLIFF 文件也在测试目标中包含本地化字符串。我现在使用的是 Xcode 6.2,但仍然无法从这个过程中排除测试目标。
我必须使用文本编辑器(例如 TextEdit)打开文件并删除测试目标的所有本地化节点。
前几天我注意到了这个问题,我认为这是由于翻译无法区分本地化,通常使用本地化,您可以通过键入以下内容来偷懒:
NSLocalizedString(@"Blue", nil);
使用 nil 是有效的,但不提供有关翻译上下文的信息,如果字符串更冗长并且该字符串只会使用一次,那么 nil 应该没问题。在上面的示例中,尽管上下文可能具有多种含义(颜色、感觉等),但在编写本地化代码时,请确保如果多次使用它,请为代码添加注释,并且只要它与另一个本地化文本位相同翻译后的字符串应该合并
例子
创建 2 个本地化项目
NSLocalizedString(@"Blue", @"Colour");
NSLocalizedString(@"Blue", @"Feeling");
创建 2 个本地化项目
NSLocalizedString(@"Blue", nil);
NSLocalizedString(@"Blue", nil);
创建 1 个本地化项目
NSLocalizedString(@"Blue", @"Colour");
NSLocalizedString(@"Blue", @"Colour");