一、程序名国际化
 
1、首先添加应用对多语言支持的国际化文件
 
点击工程根目录,然后选择PROJECT下的项目,然后选择Info选项卡,在底部可以看到Localizations,点击“+”号,可以添加国际化文件,例如添加一个简体中文Chinese(Simplified),弹出对话框后点击确定,此时在Supporting Files文件组下的InfoPlist.strings下会有两个文件,InfoPlist.strings(English)和InfoPlist.strings(Chinese(Simplified))。
 
2、在相应语言的国际化文件中添加相应的语言内容:
 
例如在英文国际化文件InfoPlist.strings(English)中添加:
CFBundleDisplayName="app name";
在中文国际化文件InfoPlist.strings(Chinese(Simplified))中添加:
CFBundleDisplayName="应用名称";
 
则应用的名称会根据系统当前的语言环境,按照相应的国际化文件中指定的CFBundleDisplayName来显示指定的名称
 

二、内容国际化

 
1、首先添加应用对多语言支持的国际化文件
如果在程序名国际化中已经添加好,则此步骤可以省略
点击工程根目录,然后选择PROJECT下的项目,然后选择Info选项卡,在底部可以看到Localizations,点击“+”号,可以添加国际化文件,例如添加一个简体中文Chinese(Simplified),弹出对话框后点击确定,此时在Supporting Files文件组下的InfoPlist.String下会有两个文件,English和Simplified。
 
2、添加多个语言的国际化文件
New File… -->iOS-->Resource-->Strings File,例如添加文件:Localizable.strings(文件名必须是该名字,否则无法识别)
然后点击文件,在右侧的文件属性列表栏中的,点击Localization按钮,在弹出的对话框中,选择对需要的对应的语言,多个语言的国际化文件与各自的语言关联了。
 
 
3、添加国际化内容
例如在Localizable.strings (English)中添加:
"loading" = "Loading…";
 
在Localizable.strings (Chinese(Simplified))中添加:
"loading" = "加载中…";
 
注意不要漏掉;(分号)
 
3、使用国际化
 
//系统会根据当前设备的语言环境来判断使用英文还是中文
NSString *loading = NSLocalizedString(@"loading",@"");
 

获取系统支持的所有语言

NSUserDefaults *defaults = [ NSUserDefaults standardUserDefaults ];  
//取得iPhone支持的所有语言设置  
NSArray *languages = [defaults objectForKey : @"AppleLanguages" ];  
NSLog ( @"%@" , languages); 
 
获取当前使用语言
NSArray *languages = [NSLocale preferredLanguages];  
NSString *currentLanguage = [languages objectAtIndex:0];  
NSLog ( @"%@" , currentLanguage); 
 
用获取到的当前语言,和支持的语言做字符串对比,就可以知道是那种语言了。
if([currentLanguage isEqualToString:@"en"])  
{  
    NSLog(@"current Language:en");  
}  
 
referened from: http://blog.csdn.net/yuyunliu/article/details/13997589

