iOS应用国际化NSLocalizedString的使用

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

  • 一、app名称随系统切换
    1.创建InfoPlist.strings文件,右侧选项
    iOS应用国际化NSLocalizedString的使用_第1张图片
    Snip20170408_5.png

    之后选择中英文(Base无需选择)
    iOS应用国际化NSLocalizedString的使用_第2张图片
    Snip20170408_6.png

    在English中CFBundleDisplayName="FlowerField"; FlowerField是app的英文名
    在Chinese中CFBundleDisplayName="花田小憩";花田小憩是app的中文名
    创建之后的效果图:
    Snip20170409_7.png

系统中文效果:


iOS应用国际化NSLocalizedString的使用_第3张图片
Snip20170409_2.png

系统英文效果:


Snip20170409_3.png
  • 二、内部应用文字随系统切换
    1.创建Localizable.strings文件,如下图:(Base文件可以不用创建)
    Snip20170409_8.png

    2.在strings文件中添加要替换的文字
    English中
    Snip20170409_9.png

    Chinese中
    Snip20170409_10.png

    3.代码中实现
    在标签控制器UITabBarController中(此次演示用的是Swift)
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](http://upload-images.jianshu.io/upload_images/2675547-22b944aba11bffec.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
中文状态下:
![Snip20170409_5.png](http://upload-images.jianshu.io/upload_images/2675547-020e48d6c81ba717.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
* 三、注意点strings文件名称一定要写对,因为Xcode就是根据文件名称来寻找的,写错了就找不到了。

你可能感兴趣的:(iOS应用国际化NSLocalizedString的使用)