【问题标题】:iOS app localization working on simulator but not on phoneiOS 应用程序本地化在模拟器上工作,但在手机上不工作
【发布时间】:2014-04-27 18:21:17
【问题描述】:

我正在尝试本地化我的应用程序,它似乎可以工作,但它只是在模拟器上工作。这很奇怪,因为我已经尝试过清理项目、重建等,但在模拟器上以西班牙语显示文本,但在我的 iPhone 中,带有开发人员配置文件并以西班牙语配置,它仍然以英语显示字符串。

我也尝试过删除应用程序,“强制”安装新版本的手机,但它似乎不起作用。

有什么想法吗?谢谢。

此处的图片:左侧手机是模拟手机,右侧手机是带有反射器的实体手机。

12

【问题讨论】:

  • 安装开发者证书。
  • 我已经这样做了。在其他情况下,我什至无法在手机上运行构建。还是谢谢。
  • 清洗后,在模拟器中能用吗?听起来像是失踪了;在字符串文件中。另外,我会检查字符串文件是否存在于包中,是否有正确的名称和文件编码。
  • 如果您的项目中有本地化的字符串文件,并且您的模拟器可以正常工作,那么我猜 iPhone 缓存了自上次构建以来未替换的可用本地化。从手机中删除您的应用程序,然后从头开始重新安装。
  • 感谢您的回复,但是是的,在模拟器中就像一个魅力,但在我的手机中没有显示西班牙语字符串。我已经删除了我手机上的应用程序(我之前做过,但我在清洁和构建后再次尝试过)并且无法正常工作。由于它适用于模拟器,它应该适用于“每个设备”,但不适用于我的设备!正如您可能猜到的那样,我只是想确定这一点。不管怎么说,还是要谢谢你。这很奇怪。

标签: ios localization xcode5 simulator


【解决方案1】:

我遇到了同样的问题并找到了可靠的解决方案,尽管我无法确定为什么我的模拟器可以工作,而我的设备却不能。

检查所有本地化文件

只需检查您的所有本地化文件是否都针对设备的语言进行了本地化。他们在 iOS11 上改变了 Locale 的工作方式,并且由于它们,只有在所有本地化文件都存在时,本地化语言才会设置为设备的语言,as commented here。否则,它将默认为基本语言。

我的情况

就我而言,我只使用.strings 文件来本地化我的框架,嵌入到我的应用程序中。但默认情况下,Main.storyboardLaunchScreen.storyboard本地化。 我将设备的语言添加到这个故事板本地化列表中,一切都开始在设备上正常工作。

调查

之后,为了进一步调查,我

  • 将此文件的本地化恢复到以前的状态;
  • 删除所有本地化with this method

无论哪种方式,在解决方案之后,即使发生了这种变化,一切仍然按预期工作。我想第一个设置改变了 project.pbxproj 的东西。

TL'DR

无论如何,尽量让每个本地化文件本地化所有需要的语言,一切都应该没问题。然而,如今 Locale 设置的工作方式有点神秘。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-02-13
    • 2015-03-23
    • 2014-06-18
    • 1970-01-01
    • 1970-01-01
    • 2018-01-29
    相关资源
    最近更新 更多