首先需要明确两个名词的区别:“当前手机的系统语言”、“应用内部的语言设置”

要解决的问题的情景:

在iOS应用中,有时候会调用系统的一些UI控件,例如:

1、在UIWebView中长按会弹出系统的上下文菜单。

2、在UIImagePickerController中会使用系统的照相机界面。

3、在编译状态下的UITableViewCell,处于待删除状态时,会有一个系统的删除按钮。

以上这些UI控件中,其显示语言并不是和你当前手机的系统语言一致的,而是根据你的应用内部的语言设置来显示的。结果就是,如果你没有设置恰当的话,你的中文应用可能会出现一些英文的控件文字。

解决方法:

用vim直接打开工程的Info.plist文件,在文件中添加如下内容:

<key>CFBundleLocalizations</key>
<array>
<string>zh_CN</string>
<string>en</string>
</array>

或者使用:

<key>CFBundleDevelopmentRegion</key>
<string>zh_CN</string>

另外关于Info.plist的其他关键字,我汇总了一些网上资源,为了方便查看将它们展示出来,具体使用的话,可以用关键词去百度。

下面文字颜色太过于鲜艳,看着怕中毒的,请移步【http://www.cnblogs.com/cchHers/p/8962827.html

1. Application does not run in background

(键名:UIApplicationExistsOnSuspend)

自从iOS4.0之后,当你在应用程序执行的时候按下Home键,应用程序并不会中断目前的应用,而是放到后台去了。

因此希望使用者在按下Home键之后就要退出当前应用的请勾选这个选项。

2. Application requires iPhone environment

(键名:LSRequiresIPhoneOS)

iOS的家族设备包含了iPhone,iPad,iPod Touch这三种。因此如果你的应用只能在iPhone环境下使用的话,

请勾选这个选项。

3. Application supports iTunes file sharing

(键名:UIFileSharingEnabled)

在iTunes9.1之后的版本增加了一个文件共享的功能,只要打开info.plist里面的这个选项,

然后把你要共享的文件放在Documents目录里面,就可以在iTunes里面的应用程序标签页看到这个文件。

4. Application uses Wi-Fi

(键名:UIRequiresPersistentWiFi)

如果你的应用程序需要使用的WiFi来连接的话,那么你可以开启这个功能。

当使用者在执行这个应用程序的时候未开启WiFI,那么界面上会自动弹出对话框要求开启WiFi。

5. Bundle creator OS Type code

(键名:CFBundleSignature)

CFBundleSignature是一个四个字母长度的字串,用以表示开发者对应用程序的标识。

例如:在一个文字编辑的应用程序,你可以标识为”ttext”。

6. Bundle display name

(键名:CFBundleDisplayName)

应用程序本地化的显示名称,预设值为${PRODUCT_NAME}。这个函数可以在双击Targets后出现的项目设定界面中修改,

找到”Product Name”后修改为你的产品名称就可以了,编译后的.app也会以这个名称命名。

7. Bundle identifier

(键名:CFBundleIdentifier)

用来标示应用程序的唯一ID,通常是以反向的DNS方式命名的,例如:com.myCompany.myApp,

这个名称应该在iTunes Connect里面新增的应用程序ID一致。

8. Bundle name

(键名:CFBundleName)

应用程序的短名称,通常就是你的应用程序名称。

9. Bundle OS Type code

(键名:CFBundlePackageType)

用来标识整个封包的(bundle)的类型。在Mac裡面,一个封包可能是一个档案或目录,

其目的在于将软体使用到的资源包在一起。例如应用程序应标识为APPL。

10. Bundle version

(键名:CFBundleVersion)

用以标识编译版本(Bundle number),你可以使用任何字串格式来表示这个版本。

例如使用一个数字来表示编译次数。

11. Bundle version string,short

(键名:CFBundleShortVersionString)

應用程式的版本,通常是以三個數字來表示版本號,例如:1.0.1。

12. Executable architectures

(键名:LSExcutableArchitectures)

为一个阵列形态的设定值。用以设置硬件设备的架构环境,例如:i386,ppc,ppc64,x86_64

13. Executable file

(键名:CFBundleExecutable)

执行档的名称。

14. Fonts provide by application

(键名:UIAppFonts)

