8

当我运行我的应用程序时,我的 iPhone/iPad 模拟器只给了我 6 种语言选择(英语、德语、日语、意大利语、西班牙语和匈牙利语)。在谷歌上搜索后,似乎应该至少有 18 种语言可供选择。

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

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

这是一个屏幕截图:

iOS 模拟器

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

4

2 回答 2

5

我认为您的模拟器安装发生了一些不好的事情,而不是 Apple 删除了语言。如果他们将模拟器中的语言数量减少到只有 6 种马扎尔语,那将是一个奇怪的选择(只有 1250 万左右的扬声器)。

我还检查了我的 Xcode 4.3.3/iPhone 5.1 模拟器,并且我拥有我认为的完整语言补充。可能值得尝试重新安装您的模拟器!

模拟器在设置应用程序中显示的语言列表可以在

/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>将其转换为您可以阅读的内容。您可以检查并查看此列表中是否缺少语言。

供参考,这是我的样子

<?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>
于 2012-07-01T17:52:58.660 回答
0

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

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

  1. 找到 5.0 模拟器的语言 .lproj 目录。/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. 复制您在此处找到的所有 .lproj 文件夹。
  3. 找到包含 .lproj 目录的文件夹,用于 5.1 模拟器。/Applications/Xcode-4.3.3.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator5.1.sdk/System/Library/PrivateFrameworks/Preferences.framework/
  4. 将您复制的文件夹粘贴到此目录中。执行此操作时,我选择不覆盖任何现有文件夹。
  5. 重新启动您的 iPhone 模拟器。
  6. 确保您的 iPhone 模拟器设置为 5.1。选择 iPhone 模拟器后,转到Hardware -> Version -> 5.1。现在,当您为模拟器选择语言时,您应该拥有从 5.0 文件夹复制过来的所有可用语言。

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

我为此向 Apple 提交了错误报告,一周后没有任何回复。我已将他们定向到此页面以解决问题,但我仍然不确定这首先是如何发生的。

于 2012-07-03T15:07:06.137 回答