gpt4 book ai didi

iOS 应用总是使用(错误的)本地化

转载 作者:行者123 更新时间:2023-12-01 15:58:28 26 4
gpt4 key购买 nike

我有一个设计有英文用户界面的应用程序,另外还有德文用户界面翻译。运行时,会选择正确的用户界面语言。使用基础国际化,Xcode 8.2.1,Swift 3。

然后我将应用程序克隆到一个新应用程序中,主要是剥离部分并重命名应用程序。这是一个 PITA(抱歉),主要问题是 CocoaPods 不再被识别(import 错误)等。经过一些调整后它再次工作,但 UI 总是德语 (!),无论 iOS 设置如何。即使 iPhone 语言是英语,没有其他首选语言,并且地区是美国,应用程序 UI 也会以德语显示。

奇怪的是,应用中使用的字符串(通过 NSLocalizedString())正确选择了英文。

Bundle.main.preferredLocalizations.first 也返回 en

附录:
应用程序显示的系统对话框是英文的。
Info.plist 中的键 CFBundleDevelopmentRegion 设置为 en
Base.lproj/Main.storyboard 中的 UI 文本为英文。

模拟器和真实设备上的行为相同。

我怀疑英语(基本)用户界面在此过程中变得有点不可用。然而,在 Interface Builder 中,英文版本显示为“Main Storyboard > Main Storyboard (Base)”,带有包含翻译的同级文件“Main.strings (German)”。

附录 2:在项目 → 信息 → 本地化中,我可以看到“英语 — 开发语言:本地化 2 个文件”但“德语:本地化 5 个文件”。也许这就是为什么某些资源在运行时无法以英文提供的原因。但我无法确定这些条目指的是哪些文件。
如果我“为本地化导出”,我会得到一个包含这 5(!) 个 header 的 xliff 文件(XY 是项目名称):

  <file original="XY/Base.lproj/LaunchScreen.storyboard" source-language="en" datatype="plaintext" target-language="de">
<file original="XY/Base.lproj/Main.storyboard" source-language="en" datatype="plaintext" target-language="de">
<file original="XY/Info.plist" source-language="en" datatype="plaintext" target-language="de">
<file original="XY/Localizable.strings" source-language="en" datatype="plaintext" target-language="de">
<file original="XY/Main.strings" source-language="en" datatype="plaintext" target-language="de">

有什么提示吗?

最佳答案

尝试在您的 Info.plist 中将 CFBundleAllowMixedLocalizations 设置为 yes

关于iOS 应用总是使用(错误的)本地化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41464277/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com