• [Swift]国际化


    一、添加本地化语言

    比如这里,我们添加了联合国六种工作语言(汉语,英语,法语,俄语,阿拉伯语和西班牙语)。

     

    二、纯代码本地化

    1. 创建本地化文件

    默认文件名为“Localizable”,不要去修改。

    2. 关联对应的本地化语言

    右侧点击"Localize...",关联本地化语言。

     

    关联多个语言时

     

     3. 在本地化文件中设置Key-Value

    注意:不要忘记行末的分号

    1. // tabbar-色库取色
    2. "tabbar_library" = "色库取色";
    3. // tabbar-图片取色
    4. "tabbar_picture" = "图片取色";
    5. // tabbar-绘制图片
    6. "tabbar_draw" = "绘制图片";
    7. // tabbar-其它功能
    8. "tabbar_other" = "其它功能";

     

     4. 调用本地化

    代码中调用

    1. let tempLibrary = "tabbar_library".localizable()
    2. let tempPicture = "tabbar_picture".localizable()
    3. let tempDraw = "tabbar_draw".localizable()
    4. let tempOther = "tabbar_other".localizable()

    对String拓展一个localizable方法去取值,便于使用。

    1. import Foundation
    2. extension String {
    3. /// 调用本地化
    4. func localizable() -> String {
    5. return Bundle.main.localizedString(forKey: self, value: nil, table: nil)
    6. }
    7. }

    5. 示意图

    三、XIB和Storyboard本地化

    1. 为xib文件关联本地化语言,storyboard同理。

    2. 对需要本地化的视图进行配置

    点击视图,右侧查询Object ID。

     本地化文件中,对value进行配置。

    1. /* Class = "UISearchBar"; placeholder = "搜索颜色"; ObjectID = "mRj-Ar-rIz"; */
    2. "mRj-Ar-rIz.placeholder" = "搜索颜色";

    3. 示意图

    四、info.plist本地化

    1. 创建InfoPlist.strings并关联语言

     2. 获取info.plist中的key

    点击info.plist右键选择open as source code,查看我们所要获取权限的原始key。

    新版Xcode获取不出来数据不用急,去代码中将info打印出来,拿到key效果一样。

    1. let tempInfo = Bundle.main.infoDictionary
    2. print(tempInfo!)

     3.  本地化文件中,对key-value进行配置。

    运行APP,然后切换手机语言为英语,会发现软件名称变成了英文。

    五、LaunchScreen本地化

    苹果官方告知,因为启动页是静态的,任何展示在上面的文字都不能被国际化,所以要避免在启动页上包含文本。

    既然一个LaunchScreen文件无法满足我们的需求,我们就为每种语言单独创建一个LaunchScreen文件,再到info.plist的本地化中去配置“UILaunchStoryboardName”。

    示意图

  • 相关阅读:
    线性卷积和循环卷积(圆周卷积)
    今年十八,喜欢ctf-web
    如何修复丢失的vcruntime140_1.dll文件
    STM32物联网(封装AT指令进行TCP连接及数据的接收和发送)
    【保姆级教程】ChatGPT/GPT4科研技术应用与AI绘图
    双十一有哪些好物推荐?双十一好物清单分享
    解析csv文件 流数据问题
    Java core——java四种引用详解
    MyBatisPlus(七)——通用枚举、代码生成器、多数据源、MyBatisX
    牛客网——扫雷
  • 原文地址:https://blog.csdn.net/u012881779/article/details/128170205