iOS应用本地化最佳实践和占位符

时间:2015-02-06 12:42:14

标签: ios swift localization

我们目前正处于将应用程序本地化为多种语言的阶段,因为应用程序的一般概念已经确定。这是我想要确保从一开始就做到正确的事情,以降低未来头痛的风险。

该应用程序面向iOS 7及更高版本,使用故事板,并使用Swift编写。

故事板

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

代码中的字符串

我正在使用带有NSLocalizedStringkey参数的Swift函数comment。我见过的一些地方说基于上下文将键设置为唯一的id(例如intro.login-button-text),而其他地方似乎只是将完整的字符串放在默认语言中(例如Login })。我喜欢键的唯一ID的想法,但这不会违背“基础”语言的想法吗?

导出

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

1 个答案:

答案 0 :(得分:2)

自己寻找相同的问题。希望这会对你和他人有所帮助。另外我建议使用某种工具来组织xliff / string文件

<强>故事板:

我已经看到开发人员在故事板中添加非翻译文本并附加括号。即{显示名称}。

通过使用此功能,您可以通过翻译本身查看是否需要翻译。我们使用oneskyapp.com并可以选择隐藏这些翻译,并且每次导入该密钥时都会隐藏它们。

代码中的字符串

通过关注此主题,他们建议使用关键字。 Best practice for key values in translation files

<强>导出

我无法找到导出时自动删除某些翻译的方法。当然,您可以将具有动态字段的视图放在不同的XIB /故事板中,并决定不翻译它们。

像onskyapp.com这样的工具可以帮助你解决这个问题。

<强>格式

截至该字段的上下文非常重要,如果后面跟着一个用户名,我会选择&#34;%1 $ @在线!&#34;