为一个阵列形态的设定值。用来指定应用程序所使用的外部字型。你可以在应用程序内使用自己的字型档,

只要将字型档案加入到专案内,在设定值指定字型档名称就可以在程式码裡面使用到这些字型了。

15. Get Info string

(键名:CFBundleGetInfoString)

用于Mac的Finder上的应用程序的描述。

16. Icon already includes gloss effects

(键名:UIPrerenderedIcon)

指定应用程序的图示是否加上光晕效果,如果不希望加上光晕效果,那麽勾选此选项。

17. Icon file

(键名:CFBundleIconFile)

用来设定应用程序的图示档,如果没有指定的话,则使用预设值Default.png,依照Apple的规定,

这个图是必须是57x57的图形档。

18. Icon files

(键名:CFBundleIconFiles)

由于iPhone与iPad的开发工具以及SDK都是相同的,因此同一个应用程序也可以同时在两个设备上使用,

只不过两著的图是不太一样。这个键值是一个阵列类型的设定值,用来指定iPhone与iPad的应用程序图示,

你只要给两个图片文件名,其中iPhone的图示为57x57 pixel,iPad则为72x72 pixel,

系统会自动依照图片大小判断该图片是使用在哪种设备上。

19. Info dictionary version

(键名:CFBundleInfoDictionaryVersion)

info.plist格式的版本。一般来说,我们不会变动这个数值。

20. Initial interface orientateon

(键名:UIInterfaceOrientation)

指定应用程序打开时的方向。

21. Laumch image

(键名:UILaunchImageFile)

用以指定应用程序启动时的图片文件。

22. Localization native development region

(键名:CFBundleDevelopmentRegion)

应用程序原始的语言版本。

23. Localizations

(键名:CFBundleLocalizations)

用以指定应用程序所支持的语言。

24. Localized resources can be mixed

(键名:CFBundleAllowedMimxedLocalizations)

是否允许应用程序可以取得框架库内的语言文件。

25. Main nib file base name

(键名:NSMainNibFile)

主要的Nib文件名称,预设值为MainWindow。

26. Renders with edge antialisasing

(键名:UIViewEdgeAntialiasing)

设定core animation的图层是否开启抗锯齿功能。

27. Renders with group opacity

(键名:UIViewGroupOpacity)

设定core animation的图层使否继承上一层透明度。

28. Required background modes

(键名:UIBackgroundModes)

设定当应用程序进入后台执行后,哪些动作要继续在背景执行。这个键值是一个阵列类型的设定,

可设定动作包括:audio,locateon,voip。

29. Required device capabilities

(键名:UIRequiredDeviceCapabilities)

设定应用程序需要使用到的硬件,如此可以确定应用程序在该设备上执行时不会发生错误。

30. Status bar is initially hidden

(键名:UIStatusBarHidden)

设定状态栏是否一开始隐藏。

31. Status bar style

(键名:UIStatusBarStyle)

设定状态栏的显示类型。

32. Supported external accessory protocols

(键名:UISupportedExternalAccessoryProtocols)

指定应用程序与外界硬件配件间支持的通讯协定,这个键值是一个阵列设定,可以指定多个通讯协定。

33. Supported interface orientateons

(键名:UISupportedInterfaceOrientations)

设定应用程序所支持的显示模式(肖像模式或风景模式),这个键值是一个阵列,可以支援多个不同的显示模式。

34. Supported interface orientateons

(键名:UIUpgradeOtherBundleIdentifier)

设定应用程序所支持的显示模式(肖像或是风景模式),这个键值可以支援多个不同的显示模式。

iOS应用的语言设置的更多相关文章

  1. iOS 国际化多语言设置 xcode7

    iOS 国际化多语言设置 方式一: 1. 在storyboard中创建好UI,然后在 project 里面  Localizables 栏目里面,添加你需要的语言:默认是Englist; 比如这里我添 ...

  2. iOS国际化多语言设置

    一.创建工程.添加语言

  3. iOS多语言设置

    最近公司做的项目需要向国外推广,因此app需要添加相应的语言设置,为此整理记录下多语言设置的过程.如有不对的地方,欢迎各位大神指正.下面就详细介绍下设置的过程: 1.基本设置 第一步:首先在 项目工程 ...

  4. jquery.datatables中文语言设置

    /* * sErrMode * 错误信息显示方式 * 分别为alert和throw,默认为alert */ "sErrMode": "throw", /* * ...

  5. Linux - 终端语言设置

    查看当前终端用户的语言设置 locale - get locale-specific information : locale |grep LANG 改变当前终端用户的语言设置(临时生效) 中文UTF ...

  6. thinkphp多语言设置

    thinkphp多语言设置有点'高大上',为什么说它有点'高大上'呢?因为本人设置了好久才弄好,而本人之所以弄了好久的原因,竟然是因为'开启语言设置必须得先开启初始化系统的行为类',所以,在这里,因为 ...

  7. yii2多语言设置

    yii2的多语言切换功能 1.页面添加语言切换按钮,如下图: 代码如下: <ul>       <li>           <a href="javascri ...

  8. Wamp Mysql错误消息 语言设置

    Wamp Mysql错误消息 语言设置 http://my.oschina.net/wandershi/blog/264347 打开my.ini   找到 [wampmysqld] port = 33 ...

  9. 李洪强漫谈iOS开发[C语言-043]-判断较早日期

    李洪强漫谈iOS开发[C语言-043]-判断较早日期

随机推荐

  1. ARM相关概念(学习目标、分类、商业模式及半导体公司、嵌入式处理器)

    1.学习ARM的目标 (1)对比X86,8051汇编,从更底层的角度去理解相关知识 (2)为后续嵌入式课程做准备 (3)了解ARM的体系结构,能够看懂ARM汇编 2.ARM分类 (1)按照版本号分类: ...

  2. dp饭卡

    电子科大本部食堂的饭卡有一种很诡异的设计,即在购买之前判断余额.如果购买一个商品之前,卡上的剩余金额大于或等于5元,就一定可以购买成功(即使购买后卡上余额为负),否则无法购买(即使金额足够).所以大家 ...

  3. 计算机二级-C语言-程序设计题-190111记录-两种指针赋值的不同,普通输入输出函数和文件输入输出函数的使用

    //程序设计题:函数fun的功能是:将两位数的正整数a,b合并形成一个整数放在c中.合并的方式是:将a数的十位和个位数依次放在c数的个位和百位上,b数的十位和个位数依次放在c数的十位和千位上.例如:当 ...

  4. 虚拟机中安装centos7后无法上网,使用桥接网络+ssh

    首先是桥接网络解决无法上网的问题: 1保证你Vmware里面的虚拟机是关机状态2右键点击电脑屏幕右下角小电脑图标,选择打开网络与共享中心,然后点击弹出来的窗口左上角的“更改适配器设置”.这里指的是你W ...

  5. 「luogu3380」【模板】二逼平衡树(树套树)

    「luogu3380」[模板]二逼平衡树(树套树) 传送门 我写的树套树--线段树套平衡树. 线段树上的每一个节点都是一棵 \(\text{FHQ Treap}\) ,然后我们就可以根据平衡树的基本操 ...

  6. 批量给文件加一个后缀 .bak , 一条命令去掉文件的后缀 linux

    给当前文件夹下面的所有文件加上一个后缀 == 一条命令解决 ll | awk '{print $9}' | grep -v '^[ ]*$' |sed -r 's#(.*)#mv \1 \1.bak# ...

  7. JavaSE复习~常量、变量、关键字、标识符

    标识符.关键字 标识符:指程序中为了代表一些东西,用户自己定义的名字 关键字:系统预先定义的一些具有特殊意义的标识符, 保留字:系统预先定义,不作为关键字,也不允许用户使用 Java中的关键字: 标识 ...

  8. java中关于类和对象的一些思考

    就这个问题而言 第一种和第二种定义的变量并不是一种形式 前者我们称为原始数据变量 后者我们称为对象变量 这两种变量的创建方式,定义方式,使用方式都有着很多不同 需要引起注意. 在java中,有着基本的 ...

  9. 杭电1003 最大子串(第二次AC) 当作DP的训练吧

    Max Sum Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Sub ...

  10. 【SSM】AppFileUtils

    11 package com.kikyo.sys.utils; import java.io.File; import java.io.IOException; import java.io.Inpu ...