原文网址:http://www.jianshu.com/p/a3a70f0398c4

前言

App的名字设置方式有很多种,如果在App打包上线时不做修改,最终App的名字就是Xcode在建立工程时的名字。好的习惯是工程建立时使用英文(pinyin),那么App也就是“英文”名字了,虽然Xcode也支持直接用中文命名工程(甚至是方法名……),但有时也会因此产生一些不必要的麻烦甚至莫名其妙的bug。
本文主要介绍两种设置App名称的方法,第一种较为简单,第二种涉及简单的版本国际化与本地化(Localization)的问题。笔者对于两个方法的认知也是较为基础的,如有不妥之处,还望斧正。

1.Bundle display name

先看此方法的具体设置步骤:

  • 1.建立工程如下,如果不设置App名,默认的App名就是工程名了。

 

 
  • 2.点击工程-TARGETS-Info,添加“Bundle display name”,string值填写要设置的App名称。

 

 
  • 3.再次编译,效果如下,这个方法就是这么简单了。

     

具体也没太多好说的,检索App名称设置时,大部分答案也是这个,因为比较简单。

这里提一下Bundle name和Bundle display name:

Bundle name - is folder name, where your app (including executable file and all resources) will be stored (Cool Program.app)。建议不要修改bundle name
Bundle display name - is what will be shown on iPhone screen,即当你安装该app到iPhone上显示的name。
注意:Bundle Display name must correspond to Bundle name,即bundle display name和bundle name不能相差太远。例如bundle name设置为 TheApplication, 而 bundle display name设置为“jinpingmei”,则apple会拒绝你的app。

2.InfoPlist.strings->CFBundleDisplayName

这种方法较为繁琐,但是可以支持多语言版本名称的设置,即Localization,也先看具体步骤:

  • 1.新建一个Strings File,命名为InfoPlist.strings(命名必须固定,感谢nyh1006同学纠正)。

 

 

 
  • 2.点击工程-PROJECT-Info-Localizations,添加简体中文支持,如果想支持繁体,也可继续添加,其他语言亦然。

 

 
  • 3.点击之前创建的InfoPlist.strings - 点击右边的“Localizion”- 添加简体中文

 

可以选择支持英文

 

 
  • 4.分别设置中英文名字
    "CFBundleDisplayName" = "中文名字";
    "CFBundleDisplayName" = "EnglishName";
    名字字符串自己填写就好,这里只是示范

 

 
  • 5.编译工程
    分别切换模拟器的设置中的语言至中英文模式,分别查看appiocn下面的名字的变化:

     

     

3.关于默认语言的设置:Localization native development region

Xcode建立工程时,默认语言环境是英文,所以在调用一些系统空间时(例如相机相册),其控制按键的标题都是英文显示的状态,快速的设置方法就是设置Localization native development region的值,具体步骤可以参考此文:Localization native development region 更改语言无效 中的第一段内容。

4. Localizations版本国际化

这个就是为了让APP支持多国语言环境,最好的Demo应该是环信的官方Demo,这里只是介绍一下简单的用法:

  • 1.同添加InfoPlist.strings的做法相同,添加一个Localizable.strings文件(名字固定)
  • 2.对应中英文(其他语言自行添加),分别添加下列语句:

    "alertTitle" = "标题";
    "alertMessage" = "信息";
    "alertOk" = "确认";
    "alertOther" = "其他"; "alertTitle" = "title";
    "alertMessage" = "message";
    "alertOk" = "confirm";
    "alertOther" = "other";

