在iOS中本地化动态文本字符串



我刚开始本地化我的iOS应用程序,现在我遇到了一些问题,我希望有人能帮我解决这些问题。

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

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

NSLocalizedString应与常量"标识符"(文字)一起使用。这与genstrings联系在一起,并允许它生成.strings文件。最好在使用NSLocalizedString描述上下文+参数+顺序时设置一个注释,这样翻译人员就知道该怎么做了

现在,.strings文件应该使用适当的文本和格式变量(按照语言的适当顺序)进行更新。

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

关于这个话题的一个有趣的讨论在objc.io。

最新更新