一、程序名国际化
 
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. 【UVA】12504 Updating a Dictionary(STL)

    题目 题目     分析 第一次用stringstream,真TMD的好用     代码 #include <bits/stdc++.h> using namespace std; int ...

  2. URL传参时中文参数乱码的解决方法

    URL传参时,中文参数乱码的解决: 今天在工作中遇到了这样的一个问题,在页面之间跳转时,我将中文的参数放入到url中,使用location进行跳转传参,但是发现接收到的参数值是乱码.我的代码是这样写的 ...

  3. HTTP头的Expires与Cache-control区别

    2010年3月24日 a18ccms 发表评论 阅读评论 今天在群里聊天.说道了Expires.这里来说明下这两个的区别吧. 1.概念 Cache-control 用于控制HTTP缓存(在HTTP/1 ...

  4. K老在拿图灵奖时的发言:Computer Programming as an Art

    很多话说得很透彻,把一些觉比较精彩的摘抄一下. ... It seems to me that if the authors I studied were writing today, they wo ...

  5. K2 Blackpearl中从数据库直接删除流程实例之K2ServerLog表

    转:http://www.cnblogs.com/dannyli/archive/2012/11/29/2794845.html /********************************** ...

  6. java 控制台 输入字符串

    import java.util.Scanner; //导入输入类 public static void main(String[] args) {      //创建输入对象   Scanner s ...

  7. “数据提供程序或其他服务返回 E_FAIL 状态”

    “数据提供程序或其他服务返回 E_FAIL 状态” 的问题 ADO 连接SQL SERVER

  8. mybatis 传入集合参数遍历 查询总结

    出自:http://blog.csdn.net/u013628152/article/details/51184641 1. findByIds(List ids) 如果参数的类型是List, 则在使 ...

  9. ruby 功力修炼

    建表 ActiveRecord::Schema.define do drop_table :hosts if table_exists? :hosts create_table :hosts do | ...

  10. malloc()与calloc区别 (转)

    另外说明: 1.分配内存空间函数malloc 调用形式: (类型说明符*) malloc (size) 功能:在内存的动态存储区中分配一块长度为"size" 字节的连续区域.函数的 ...