关于上述的key和value,只是示范,可自行定义,调用这些key-value需要利用NSLocalizedString(<#key#>, <#comment#>)系统宏,例如:NSLocalizedString(@"alertTitle", @"这是一句注解,根据情况写"),第一个参数即在strings文件中自定义的key,根据不同的语言环境,系统会自动检测这个key对应的value(中文还是英文),第二个参数是注释,为了便于理解,可以为nil。
实际用例:

  - (void)createAlertViewWithTitle:(NSString *)title message:(NSString *)message delegate:(id)delegate cancel:(NSString *)cancel andOther:(NSString *)other
{
UIAlertView * alert = [[UIAlertView alloc] initWithTitle:title message:message delegate:delegate cancelButtonTitle:cancel otherButtonTitles:other, nil];
[alert show];
}
//调用
[self createAlertViewWithTitle:NSLocalizedString(@"alertTitle", @"这是一句注解,根据情况写") message:NSLocalizedString(@"alertMessage", @"") delegate:nil cancel:NSLocalizedString(@"alertOk", nil) andOther:NSLocalizedString(@"alertOther", nil)];

分别设置系统的语言环境至中英文模式,效果如下:

 

 

上面的写法看起来比习惯上直接写string去设置标题要麻烦许多,但是常用的标题可以进行二次宏定义管理,那样不仅使用方便,还便于统一管理。
看一下环信Demo中的示范:

 

本文只是简单介绍相关的用法,至于详细的说明,可以参考文章最后列出的参考文章,里面有不少不错的详细讲义。

参考文章:
1.Localization native development region 更改语言无效
2.在iOS中如何设置默认语言
3.Xcode 6 关于 iOS App 国际化问题
4.iOS学习之iOS程序名称及内容国际化(本地化)
5.如何修改已完成的工程的app名?
6.如何修改iOS APP的项目名称
7.iOS修改app名称
8.ios xcode如何修改应用的名称
9.请问如何修改app显示的名字?
10.Bundle Name and Bundle Display Name
11.iOS应用国际化教程(2014版)

·转载请声明出处·

文/霖溦(简书作者)
原文链接:http://www.jianshu.com/p/a3a70f0398c4
著作权归作者所有,转载请联系作者获得授权,并标注“简书作者”。

【转】iOS 设置APP的名称(浅述APP版本国际化与本地化)的更多相关文章

  1. 浅述不同版本ios系统有什么特点 ios 1 -ios 12

    版本记录 版本号 时间 V2.0 2019.08.20 前言 到目前为止,ios的版本已经发到了ios11的测试版,今年正式版马上就会出来,ios发布了这么多的版本,到底每个版本都有什么显著的特点?用 ...

  2. 手机app开发:浅谈APP登录方式的优劣

    手机app开发公司亿合科技要是给你一个机会设计一款APP,你会用什么方式做这个APP的登录模块?根据APP的业务模型的不同会有不同的设计方法.如果是偏内容型的APP,需要优先展示内容给用户,当用户需要 ...

  3. iOS: 设置App的国际化和本地化

    原文链接:http://www.cocoachina.com/appstore/20160310/15632.html 前言 App的名字设置方式有很多种,如果在App打包上线时不做修改,最终App的 ...

  4. React native 之设置IOS的图标,名称和启动图(下篇文章会讲到RN的android的相关设置)

    1.首先,app的名称: 如图所示:我的工程名叫BOOk 在BOOk下面的info.plist的文件里设置app的相关信息:比如Bundle name就是设置APP的名称 2.App的图标:(这里注意 ...

  5. iOS - 开发一套代码多个app展示不同图标和名称

    引言 公司项目重构之后,有了相对比较完善的开发体系,首先git分支分为日常.预发.生产三个主要分支,开发阶段都在日常(daily)分支下开相应功能的feature分支,开发完再合并. 我的iOS工程需 ...

  6. iOS设置app应用程序文件共享

    1.iOSapp应用程序文件共享 当我们用itnues连接到设备时,在应用程序栏目下面,文件共享下,点击 对应的程序,即可以在程序右边栏目里面看到应用程序共享的数据, 此时,我们可以通过右下角的 添加 ...

  7. iOS设置图片名称、启动图片、防止TabBar图片和文字渲染

    设置App的名称 设置App的启动图片 需要注意点是,App要杀掉重启才能显示出启动图片 2种方法防止图片被渲染 1. vc02.tabBarItem.image = [UIImage imageNa ...

  8. iOS 设置app语言中文,比如 copy中文,拍照按钮cancel 中文

    iOS 设置app语言中文,比如 copy中文,拍照按钮cancel 中文 一:如何设置项目中文环境 targets--->Locatization native development reg ...

  9. iOS获取手机型号、iOS获取当前app的名称和版本号

    NSDictionary *infoDictionary = [[NSBundle mainBundle] infoDictionary]; CFShow(infoDictionary); // ap ...

随机推荐

  1. 测试数据准备中用到到csv写文件知识点

    对于大数据测试中,有时需要自己去准备一些数据,用csvreader来写一个比较大的文件就比较方便,下面我就直接贴示例代码了: package com.acxm.amysu.test;import co ...

  2. Hadoop MapReduce编程 API入门系列之wordcount版本4(八)

    这篇博客,给大家,体会不一样的版本编程. 是将map.combiner.shuffle.reduce等分开放一个.java里.则需要实现Tool. 代码 package zhouls.bigdata. ...

  3. map使用

    // map使用 1 #include <iostream> #include "insertVal.h" #include "sort.h" us ...

  4. X264编码实现

    H264 H264的官方测试源码,由德国hhi研究所负责开发.特点:实现了264所有的特性,由于是官方的测试源码,所以学术研究的算法都是在JM基础上实现并和JM进行比较.但其程序结构冗长,只考虑引入各 ...

  5. 第六课: - GroupBy函数

    第 6 课   让我们看一看 groupby 函数. In [1]: # Import libraries import pandas as pd import sys In [2]: print(' ...

  6. 脚本编写 nginx 启动

    #!bin/bash#功能:本脚本编写完成后,放置在/etc/init.d/目录下,就可以被 Linux 系统自动识别到该脚本.#如果本脚本命名为/etc/init.d/nginx,则 service ...

  7. 何为JQuery对象?

  8. IOS与h5交互记录

    博主之前做过移动端app嵌入网页,与Android和IOS有交互,一直没有时间分享过程.这里不多说Android交互啦-很简单,详细了解IOS与h5的交互吧. IOS不同语法和h5的交互所建立的JSB ...

  9. PHP 使用 Kafka 安装拾遗

    最近项目开发中需要使用 Kafka 消息队列.经过检索,PHP下面有通用的两种方式来调用 Kafka . php-rdkafka 扩展 以 PHP 扩展的形式进行使用是非常高效的.另外,该项目也提供了 ...

  10. PHP开发过程中数组汇总 [ 持续更新系列 ]

    开发过程中经常会使用到数组函数,故特地总结出来,自己熟悉,同时供大家参考!(实例部分会抽空尽快完成) 一.目录 array_merge(); 合并数组 array_keys(); array_filt ...