`
119568242
  • 浏览: 420353 次
  • 性别: Icon_minigender_1
  • 来自: 深圳/湛江
社区版块
存档分类
最新评论

[ios]多语言支持

    博客分类:
  • ios
 
阅读更多

转自:http://blog.csdn.net/songrotek/article/details/8766641

 

要使应用多语言化在Xcode中实现起来其实是相当容易的。对于大多数的应用,多语言化主要在于文字的多语言化,其他的诸如图形,界面的多语言化一般的应用并不会涉及。当然,这些在Xcode中都可以实现。下面主要介绍一下文字多语言化的方法。

 

Step 1:为应用添加多语言版本


这个很简单,在project中info下有localizations,点击+添加所需要的版本,这时会弹出对话框显示要添加语言版本的内容。


这里面包含了storyboard,infoPlist.strings。如果要实现产品名称的多语言化,应包含infoPlist.strings。同时也可以看到我们可以直接在storyboard中实现比如按钮,图片的多语言。对于Localizable.strings,是针对文字的多语言,在下面会讲到。这个要手动添加。

 

Step 2:编程中的变化

要实现多语言,在编程中就不能直接用NSString 了,而是使用

NSLocalizedString(key, comment)

介绍一下基本用法:key是对应显示的NSString,comment则为注释。基本的原理就是有不同版本的Localizable.strings,相同的注释在不同语言版本中key不一样,这样显示的时候不同的语言界面显示的语言就不一样。

 

Step 3:获取Localizable.strings

打开Terminal终端:

然后将地址换到工程所在文件夹。基本方法是输入“cd ”然后将工程文件夹拉进其窗口。

然后输入 genstrings ./LocalizeMe/*.m 这里LocalizeMe是我这里例子的项目名称。要改成你项目的名称。 回车,然后打开工程文件夹,你就可以看到Localizable.strings文件,将其拉进Xcode项目中。


打开文件可以看到如下类似内容,Localizable.strings 包含你的项目中所有使用NSLocalizedString的内容。


这里的注释就是comment,而下面的“Three”=“Three”,左边的字符串就是Key。

 

Step 4:编辑Localizable.strings

如果你这时候还没有针对Localizable.strings这个文件进行多语言化也没关系。如下图:

点击这个文件,然后打开属性,可以看到右边有Localization选项,比如我要添加中文版,那就在Chinese上打钩,这样这个文件就会自动添加一个Chinese版本。


接下来就是点击这个Chinese版本进行编辑:


把每个对应的key的内容改成中文的就OK了。

现在运行程序,如果手机是中文的,那么显示的就是中文内容,如果是英文的,那就是英文内容。

 

Step 5:应用名称多语言化

这个很简单,在infoPlist.strings中输入

CFBundleDisplayName = "应用名";

就可以了。

 

 

=======================

自己的补充:

NSBundle.h下有

#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)]

 

4个方法

(key, tbl, bundle, val, comment)

1.key 所使用的字符串对应的key

2.tbl 所使用的字符串所在的string文件名。 ex:abc.strings的话 就输入abc

3.bundle 资源strings文件所在的文件目录。

4.val 默认字符。

5.comment 注释

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics