我正在尝试查找关于如何本地化iPhone应用程序的一步一步教程。我有英文,我想添加法文。该文档可用,但几乎没有给你明确的指示,说明如何从头到尾执行它。如何本地化iPhone应用程序
回答
下面是我一直在寻找的分步演练。它被发现Here 希望它可以帮助你所有人,因为它做了米。
这是一个客户后,由肖恩·贝瑞,数学的应用程序的iPhone,iPad的开发者,和iPod Touch。
我古斯塔本地化! 尽管说英语的App Store市场规模最大,但世界上仍有许多其他iPhone用户,您可以通过支持其母语来大幅提升用户体验。
好消息是,苹果已经很容易使您的应用程序通过一些API调用多语言工作和内置在Xcode支持。这样做的过程称为本地化,这就是我会告诉你如何去做的!
在这个iPhone应用程序的教程中,你将被定位一个示例应用程序我准备叫iLikeIt这是在雷的帖子的启发由暴走漫画有关应用内购买。该应用程序非常简单 - 它显示了一些理想的销售数据,当您点击“你喜欢?”时,出现一张脸,放大并消失。 但现在它只是英文 - 所以vamos一traducir!
这个iPhone应用程序的教程将要使用的Xcode 4.6.1,因此,如果您尚未升级,为什么不以此为借口这样做呢?
入门 第一步是下载iLikeIt starter project,我们将在本iPhone应用教程中进行本地化。 构建并运行应用程序,你应该看到您点击后,以下出现“你喜欢?”:
我们有三样东西在这里定位: 文字:销售数据 UI元素:“你喜欢?”按钮 和最后的图像(它有文本!) 从代码中分离文本 与大多数项目一样,此项目在代码中包含一些硬编码字符串。我们需要将所有这些硬编码的字符串放到一个单独的文件中,以便我们可以对它们进行本地化。
你在Xcode中做到这一点的方法是创建一个“.strings”文件包含所有项目所需要的字符串。然后,您将用函数调用替换硬编码的字符串,以根据当前语言从“.strings”文件中查找适当的字符串。 让我们试试看。转到File \ New \ New File。选择iOS \ Resource \ Strings File,然后单击Next,如下面的截图所示。命名新文件Localizable.strings,然后单击保存。
请注意,Localizable.strings是IOS在处理本地化文本时查找的默认文件名。如果你不使用它,你必须每次指定.strings文件的名称。
为字符串文件的格式是: “KEY”= “CONTENT”; 因此,对于我们'昨天您销售%@ apps'和'您喜欢?'的文本添加: “您昨天出售%@ apps”=“您昨天销售%@ apps”;
"You like?" = "You like?";
现在切换到ViewController.m,并找到viewDidLoad方法。现在它将文本设置为: self.numAppsLabel.text = [NSString stringWithFormat:@“昨天您销售%@ apps”,@(1000000)];
[self.likeButton setTitle:@"You like?" forState:UIControlStateNormal];
我们希望它从我们的.strings文件中读取。要做到这一点,请将当前行更改为使用名为NSLocalizedString的宏,如下所示: self.numAppsLabel.text = [NSString stringWithFormat:NSLocalizedString(@“Yesterday you sold%@ apps”,nil),@(1000000)];
[self.likeButton setTitle:NSLocalizedString(@"You like?", nil) forState:UIControlStateNormal];
如果你好奇的NSLocalizedString宏做什么,在NSLocalizedString控制单击并选择跳转到。你会发现,它的定义如下:
#define NSLocalizedString(key, comment) \
[[NSBundle mainBundle] localizedStringForKey:(key) value:@"" table:nil]
因此,基本上,它的使用方法localizedStringForKey查找字符串给定键,在当前的语言。它传递零表名,所以它使用默认的字符串文件名(Localizable.strings)。有关完整的详细信息,请查看Apple的NSBundle类参考。
另一件要注意的事情。宏将注释作为参数,但似乎没有做任何事情!这是因为不需要像我们一直手动输入Localizable.strings中的每个键/值对一样,您可以使用iPhone SDK附带的称为genstrings的工具自动执行此操作(这对于大型项目可能非常方便)。
如果您使用此方法,则可以为默认字符串旁边出现的每个字符串添加注释,以此作为翻译器的辅助。例如,您可以添加一个注释,指示使用该字符串的上下文。 足够的背景资料 - 让我们试试吧!构建和运行你的项目,它应该像以前一样在主屏幕上显示相同的文本。但西班牙语在哪里?现在我们成立了,这是一个小小的局面。
添加西班牙语本地化 要添加对其他语言的支持,请单击左窗格中的蓝色iLikeIt项目文件夹,在下一个窗格(不是目标)中选择项目,然后在Info选项卡下,本地化版块。点击+并选择西班牙语(es)。
您会看到另一个屏幕,询问您要将哪些文件进行本地化,并将它们全部保留并单击完成。你没有看到Localizable.strings没关系!我们很快就会做到。
在这一点上,Xcode已经在后台为您选择的每种语言设置了一些包含InfoPlist.strings和MainStoryboard.storyboard单独版本的目录。要亲自查看,请在Finder中打开项目文件夹,然后您会看到以下内容:
请参阅en.lproj和es.lproj?它们包含我们的语言特定版本的文件。 'en'是英语的本地化代码,'es'是西班牙语的本地化代码。如果你很好奇,下面是完整的语言代码列表。
当iOS想要获得英文版本的文件时,它会查看en.lproj,但是当它需要西班牙语版本的文件时,它会查找es.lproj。
就这么简单!把你的资源放在适当的文件夹中,iOS将完成剩下的工作。 但是等等,Localizable.strings呢?要让Xcode知道您希望它本地化,请在左窗格中选择它,然后在右窗格中打开File Inspector。在那里您会看到一个标有本地化的按钮,点击它,选择英语(因为它目前是英语),最后点击本地化。
现在在右边的File Inspector面板上,它显示了该文件属于哪种语言,通过选中西班牙语左侧的框将其添加到西班牙语本地化中。
返回到左侧面板并单击Localizable.strings旁边的箭头,以显示子元素。您现在将看到我们正在使用此文件的两个版本:
要更改西班牙语的文本,请选择Localizable.strings(西班牙语)并将文本更改为: “您昨天销售%@ apps” =“Ayer le vendió%@ aplicaciones”;
"You like?" = "~Es bueno?~";
你的应用程序现在是世俗的!让我们确保它的工作... 要让您的模拟器显示西班牙语,进入Settings.app并选择常规 - >国际 - >语言 - >西班牙语。 删除该应用程序并选择Project \ Clean以获取全新的构建和安装。当你建立和运行你应该看到:
语言环境与语言 让我们通过添加一些格式使该数字看起来更好。替换此代码: self.numAppsLabel.text = [NSString stringWithFormat:NSLocalizedString(@“昨天你卖了%@ apps”,nil),@(1000000)]; 使用: NSNumberFormatter * numberFormatter = [[NSNumberFormatter alloc] init]; [numberFormatter setNumberStyle:NSNumberFormatterDecimalStyle];
NSString *numberString = [numberFormatter stringFromNumber:@(1000000)];
self.numAppsLabel.text = [NSString stringWithFormat:NSLocalizedString(@"Yesterday you sold %@ apps", nil), numberString];
构建和运行和数字将会更容易阅读。
但是,在西班牙,他们不会像这样格式化数字。他们写的是“1.000.000”而不是“1,000,000”,但如果您将iOS模拟器的语言更改为Espanol,您仍然会看到用于分隔零的逗号。原因在于数字格式是基于区域/区域设置的,而不是语言。要查看西班牙的某个人如何看到该号码,请进入设置 - >常规 - >国际,并将区域格式更改为西班牙语 - >西班牙。
当你打开应用程序再次,这是你应该看到:
我们得到了该功能免费,只是为了使用苹果的NSNumberFormatter类!它支付苹果公司的方式,不要与之抗争。 图片 由于我们在图片中有文字,因此我们需要对其进行本地化。在其他西班牙语的应用程序中有一些英语会看起来业余。 选择ilike.png并为西班牙语添加本地化版本(现在您已经是一位老专业版了!)(如果您忘记了,请在左侧面板中选择它,然后在右侧的文件检查器面板中单击本地化按钮。然后,在允许Xcode将默认副本放置到en.lproj后,选中右侧面板上的西班牙文框。) 检出项目文件夹。 ilike.png已被添加到英文文件夹(en.lproj),然后被复制到西班牙文件夹(es.lproj)。要为西班牙文版本显示不同的图像,我们只需在西班牙文件夹中覆盖图像。
我也将它包含在起始项目中,保存为megusta.png。 将它重命名为ilike.png并将其移入西班牙文件夹(es.lproj),覆盖复制的英文版本。 清洁和重建,你应该完成!切换你的模拟器到西班牙语看到...
恭喜!这是本地化的大部分。
- 1. 本地化iPhone应用程序
- 2. iPhone应用程序本地化
- 3. iphone中的应用程序本地化
- 4. 本地化iPhone应用程序
- 5. 本地化iPhone应用程序
- 6. 如何创建本地化的iPhone应用程序?
- 7. 你如何本地化您的iPhone应用程序?
- 8. 如何本地化iPhone(monotouch)和Windows Phone 7应用程序?
- 9. 如何本地化iPhone应用程序的数字?
- 10. 如何本地化iPhone应用程序的不同语言?
- 11. 使用openGL的iPhone应用程序中的文本本地化?
- 12. 本地化我的iPhone应用程序而不使用XIB本地化?
- 13. 本地化我的iPhone应用程序,不正确使用本地化文件
- 14. 本地化移动应用程序本地化测试工具(Android,Iphone,WP)
- 15. 本地化您的iPhone应用程序常见吗?你默认本地化?
- 16. 德国应用程序商店(本地化)的iPhone应用程序
- 17. 本地化iphone应用程序与应用程序定义语言
- 18. Flex AS3 Iphone - 如何打开本地地图应用程序?
- 19. 你将如何从本地iPhone应用程序调用其他应用程序?
- 20. iPhone应用程序 - 本地与外部
- 21. 如何仅使用单个故事板本地化iOS(iPhone/iPad)应用程序?
- 22. iPhone:本地应用程序与本地存储的Web应用程序?
- 23. 为区域本地化iPhone应用程序
- 24. 本地化iPhone应用程序的工具
- 25. 更新本地化iPhone应用程序的最佳实践
- 26. 本地化iPhone应用程序以支持爱尔兰语
- 27. iPhone应用程序本地化 - 英语问题?
- 28. 在Xcode 4中本地化iPhone应用程序名称
- 29. iPhone应用程序名称本地化(简体中文)
- 30. iPhone/iPad应用程序中的本地化问题
http://www.ibabbleon.com/iphone_app_localization。html – stosha
我喜欢你的漫游,然后是我发布的漫游。当你有机会时,你可以把它作为答案,以便我可以接受它? –
谢谢添加我的答案 – stosha