2015-02-06 99 views
2

现在我们正在考虑将应用程序本地化为多种语言,现在应用程序的一般概念已经确定。这是我想确保从一开始就做的正确,以降低未来头痛的风险。iOS应用程序本地化最佳实践和占位符

该应用程序的目标iOS 7及以上,使用故事板,并写在Swift中。

故事板

当一个故事板(或厦门国际银行)工作的,什么是标记UI元素为“不被翻译成”最好的方法是什么?例如,我有一个用户显示名称的占位符字符串(Display Name),在运行时将被用户显示名称替换。此显示名称不会本地化,但字符串“显示名称”也不会。有没有一种方法不会自动将UI元素的值放入strings文件中?如果没有,是进入该文件并手动删除字符串我不想本地化可持续的选项?

字符串代码

我使用的是斯威夫特功能NSLocalizedStringkeycomment参数。我见过的一些地方说基于上下文将密钥设置为唯一的ID(例如,intro.login-button-text),而其他人似乎只是将整个字符串置于默认语言(例如Login)。我喜欢这个关键的独特ID的想法,但这不会违背“基础”语言的想法吗?

导出

的Xcode 6的“导出本地化”的选择似乎用于获取文件的正确格式发送给翻译非常有用的。但是,如前所述,占位符文本不需要翻译。在导出之前,是否应将这些占位符从导出的xliffstrings文件中删除?

+0

另一个问题是格式。例如。 “%1 $ @ is online!”''%1 $ @'是用户的名字还是格式是''%1 $ @%2 $ @''' 1 $ @'是用户的名字,'%2 $ @'是本地化的字符串'“在线!”'。我认为第一个对定位者更具描述性。但是本地化格式似乎有点过分,特别是如果您正在开发跨平台应用程序。 – Reggian 2015-03-20 17:53:18

+0

@Reggian你需要使用第一个选择。在很多语言中,这个名字可能会在最后或在句子的中间。翻译者需要能够移动文本的名称部分。 – Pylinux 2016-03-04 14:50:53

回答

2

我自己也在寻找同样的问题。希望这会帮助你和其他人。此外,我会建议有某种工具来组织XLIFF /字符串文件

故事板:

我见过开发商将非翻译文本中的故事板与额外的括号。即{显示名称}。

通过使用这个你可以看到翻译本身,如果它需要翻译或没有。我们使用oneskyapp.com并可以选择隐藏这些翻译,并且每次输入该密钥时都会隐藏这些翻译。

字符串在代码

按照此线索,他们建议使用的关键字。 Best practice for key values in translation files

导出

我不能找到一种方法,有一定的翻译导出时自动删除。当然,您可以将动态字段的视图放在不同的XIB/Storyboard中,并决定不翻译这些视图。

再次,像onskyapp.com这样的工具可以帮助你做到这一点。

格式

与该领域的上下文是非常重要的,当它后面即一个用户的名字,我会去翻译可以是不同的“%1 $ @上线了!”