iOS 实用技术移动开发iOS之MAC端开发

一款为iOS、Mac 开发者开发的翻译软件(JFFanYi)

2017-04-15  本文已影响1588人  zhifenx

一、JFFanYi:

v0.1.1版本更新提示:

1、JFFanYi是一款极其简单轻便的中英翻译软件,可翻译驼峰格式的英文语句、带有苹果特有前缀的字符串,最主要的是可以将中文句子转换成驼峰格式的英文语句,其可直接作为方法名使用,其翻译结果默认(可选)复制到粘贴板,可直接粘贴使用。
2、这里下载JFFanYi.dmg,直接安装到你的苹果电脑上,源码可以在我的Github上下载:JFFanYi源码,编译运行源码前,应先pod install
3、示例:

中英翻译.png 移除NS前缀并进行驼峰语句翻译.png 中文翻译成驼峰格式英文.png 正常中英翻译.png 不带前缀驼峰格式翻译.png

友情提示:翻译的结果默认复制到粘贴板,直接粘贴使用即可,无需复制再粘贴。当然也可以取消智能复制!

二、核心源码:

//移除前缀
+ (NSString *)removeThePrefix:(NSString *)string {
    NSInteger index;
    for (index = 0; index < string.length; index ++) {
        char word = [string characterAtIndex:index];
        while (islower(word)) {
            if (index >= 2) {
                string = [string stringByReplacingCharactersInRange:NSMakeRange(0, index - 1) withString:@""];
            }
            return string;
        }
    }
    return string;
}
//驼峰格式转普通格式
+ (NSString *)humpStringToCommonString:(NSString *)string {
    if ([self isChinese:string]) {
        return string;
    }
    NSString *newString = [self removeThePrefix:string];
    NSMutableArray *newStringArray = [[NSMutableArray alloc] init];
    //遇到大写字母将前一个单词添加到数组中
    NSUInteger oldIndex = 0;
    for (NSUInteger index = 0; index < newString.length; index ++) {
        char word = [newString characterAtIndex:index];
        if (isupper(word)) {
            NSUInteger i = index - oldIndex;
            NSString *word = [newString substringWithRange:NSMakeRange(oldIndex, i)];
            [newStringArray addObject:word];
            oldIndex = index;
        }
    }
    //将最后一个单词添加到数组中
    NSUInteger i = newString.length - oldIndex;
    [newStringArray addObject:[newString substringWithRange:NSMakeRange(oldIndex, i)]];
    //将字符数组转换成字符串,每个单词间添加空格
    newString = [newStringArray componentsJoinedByString:@" "];
    return newString;
}
//普通格式转驼峰格式
+ (NSString *)commonStringToHumpString:(NSString *)string {
    if ([self isChinese:string]) {
        return string;
    }
    //字符串中每个单词首字母大写
    NSString *tempString = [string capitalizedString];
    //分隔成数组
    NSArray *words = [tempString componentsSeparatedByString:@" "];
    //去掉空格
    tempString = [words componentsJoinedByString:@""];
    //转成驼峰格式
    NSMutableString *humpString = [[NSMutableString alloc] initWithString:tempString];
    //首字母小写
    NSString *change = [NSString stringWithFormat:@"%c",[tempString characterAtIndex:0] + 32];
    [humpString replaceCharactersInRange:NSMakeRange(0, 1) withString:change];
    return humpString;
}
//判断是否是全汉字字符串
+ (BOOL)isChinese:(NSString *)string {
    NSString *regex = @"[\u4e00-\u9fa5]+";
    NSPredicate *predicate = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", regex];
    return [predicate evaluateWithObject:string];
}

三、总结:
这个JFFanYi翻译,仅仅是自己在学Mac开发时突然想写的小东西,当然设想的功能远比这个强大,只是最近比较忙,就先实现了简单的翻译功能,后面有时间再完善,代码已开源,有兴趣的小伙伴也可以添加自己的小功能。当然如果你英文特别好自然用不上JFFanYi,但万一脑袋抽风了,还是值得一用的东西,代码和功能都很简单,不喜勿喷!当然也欢迎小伙伴们突出新的功能需求,后期会整理,慢慢加上,谢谢!

上一篇下一篇

猜你喜欢

热点阅读