一、JFFanYi:
v0.1.1版本更新提示:
- 添加智能复制选项;
- 添加翻译模式切换;
- 添加清空按钮;
1、JFFanYi是一款极其简单轻便的中英翻译软件,可翻译驼峰格式的英文语句、带有苹果特有前缀的字符串,最主要的是可以将中文句子转换成驼峰格式的英文语句,其可直接作为方法名使用,其翻译结果默认(可选)复制到粘贴板,可直接粘贴使用。
2、这里下载JFFanYi.dmg,直接安装到你的苹果电脑上,源码可以在我的Github上下载:JFFanYi源码,编译运行源码前,应先pod install
。
3、示例:
友情提示:翻译的结果默认复制到粘贴板,直接粘贴使用即可,无需复制再粘贴。当然也可以取消智能复制!
二、核心源码:
//移除前缀
+ (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,但万一脑袋抽风了,还是值得一用的东西,代码和功能都很简单,不喜勿喷!当然也欢迎小伙伴们突出新的功能需求,后期会整理,慢慢加上,谢谢!