博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
iOS国际化(多语言设置)
阅读量:6495 次
发布时间:2019-06-24

本文共 1608 字,大约阅读时间需要 5 分钟。

最近公司的项目有可能向国外推广,我们的app也要添加多语言设置,之前从没有接触过这方面的东西,感觉会很麻烦吧。上网查了一下,还行,主要是把语言转换一下就可以了。下面就详细介绍一下设置过程:

1,基本设置

第一步:先在Project的info里添加项目所要支持的语言

如上点击“+”号会弹出所提供的语言,选择所需要的语言就可以了

第二步:创建Localizable.strings(注意:文件名最好不要随意更改,以免带来不必要的麻烦)作为多语言对应的词典,存储多重语言。

(1)点击Localizable.strings文件右侧的Localiza...

(2)继续在Localization里添加所要支持的语言,将其勾选上

第三步,此时,我们的前期工作基本就完成了,可以在Localizable.strings里随意设置所需要支持的语言了。

假设,我们设置了简体中文

"testName" = "多语言设置成功啦";

第四步,设置完对应的语言后,我们就可以去使用它啦

   NSString *nameStr= NSLocalizedString(@"testName", nil);  //获取配置语言文字

    UIButton *btn = [[UIButton alloc]initWithFrame:CGRectMake(10, 100, 300, 100)];

    [btn setBackgroundColor:[UIColor cyanColor]];

    [btn setTitle:nameStr forState:UIControlStateNormal];

    [self.view addSubview:btn];

注意:

如果创建.strings文件是自定义的名字的话,如Internation.strings,那么调用的方式为:

NSLocalizedStringFromTable(@”title”,@”Internation”, nil)

NSLocalizedStringFromTable(@”name”,@”Internation”, nil)

当自定义名字后,使用NSLocalizedString的方式不起作用,这里要特别注意,注意,注意!!!(重要的说三遍);

 

2,应用名设置

(1)应用名设置与多语言基本设置的步骤大致是一样的,只是创建的.strings文件的名字要为InfoPlist.strings。

(2)同样以简体中文为例,"CFBundleDisplayName" = "慧眼"。

(3)在info.plist文件中设置Bundle display name为CFBundleDisplayName即可。

 

3,StoryBoard设置

storyboard同Localizable.strings类似。当我们创建Localizable.strings对应的语言文件时,系统自动生成了storyboard对应的系统文件。假如我们在storyboard拖入了一个UILabel,我们想要直接在这里设置label的文本,这里就要用到了UILabel的Object ID了。

在对应的语言文件中添加如下格式的设置:

/* Class = "UILabel"; text = "测试"; ObjectID = "PXo-pJ-2Ml"; */

"PXo-pJ-2Ml.text" = "测试";

 

4,判断系统语言

    NSArray *languages = [NSLocale preferredLanguages];

    NSString *currentLanguage = [languages objectAtIndex:0];

    NSLog(@"%@", currentLanguage);

转载于:https://www.cnblogs.com/whongs/p/6727610.html

你可能感兴趣的文章
字符串变量小议
查看>>
232. Implement Queue using Stacks
查看>>
Poj(1469),二分图最大匹配
查看>>
和菜鸟一起学linux之V4L2摄像头应用流程【转】
查看>>
spin_lock、spin_lock_irq、spin_lock_irqsave区别【转】
查看>>
删除 mac 垃圾桶内清除不掉的文件
查看>>
【响应式编程的思维艺术】 (5)Angular中Rxjs的应用示例
查看>>
/bin/bash^M: bad interpreter: No such file or dire
查看>>
python xml rpc
查看>>
Java设置以及获取JavaBean私有属性进阶
查看>>
db2表结构导出导入,数据库备份
查看>>
策略模式
查看>>
第二 周作业总结
查看>>
OrderOnline——项目概述
查看>>
POJ-2739(Water)
查看>>
【转】第三节 UNIX文件系统结构
查看>>
为什么sql里面not in后面的子查询如果有记录为NULL的,主查询就查不到记录
查看>>
Angular7里面实现 debounce search
查看>>
Linux 内核链表
查看>>
git学习------>Git 分支管理最佳实践
查看>>