一、让你的项目支持多语言开发(项目配置)
-
1、配置工程
点击PROJECT,在Localizations中点击添加你所需要支持的语言
2457121-94d3055d23915538.png -
2、新建String File
2457121-b99d3bbf24c7b604.png -
3.本地化String
选中 test.string文件,在文件的右侧点击Localize,然后选中你所需要支持的语言
File
2457121-ffbdc01c91ae2f78.png
2457121-46c487b8d53b63ec.png
完成以上三步,你的项目已经可以支持中文,英文,日文三种语言了,下面就是加载语言文件了,显示多语言
二、加载test.string文件,实现多语言显示 - 1、常用的方法和宏简单说明
//这是加载string文件的appi方法
a.- (NSString *)localizedStringForKey:(NSString *)key value:(nullable NSString *)value table:(nullable NSString *)tableName
key: string文件中定义的key
value: 如果string文件中,通过key取不到对应的value,就默认加载传进去的value
tableName: 文件名称
--------------------------------------------------------------------------------------
b./*这是苹果已经定义好的一个宏
#define NSLocalizedStringFromTable(key, tbl, comment) \
[NSBundle.mainBundle localizedStringForKey:(key) value:@"" table:(tbl)]
*/
NSLocalizedStringFromTable(key, tbl, comment)
--------------------------------------------------------------------------------------
c./*
这也是苹果已经定义好的一个宏
#define NSLocalizedString(key, comment) \
[NSBundle.mainBundle localizedStringForKey:(key) value:@"" table:nil]
说明:文件名为nil时,系统会默认从项目中加载Localizable.strings文件(当然你需要手动新建一个,并命名为Localizable)
*/
NSLocalizedString(key, comment)
- 2、点击test.string展开,分别书写key不同语言下的value
/*
test.strings(Chininese)
*/
"cancell" = "取消";
/*
test.strings(English)
*/
//key: value
"cancell" = "cancell";
2457121-a7138d05342efa30-2.png
@implementation ViewController
- (void)viewDidLoad {
[super viewDidLoad];
//1.加载多语言文件,本地化字符串
NSString *title=[[NSBundle mainBundle] localizedStringForKey:@"cancell" value:@"cancell" table:@"test"];
//2.显示文字
UILabel *lable=[[UILabel alloc]init];
lable.text=title;
lable.frame=CGRectMake(100, 100, 100, 40);
lable.backgroundColor=[UIColor redColor];
[self.view addSubview:lable];
}
重新运行下,项目就会根据当前系统的语言加载对应的语言文字
以上只有重新运行或者杀死程序后才可以改变语言,并不能手动切换
应用内切换语言请参考:
http://www.jianshu.com/p/627da5a9992c
网友评论