国际化本地化

国际化

国际化理论知识讲解

 

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

 

posted @ 2018-07-05 09:05  sundaysios  阅读(86)  评论(0编辑  收藏  举报