ios应用的多语言支持主要包括应用名称的多语言、字符串的多语言、sotrybard多语言等等
要添加多语言,首先需要在设置中添加用增加的语言:PROJECT-Info-Localizations点击“+”,选择要增加的语言。如图所示:
应用名称的多语言
- File-New-File-iOS-Resource-Strings File新建一个String File文件,命名为InfoPlist.strings
-
File Inspector-Localization中点击你要添加的多语言,如图所示:
- 此时第一步新建的InfoPlist.strings文件左边出现了一个三角形,点击后会出现多个文件,每一个文件对应一种语言。在对应的文件中加入:
"CFBundleDisplayName" = "对应语言的应用名称"
storyboard的多语言
- 选中storyboard文件,File Inspector-Localization中点击你要添加的多语言
- 此时storyboard文件左边出现一个三角形,点击后出现多个文件,每一个文件对应一种语言。
- 以Main.strings(Chinese (Simplified))为例:
文件中列出storyboard中已有的一些控件的名字,按如下形式:
/* Class = "UIButton"; normalTitle = "send"; ObjectID = "UeC-WJ-dc6" */
"UeC-WJ-dc6.normalTitle" = "send"
其中,ObjectID可以在storyboard中点击相应的控件,在Identity inspector中可以找到,将send改为button即可
"UeC-WJ-dc6.normalTitle" = "发送"
字符串的多语言
- File-New-File-iOS-Resource-Strings File新建一个String File文件,命名为Localizable.strings
- File Inspector-Localization中点击你要添加的多语言
例如代码中要使用"time"这个字符串, - 在Localizable.strings(Chinese (Simplified))中,添加如下代码:
"time" = "时间";
- 在Localizable.strings(English)中,添加如下代码:
"time" = "time";
- 然后在代码中在要使用"time"字符串的地方,用如下代码代替即可。
NSLocalizedString(@"time", nil)
备注:NSLocalizedString(key, comment)
-
key
:进行本地化的唯一字符串标识 -
comment
:对字符串的注释,可为nil
-
iOS/android多语言支持
iOS与android同时开发时,android的多语言文件为values-xx
,其中xx代表国家的简写,例如bg
表示保加利亚语,此时应该找iOS中对应的Localizable.strings(Bulgarian)文件
目前项目中用到的多语言
- Spanish 西班牙 es
- Estonian 爱沙尼亚 et
- Finnish 芬兰 fi
- French 法国 fr
- Hindi 印度语 hi
- Croatian 克罗地亚 hr
- Hungarian 匈牙利 hu
- Indonesian 印度尼西亚 id
- Italian 意大利 it
- Lithuanian 立陶宛 lt
- Latvian 拉脱维亚 lv
- Macedonian 马其顿 mk
- Malay 马来西亚 ms
- Norway 挪威 nb
- Dutch 荷兰 nl
- Polish 波兰 pl
- Portuguese 葡萄牙 pt
- Russian 俄国 ru
- Slovak 斯洛伐克 sk
- Slovenian 斯洛文尼亚 sl
- Serbian 塞尔维亚 sr
- Swedish 瑞典 sv
- Thai 泰国 th
- Turkish 土耳其 tr
- Ukrainian 乌克兰 uk
- Uzbek 乌兹别克 uz
- Vietnamese 越南 vi
- Bulgarian 保加利亚 bg
- Czech 捷克 cs
- United States 美国 en-rUS
- Danish 丹麦 da
- German 德国 de
- Albanian 阿尔巴尼亚 sq