【问题标题】:How to localize launch screen如何本地化启动屏幕
【发布时间】:2015-07-16 17:43:39
【问题描述】:

我已经本地化了LaunchScreen.xib,通过它LaunchScreen 分为两部分。

LaunchScreen.xib(English)LaunchScreen.xib(Portugese),但是当我将设备语言更改为葡萄牙语时,LaunchScreen.xib(English) 也会被加载。

【问题讨论】:

  • 什么语言?平台?给我们看一些代码?
  • 在目标 C 中,抱歉没有代码,我是通过 Xcode 现有功能完成的。

标签: localization


【解决方案1】:

答案是:您无法本地化启动屏幕

Human Interface Guideline中,他们指出:

避免在启动屏幕上包含文字。因为启动屏幕是静态的,所以任何显示的文本都不会被本地化。

文本无法本地化。

图片呢?

我尝试过本地化,截至 2017 年 4 月,我得出结论认为本地化不起作用。本地化的故事板将被忽略。

【讨论】:

  • 存在一些技巧,但最好的答案应该是“你不应该本地化你的启动屏幕”
  • 你能指出哪些黑客行为吗?
  • 我确认启动屏幕上的图像本地化在 Xcode v11.4 上仍然不起作用...
【解决方案2】:
  1. 从项目的“添加新文件”菜单中为每种语言添加多个“LaunchScreen.storyboard”。 (让我们说西班牙语 - Launch Screen_sp)

  2. 将身份检查器菜单中的“Info.plist”本地化为您要使用的每种语言的 InfoPlist.strings (Base) 和 InfoPlist.strings(Spanish)。

  3. 现在作为示例:在 InfoPlist.strings 中(西班牙语) 添加以下键:

    "UILaunchStoryboardName" = "LaunchScreen_sp";

你就完成了。不要忘记在项目的“常规”设置中将“LaunchScreen”设置为启动屏幕文件。

【讨论】:

  • 太棒了!谢谢。
  • 人们让这个工作吗?我试过了,但它似乎没有根据设备上的语言设置自动切换。
  • @PICyourBrain 这种方法有一个限制,它在第一次安装时需要动态启动屏幕,但如果你之后更改语言,它就不起作用。
  • 这实际上并没有实现本地化的 LaunchScreen。如果您明确修改 plist 以使用 LaunchScreen_sp,您是在说“始终使用西班牙语启动屏幕”而不是“在西班牙语国家/地区使用西班牙语启动屏幕”。我相信启动屏幕在引擎盖下被缓存为 PNG。该功能最初在 WWDC 上呈现的方式暗示了这一点:“使用 iOS 8,您现在可以提供一个 Interface Builder 文档,并在运行时让操作系统为您生成所有必要的启动图像。”因此,我认为本地化是不可能的。
  • 它对我有用。该应用程序将显示 Launch_Screen_sp 然后显示 Launch_Screen_base。 (Xcode 12.2 和 iOS 14.2)
【解决方案3】:

正如用户:Samewize 指出的那样,User Interface Guidelines 建议不要在启动屏幕上本地化文本。

避免在启动屏幕上包含文字。因为启动屏幕是 static,任何显示的文本都不会被本地化。

为了添加,截至 2019 年 9 月,即使对资产目录 (WWDC 2019 Video) 进行了本地化,我也无法本地化显示在启动屏幕上的图像。我假设启动屏幕是静态生成的,没有考虑本地化。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-06-14
    • 2012-08-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多