ios 国际化
来源:互联网 发布:游戏算法书籍 编辑:程序博客网 时间:2024/06/06 01:14
1,在项目info ->Localizations ->Language 添加语言
2,创建 String File
iOS 的国际化。
分为两种,
(1).一种是应用程序名称国际化,这个是我们生成应用的时候自带的名字叫InfoPlist.strings
里面填写的是应用程序的名称如:
CFBundleDisplayName=”LocalizetionTest”;
CFBundleDisplayName =“国际化例子测试”;
(2).资源内容国际化
名字为Localizable,一般用NSLocalizedString进行国际化,如果用其它名字的话,国际化的时候要用NSLocalizedStringFromTable进行国际化,里面填写的内容
英语部分
"buttonName" = "button for test";"Name" = "zhangshan"; "age"="15"; "Sex" = "male";
简体中文部分
"buttonName" = "测试按钮";"Name"="张三";"Age"="15";"Sex"="男";
3,String File右侧 的Localize…,选择语言
4,项目中生成支持不同语言的 .strings文件,然后在不同文件中添加 “key” = “value”;结构类型数据
跟随系统语言类型
NSString *str = [NSString stringWithFormat:@"name:%@,age:%@,sex:%@",NSLocalizedString(@"Name", nil), NSLocalizedString(@"Age", nil), NSLocalizedString(@"Sex", nil)];
说到使用,就要了解下NSLocalizedString是什么
#define NSLocalizedString(key, comment) \ [[NSBundle mainBundle] localizedStringForKey:(key) value:@"" table:nil] #define NSLocalizedStringFromTable(key, tbl, comment) \ [[NSBundle mainBundle] localizedStringForKey:(key) value:@"" table:(tbl)] #define NSLocalizedStringFromTableInBundle(key, tbl, bundle, comment) \ [bundle localizedStringForKey:(key) value:@"" table:(tbl)] #define NSLocalizedStringWithDefaultValue(key, tbl, bundle, val, comment) \ [bundle localizedStringForKey:(key) value:(val) table:(tbl)]
其实就是宏,而宏定义的又是在资源文件中寻找对应的资源文件;在这里有个坑点,当你使用第一种实现多语言本地化,意味着你的多语言文件名字必须是Localizable,否则你的多语言实现,到最后显示的却只能是key;
(1).第一种适合于,让应用跟随系统的语言版本进行切换,而用户却不能手动进行切换;
(2). 我们要实现的是既可以跟随系统,又可以用户自己切换,就不能使用这一个了,那就要使用第二种: NSLocalizedStringFromTable(key, tbl, comment);
tbl这个参数,就是我们自己命名的多语言文件名称;
因此我们暂且这样使用(这样直接使用,会跟随系统语言):
NSLocalizedStringFromTable(@"showTxt", @"ASLocalized", nil);
参数说明: 第一个参数,是多语言中的key, 第二个参数,是多语言文件的名字,第三个是对key的注释说明,一般为nil就可以了;
对于这样使用NSLocalizedString(“showTxt”, nil),切记多语言文件名必须是Localizable, 这里我们就不可以使用这种了;
- iOS国际化
- ios国际化
- iOS 国际化
- IOS国际化
- iOS 国际化
- iOS 国际化
- IOS国际化
- ios国际化
- iOS国际化
- IOS国际化
- IOS国际化
- IOS国际化
- iOS国际化
- IOS国际化
- iOS国际化
- iOS 国际化
- iOS 国际化
- IOS国际化
- vi 永久保存命令 vimrc
- zookeeper分布式协调服务
- UVA 1610 Party Games
- Bootstrap的3种form
- Hbase性能优化笔记
- ios 国际化
- Maven中央仓库镜像地址 mavenrepositories 1、OSChina Central Java代码 收藏代码 <mirror> <id>CN</id>
- MAC OS装win10
- 卸载vim 安装vim
- repo1.22解决搭建Android报错:fatal: Cannot get https://gerrit.googlesource.com/git-repo/clone.bundle
- Codeforces Round #428 (Div. 2):D. Winter is here(组合数公式)
- 获取ip,城市,id
- C++——NOIP2015提高组day2 t1——跳石头
- 关于做Notification的一些经验