ios - 本地化具有附加后缀的应用程序显示名称

标签 ios swift localization translation plist

在将本地化添加到 InfoStrings.plist 时,我无法让应用程序显示名称包含附加后缀。

我添加了不同的schemeUser-Defined 属性。所以在我的 info.plist 中,我的 CFBundleDisplayName 中有 App Name $(BUNDLE_DISPLAY_NAME_SUFFIX)。当在开发方案上运行时,它将在我的应用程序名称上附加一个 -S,在我创建的发布方案上运​​行正常的应用程序名称。一切正常。

但是,当我尝试翻译应用程序名称时,它不再起作用了。所以在我的 infoPlist.strings 中,我尝试了以下操作:

"CFBundleDisplayName" = "App Name ";
"CFBundleDisplayName" = "App Name $(BUNDLE_DISPLAY_NAME_SUFFIX)";

当我在开发方案上运行时,两者都不再附加 -S。有谁知道我怎么还能那样做?比如如何让 $(Bundle_DISPLAY_NAME_SUFFIX)infoPlist.strings 中被读取。

更具体地说,如何在 InfoPlist.strings 中包含预处理器?

最佳答案

我找到了 answer to your question in another thread, here ,但上面说你需要一张纸条。

如何创建不同的后缀(不是要求的) 以下是如何根据您的方案设置应用程序的不同显示名称。您可以通过设置不同的配置 来做到这一点。转到项目设置 -> 选择项目(不是目标) -> Info 选项卡 -> 然后创建任意数量的配置。可能一个用于Production,一个用于Debug,一个用于Beta 发布。

然后选择您的 Target -> Build settings 选项卡 -> 在搜索中输入 display。在 User defined 下,您可以创建自己的变量,例如将其命名为BUNDLE_DISPLAY_NAME_SUFFIX。为 ProductionDebugBeta 赋予不同的值。

打开您的 Info.plist 文件,在 Bundle display name 下,您可能会看到 MyApp,附加字符串 ${BUNDLE_DISPLAY_NAME_SUFFIX } 所以它生成 MyApp${BUNDLE_DISPLAY_NAME_SUFFIX}

最后配置您的方案以使用正确的配置。您可能希望将 Production 用于 Archive,将 Debug 用于 Debug

Here is an image of the User defined variable

关于ios - 本地化具有附加后缀的应用程序显示名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39138849/

相关文章:

ios - "Launch"并放下一个 UIView

ios - 为什么 `NSObject() == NSObject()` 是假的,而 `ObjectIdentifier(NSObject()) == ObjectIdentifier(NSObject())` 是真的?

ios - ViewController 偶尔会错过响应链?

ios - 调用 performSeguewithIdentifier 不会调用 shouldperformseguewithIdentifier

xcode - 我可以用于 UILabel 的 swift 基本字体是什么

ios - 如何从单个文本文件中提取不同语言的日期?

ios - 如何在 Swift UI 中实现本地化

ios - Objective-C 向未分配的对象发送消息

c# - 如何本地化数据库驱动的网站

iOS 和 Swift : CLLocationManagerDelegate not updating location coordinates beyond the first location