在iOS模拟器上缺less语言

当我运行我的应用程序时,我的iPhone / iPad模拟器只给我6种语言select(英语,德语,日语,意大利语,西class牙语和匈牙利语)。 谷歌search后,似乎应该有至less18种语言可供select。

我已经重新安装了Xcode 4.3.1,并安装了iOS 5.1模拟器,并且它具有相同的问题,相同的语言。

有谁知道这些语言在哪里定义,以及为什么模拟器不会有所有可用的选项? 谷歌和苹果开发者论坛没有帮助。

这里有一个截图:

iOS模拟器

更新:我决定安装稍微老的5.0模拟器(而不是5.1),并且每当我使用5.0模拟器,它似乎我拥有所有的语言。 如果我切换回5.1模拟器,我仍然只有6种语言显示在上面的屏幕截图。

我认为你的模拟器安装发生了一些不好的事情,而不是Apple删除语言。 如果他们将模拟器中的语言数量减less到6个,Magyar将是一个奇怪的select(只有12.5M左右的扬声器)。

我也检查了我的Xcode 4.3.3 / iPhone 5.1模拟器,我有我认为完整的语言。 值得尝试重新安装你的模拟器!

设置应用程序中模拟器提供的语言列表可以在中find

/Applications/Xcode-4.3.3.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator5.1.sdk/System/Library/PrivateFrameworks/Preferences.framework/GlobalPreferences.plist

它是二进制格式,因此您需要将其复制到临时目录,并使用plutil -convert xml1 <file_name>将其转换为您可以读取的内容。 您可以检查并查看该列表中是否缺less语言。

参考这里是我的样子

 <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> <plist version="1.0"> <dict> <key>AppleLanguages</key> <array> <string>en</string> <string>fr</string> <string>de</string> <string>ja</string> <string>nl</string> <string>it</string> <string>es</string> <string>pt</string> <string>pt-PT</string> <string>da</string> <string>fi</string> <string>nb</string> <string>sv</string> <string>ko</string> <string>zh-Hans</string> <string>zh-Hant</string> <string>ru</string> <string>pl</string> <string>tr</string> <string>uk</string> <string>ar</string> <string>hr</string> <string>cs</string> <string>el</string> <string>he</string> <string>ro</string> <string>sk</string> <string>th</string> <string>id</string> <string>ms</string> <string>en-GB</string> <string>ca</string> <string>hu</string> <string>vi</string> </array> <key>AppleLocale</key> <string>en_US</string> </dict> </plist> 

根据答案中发布的信息,用户名为idz,位于同一个问题中,我能够弄清楚如何解决这个问题。

我正在使用5.1,我必须安装我的模拟器(5.0)以前的版本,然后从5.0中find语言目录,并将它们复制到适当的位置为5.1,然后重新启动iPhone模拟器。 以下是一些详细的步骤:

  1. find5.0模拟器的语言.lproj directores。 /Applications/Xcode-4.3.3.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator5.0.sdk/System/Library/PrivateFrameworks/Preferences.framework/
  2. 在这个文件夹中,你会看到许多带有.lproj扩展名的文件夹,例如: English.lproj 。 复制在此处find的所有.lproj文件夹。
  3. find具有5.1模拟器的.lproj目录的文件夹。 /Applications/Xcode-4.3.3.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator5.1.sdk/System/Library/PrivateFrameworks/Preferences.framework/
  4. 将您复制的文件夹粘贴到此目录中。 当我这样做时,我select不覆盖任何现有的文件夹。
  5. 重新启动你的iPhone模拟器。
  6. 确保你的iPhone模拟器设置为5.1。 当iPhone模拟器被选中时,进入Hardware -> Version -> 5.1 。 现在,当您select模拟器的语言时,您应该拥有从5.0文件夹复制的所有可用语言。

或者有人说,你可以通过简单地卸载Xcode SDK并重新安装它来解决这个问题,但是我发现这种方法要快得多。

我为此向苹果提交了一个错误报告,并在一个星期后没有回应。 我已经指示他们到这个页面来解决这个问题,但是我还不确定这是怎么发生的。