iOS开发——语言国际化

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/IT_liuchengli/article/details/79045209

iOS APP 语言国际化分为两部分,一是 app 名称语言国际化,二是APP 内容国际化。

两者可以都做国际化或者只做一个。两个部分的国际化基本相同。

以一款开源的天气app 为验证项目,基本步骤如下:

基本配置Xcode配置部分:

1,先创建Strings File (若不先创建此文件而进行第二步,第二步添加不上本地化语言类型)

  按下键盘上的command + N,选择Strings File(iOS->Resource->Strings File)

  命名必须为:InfoPlist  (默会自动添加文件类型后缀.strings)

   注意:target 勾线项目(默认会勾)


2,添加需要国际化/本地化的语言

如下图,选中project->Info->Localizations,然后点击"+",全部勾选resource File

我添加好了五中语言:简体中文、英语、法语、意大利语、日语


3,选中第一步创建的InfoPlist.strings, Xcode右侧,如下图,载入国际化语言文件,勾选语言


  本地化后的结果,如下两图



InfoPlist.strings文件下包含了这五种语言的文件。原理:程序启动时,会根据操作系统设置的语言,自动加载InfoPlist.strings文件下对应的语言文件,然后显示应用程序的名字。

(一)app名称国际化。

在上面的五种语言.strings内分别添加对应的语言文字,格式如下,参考英语和日语截图

// Localizable App Name是App在英语环境环境下显示的名称
CFBundleDisplayName =  "对应语言的app名称" ;

(二)代码中字符串的本地化

   代码界面的语言国际化和上面的步骤基本一致,只是文件名不一样。

 1, 和应用名称本地化一样,首先需要command + N,选择iOS -> Resource -> Strings File,

   但文件名必须为:Localizable (默会自动添加文件类型后缀.strings)



2,参考开始的“基本配置Xcode配置部分”第3步添加国际化语言。


3,然后我们只需要在Localizable.strings下对应的语言文件中,分别以Key-Value的形式,为代码中每一个需要本地化的字符串赋值,如下图参考:



4,在代码中使用,定义一个宏。


// NSLocalizedString(key, comment) 本质
// NSlocalizeString 第一个参数是内容,根据第一个参数去对应语言的文件中取对应的字符串,第二个参数将会转化为字符串文件里的注释,可以传nil,也可以传空字符串@""。
#define NSLocalizedString(key, comment) [[NSBundle mainBundle] localizedStringForKey:(key) value:@"" table:nil]

猜你喜欢

转载自blog.csdn.net/IT_liuchengli/article/details/79045209
今日推荐