本地化带有后缀的应用程序显示名称

7

在将本地化添加到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中包含预处理器?

1个回答

3
我在另一个主题中找到了关于你问题的答案,但它说你需要一个脚本。 如何创建不同的后缀(并非被要求的内容) 以下是如何根据您的方案设置应用程序的不同显示名称。您可以通过设置不同的配置来实现此目的。转到项目设置->选择项目(而非目标)-> 信息选项卡->然后创建您想要的多个配置。可能有一个用于生产调试,和一个用于测试版发布。
然后选择您的目标 -> 构建设置选项卡 -> 在搜索框中输入 display。在用户定义下,您可以创建自己的变量,称其为例如BUNDLE_DISPLAY_NAME_SUFFIX。为生产调试测试版赋予不同的值。
打开您的Info.plist文件,在Bundle display name下,您可能会看到MyApp,将字符串${BUNDLE_DISPLAY_NAME_SUFFIX}附加到其后,使其成为MyApp${BUNDLE_DISPLAY_NAME_SUFFIX}
最后配置您的方案以使用正确的配置。您可能想要将生产用于归档,并将调试用于调试这里是用户定义变量的图像

嗨@Sajjon,我已经可以做到这一点了。但我的问题是如何本地化它并仍然保持能够执行它的能力。因为在infoplist.strings中,${Bundle_Display}不起作用。 - Zac Kwan
但是我有三种不同的语言,它仍然可以工作。 - Sajjon
应用程序名称需要使用不同的语言吗? - Zac Kwan
或者您的意思是您希望显示名称取决于配置和语言。在我的情况下,我有三个配置和三种语言,所以在这种情况下,您是否希望有九个不同的显示名称?:S - Sajjon
这只是for循环中的最后一部分,我不确定如何在Ruby中实现,但我猜应该不难。如果你成功了,请告诉我 :) - Sajjon
显示剩余7条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接