2012-01-10 59 views
0
转换字符串

是否有可能设置可可应用程序,因此它会在启动后翻译NSString(置于代码中)而无需使用NSLocalizedStringlocalizable.strings - 从代码

感谢您的帮助!

回答

1

答案是否定的。而且你可能不会想要这个,因为不是每个字符串都应该是可本地化的。有些字符串可能包含显示文字,因此需要通过NSLocalizedString进行本地化,另一方面,其他一些字符串可能会影响您的逻辑,例如定义资源名称的字符串(例如,您传递给loadNibNamed的字符串或要加载的图像或音频文件的名称)。这些确实是要硬编码的,翻译它们会破坏你的应用程序。

+0

谢谢你的准确解释,好帖子:) – xyz 2012-01-11 08:26:12

0

不是自动的,但你可以创建一个简单的宏以减少打字:

#define TRANS(s) NSLocalizedString(s, nil) 
+1

但是,如果你这样做,你将无法使用genstrings实用程序(http://developer.apple.com/library/mac/#documentation/Darwin/Reference/ManPages/man1/genstrings.1.html )自动创建基础语言'.strings'文件,因为此实用程序会扫描您的源文件以查找NSLocalizedStrings的出现。 – Clafou 2012-01-10 22:37:11