一、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開發(fā)時突然想寫的小東西,當然設想的功能遠比這個強大,只是最近比較忙,就先實現(xiàn)了簡單的翻譯功能,后面有時間再完善,代碼已開源,有興趣的小伙伴也可以添加自己的小功能。當然如果你英文特別好自然用不上JFFanYi,但萬一腦袋抽風了,還是值得一用的東西,代碼和功能都很簡單,不喜勿噴!當然也歡迎小伙伴們突出新的功能需求,后期會整理,慢慢加上,謝謝!