我刚刚开始本地化我的 iOS 应用程序,现在遇到了一些问题,我希望有人可以帮助我解决。
我使用 genstrings 生成了英语和法语文本的字符串文件,并且它对于我的应用程序中的所有静态文本都运行良好。但是,对于动态字符串,genstrings 不会在我的字符串文件中创建键,因为我在 NSLocalizedString() 宏中使用字符串变量。它给我错误,该字符串不是文字字符串。这是有道理的。现在我实际上正在使用动态数据的分配,并且解析和核心数据中的一些值将在运行时在我的应用程序中使用。
请指导我哪里错了,我知道我必须为我将在字符串文件中收到的所有可能的字符串组合创建键。根据我收到的文本,我必须在代码中为每个字符串添加检查?如果我有 20 个来自标签解析的字符串组合,我将对该标签进行 20 次检查?有没有更简单的方法来解决这个问题。
最佳答案
NSLocalizedString
应与常量“标识符”(文字)一起使用。这与 genstrings 结合并允许它生成 .strings 文件。最好在使用 NSLocalizedString 来描述上下文 + 参数 + 顺序时设置注释,以便翻译人员知道该怎么做。
现在,应该使用适当的文本和格式变量(以适合该语言的顺序)更新 .strings 文件。
任何时候都不应在代码中指定格式。您无法保证每种不同语言的格式参数周围将包含哪些单词以及多少单词。
关于该主题的有趣讨论位于 objc.io .
关于ios - 在 iOS 中本地化动态文本字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21828837/