是否有可能设置可可应用程序,因此它会在启动后翻译NSString
(置于代码中)而无需使用NSLocalizedString
?localizable.strings - 从代码
感谢您的帮助!
是否有可能设置可可应用程序,因此它会在启动后翻译NSString
(置于代码中)而无需使用NSLocalizedString
?localizable.strings - 从代码
感谢您的帮助!
答案是否定的。而且你可能不会想要这个,因为不是每个字符串都应该是可本地化的。有些字符串可能包含显示文字,因此需要通过NSLocalizedString
进行本地化,另一方面,其他一些字符串可能会影响您的逻辑,例如定义资源名称的字符串(例如,您传递给loadNibNamed
的字符串或要加载的图像或音频文件的名称)。这些确实是要硬编码的,翻译它们会破坏你的应用程序。
不是自动的,但你可以创建一个简单的宏以减少打字:
#define TRANS(s) NSLocalizedString(s, nil)
但是,如果你这样做,你将无法使用genstrings实用程序(http://developer.apple.com/library/mac/#documentation/Darwin/Reference/ManPages/man1/genstrings.1.html )自动创建基础语言'.strings'文件,因为此实用程序会扫描您的源文件以查找NSLocalizedStrings的出现。 – Clafou 2012-01-10 22:37:11
谢谢你的准确解释,好帖子:) – xyz 2012-01-11 08:26:12