2014-02-17 30 views
1

我刚开始致力于本地化我的iOS应用程序,现在我遇到了一些希望有人可以帮我解决的问题。在iOS中本地化动态文本字符串

我生成我的字符串文件的英文和法文文本使用genstrings和它的工作正常我的应用程序中的所有静态文本。但是,对于动态字符串,genstrings不会在我的字符串文件中创建一个键,因为Im在NSLocalizedString()宏中使用了一个变量作为字符串。它给我错误,说所说的字符串不是一个文字字符串。这是有道理的。现在我实际上使用了动态数据的分配,并且一些来自分析和核心数据的值将在运行时在我的应用程序中使用。

请指导我在哪里我错了,我知道我将不得不创建键字符串的所有可能的组合,我会在我的字符串文件中收到。根据我收到的文本,我将不得不在我的代码中为每个字符串添加检查?如果我有20个来自解析标签的字符串组合,我将对该标签进行20次检查?有没有更简单的方法来解决这个问题

回答

3

NSLocalizedString应与常量“标识符”(文字)一起使用。这与genstrings绑定并允许它生成.strings文件。优选地,当使用NSLocalizedString来描述上下文+参数+顺序时,您应该设置注释,以便翻译员知道该怎么做。

现在,.strings文件应该更新为适当的文本和格式变量(以适合该语言的顺序)。

在任何时候都不应该在代码中指定格式。你不能保证在每种不同语言的格式参数周围会有什么和多少个单词。

关于该主题的有趣讨论在objc.io

+0

感谢您的文档。这真的很有帮助!我认为没有捷径可以让本地化工作。我必须为每个可能出现的字符串创建密钥,并动态地切换我需要的密钥。 感谢您的帮助! –