【问题标题】:Missing languages on iOS simulatoriOS模拟器上缺少语言
【发布时间】:2012-06-18 23:12:35
【问题描述】:

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

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

有谁知道这些语言是在哪里定义的,以及为什么模拟器没有所有可用选项? Google 和 Apple Dev 论坛无济于事。

截图如下:

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

【问题讨论】:

  • +1 用于研究。我认为您应该向 Apple 提交错误报告。如果他们故意删除了 5.1 中的语言(为了节省空间或其他),他们至少应该知道他们被遗漏了,如果他们被错误地删除了,他们应该得到通知。
  • 我与其他一些使用 5.1 的开发人员进行了核对,他们中的一些人拥有所有的语言,但似乎他们中的一些人也缺少某些语言。我不确定这个问题是否与版本有关,但可能只是不同版本的全新安装解决了这个问题。老实说,我只是好奇苹果在哪里指定了模拟器应该显示哪些语言。
  • 我仍然会提交该错误报告。如果这不是错误,他们希望能告诉您如何解决您的问题。当他们有你时,你可以回到这里并发布答案。
  • 我已经提交了一个错误报告,我们会看看他们怎么说。

标签: ios localization ios-simulator


【解决方案1】:

我认为您的模拟器安装出现了问题,而不是 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>

【讨论】:

  • 他们没有删除它们,我有同事使用 5.1 模拟器并且拥有所有语言,但其他人缺少某些语言。我可以尝试重新安装,但我现在很好奇它们是如何为多人丢失的。
  • @NicFoster 我在我的答案中添加了一些关于语言列表所在位置的信息。因此,如果此列表缺少那些缺少语言的开发人员的条目,这可能是一个线索。
  • 感谢您提供此信息,看起来 GlobalPreferences.plist 文件很好,看起来与您的相同,但是在 Preferences.framework 目录中,我只有 6 种语言的 .lproj 文件夹一直在看。当我查看 5.0 模拟器文件夹时,我拥有所有 .lproj 目录。我将 5.0 语言的 .lproj 目录复制到 5.1 的位置并解决了问题。
【解决方案2】:

根据发布的用户名为 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 -&gt; Version -&gt; 5.1。现在,当您为模拟器选择语言时,您应该拥有从 5.0 文件夹复制过来的所有可用语言。

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-05-08
    • 1970-01-01
    • 2012-05-17
    • 2013-12-23
    • 1970-01-01
    • 2022-12-16
    • 2015-12-07
    • 1970-01-01
    相关资源
    最近更新 更多