我是Objective-C编码的新手,但我来自移动开发的Java世界。在Android中,我们使用字符串资源,然后指向Java类中的那些资源。我们应该使用iOS中的类似过程,还是将字符串“硬编码”到实现文件中?我还没有找到一个使用可本地化字符串(和.strings)文件的好教程。
答案 0 :(得分:6)
您可以使用Foundation中的NSLocalizedString宏来检索本地化字符串。在这里阅读: http://www.icanlocalize.com/site/tutorials/iphone-applications-localization-guide/
示例:构建双语(英语 - 法语)应用程序。 每当遇到要向用户显示的字符串时,请使用NSLocalizedString而不是实际的字符串常量。例如:
代替
self.title = @"Welcome";
使用
self.title = NSLocalizedString(@"Welcome");
在应用包内创建两个目录,如下所示:
MyApp.app
English.lproj
Localizable.strings
French.lproj
Localizable.strings
在第一个Localizable.strings文件中,您可以像这样编写键值对:
"Welcome" = "Welcome";
在第二个:
"Welcome" = "Bienvenus";
当您将这些文件和文件夹添加到应用程序时,使用NSLocalizedString宏重新编译它,当系统语言为法语时,您也可以使用法语使用您的应用程序。
答案 1 :(得分:2)
当然,有办法做到这一点。
在这里查看Apple文档 - http://developer.apple.com/library/mac/#documentation/Cocoa/Conceptual/LoadingResources/Strings/Strings.html
真的没有那么多。虽然我倾向于硬编码很多字符串,但它绝对值得花时间学习字符串资源,因为它是国际化的基础。