iPhone应用程序的国际化
我是iPhone应用程序开发新手(我使用的是XCode 4.2),我想知道是否有办法翻译所有的字符串、标题等。。。在内部,无需逐一翻译 我的想法是使用NSUserDefaults将语言保存为全局变量,并相应地翻译所有内容 另一个选择是制作一个查找表(在Objective-C中可能吗?)iPhone应用程序的国际化,iphone,objective-c,ios,internationalization,xcode4.2,Iphone,Objective C,Ios,Internationalization,Xcode4.2,我是iPhone应用程序开发新手(我使用的是XCode 4.2),我想知道是否有办法翻译所有的字符串、标题等。。。在内部,无需逐一翻译 我的想法是使用NSUserDefaults将语言保存为全局变量,并相应地翻译所有内容 另一个选择是制作一个查找表(在Objective-C中可能吗?) 谢谢请查阅有关NSLocalizedString的文档。以及如何本地化.xib文件(您可以用English.lproj、de.lproj、fr.lproj等制作本地化副本)。您可以使用NSLocalizedStr
谢谢请查阅有关NSLocalizedString的文档。以及如何本地化.xib文件(您可以用English.lproj、de.lproj、fr.lproj等制作本地化副本)。您可以使用
NSLocalizedString(@“”)
和一个文件(名为Localizable.strings)(每种语言)。如果您使用上述功能,您可以使用App Linguan(在Mac App Store上提供)生成可本地化的.strings文件
还有一个名为genstrings的命令行工具,它将为您创建文件,但相信我,Linguan应用程序将在几分钟内自行付费
您应该始终添加注释,以便更好地进行翻译,并提供有关密钥的上下文。您需要创建的所有文件都包含要翻译的每种语言的密钥-值对,并相应地命名它们,即_en、_fr等等 然后,您只需向此方法发送一条消息:
NSLocalizedString(@"myKey", nil)
这将返回本地化字符串,无论当前iPhone配置使用何种语言。您可以在此处阅读该过程的分步教程: 以下是基础知识的高级概述(以上教程提供了详细信息): 1) 将所有编码字符串更改为调用:
NSLocalizedString(@“我的文本”,“译者的上下文”)
2) 使用genstrings
Terminal命令导出所有字符串
3) 这将创建一个名为Localizable.strings的文本文件,其中包含所有英语(源)字符串。看起来是这样的:
/* Context for the translator */
"My text" = "My text";
你把那个文件发给翻译人员。他们会这样翻译右边:“我的文本”=“我的文本”代码>
4) 将每个翻译后的本地化.strings文件放在其相应的语言文件夹中:en.lproj、fr.lproj、es.lproj等
当你的应用程序加载到iPhone上时,它会检查用户的语言设置。如果用户选择法语作为系统语言,将加载fr.lproj文件夹文件中的本地化.strings。如果有任何未翻译的字符串,则默认为英语(或任何源语言)
值得遵循整个教程,并注意文件/文件夹名称必须精确 你期待什么。。?你只能一个接一个地翻译。。。苹果没有发布神奇的翻译工具,但在某种程度上这是可能的。