基于Xcode5的本地化的更多相关文章

  1. spark新能优化之数据本地化

    数据本地化的背景: 数据本地化对于Spark Job性能有着巨大的影响.如果数据以及要计算它的代码是在一起的,那么性能当然会非常高.但是,如果数据和计算它的代码是分开的,那么其中之一必须到另外一方的机 ...

  2. [Abp 源码分析]十三、多语言(本地化)处理

    0.简介 如果你所开发的需要走向世界的话,那么肯定需要针对每一个用户进行不同的本地化处理,有可能你的客户在日本,需要使用日语作为显示文本,也有可能你的客户在美国,需要使用英语作为显示文本.如果你还是一 ...

  3. 【Spark调优】数据本地化与参数调优

    数据本地化对于Spark Job性能有着巨大的影响,如果数据以及要计算它的代码是在一起的,那么性能当然会非常高.但是,如果数据和计算它的代码是分开的,那么其中之一必须到另外一方的机器上.移动代码到其匹 ...

  4. asp.net core 基于 JSON 实现多语言

    asp.net core 基于 JSON 实现多语言 Intro 上次我们提到了,微软默认提供基于资源文件的多语言本地化,个人感觉使用起来不是太方便,没有 json 看起来直观,于是动手造了一个轮子, ...

  5. Module Zero之语言管理

    返回<Module Zero学习目录> 概览介绍 如何开启 管理语言 管理本地化文本 概览介绍 ABP定义了一个健壮的UI本地化系统,它可用于服务端和客户端.它允许在不同的资源中(Reso ...

  6. iOS之在webView中引入本地html,image,js,css文件的方法 - sky//////////////////////////////////////ZZZZZZZZZZZZZZZ

    iOS之在webView中引入本地html,image,js,css文件的方法   2014-12-08 20:00:16CSDN-sky_2016-点击数:10292     项目需求 最近开发的项 ...

  7. ASP.NET5 Beta8可用性

    ASP.NET5 beta8现已上都的NuGet作为一个工具升级到Visual Studio2015!此版本极大地扩展.NET核心对OS X和Linux所支持的范围.您现在可以使用网络,加密和全球化特 ...

  8. SpringMVC4零配置--Web上下文配置【MvcConfig】

    与SpringSecurity的配置类似,spring同样为我们提供了一个实现类WebMvcConfigurationSupport和一个注解@EnableWebMvc以帮助我们减少bean的声明. ...

  9. ASP.NET5 Beta8

    ASP.NET5 Beta8 ASP.NET5 beta8现已上都的NuGet作为一个工具升级到Visual Studio2015!此版本极大地扩展.NET核心对OS X和Linux所支持的范围.您现 ...

随机推荐

  1. PyQt 5控件

    PyQt 5控件包括:按钮.复选框.滑动条.列表框等 复选框QCheckBox QCheckBox复选框控件,它有两个状态:打开和关闭,他是一个带有文本标签(Label)的控件.复选框常用于表示程序中 ...

  2. [置顶] ubuntu版本很老,apt-get update更新失败时(W: Failed to fetch ...)------如何创建新的sources.list

    在说这个解决方案之前,我先说下,目前遇到的问题: 我使用 sudo apt-get update 之后,更新失败.具体原因如下: W: Failed to fetch http://cn.archiv ...

  3. SQL分组查询及聚集函数的使用

    今天要做一个查询统计功能,一开始有点犯难,上午尝试大半天才写出统计sql语句,才发现自己sql分组查询及聚集函数没学好:其实就是group by子句和几个聚集函数,熟练使用统计功能很简单.在此总结下今 ...

  4. mysql的配置(图解)

    一.配置MySQL数据库 1.解压绿色版mysql,如下图 二.安装服务 1.运行cmd(管理员版本,否则没有权限),如下图 2.运行命令mysqld –install安装服务,如下图: 如果不需要m ...

  5. 从一个开发的角度看负载均衡和LVS--FullNat

    从一个开发的角度看负载均衡和LVS 在大规模互联网应用中,负载均衡设备是必不可少的一个节点,源于互联网应用的高并发和大流量的冲击压力,我们通常会在服务端部署多个无状态的应用服务器和若干有状态的存储服务 ...

  6. Django 模型层(2)

    多表操作: 创建模型: 作者模型:把作者的详情放到详情表,包含生日,手机号,家庭住址等信息.作者详情模型和作者模型之间是一对一的关系(one-to-one) 出版商模型:出版商有名称,所在城市以及em ...

  7. leetcode382

    /** * Definition for singly-linked list. * public class ListNode { * public int val; * public ListNo ...

  8. AndroidManifest.xml中声明权限——各种permission含义摘录

    android.permission.EXPAND_STATUS_BAR 允许一个程序扩展收缩在状态栏,android开发网提示应该是一个类似Windows Mobile中的托盘程序 android. ...

  9. Spring boot + Gradle + Eclipse打war包发布总结

    首先感谢两位博主的分享 http://lib.csdn.net/article/git/55444?knId=767 https://my.oschina.net/alexnine/blog/5406 ...

  10. UGUI 自动布局的重叠BUG

    1,父级使用了verticalLayout(注意没有ContentSizeFilter),子级使用了ContentSizeFilter时,点击Apply常常发现,本来布局好的UI突然重叠到了一起,或位 ...