• iOS14开发- 国际化


    介绍

    如果 App 需要给不同语言的用户使用,需要进行国际化处理。如果 App 需要进行国际化,在开发之初就需要考虑,在开发时统一使用某一种语言(建议英文),待开发完成以后再进行国际化处理。

    配置国际化语言

    在进行国际化之前,必须要添加需要国际化的语言,选中国际化的项目 —> PROJECT —> Info —> Localizations,点击+添加需要的国际化语言(默认已经存在英文)。

    App名国际化

    1. 新建一个Strings File,必须命名为InfoPlist.strings
    2. 在 Xcode 的右侧文件检查器中找到Localization,点击Localize...,然后勾选配置的国际化语言。
    3. InfoPlist.strings左侧多了一个箭头,点击箭头可以展开,Strings File里面都是形如Key = Value的键值对,操作时一定要保证多个国际化文件中Key的一致性。
    4. 设置 App 名字的 Key 为"CFBundleName"
    // 英文名
    "CFBundleName" = "I18N";复制代码
    // 中文名
    "CFBundleName" = "国际化";复制代码

    文本国际化

    1. 新建一个Strings File,必须命名为Localizable.strings
    2. 在 Xcode 的右侧文件检查器中找到Localization,点击Localize...,然后勾选配置的国际化语言。
    3. Localizable.strings的各个国际化版本中写上需要国际化文本的Key = Value对。
    "title" = "Info";
    "message" = "This is a Dialog";
    "btnTitle" = "Cancel";复制代码
    "title" = "温馨提示";
    "message" = "这是一个对话框";
    "btnTitle" = "取消";复制代码
    1. 在需要的地方使用NSLocalizedString(key, comment)读取,其中第一个参数就是上面的key
    NSLocalizedString("title", comment: "")
    NSLocalizedString("message", comment: "")
    NSLocalizedString("btnTitle", comment: "")复制代码

    图片国际化

    图片和文本国际化的使用方式一样,首先在Localizable.strings中进行图片名称的设置,然后通过NSLocalizedString(key, comment)来读取图片名,再根据不同的图片名获取不同的图片。

    let imageName = NSLocalizedString("img", comment: "")
    let image = UIImage(named: imageName)
    imageView.image = image复制代码

    storyboard/xib国际化

    1. 二者使用方式几乎一样,以 storyboard 为例。
    2. 在配置国际化语言时,会弹出选择需要国际化的 storyboard 的对话框,选择以后对应的 storyboard 左侧就会多一个箭头,点击箭头可以展开,里面有storyboard名.stringsStrings File
    3. 选中storyboard名.strings,在 Xcode 的右侧文件检查器中找到Localization,点击Localize...
    4. storyboard名.strings文件对应位置填写相应的国际化信息。
    /* Class = "UIButton"; normalTitle = "Button"; ObjectID = "bRH-7c-qiE"; */
    "bRH-7c-qiE.normalTitle" = "Button";
    
    /* Class = "UILabel"; text = "UserName"; ObjectID = "dp4-Bf-56s"; */
    "dp4-Bf-56s.text" = "UserName";
    
    /* Class = "UITextField"; placeholder = "Please input your name"; ObjectID = "fen-IE-aUn"; */
    "fen-IE-aUn.placeholder" = "Please input your name";复制代码
    /* Class = "UIButton"; normalTitle = "Button"; ObjectID = "bRH-7c-qiE"; */
    "bRH-7c-qiE.normalTitle" = "登录";
    
    /* Class = "UILabel"; text = "UserName"; ObjectID = "dp4-Bf-56s"; */
    "dp4-Bf-56s.text" = "用户名";
    
    /* Class = "UITextField"; placeholder = "Please input your name"; ObjectID = "fen-IE-aUn"; */
    "fen-IE-aUn.placeholder" = "请输入用户名";复制代码

    注意:如果在弹出的对话框中没有勾选 storyboard,也可以选中 storyboard 文件,再在 Xcode 的右侧文件检查器中找到Localization,点击Localize...,选择 Base,点击Localize,然后在Localization中勾选需要的国际化语言,会生成各个国际化语言的Strings File,最后进行国际化信息的填充。

  • 相关阅读:
    用Python构建你自己的推荐系统
    相似度算法之余弦相似度
    python(五)常用模块学习
    Linux系统CPU核数等信息查看
    【SSH网上商城项目实战28】使用Ajax技术局部更新商品数量和总价
    【SSH网上商城项目实战27】域名空间的申请和项目的部署及发布
    【SSH网上商城项目实战26】完成订单支付后的短信发送功能
    【SSH网上商城项目实战25】使用java email给用户发送邮件
    【SSH网上商城项目实战24】Struts2中如何处理多个Model请求
    【SSH网上商城项目实战23】完成在线支付功能
  • 原文地址:https://www.cnblogs.com/pioneerMax/p/15215014.html
Copyright © 2020-2023  润新知