2012-03-21 91 views
0

我找不到任何类似的问题,所以在这里我们去:如何使用英语以外的语言,但仍使用带英语的NSLocalizedString?

我在iOS应用程序,对于第一个版本将只能在法国工作,但我们计划发布的英文版本,以及在将来。此时,我认为对所有文本使用NSLocalizedString是一个好主意,以便在需要英文时准备好应用程序。不过,我真的想使用英语作为我的代码中的键值:中

aString = NSLocalizedString(@"Yes", @"Text for positive answer"); 

代替

aString = NSLocalizedString(@"Oui", @"Text for positive answer"); 

然后我想运行genstrings,并定位在法国的.strings文件(和给翻译人员)。但如果我这样做,我怎么能摆脱“原始”英文.strings文件?我在这里完全错了吗?我现在必须在我的代码中使用法语吗?

回答

1

如果您使用英语开发应用程序并将其本地化为法语,我想知道您为什么要主动阻止应用程序使用英语运行。如果您的目标市场中的某些用户(仅限法国,我想象?)更喜欢用英语运行他们的iOS设备,为什么否认他们的首选语言?还是因为你不会做英文版的质量保证,因此不想公开它呢?

无论如何,我相信您只需编辑项目元数据即可限制支持的语言列表。在XCode中,支持语言的列表显示在这个页面上 - 简单地删除英文,我相信你的英文本地化,即使它们出现在你的项目中,也不会被使用(我还没有测试过,但我对此表示怀疑会删除现有的英文文件,它应该只是从应用程序的支持语言列表中删除)

enter image description here

1

您可以用英文做整个项目,在localizable.string文件中保留键的英文单词,但只保留fr.lproj文件夹,并在plist中将支持的语言设置为法语。

+0

你怎么说“只保留fr.lproj”是什么意思?你的意思是哪个plist入口? CFBundleDevelopmentRegion?如果你能详细阐述一下,我会很感激! – phi 2012-03-21 18:16:23

+0

正常创建字符串文件,例如:英文版本为“lr-back”=“返回”,法语版本为“lr-back”=“dos”;注意键(“lr -...”)可以有任何你想要的格式,只要它对每个字符串唯一;在你拥有这些本地化字符串后,en.lproj中的英文字符串和fr.lproj中的法语字符串,你应该可以使用英语和法语的应用程序;所以,在你做完这些之后,只保留fr.lproj,删除en,并且它应该总是只显示法语单词 – Demz 2012-03-22 08:12:59

相关问题