Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
iPhone应用程序的国际化_Iphone_Objective C_Ios_Internationalization_Xcode4.2 - Fatal编程技术网

iPhone应用程序的国际化

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

我是iPhone应用程序开发新手(我使用的是XCode 4.2),我想知道是否有办法翻译所有的字符串、标题等。。。在内部,无需逐一翻译

我的想法是使用NSUserDefaults将语言保存为全局变量,并相应地翻译所有内容

另一个选择是制作一个查找表(在Objective-C中可能吗?)


谢谢

请查阅有关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.lprojfr.lprojes.lproj

当你的应用程序加载到iPhone上时,它会检查用户的语言设置。如果用户选择法语作为系统语言,将加载fr.lproj文件夹文件中的本地化.strings。如果有任何未翻译的字符串,则默认为英语(或任何源语言)


值得遵循整个教程,并注意文件/文件夹名称必须精确

你期待什么。。?你只能一个接一个地翻译。。。苹果没有发布神奇的翻译工具,但在某种程度上这是可能的。