这里有什么最佳做法呢?
但是,实际上,我并没有看到缺点:无论如何,我的FooBar.app的名称都将被本地化,无论是英语还是其他任何语言,在Finder中,应用程序看起来像“Foo Bar”,在“关于”菜单中也是如此。
所以,在我的所有编码中都是FooBar,在用户处到处都是Foo Bar。
如何本地化应用程序的名称:
从新创建的Xcode Cocoa应用程序“FooBar”开始。最初,所有地方都是“FooBar”:Xcode变量${PRODUCT_NAME}和${EXECUTABLE_NAME},以及您在Finder中构建的应用程序的名称。
现在,我们只想要更改出现在Finder中的名称。
正确地说,这不多不少仅仅是本地化。
在应用程序的Info.plist文件中,添加键“CFBundleDisplayName”,并使其值与已存在的键“CFBundleName”的值相同。
CFBundleName的初始值为“${PRODUCT_NAME}”,一个Xcode变量,您可以将其复制并粘贴。或者,您可以将这些键中的每一个硬编码到某个文本字符串中,但是如果您这样做,则还必须更新应用程序“Build Settings”窗格中的“Product Name”值。
然后,您需要进行实际的本地化。
如果尚不存在(可能已经存在),请创建并将“InfoPlist.strings”本地化文件添加到项目中,即(假设英语是“主”语言)位于并复制到应用程序的资源文件夹中的子文件夹“en.lproj”中的文件。
在此文件中,按照以下格式添加与Info.plist文件中出现的两个键相同的内容,并将它们赋予您希望应用程序在Finder中显示的值:
/* Localized versions of Info.plist keys */
CFBundleName = "Foo & Bar";
CFBundleDisplayName = "Foo & Bar";
完成了!现在从UNIX的角度来看,该应用程序是“FooBar.app”,但在Finder中,它显示为“Foo&Bar”。
我停止在我的Xcode项目名称中使用空格。
有些情况(*)需要将你的模块导入到单元测试模块中,因此在Swift中,你最终会写成:
import Foo Bar