当前位置:   article > 正文

Swift多语言版本的创建_swift工程多语言版本

swift工程多语言版本

代码

1、创建Localizable.string文件

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

2、填写Localizable.string文件内容

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

  1. /*
  2. MDHomeViewController.swift
  3. */
  4. "今日"="今日";
  5. "明日"="明日";
  6. "本周"="本周";
  7. "本月"="本月";
  8. "本年"="本年";

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

  1. /*
  2. MDHomeViewController.swift
  3. */
  4. "今日"="Today";
  5. "明日"="Tomorrow";
  6. "本周"="Weak";
  7. "本月"="Month";
  8. "本年"="Year";

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

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

StoryBoard Or Xib

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

infoPlist

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

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

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

1610415-af673e2626489737.jpg

可参考 去看看

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/一键难忘520/article/detail/942979
推荐阅读
  

闽ICP备14008679号