美文网首页iOS日常
iOS应用内语言切换&程序实现国际化localizabl

iOS应用内语言切换&程序实现国际化localizabl

作者: 诗仙丶李白 | 来源:发表于2016-12-16 18:09 被阅读705次

1、demo代码和iOS应用内语言切换后期补上(2016.12.15)

2、demo代码已加上,因重新写的demo所以会跟截图不一样(2016.12.19)

程序实现国际化

根据手机使用语言加载对应的语言:

1、创建.strings文件,系统默认加载Localizable.strings:

2、设置多语言,这边设置了中文、英文:

3、.strings文件添加语言,点击Localizable.strings右侧勾选:

4、在各自的响应文件中,按照"key" = "value"的格式配置:

Localizable.strings( Chinese(Simplified) )中,对中文进行适配

"登录"="登录";

Localizable.strings( English )中,对英文进行适配

"登录"="Login";

5、使用:

系统提供的调用方法,一般只使用到前面2个下面进行说明

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

//默认调用Localizable.strings

self.title = NSLocalizedString(@"登录",@“这是注释无影响可填写nil”);

//调用自定义myName.strings

self.title = NSLocalizedStringFromTable(@"登录",@"myName",@“这是注释无影响可填写nil”);

设置模拟器语言,Product->Scheme->Edit Scheme...

图片、xib、storyboard同理设置(不同语言图片切换可使用NSBundle)

改变手机语言效果展示:


iOS应用内语言切换

重点:通过刷新界面或者重新设置rootViewController

通过更改bundle来获取不同语言,下面是主要代码

NSString *tmp = [[NSUserDefaults standardUserDefaults]objectForKey:languageKey];

if (tmp.length == 0 || tmp == nil) {

tmp = @"zh-Hans";//默认中文

}

NSBundle *bundle = [NSBundle bundleWithPath:[[NSBundle mainBundle]pathForResource:tmp ofType:@"lproj"]];

if (bundle)

{

return NSLocalizedStringFromTableInBundle(key, table, bundle, @"");

}

点击按钮切换显示效果如下:

demo下载

相关文章

网友评论

  • 沙漠骑士:大神,问一下,假如我要现实英文和越南语两种语言(应用内点击可以实时切换),是不是我写好了英文版的,还需要找对应的越语版还是自动生成(我连续操作了几次都是生成一样的英文版的)
  • 大王叫我来巡山丨:大神 sample该图片在中文跟英文下,您是怎么设置的
    诗仙丶李白: 手机语言切换:sample.png设置Localization属性:sample2.png(English)、sample.png(Simplified)。其实已经是2张图片了。
    应用内切换:其实是2个NSBundle中的2套图片。

本文标题:iOS应用内语言切换&程序实现国际化localizabl

本文链接:https://www.haomeiwen.com/subject/uynnmttx.html