补充一点遗漏的Xcode配置。

1.偏好设置。Xcode的菜单栏Xcode -> Preference

Fonts & Colors可以自定义编码区和控制台的背景、字体。

Text Editing:Line numbers显示行数,Code folding ribbon使代码可以折叠,page guide at column提示每行代码设定的最大宽度

2.scheme配置。菜单栏Product -> Scheme -> Edit Scheme

Archive:Archive Name可以自定义,最后将在Organizer中体现

3.Plugin安装。如果想增加插件,建议使用Alcatraz。https://github.com/alcatraz/Alcatraz

根据github上的提示安装以后,重新启动Xcode,出现提示框,选择Load Bundle。选择菜单栏Window -> Package Manager,进行插件安装

推荐一些插件:

VVDocumenter-Xcode:在方法或者属性上一行输入“///”会自动生成注释模板

KSImageNamed:在imageNamed方法名出现之后会自动提示项目中所包含的图片名称和缩略图

SCXcodeSwitchExpander:输入switch(x),修改x之后会自动把x所有的可选值全部列出来,自动补全

FKConsole:在Xcode控制台将Unicode编码decode为中文的插件,开关在菜单栏Plugins按钮下

KZLinkedConsole:通过log反向找到源代码位置

RegX:选中需要对齐的代码,选择菜单栏Edit->RegX->Macros/ObjC Property/Variables/Assignments四种对齐方式。快捷键分别是Command+F1/Command+F2/Command+F3/Command+F4

再推荐一个装逼利器:

ActivatePowerMode:敲代码时屏幕抖动火花迸溅效果,可以在菜单栏Plugins子菜单下控制效果

常用的插件就推荐这些了,再多,Xcode可能会出现性能问题甚至崩溃。

如果安装插件太多导致Xcode性能降低,需要在Package Manager中卸载不必要的插件。

本地化

主要涉及Info.plist文件和字符串文件的本地化。

本地化Info.plist文件

1.在Xcode文件目录中,右键Supporting Files文件夹 -> New File -> Resource -> Strings File

命名必须为“Info.plist”

点击右侧“Localize...”按钮,在弹出框中,先选择语言“English”,确定,即生成英语对应的本地化文件,可在Finder中看到en.lproj文件夹存在InfoPlist.strings

选中工程文件的Project栏的base -> Info

点击Localizations栏的“+”按钮,选中简体中文(hans)

忽略两个storyboard文件,只勾选InfoPlist.strings,点击Finish完成Info.plist文件本地化配置工作。

点击InfoPlist.strings(English),添加代码:CFBundleDisplayName = "Base";

点击InfoPlist.strings(Simplified),添加代码:CFBundleDisplayName = "基础";

以上代码就完成了对应用显示名称的本地化操作。

如果之前在模拟器上运行过本项目(可以先注释代码运行一次),应用名应该一直为小写的“base”,重新运行项目,即可在模拟器上看到不同系统语言对应的不同应用名称。

字符串的本地化

1.如上述第一步一样,在Supporting Files目录下创建Strings File文件,不过这次命名必须为“Localizable”,其他操作步骤一样,只不过这次生成英语本地化文件后,就可以看到有简体中文本地化文件待选。

2.配置完成后,在Localizable.strings(English)文件中添加类似的代码:"hello world" = "hello world!";

Localizable.strings(Simplified)中添加类似代码:"hello world" = "你好,世界!";

3.在AppDelegate.m文件的didFinishLaunchingWithOptions方法中添加如下代码:NSLog(@"%@", NSLocalizedString(@"hello world", @"hello world"));

4.在模拟器上运行,切换系统语言,可以看到Xcode控制台的输出的不同内容

说明:

1.NSLocalizedString宏定义可以自动识别名为Localizable的Strings File文件,所以使用该宏定义,必须注意命名

2.使用非Localizable名称的Strings File文件,读取时候,需要用NSLocalizedStringFromTable(key, tbl, comment)宏定义,可以指定自定义名称的Strings File文件(tbl参数)

 使用此方法,可以通过代码控制显示特定语言的本地化内容,而不受当前系统语言的限制

3.comment参数无实际作用,只用于描述

以上,就是本地化操作的记录。

App开发流程之Xcode配置和本地化的更多相关文章

  1. App开发流程之iOS开发证书拾遗

    很久没有总结,回头看了一下过期的账号,记录的内容少之又少.最近有一些时间,想好好总结记录一下. 由于很久没有记录,想写的东西很多又很杂,想了一下,一篇一篇罗列知识点和经验,还不如写一个系列,记录一个应 ...

  2. 使用ionic与cordova(phonegap)进行轻量级app开发前的环境配置与打包安卓apk过程记录

     前言 有人说:"如果你恨一个人,就让ta去接触cordova(phonegap)",这是因为这里面的水很深,坑很多,真让人不是一般地发狂.或许有幸运的人儿基本顺顺利利就配置完环境 ...

  3. 敏捷开发流程之Scrum:3个角色、5个会议、12原则

    本文主要从Scrum的定义和目的.敏捷宣言.Scrum中的人员角色.Scrum开发流程.敏捷的12原则等几方面帮助大家理解Scrum敏捷开发的全过程. 一.Scrum的定义和目的 Scrum是一个用于 ...

  4. SharePoint Server 2013开发之旅(三):为SharePoint Server配置App开发、部署、管理环境

    上一篇我讲解了如何利用微软提供的Office 365开发人员网站,进行在线的SharePoint App开发,这当然是不错的一个选择,因为你可以快速地进行开发和调试.(仅仅针对App开发而言).但是, ...

  5. 安卓app开发-01-开发工具及环境配置

    安卓app开发-01-开发工具及环境配置 请大家根据推荐指数和自己的意愿选择 使用 Android Studio 1.可以使用 Android Studio 下载地址:http://www.andro ...

  6. activiti自定义流程之Spring整合activiti-modeler5.16实例(六):启动流程

    注:(1)环境搭建:activiti自定义流程之Spring整合activiti-modeler5.16实例(一):环境搭建        (2)创建流程模型:activiti自定义流程之Spring ...

  7. App开发Native.js入门指南

    概述 Native.js技术,简称NJS,是一种将手机操作系统的原生对象转义,映射为JS对象,在JS里编写原生代码的技术.如果说Node.js把js扩展到服务器世界,那么Native.js则把js扩展 ...

  8. 苹果版App开发心得

    这几个月中做的工作包括网站开发.安卓App开发和苹果App开发,前两者用的语言都是我熟悉的java,故苹果知识的学习,较安卓知识的学习,多出「语言基础」一块,其他方面差不多. 之前发过安卓那篇,如感兴 ...

  9. 5+ App开发入门指南

    HTML5 Plus应用概述 HTML5 Plus移动App,简称5+App,是一种基于HTML.JS.CSS编写的运行于手机端的App,这种App可以通过扩展的JS API任意调用手机的原生能力,实 ...

随机推荐

  1. VS2012下安装NuGet

    关于NuGet的两篇文章:MSDN上的使用 NuGet 管理项目库,和博客园dudu的程序员,用NuGet管理好你的包包. VS2012下安装NuGet 在工具菜单下选择“扩展和更新”. 选择“联机” ...

  2. 关于Windows Phone平台音乐播放的的技术调研

    希望看到这篇文章的开发者能提供你们的想法,让我们一起来探讨一款wp平台上面一款能流畅播放.能流畅拖拽进入条.只发一次请求就可以缓存的最好的播放器.希望大家能对我下面遇到的问题作出回答. 现在出了Win ...

  3. overflow:hidden的另一层含义

    overflow:hidden这个CSS样式是大家常用到的CSS样式,但是大多数人对这个样式的理解仅仅局限于隐藏溢出,而对于清除浮动这个含义不是 很了解.一提到清除浮动,我们就会想到另外一个CSS样式 ...

  4. Microsoft Visual Studio 2013 VSTS单元测试指南

    安装vs2013时并未安装VSTS工具包,所以在工具栏:工具->拓展和更新   进行下载安装 vs13已经用了两年了,相比于之前老师推荐的vc6.0感觉要强出很多,刚上手时感觉比较困难,在使用一 ...

  5. [python]初探socket

    1.什么是socket? Socket中文译作:套接字,但是大家一般约定俗称的都用:socket.我想在解释socket是什么之前,先说它是用来干嘛的:socket是来建立'通信'的基础,建立连接,传 ...

  6. JAVA魔法堂:读取.properties配置文件

    一.前言 Java工程中想log4j.数据库连接等配置信息一般都写在.properties文件中,那么如何读取这些配置信息呢?下面把相关方法记录下来供以后查阅. 二..properties文件 配置文 ...

  7. CART(分类回归树)原理和实现

    前面我们了解了决策树和adaboost的决策树墩的原理和实现,在adaboost我们看到,用简单的决策树墩的效果也很不错,但是对于更多特征的样本来说,可能需要很多数量的决策树墩 或许我们可以考虑使用更 ...

  8. Scrum项目1.0

    1) N (Need 需求) 面向小学生 2) A (Approach 做法) 3) B (Benefit  好处) 让小学生以游戏的方式进行学习 4) C (Competitors 竞争) 减少练习 ...

  9. 准备.Net转前端开发-WPF界面框架那些事,搭建基础框架

    题外话 最近都没怎么写博客,主要是最近在看WPF方面的书<wpf-4-unleashed.pdf>,挑了比较重要的几个章节学习了下WPF基础技术.另外,也把这本书推荐给目前正在从事WPF开 ...

  10. java内部类的使用

    内部类不是很好理解,但说白了其实也就是一个类中还包含着另外一个类 如同一个人是由大脑.肢体.器官等身体结果组成,而内部类相当于其中的某个器官之一,例如心脏:它也有自己的属性和行为(血液.跳动) 显然, ...