国际化本地化
国际化
国际化理论知识讲解
iOS和OSX支持40种语言的本地化,Xcode无疑为这一过程提供了强有力的支持。苹果将这一多语言适配过程细分为Internationalization(国际化)和Localization(本地化)两个阶段。
在将你的APP适配各种语言本地化之前,你得先让你的APP富有国际范儿,也就是说国际化是一条通往本地化的必经之路。在国际化阶段,你需要让你的APP与语言和区域独立。
苹果的框架已经帮我们把不同语言的数据分离开,这更有助于我们管理这些资源,包括图片、声音、视频、文档、用户界面文字(甚至代码中编写的用户界面文字),它们会被建立在同一个bundle中。
注意新建的StringFile文件 文件名推荐使用Localizable.strings
这样当你使用NSLocalizedString时,系统会自动在目录下的StringFile文件(Localizable.strings)中找到当前设备所使用的语言,比如说是English的,那么他就会按照"key" = "key...";的格式将其他文件中的所有使用NSLocalizedString方法的的"key"在你运行的时候显示成"key...". 举个栗子:
self.title = @"key";
那么这个标题在任何语言的系统中都会显示出key。
但是你要是使用:
self.title = NSLocalizedString(@"key",@"this is key");
那么这个标题在英文版本中就会显示:key...
中文版本中就会显示:主视图
(@"key",@"this is key");前边那个是Key,对应strings文件中的Key,后边那个this is key是备注,写不写都行,可以为nil。
注意使用模拟器来运行程序的时候
需要修改Localization native development region来设置语言
一、国际化
//准备工作
1.选中工程-->Project-->info-->Localizable 点击+添加支持的语言
//工程国际化
2.Newfile -->Resource-->String File--命名为(InfoPlist.strings)-->在里面设置key和Value的值,用""引号,末尾;
//内容国际化
3.Newfile -->Resource-->String File--命名为(Localizable.strings)-->在里面设置key和Value的值,用""引号,末尾;
//程序中使用
/**
* 实现多语言,在字符串赋值的时候需要使用这个方法NSLocalizedString(key, comment);
*
* @param 对应字符串的key值
* @param 对翻译的注释
*
*/
二、多Target建立
// 建立
1.可以选择新建(+或者File——new-target)一个 或 复制(command+D)一个
// 修改
2.改target名称,双击修改
3.改info-plist名称,双击修改
4.改模拟器名称,选择Manage Schemes,双击修改,关闭
5.Build Setting里面{
①.更改infoPlist连接,要与对应的infoPlist同名
②.更改ProductName
③.设置标志宏-DTAG-(-D开头)
Other C Flags
Other C++ Flags
Other Waring Flags
}
// 程序使用
1. 可通过资源勾选target选择链接与否
2. 代码里面设置
#ifdef TAG_T2
image = [UIImage imageNamed:@"02.jpg"];
#endif