OC/swift图形化撸多语言国际化本地化的key,并且能提示和检查key!

问题:我们开发iOS,在撸多语言国际化代码的时候,为啥获得的心流会更少呢?

原因是我们在写国际化代码时候,创建key的工作太繁琐了,要频繁来回切换不同的文件,消耗着我们的注意力,根本没法愉快的撸代码,所以很难获得心流快感。

解决

其实这些繁琐又机械化的事情就应该交给脚本来着,我们就只要专心写我们代码的逻辑就好了。那好,我们来写一个脚本应用:Localize-Key

这个脚本在OC项目生成使用的静态字符串,如:

/// 马上邀请的按钮文案
    static NSString * const LocalizeKey_invite_buttonTitle = @"invite_buttonTitle";

在swift项目会生成enum枚举,还有子枚举,如:

/**#LocalizeKey*/
enum LocalizeKey: String {

/*#keys-Localize*/
    /// Invalid key. Never use
    case invalidKey = "invalidKey"
    case buttonTitle = "buttonTitle"
    case toolbarTitle1 = "toolbarTitle1"
    //case toolbarTitle2 = "toolbarTitle2"
    //case toolbarTitle3 = "toolbarTitle3"
    case toolbarTitle4 = "toolbarTitle4"
    case haha = "haha"
/*#end-keys-Localize*/


    /**#home*/
    enum home: String {

    /*#keys-home*/
            case title = "home_title"
            //case titleLabel = "home_titleLabel"
            case wow = "home_wow"
    /*#end-keys-home*/

    /*#end-home*/
    }

使用
//OC中的使用
NSString * str = NSLocalizedStringFromTable(LocalizeKey_invite_buttonTitle, @"demo", nil);

//在swift中的的使用
let str = NSLocalizedString(LocalizeKey.home.title.rawValue, tableName: "Home", comment: "")
        
//这里只是简单的介绍使用而已,当然你们可以自行扩展或使用三方的库
安装

在项目里https://github.com/CoconutGZ/Localize-Key有个安装包Localize Key.dmg下载回来安装到电脑上。

打开后界面如下:
OC/swift图形化撸多语言国际化本地化的key,并且能提示和检查key!_第1张图片
20181224-174021.png

说说这个界面:

  • string file:就是国际化资源.strings文件的路径.
  • output file:是要生成key的路径,是.h或.swift文件。也可不填,不填会自动在项目里生成的,如果项目里没有生成过建议不用填。
  • subset:子集,可以用来对key进行分类,方便管理和使用。
  • language:输出的语言。如果填写了output file这里会自动选上的。
  • key:就是编程时候方便使用的key。不一定是strings文件上的key哦,程序内部可能会转换的,不过我们可以不用管转换的。
  • value:就是strings文件里的要显示的字符串。
  • remark:提示的注释,写代码的时候有提示的。
  • checkout:就是从.strings文件里导出生成.h或.swift文件上的key。当你更改了.strings文件后也可以使用这个功能进行同步。比如你在。string文件上注释掉了某个键值对,同步后输出的文件也会相应的注释掉。
  • insert:新增一个key,同时会添加到.strings文件 和 输出的文件。
使用

1、如果项目的.strings文件已经有些键值对也里面了(也就是不是新建的),那我们可以使用checkout导出同步功能,先把已经存在的键值对生成方便我们使用的key。下面的是使用的例子:

  • 打开我们的项目,也打开Localize-Key
OC/swift图形化撸多语言国际化本地化的key,并且能提示和检查key!_第2张图片
20181224-183751.png

OC/swift图形化撸多语言国际化本地化的key,并且能提示和检查key!_第3张图片
20181224-184221.png

OC/swift图形化撸多语言国际化本地化的key,并且能提示和检查key!_第4张图片
20181224-194710.png

OC/swift图形化撸多语言国际化本地化的key,并且能提示和检查key!_第5张图片
MG15.png

OC/swift图形化撸多语言国际化本地化的key,并且能提示和检查key!_第6张图片
MG16.png

OC/swift图形化撸多语言国际化本地化的key,并且能提示和检查key!_第7张图片
20181224-200134.png

OC/swift图形化撸多语言国际化本地化的key,并且能提示和检查key!_第8张图片
20181224-200802.png

OC/swift图形化撸多语言国际化本地化的key,并且能提示和检查key!_第9张图片
MG17.png

OC/swift图形化撸多语言国际化本地化的key,并且能提示和检查key!_第10张图片
20181224-201546.png

OC/swift图形化撸多语言国际化本地化的key,并且能提示和检查key!_第11张图片
MG19.png

2、接下来,我们演示一下增加新的key。还是用这个项目。


OC/swift图形化撸多语言国际化本地化的key,并且能提示和检查key!_第12张图片
20181224-202642.png

OC/swift图形化撸多语言国际化本地化的key,并且能提示和检查key!_第13张图片
MG20.png

OC/swift图形化撸多语言国际化本地化的key,并且能提示和检查key!_第14张图片
20181224-203044.png

OC/swift图形化撸多语言国际化本地化的key,并且能提示和检查key!_第15张图片
MG21.png

3、subset的分类功能。


OC/swift图形化撸多语言国际化本地化的key,并且能提示和检查key!_第16张图片
20181224-203757.png

OC/swift图形化撸多语言国际化本地化的key,并且能提示和检查key!_第17张图片
MG22.png

OC/swift图形化撸多语言国际化本地化的key,并且能提示和检查key!_第18张图片
20181224-204317.png
二、在swift里的使用:

1、在swift里的使用和oc流程的一样的,就是在选择语言上选择swift而已。


OC/swift图形化撸多语言国际化本地化的key,并且能提示和检查key!_第19张图片
20181224-205155.png

OC/swift图形化撸多语言国际化本地化的key,并且能提示和检查key!_第20张图片
20181224-205025.png

OC/swift图形化撸多语言国际化本地化的key,并且能提示和检查key!_第21张图片
20181224-210059.png

OC/swift图形化撸多语言国际化本地化的key,并且能提示和检查key!_第22张图片
20181224-210712.png
如果有问题,请给我留言。

你可能感兴趣的:(OC/swift图形化撸多语言国际化本地化的key,并且能提示和检查key!)