iOS:应用程序多语言/本地化解决方案

说明 时间
首次发布 2017年01月02日
最近更新 2020年04月24日
一、本地化应用程序名称
  • 1、先添加需要的语言


  • 2、像应用名字、获取权限等字符串的映射,必须放到这里面



    如:

    //InfoPlist.strings(English)
    CFBundleDisplayName = "BeautySwift";
    NSCameraUsageDescription = "Please take a photo to set the avatar";
    NSPhotoLibraryUsageDescription = "Please allow access to the album to set the avatar";
    NSLocationAlwaysUsageDescription = "Please allow access to the location to set the shipping address";
    NSLocationWhenInUseUsageDescription = "Please allow access to the location to set the shipping address";
    NSPhotoLibraryAddUsageDescription = "Please allow access to the album to save the image";
    
    //InfoPlist.strings(Chinese(Simplified))
    CFBundleDisplayName = "雨燕";
    NSCameraUsageDescription = "请允许拍照以便设置头像";
    NSPhotoLibraryUsageDescription = "请允许访问相册以便设置头像";
    NSLocationAlwaysUsageDescription = "请允许访问位置以便设置收货地址";
    NSLocationWhenInUseUsageDescription = "请允许访问位置以便设置收货地址";
    NSPhotoLibraryAddUsageDescription = "请允许访问相册便于保存图片";
    

二、本地化字符串
  • 1、类似【本地化应用程序名称】第一步,创建这个文件,命名为Localizable(一定是这个文件名否则后面调用会有一些区别)就生成一个Localizable.strings文件;

  • 2、类似“本地化应用程序名称”第二步,在文件中加入:

    //Localizable.strings(english)
    home_title = "Home Title";
    
    //Localizable.strings(chinese)
    home_title = "首页标题";
    
  • 3、在代码中使用NSLocalizedString(<#key#>, <#comment#>)来读取本地化字符串,代码如下:

    self.navigationItem.title = NSLocalizedString(@"home_title", comment: "")
    

    注意:如果你的strings文件名字不是Localizable而是自定义的话,如 Lynn.strings,那么你就得使用NSLocalizedStringFromTable()来读取本地化字符串:

    NSLocalizedStringFromTable(@"home_title", @"Lynn", nil) ; 
    

三、本地化图片
  • 方法一:和本地化字符串方法类似,把中英文图片的名字分别存到中英文对应的strings文件,然后通过NSLocalizedString)来获取图片。

  • 方法二:在 Assets.xcassets 里选中我们要本地化的图片,然后在 Attributes Inspector 下面的Localization的选项中,勾选所有的语言,然后添加对应语言的图片。具体如下图所示:


四、本地化其他文件

本地化其他文件和本地化图片第二种方法类似,先在 Localization 中添加语言,然后把对应版本拷贝到 en.lprojzh-Hans.lproj 文件夹中,再引用就行了。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容