前 些天升级到Xcode4.5,现在正在用Xcode4.5+IOS6开发项目,当使用国际化时,遇到了一点问题,之前版本Xcode上新建 Localizable.strings后,添加语言的“+”号不见了,找了半天无果,自己研究了下,后来在Stackoverflow上找到了解决方 案,原来Apple把这个“+”号换地方了。下面来看看如何使用。

首先新建一个名为Localizable.strings的资源文件

完成后选中该文件,在属性选择器中可以看到多了个按钮:

点击这个按钮后,出现国际化语言选择框,但只有一个English的选项:

没 关系,继续,点击Localize按钮,这时只支持英语。Xcode4.5之前的版本会在属性选择器里面有个“+”号用来添加其他语言支持,现在没了,其 实是在别的地方。点击工程根目录,并选择PROJECT,然后选择INFO选项卡,底部我们就看到了Localizations:

点击“+”号选择一门语言添加上,我这里选的是Chinese,ok,完成了,再看Localizable.strings文件,就多了两个子文件,分别支持英文和汉语:

在属性选择器中也看到了English和Chinese:

这样,就完成了在Xcode4.5上国际化的设置和操作,下面来看如何使用。

首先选择Localizable.strings(English)文件,添加如下内容:

"loading" ="Loading...";

然后选择Localizable.strings(Chinese)文件,添加如下内容:

"loading" ="加载中...";

内容注意一定要以分号结尾,否则无法识别。然后是在代码中使用:

NSString *loading = NSLocalizedString(@"loading",@"");

系统会根据当前设备的语言环境来识别使用中文还是英文,到此,在Xcode4.5上国际化的操作就完成了。

如果在命名.strings文件为 Localizable.strings 时,那么你就可以用以下方式调用即可:

1
NSLocalizedString(@"title", nil)     NSLocalizedString(@"name", nil)
  1. 此时这两种方法的用途一样:
  1. NSLog(@"Local string0: %@", NSLocalizedString(@"str0", nil));
  2. NSLog(@"Local string1: %@", NSLocalizedString(@"str1", nil));
  3. NSLog(@"Local string0: %@", NSLocalizedStringFromTable(@"str0", @"Localizable", nil));
  4. NSLog(@"Local string1: %@", NSLocalizedStringFromTable(@"str1", @"Localizable", nil));

如果创建.strings文件是自定义的名字的话,如当前我起名为 Internation.strings,那么调用的方式为:

NSLocalizedStringFromTable(@”title”,@”Internation”, nil)   NSLocalizedStringFromTable(@”name”,@”Internation”, nil)

当自定义名字后,使用NSLocalizedString的方式不起作用,这里要注意;

XCODE 4.5 IOS多语言设置 及NSLocalizedString和NSLocalizedStringFromTable的用法。的更多相关文章

  1. iOS多语言设置

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

  2. ios多语言设置,操作

    多语言在应用程序中一般有两种做法:一.程序中提供给用户自己选择的机会: NSArray *languages = [NSLocale preferredLanguages]; NSString *cu ...

  3. [iOS]C语言技术视频-16-指针变量高级用法(堆栈内存)

    下载地址: 链接: http://pan.baidu.com/s/1qWqWnGo 密码: igjc

  4. [iOS]C语言技术视频-17-指针变量高级用法练习二(使用堆内存完成链表结构的存储)

    下载地址: 链接: http://pan.baidu.com/s/1kTmwIYr 密码: j7xq

  5. [iOS]C语言技术视频-15-指针变量高级用法练习一(函数指针完成动态排序)

    下载地址: 链接: http://pan.baidu.com/s/1o6MOzX4 密码: xzxn

  6. [iOS]C语言技术视频-14-指针变量高级用法(函数指针)

    下载地址: 链接: http://pan.baidu.com/s/1ykyg2 密码: fg5t

  7. 【转】iOS多语言本地化(国际化)设置

    原文网址:http://www.jianshu.com/p/2b7743ae9c90 讨论的iOS应用中的多语言设置,Ok 一般是两种情况: 1.根据当前设备语言自动切换显示 2.在应用中可进行语言设 ...

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

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

  9. iOS应用的语言设置

    首先需要明确两个名词的区别:“当前手机的系统语言”.“应用内部的语言设置” 要解决的问题的情景: 在iOS应用中,有时候会调用系统的一些UI控件,例如: 1.在UIWebView中长按会弹出系统的上下 ...

随机推荐

  1. C#入门篇-4:使用运算符

    using System; using System.Text; using System.Collections; using System.Collections.Generic; using S ...

  2. flask url_for()和redirect的区别

    一. 两者用来重定向的时候,被操作的对象不同. redirect直接是url,就是app.route的路径参数. url_for()是对函数进行操作. from flask import Flask, ...

  3. 聊聊、Java 命令 第二篇

    第一篇类之间没有依赖关系,所以比较简单,这一篇来看看有依赖的类怎么编译和执行. (一)Java 运行 class 有依赖 Person 是一个接口,只有一个 getName 方法.Man 则实现了 P ...

  4. [oldboy-django][6其他]rest framwork有关事

    官网地址: https://github.com/encode/django-rest-framework 英文教程:http://www.django-rest-framework.org/tuto ...

  5. golang 高级

    下面的EmployeeByID函数将根据给定的员工ID返回对应的员工信息结构体的指针.我们可以使用点操作符来访问它里面的成员: func EmployeeByID(id int) *Employee ...

  6. BZOJ 1497 最大获利(最大权闭合图)

    1497: [NOI2006]最大获利 Time Limit: 5 Sec  Memory Limit: 64 MB Submit: 4686  Solved: 2295 [Submit][Statu ...

  7. BZOJ3462 DZY Loves Math II 【多重背包 + 组合数】

    题目 输入格式 第一行,两个正整数 S 和 q,q 表示询问数量. 接下来 q 行,每行一个正整数 n. 输出格式 输出共 q 行,分别为每个询问的答案. 输入样例 30 3 9 29 1000000 ...

  8. Cmake——CMake+SVN或Hg生成版本号

    CMake+SVN或Hg生成版本号 原来的CMake需要用shell脚本生成SVN版本号,再作为cmake参数传入.CMake调用脚本示例: #!/bin/sh # cmake.sh ServerCo ...

  9. nodejs安装教程

    http://www.runoob.com/nodejs/nodejs-install-setup.html nodejs官方下载,之后配置环境path,npm随着nodejs安装,自动安装 查看no ...

  10. bootstrap之常见组件应用1

    bootstrap中,常见的组件有很多,比如按钮,输入框,导航条,巨幕,面板等.这次根据对bootstrap的一系列学习进行总结. 按钮:button <button type="bu ...