带有NSLocalizedString的XLIFF文件,键和长字符串

Mat*_*oal 3 cocoa translation localization ios xliff

我想转移到xliff而不是翻译Localizable.stringsMain.strings文件,但我发现我使用NSLocalizedString的方式不正确(我实际做了5年......).

我不喜欢将翻译直接放在我的代码中,所以我使用通用密钥而不写任何评论:

NSLocalizedString("general.error", comment: "")

然后我将字符串包含在Localizable.strings中

"general.error" = "An error occured";

到目前为止一切都很好(也许).现在,当我导出xliff文件时,我发现它source只是我的通用密钥,显然翻译人员无法猜测target该密钥的写入内容:/

所以我的问题是:唯一的解决方案是将所有翻译直接移到内部NSLocalizedString吗?

NSLocalizedString("An error occured", comment: "")

或者在评论中......(我真的不喜欢这个解决方案)

如果字符串真的很长怎么办?将一行3行直接放入代码中似乎很奇怪:/

还有其他有趣的解决方案吗?

编辑

我已经尝试过使用常量,但似乎这个解决方案在swift中不起作用.我创建了一个String.swift文件,我添加了常量:

let thisIsMyLonStringID = "An here I can put the long translation";

我可以这样使用它:

NSLocalizedString(thisIsMyLonStringID, comment: "")

当我导出到XLIFF时,此字符串在xliff文件中不可用但是:(

Mat*_*oal 5

我在这里用我的临时解决方案答案.它似乎工作得很好.

我没有使用我用过BaseLocalizable.strings文件的语言English,所以我刚刚Base从Xcode中的文件检查器 - > Localizations区域中取消选择,我已经提示了一个问题,比如"你想用什么语言作为基础" ......我选择了英语.

现在我可以继续使用NSLocalizedString通用密钥并在Localizable.strings我自动导出到xliff时将翻译放入源中,使用正确的翻译而不是密钥.