iOS之功能细节

iOS应用国际化NSLocalizedString的使用

2017-04-09  本文已影响0人  一个不太努力的代码搬运工

当你的应用需要适配多语言时,需要将app名称和内部文字改成其他语言,现在主要是中英文转换,废话不多说,下面开始实战。

系统中文效果:


Snip20170409_2.png

系统英文效果:


Snip20170409_3.png
override func viewDidLoad() {
        super.viewDidLoad()
        view.backgroundColor = UIColor.white
        setup()
 }```

func setup () {
//设置TabBar的tintColor
tabBar.tintColor = UIColor.black
addViewController(HomeTableViewController(), title: NSLocalizedString("tab_theme", comment: ""))
addViewController(MallsTableViewController(), title: NSLocalizedString("tab_malls", comment: ""))
addViewController(profile, title: NSLocalizedString("tab_profile", comment: ""))
}

//添加子控制器
private func addViewController(_ childController:UIViewController,title:String) {
    let nav = UINavigationController(rootViewController: childController)
    addChildViewController(nav)
    childController.tabBarItem.title = title
    childController.tabBarItem.image = UIImage(named: "tb_\(childViewControllers.count - 1)" )
    childController.tabBarItem.selectedImage = UIImage(named: "tb_\(childViewControllers.count - 1)" + "_selected")

}

其中需要使用的方法是```NSLocalizedString(key, comment)  ```
其中key是Localizable.strings这个文件中读取对应的key-value值,comment可以为nil,空的字符串,也可以是对key的注释。
这样就设置完成了,系统英文状态下:
![Snip20170409_4.png](https://img.haomeiwen.com/i2675547/22b944aba11bffec.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
中文状态下:
![Snip20170409_5.png](https://img.haomeiwen.com/i2675547/020e48d6c81ba717.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
* 三、注意点strings文件名称一定要写对,因为Xcode就是根据文件名称来寻找的,写错了就找不到了。
上一篇 下一篇

猜你喜欢

热点阅读