美文网首页iOS 知识库iOS Developer
Swift多语言版本的创建

Swift多语言版本的创建

作者: z小志 | 来源:发表于2017-12-14 09:30 被阅读64次

    代码

    1、创建Localizable.string文件

    1、选中文件点击右侧菜单栏
    2、点击Localize..
    3、选中Base与English
    
    图1 图2 图3

    2、填写Localizable.string文件内容

    Localizable.strings(Base)内容格式如下:

    /*
     MDHomeViewController.swift
     */
    "今日"="今日";
    "明日"="明日";
    "本周"="本周";
    "本月"="本月";
    "本年"="本年";
    

    Localizable.strings(English)内容格式如下:

    /*
     MDHomeViewController.swift
     */
    "今日"="Today";
    "明日"="Tomorrow";
    "本周"="Weak";
    "本月"="Month";
    "本年"="Year";
    

    2、查找项目中文内容并替换

     "[^"]*[\u4E00-\u9FA5]+[^"\n]*?"(OC 中为@"[^"]*[\u4E00-\u9FA5]+[^"\n]*?")
    
    
    调用 NSLocalizedString 方法  
    比如:NSLocalizedString(str:"今日")
    
    func NSLocalizedString(str:String) -> String{
        return NSLocalizedString(str, comment: str)
    }
    记得以前是可以直接一键替换的 ,现在不知道是Xcode版本的问题还是什么 一直不成功,有知道的可以评论。我会及时更新,谢谢大家!
    
    正则查询

    StoryBoard Or Xib

    1、选中文件点击右侧菜单栏
    2、点击Localize..
    3、选中Base与English
    4、文件内容基本如下:
    /* Class = "UILabel"; text = "微信"; ObjectID = "2c7-OE-g5X"; */
    "2c7-OE-g5X.text" = "微信";
    在English中把 "2c7-OE-g5X.text" = "微信";  替换成 "2c7-OE-g5X.text" = "weChat"; 即可
    
    BEC8C7B8-FF73-4A1F-AA3D-9E967E16556F.png

    infoPlist

    1、创建InfoPlist.string文件
    2、选中文件点击右侧菜单栏
    3、点击Localize..
    4、选中Base与English
    5、在InfoPlist.string(English)中 :
    CFBundleDisplayName="英文名";
    

    附:快速导出项目中中文字符

    我们已经知道如何识别项目中的字符串了,但是如何取出来使用呢? 这就需要遍历项目中所有的指定后缀(e.g: .h、.m等)的文件,然后利用正则表达匹配所有使用到的中文字符串,并写入文件中。为了方便起见,我将此过程写了一个Mac客户端小应用,可直接将选中的项目中所有的中文字符串,导出到指定的路径下;该应用还可以选择对于重复出现的中文字符串进行处理,以及还可以将中文字符串导出为繁体; 小应用更值得关注的是它导出的文件,可以直接拿来当做多语言文件中的key=value 使用,非常简单,喜欢的可以去下载看看, 含有源码的哦;小应用运行图如下:

    1610415-af673e2626489737.jpg

    可参考 去看看

    相关文章

      网友评论

      本文标题:Swift多语言版本的创建

      本文链接:https://www.haomeiwen.com/subject/trsaixtx.html