[原]Delphi For iOS开发指南(18):让Delphi XE4开发的iOS应用显示为中文名称

  • 主题发起人 DelphiTeacher的专栏
  • 开始时间
D

DelphiTeacher的专栏

Unregistered / Unconfirmed
GUEST, unregistred user!
Delphi For iOS开发指南(18):让Delphi XE4开发的iOS应用显示为中文名称



有好些个D友问我,如何让Delphi XE4开发的iOS应用显示为中文名称,

我在想,难道EMBXE4iOS开发上没有很好的支持中文么?



就像我们在XE4运行IOS应用程序的时候,

XE4会通过PAServer将编译好的APP传输到Mac下的这个目录里,

目录名是根据你Windows的用户名+Profile名来取的,这个目录名就不支持中文,

如果你的Windows用户名是中文,那么可能会出现Deploy失败的情况,也就是不能将编译好的APP传输到Mac下,所以你的Windows用户名应该要不包含中文的。



如果应用名称不能支持中文,那就完蛋了,一些用户一看,这个名称是英文的,以为是国外的软件,

应用里面的其他东西应该也都是英文的,自己肯定不会用,那就不去下载了。



有点罗嗦了,接下来我讲一下更改Delphi XE4开发的iOS应用显示为中文名称的方法,很简单,就一下子,看下图:

osWgkYwOA-vl7RMlEWDEmGxffhI2dzdq.png



在工程管理视图右键,弹出的菜单中选中“Options”,在弹出的Options窗体的“Version Info”页中,右下角的列表中第三个项,“CFBundleDisplayName”就是我们要设置的项,这个值原先是$(ModuleName),表示是工程的名称,像我图中的这个工程,是“Project2”,那么它在iOS中显示的就是“Project2”,

我在这里把它改成了“Delphi老师”,然后运行一下,它就会在模拟器中显示成中文了,如下图:

osWgkYwOA-vl7RMlEWDEmGxffhI2dzdq.png







顺带讲一下其他这些选项表示什么意思:



CFBundleName: CFBundleName指定了该束的简称。简称应该小于16个字符并且适合在菜单和“关于”中显示。通过把它加入到适当的.lproj子文件夹下的InfoPlist.strings文件中,该关键字可以被本地化。如果您本地化了该关键字,那您也应该提供一个CFBundleDisplayName关键字的本地化版本。



CFBundleDisplayName:CFBundleDisplayName关键字指定了一个字符串值来标识束的显示名称。Finder和其他用户界面组件会把它显示给用户。这个名称可以与文件系统中的束名不同。通过把关键字加入适当的.lproj子目录中的InfoPlist.strings文件,就可以实现该关键字的本地化。如果您需要本地化这个关键字,您还应该提供一个CFBundleName关键字的本地化版本。



CFBundleDevelopmentRegion: CFBundleDevelopmentRegion关键字指定了一个字符串值来标识束的地区。通常对应于作者的母语。如果不能找到用户首选的地区或语言的资源,系统最后会使用该值。



CFBundleIdentifier:CFBundleIdentifier关键字指定了束的一个唯一的标识字符串。该标识符采用了类似Java包的命名方式,例如com.apple.myapp。该束标识符可以在运行时定位束。预置系统使用这个字符串来唯一地标识每个应用程序。



CFBundleInfoDictionaryVersion:CFBundleInfoDictionaryVersion关键字指定了属性列表结构的当前版本号。该关键字的存在使得可以支持Info.plist格式将来的版本。在您建立一个束时,Project Builder会自动产生该关键字。



CFBundleVersion:CFBundleVersion关键字指定了一个字符串用来标识创建号。该关键字的值通常随每一次创建而改变,并且会被显示在Cocoa"关于"对话框中的扩号里。

为了指定一个发布版的束的版本信息,可以使用CFBundleShortVersionString关键字。参见“CFBundleShortVersionString”。



CFBundlePackageType:CFBundlePackageType关键字指定了束的类型,类似于Mac OS 9的文件类型代码。该关键字的值包含一个四个字母长的代码。应用程序的代码是‘APPL’;框架的代码是‘FMWK’;可装载束的代码是‘BND’。如果您需要,您也可以为可装载束选择其他特殊的类型代码。



CFBundleSignature:CFBundleSignature关键字指定了束的创建者,类似于Mac OS 9中的文件创建者代码。该关键字的值包含四字母长的代码,用来确定每一个束。



LSRequiresIPhoneOS:因此如果你的应用只能在iPhone环境下使用的话,请设置为True



CFBundleAllowMixedLocalizations:我们只需要在项目的 Info.plist文件中将这个键的值设置为 true。顾名思义,这个键允许混合形式的本地化。也就是说,当你设置了这个键之后,不管你的应用是否支持当前设备的语言环境,iOS系统都会尽可能都根据当前的语言进行本地化。



CFBundleExecutable:CFBundleExecutable标识了束的可执行主文件的名称。对于一个应用程序来说,就是该应用程序的可执行文件。对于一个可加载束,它是一个可以被束动态加载的二进制文件。对于一个框架,它是一个共享库。Project Builder会自动把该关键字加入到合适项目的Info.plist文件中。

对于框架,考虑到启动效率的原因,可执行文件名需要和框架名同名。该可执行文件名不应该包含可用于多种平台的扩展名。

注意,您必须在束的Info.plist文件中包含一个有效的CFBundleExecutable关键字。即使当用户重命名应用程序或束的目录时,Mac OS X也可以使用这个关键字来定位可执行文件和共享库。



UIDeviceFamily:支持的设备



CFBundleResourceSpecification:未知。。。。













XCode中开发iOS应用程序的时候也需要设置中文显示名称,是在工程的info.plist文件中进行设置的,

osWgkYwOA-vl7RMlEWDEmGxffhI2dzdq.png





































欢迎加入OrangeUI For FMX 技术支持QQ群10900297





















作者:DelphiTeacher 发表于2013/8/13 16:04:58 原文链接
阅读:2064 评论:2 查看评论

查看更多...
 
最后编辑:
顶部