iphone:如何让我的应用程序支持两种或更多语言?

时间:2011-09-10 05:40:50

标签: iphone objective-c ios4 localization

我有英文版的应用程序。我希望它也能用法语文本运行。

我需要执行哪些步骤?或者我需要什么API或额外代码?

任何示例或教程都会对我有所帮助。

2 个答案:

答案 0 :(得分:1)

您需要为所有语言添加可本地化的字符串。此外,您还需要为要为其提供支持的每种语言添加.lproj以及本地化文件。

希望这会对你有所帮助。

修改

我有一些这些链接对你有用。

http://www.icanlocalize.com/site/tutorials/iphone-applications-localization-guide/

http://adeem.me/blog/2009/05/09/tutorial-iphone-localization-in-xib-nib-files/

How simplify iPhone localization?

http://www.raywenderlich.com/2876/how-to-localize-an-iphone-app-tutorial

我觉得来自http://www.raywenderlich.com的最后一个是我推荐的最好的。

希望这会对你有所帮助。

由于

答案 1 :(得分:0)

这些教程对初学者有好处,但在开始之前你应该考虑以下几点:

  • 当XIB可能发生变化时,本地化XIB文件的“正常”本地化并不值得推荐,因为你必须维护多个XIB文件(对于每种语言,都会有一个独立的XIB)老实说这变得很痛苦一会儿

  • 因此,我建议(尽管开头工作更多)以编程方式设置标签和按钮标题:

     mylabel.text = NSLocalizedString(@"text:", @"text:"); 
    
    [mybtn setTitle: NSLocalizedString(@"textbtn", @"textbtn") forState:UIControlStateNormal];
    
  • 然后使用:genstrings -o en.lproj * .m创建字符串文件,该文件将查找所有NSLocalizedString并在文件夹en.lproj中创建文件Localizable.strings

如果您遵循这一建议,将来会让您的生活变得更轻松 - 尽管它并非真正100%舒适。如果您需要添加新的NSLocalizedString(例如,因为您有一个新标签),您需要创建一个全新的文件Localizable.strings。确保您拥有此文件的备份副本,您可以在其中进行翻译,否则会被覆盖并丢失。我还没有找到一个很好的解决方案,如何建立要翻译的字符串......

ps不再需要添加本地化的XIB文件..否则你最终会有一个人们想要避免的多个XIB文件......