├── .gitignore ├── docs ├── screenshot.gif ├── screen_bettertranslate1.png ├── screen_bettertranslate2.png └── screen_bettertranslate3.png ├── source ├── BetterTranslate │ ├── icon.png │ ├── translate.py │ ├── bettertranslate.py │ └── Config.plist └── PureNumber │ ├── purenumber.png │ ├── purenumber.py │ ├── Config.plist │ └── pinyin.dat ├── extensions ├── PureNumber.popclipextz └── BetterTranslate.popclipextz └── README.md /.gitignore: -------------------------------------------------------------------------------- 1 | .idea 2 | *.pyc 3 | .DS_Store 4 | -------------------------------------------------------------------------------- /docs/screenshot.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/harmy/PopClip-Extensions/HEAD/docs/screenshot.gif -------------------------------------------------------------------------------- /source/BetterTranslate/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/harmy/PopClip-Extensions/HEAD/source/BetterTranslate/icon.png -------------------------------------------------------------------------------- /docs/screen_bettertranslate1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/harmy/PopClip-Extensions/HEAD/docs/screen_bettertranslate1.png -------------------------------------------------------------------------------- /docs/screen_bettertranslate2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/harmy/PopClip-Extensions/HEAD/docs/screen_bettertranslate2.png -------------------------------------------------------------------------------- /docs/screen_bettertranslate3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/harmy/PopClip-Extensions/HEAD/docs/screen_bettertranslate3.png -------------------------------------------------------------------------------- /extensions/PureNumber.popclipextz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/harmy/PopClip-Extensions/HEAD/extensions/PureNumber.popclipextz -------------------------------------------------------------------------------- /source/PureNumber/purenumber.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/harmy/PopClip-Extensions/HEAD/source/PureNumber/purenumber.png -------------------------------------------------------------------------------- /extensions/BetterTranslate.popclipextz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/harmy/PopClip-Extensions/HEAD/extensions/BetterTranslate.popclipextz -------------------------------------------------------------------------------- /source/PureNumber/purenumber.py: -------------------------------------------------------------------------------- 1 | #coding=utf-8 2 | import os 3 | 4 | CHINESE_NUMBERS = ['ling', 'yi', 'er', 'san', 'si', 'wu', 'liu', 'qi', 'ba', 'jiu'] 5 | 6 | selected_text = os.environ.get('POPCLIP_TEXT', '幺两三四五六拐八狗洞') 7 | selected_text = unicode(selected_text, 'utf-8') 8 | 9 | pinyin_data = {} 10 | with open('pinyin.dat') as f: 11 | for line in f: 12 | key, value = line.strip().split(' ', 1) 13 | value = value.split(' ', 1)[0][:-1] 14 | if value in CHINESE_NUMBERS: 15 | pinyin_data[unicode(key, 'utf-8')] = str(CHINESE_NUMBERS.index(value)) 16 | 17 | translated_text = [pinyin_data.get(char, char) for char in selected_text] 18 | result = ''.join([char for char in translated_text if char.isdigit()]) 19 | 20 | print result if result != '' else '抱歉,从您选择的文本中找不到任何数字!' -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # PopClip-Extensions 2 | 3 | these are my collections of [PopClip][popclip] extension. 4 | 5 | ## Better Translate 6 | 7 | Translate selected text instantly using google translate. 8 | 9 | * instantly translate selected text without opening dictionary app or browser. 10 | * lovely powered by google translate and support up to 81 languages by now. 11 | * using google tts service to convert text to speech. 12 | 13 | ![screenshot](docs/screen_bettertranslate1.png) 14 | ![screenshot](docs/screen_bettertranslate2.png) 15 | ![screenshot](docs/screen_bettertranslate3.png) 16 | 17 | download: [bettertranslate.popclipextz][bettertranslate] 18 | 19 | 20 | ## Pure Number 21 | 22 | Converts any Chinese numbers into pure Arabic figures. 23 | 24 | ![screenshot](docs/screenshot.gif) 25 | 26 | download:[purenumber.popclipextz][purenumber] 27 | 28 | after install, try this text: 幺两三四五六拐八狗洞. 29 | 30 | [popclip]: http://pilotmoon.com/popclip/ 31 | [purenumber]: https://github.com/harmy/PopClip-Extensions/raw/master/extensions/PureNumber.popclipextz 32 | [bettertranslate]: https://github.com/harmy/PopClip-Extensions/raw/master/extensions/BetterTranslate.popclipextz -------------------------------------------------------------------------------- /source/PureNumber/Config.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Actions 6 | 7 | 8 | After 9 | preview-result 10 | Image File 11 | purenumber.png 12 | Script Interpreter 13 | /usr/bin/python 14 | Shell Script File 15 | purenumber.py 16 | Title 17 | PureNumber 18 | Regular Expression 19 | (?s)^.*[\p{Han}\p{N}].*$ 20 | 21 | 22 | Credits 23 | 24 | 25 | Link 26 | http://harmy.github.io 27 | Name 28 | harmy 29 | 30 | 31 | Extension Description 32 | convert any Chinese number into digit number 33 | Extension Identifier 34 | com.popclip.extension.purenumber 35 | Extension Name 36 | PureNumber 37 | Version 38 | 3 39 | 40 | 41 | -------------------------------------------------------------------------------- /source/BetterTranslate/translate.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python 2 | # ---------------------------------------------------------------------------- 3 | # "THE BEER-WARE LICENSE" (Revision 42): 4 | # wrote this file. As long as you retain this notice you 5 | # can do whatever you want with this stuff. If we meet some day, and you think 6 | # this stuff is worth it, you can buy me a beer in return to Terry Yin. 7 | # 8 | # The idea of this is borrowed from 's brilliant work 9 | # https://github.com/soimort/google-translate-cli 10 | # He uses "THE BEER-WARE LICENSE". That's why I use it too. So you can buy him a 11 | # beer too. 12 | # ---------------------------------------------------------------------------- 13 | ''' 14 | This is a simple, yet powerful command line translator with google translate 15 | behind it. You can also use it as a Python module in your code. 16 | ''' 17 | import re 18 | try: 19 | import urllib2 as request 20 | from urllib import quote 21 | except: 22 | from urllib import request 23 | from urllib.parse import quote 24 | 25 | class Translator: 26 | string_pattern = r"\"(([^\"\\]|\\.)*)\"" 27 | match_string =re.compile( 28 | r"\,?\[" 29 | + string_pattern + r"\," 30 | + string_pattern + r"\," 31 | + string_pattern + r"\," 32 | + string_pattern 33 | +r"\]") 34 | 35 | def __init__(self, to_lang, from_lang='auto'): 36 | self.from_lang = from_lang 37 | self.to_lang = to_lang 38 | 39 | def translate(self, source): 40 | json5 = self._get_json5_from_google(source) 41 | return self._unescape(self._get_translation_from_json5(json5)) 42 | 43 | def _get_translation_from_json5(self, content): 44 | result = "" 45 | pos = 2 46 | while True: 47 | m = self.match_string.match(content, pos) 48 | if not m: 49 | break 50 | result += m.group(1) 51 | pos = m.end() 52 | return result 53 | 54 | def _get_json5_from_google(self, source): 55 | escaped_source = quote(source, '') 56 | headers = {'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_6_8) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.168 Safari/535.19'} 57 | req = request.Request( 58 | url="http://translate.google.com/translate_a/t?client=t&ie=UTF-8&oe=UTF-8" 59 | +"&sl=%s&tl=%s&text=%s" % (self.from_lang, self.to_lang, escaped_source) 60 | , headers = headers) 61 | r = request.urlopen(req) 62 | return r.read().decode('utf-8') 63 | 64 | def _unescape(self, text): 65 | return re.sub(r"\\.?", lambda x:eval('"%s"'%x.group(0)), text) 66 | 67 | def main(): 68 | import argparse 69 | import sys 70 | import locale 71 | parser = argparse.ArgumentParser(description=__doc__) 72 | parser.add_argument('texts', metavar='text', nargs='+', 73 | help='a string to translate(use "" when it\'s a sentence)') 74 | parser.add_argument('-t', '--to', dest='to_lang', type=str, default='zh', 75 | help='To language (e.g. zh, zh-TW, en, ja, ko). Default is zh.') 76 | parser.add_argument('-f', '--from', dest='from_lang', type=str, default='auto', 77 | help='From language (e.g. zh, zh-TW, en, ja, ko). Default is auto.') 78 | args = parser.parse_args() 79 | translator= Translator(from_lang=args.from_lang, to_lang=args.to_lang) 80 | for text in args.texts: 81 | translation = translator.translate(text) 82 | if sys.version_info.major == 2: 83 | translation =translation.encode(locale.getpreferredencoding()) 84 | sys.stdout.write(translation) 85 | sys.stdout.write("\n") 86 | 87 | if __name__ == "__main__": 88 | main() 89 | -------------------------------------------------------------------------------- /source/BetterTranslate/bettertranslate.py: -------------------------------------------------------------------------------- 1 | #coding=utf-8 2 | import os 3 | import re 4 | import time 5 | import urllib, urllib2 6 | from tempfile import NamedTemporaryFile 7 | from translate import Translator 8 | 9 | LANG_CODES = { 10 | "Afrikaans":"af", 11 | "Albanian":"sq", 12 | "Arabic":"ar", 13 | "Armenian":"hy", 14 | "Azerbaijani":"az", 15 | "Basque":"eu", 16 | "Belarusian":"be", 17 | "Bengali":"bn", 18 | "Bosnian":"bs", 19 | "Bulgarian":"bg", 20 | "Catalan":"ca", 21 | "Cebuano":"ceb", 22 | "Chinese (Simplified)":"zh-CN", 23 | "Chinese (Traditional)":"zh-TW", 24 | "Croatian":"hr", 25 | "Czech":"cs", 26 | "Danish":"da", 27 | "Dutch":"nl", 28 | "English":"en", 29 | "Esperanto":"eo", 30 | "Estonian":"et", 31 | "Filipino":"tl", 32 | "Finnish":"fi", 33 | "French":"fr", 34 | "Galician":"gl", 35 | "Georgian":"ka", 36 | "German":"de", 37 | "Greek":"el", 38 | "Gujarati":"gu", 39 | "Haitian Creole":"ht", 40 | "Hausa":"ha", 41 | "Hebrew":"iw", 42 | "Hindi":"hi", 43 | "Hmong":"hmn", 44 | "Hungarian":"hu", 45 | "Icelandic":"is", 46 | "Igbo":"ig", 47 | "Indonesian":"id", 48 | "Irish":"ga", 49 | "Italian":"it", 50 | "Japanese":"ja", 51 | "Javanese":"jw", 52 | "Kannada":"kn", 53 | "Khmer":"km", 54 | "Korean":"ko", 55 | "Lao":"lo", 56 | "Latin":"la", 57 | "Latvian":"lv", 58 | "Lithuanian":"lt", 59 | "Macedonian":"mk", 60 | "Malay":"ms", 61 | "Maltese":"mt", 62 | "Maori":"mi", 63 | "Marathi":"mr", 64 | "Mongolian":"mn", 65 | "Nepali":"ne", 66 | "Norwegian":"no", 67 | "Persian":"fa", 68 | "Polish":"pl", 69 | "Portuguese":"pt", 70 | "Punjabi":"pa", 71 | "Romanian":"ro", 72 | "Russian":"ru", 73 | "Serbian":"sr", 74 | "Slovak":"sk", 75 | "Slovenian":"sl", 76 | "Somali":"so", 77 | "Spanish":"es", 78 | "Swahili":"sw", 79 | "Swedish":"sv", 80 | "Tamil":"ta", 81 | "Telugu":"te", 82 | "Thai":"th", 83 | "Turkish":"tr", 84 | "Ukrainian":"uk", 85 | "Urdu":"ur", 86 | "Vietnamese":"vi", 87 | "Welsh":"cy", 88 | "Yiddish":"yi", 89 | "Yoruba":"yo", 90 | "Zulu":"zu" 91 | } 92 | 93 | def google_tts(text, tl='en'): 94 | """ 95 | this function is adapted from https://github.com/hungtruong/Google-Translate-TTS, thanks @hungtruong. 96 | """ 97 | #process text into chunks 98 | text = text.replace('\n','') 99 | text_list = re.split('(\,|\.)', text) 100 | combined_text = [] 101 | for idx, val in enumerate(text_list): 102 | if idx % 2 == 0: 103 | combined_text.append(val) 104 | else: 105 | joined_text = ''.join((combined_text.pop(),val)) 106 | if len(joined_text) < 100: 107 | combined_text.append(joined_text) 108 | else: 109 | subparts = re.split('( )', joined_text) 110 | temp_string = "" 111 | temp_array = [] 112 | for part in subparts: 113 | temp_string = temp_string + part 114 | if len(temp_string) > 80: 115 | temp_array.append(temp_string) 116 | temp_string = "" 117 | #append final part 118 | temp_array.append(temp_string) 119 | combined_text.extend(temp_array) 120 | #download chunks and write them to the output file 121 | f = NamedTemporaryFile(delete=False) 122 | for idx, val in enumerate(combined_text): 123 | mp3url = "http://translate.google.com/translate_tts?tl=%s&q=%s&total=%s&idx=%s" % (tl, urllib.quote(val), len(combined_text), idx) 124 | headers = {"Host":"translate.google.com", 125 | "Referer":"http://www.gstatic.com/translate/sound_player2.swf", 126 | "User-Agent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_3) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.163 Safari/535.19"} 127 | req = urllib2.Request(mp3url, '', headers) 128 | if len(val) > 0: 129 | try: 130 | response = urllib2.urlopen(req) 131 | f.write(response.read()) 132 | time.sleep(.5) 133 | except urllib2.HTTPError as e: 134 | print ('%s' % e) 135 | f.close() 136 | os.system('afplay {0}'.format(f.name)) 137 | os.unlink(f.name) 138 | 139 | 140 | selectedText= os.environ['POPCLIP_TEXT'] 141 | destLang = os.environ['POPCLIP_OPTION_DESTLANG'] 142 | ttsLang = os.environ['POPCLIP_OPTION_TTSLANG'] 143 | 144 | from translate import Translator 145 | translator= Translator(to_lang=LANG_CODES[destLang]) 146 | translation = translator.translate(selectedText) 147 | 148 | if ttsLang != 'Disabled': 149 | google_tts(selectedText, LANG_CODES[ttsLang]) 150 | 151 | result = translation.encode('utf-8') 152 | 153 | print result -------------------------------------------------------------------------------- /source/PureNumber/pinyin.dat: -------------------------------------------------------------------------------- 1 | 㡵 ling2 2 | 㥄 ling2 3 | 㦭 ling2 4 | 㪮 ling2 5 | 㬡 ling2 6 | 㯪 ling2 7 | 㖫 ling2 8 | 㱥 ling2 9 | 㲆 ling2 10 | 㸳 ling2 11 | 㻏 ling2 ling3 12 | 㾉 ling2 13 | 䄥 ling2 14 | 䈊 ling2 15 | 䉁 ling2 16 | 䉖 ling2 17 | 䉹 ling2 liu3 18 | 䌢 ling2 19 | 䍅 ling2 20 | 䔖 ling2 21 | 䕘 ling2 22 | 䖅 ling2 23 | 䙥 ling2 24 | 䚖 ling2 25 | 䠲 ling2 26 | 䡼 ling2 27 | 䡿 ling2 28 | 䧙 ling2 29 | 䨩 ling2 30 | 䯍 ling2 31 | 䰱 ling2 32 | 䴇 ling2 33 | 䴒 ling2 34 | 䴫 ling2 35 | 令 ling4 ling2 ling3 36 | 伶 ling2 37 | 倰 ling2 38 | 凌 ling2 39 | 刢 ling2 40 | 呤 ling2 ling4 ling3 41 | 囹 ling2 42 | 坽 ling2 43 | 夌 ling2 44 | 姈 ling2 45 | 孁 ling2 46 | 岭 ling2 ling3 47 | 岺 ling2 48 | 崚 ling2 49 | 朎 ling2 50 | 柃 ling2 51 | 棂 ling2 52 | 櫺 ling2 53 | 欞 ling2 54 | 泠 ling2 ling3 55 | 淩 ling2 56 | 澪 ling2 57 | 灵 ling2 ling4 58 | 燯 ling2 59 | 爧 ling2 60 | 狑 ling2 61 | 玲 ling2 62 | 琌 ling2 63 | 瓴 ling2 64 | 皊 ling2 65 | 睖 ling2 leng4 66 | 砱 ling2 67 | 碐 ling2 leng2 68 | 磷 lin2 lin4 lin3 ling2 69 | 祾 ling2 70 | 秢 ling2 71 | 稜 ling2 72 | 竛 ling2 73 | 笭 ling2 74 | 紷 ling2 75 | 綾 ling2 76 | 绫 ling2 77 | 羚 ling2 78 | 翎 ling2 79 | 聆 ling2 80 | 舲 ling2 81 | 苓 ling2 lian2 82 | 菱 ling2 83 | 蔆 ling2 84 | 蕶 ling2 85 | 蘦 ling2 86 | 蛉 ling2 87 | 衑 ling2 88 | 裬 ling2 89 | 詅 ling2 90 | 跉 ling2 91 | 軨 ling2 92 | 輘 ling2 leng2 93 | 酃 ling2 94 | 醽 ling2 95 | 鈴 ling2 96 | 錂 ling2 97 | 铃 ling2 98 | 閝 ling2 99 | 陵 ling2 100 | 零 ling2 lian2 101 | 霊 ling2 102 | 霛 ling2 103 | 霝 ling2 ling4 104 | 靈 ling2 ling4 105 | 駖 ling2 106 | 魿 ling2 107 | 鯪 ling2 108 | 鲮 ling2 109 | 鴒 ling2 110 | 鸰 ling2 111 | 鹷 ling2 112 | 麢 ling2 113 | 齡 ling2 114 | 齢 ling2 115 | 龄 ling2 116 | 龗 ling2 117 | 㘈 yi1 118 | 一 yi1 119 | 伊 yi1 120 | 依 yi1 yi3 121 | 医 yi4 yi1 122 | 吚 yi1 123 | 咿 yi1 124 | 噫 yi1 125 | 壱 yi1 126 | 壹 yi1 yi4 127 | 夁 yi1 yin1 128 | 嫛 yi1 129 | 弌 yi1 130 | 悘 yi1 131 | 悥 yi4 yi1 132 | 揖 yi1 ji2 133 | 椅 yi3 yi1 134 | 檹 yi1 135 | 欹 yi1 qi1 136 | 毉 yi1 137 | 泆 yi1 yi4 138 | 洢 yi1 139 | 溰 yi1 140 | 漪 yi1 141 | 燚 yi1 142 | 猗 yi1 e1 wei1 yi3 ji4 143 | 瑿 yi1 144 | 祎 yi1 145 | 禕 yi1 146 | 稦 yi1 147 | 繄 yi1 148 | 蛜 yi1 149 | 衣 yi1 yi4 150 | 譩 yi1 151 | 郼 yi1 152 | 醫 yi1 153 | 銥 yi1 yi3 154 | 铱 yi3 yi1 155 | 陭 yi1 qi1 yi4 156 | 餏 yi1 157 | 饻 yi1 158 | 鷖 yi1 159 | 鹥 yi1 160 | 黟 yi1 161 | 黳 yi1 162 | 㒃 er4 163 | 㛅 er4 164 | 䎶 er4 165 | 䏪 er4 166 | 䣵 er4 167 | 二 er4 168 | 佴 er4 nai4 mi3 169 | 刵 er4 170 | 咡 er4 171 | 弍 er4 172 | 弐 er4 173 | 樲 er4 174 | 毦 er4 er3 175 | 眲 er4 ne4 176 | 衈 er4 er3 177 | 誀 er4 178 | 貮 er4 179 | 貳 er4 180 | 贰 er4 181 | 鉺 er3 er4 keng1 182 | 铒 er4 183 | 三 san1 san4 184 | 叁 san1 185 | 参 san1 shen1 den1 cen1 san3 186 | 參 san1 shen1 den1 cen1 187 | 叄 san1 san3 188 | 嘇 san1 189 | 弎 san1 san4 190 | 攕 san1 xian1 191 | 毵 san1 192 | 毿 san1 193 | 犙 san1 194 | 糁 san1 san3 195 | 糝 san3 san1 196 | 糣 san3 san1 197 | 蔘 sen1 san1 shen1 198 | 鬖 san1 199 | 㐌 si4 yi2 200 | 㕽 si4 201 | 㚶 si4 202 | 㣈 si4 203 | 㭒 si4 204 | 㸻 si4 205 | 㹑 si4 yi2 206 | 㾅 si4 zhi4 zi3 207 | 䇃 si4 xiao4 208 | 䎣 si4 xin4 209 | 䏤 si4 210 | 䦙 si4 211 | 亖 si4 212 | 伺 si4 ci4 213 | 似 si4 shi4 214 | 佀 si4 shi4 215 | 価 si4 216 | 俟 si4 qi2 217 | 儩 si4 218 | 兕 si4 219 | 嗣 si4 220 | 四 si4 221 | 姒 si4 222 | 娰 si4 223 | 孠 si4 224 | 寺 si4 225 | 巳 si4 226 | 思 si1 si4 sai1 227 | 杫 si4 228 | 柶 si4 229 | 汜 si4 230 | 泗 si4 231 | 泤 si4 232 | 洍 si4 233 | 涘 si4 234 | 瀃 si4 235 | 牭 si4 236 | 祀 si4 237 | 祠 si4 238 | 禩 si4 239 | 竢 si4 240 | 笥 si4 241 | 耜 si4 242 | 肂 si4 243 | 肄 si4 244 | 肆 si4 ti4 245 | 苡 si4 246 | 蕼 si4 247 | 覗 si1 si4 248 | 貄 si4 249 | 釲 si4 250 | 鈻 si4 251 | 飤 si4 252 | 飼 si4 253 | 饲 si4 254 | 駟 si4 255 | 驷 si4 256 | 飼 si4 257 | 㐅 wu3 258 | 㑄 wu3 259 | 㬳 wu3 260 | 㵲 wu3 261 | 䍢 wu2 wu3 262 | 䒉 wu3 263 | 䟼 wu3 264 | 䡧 wu3 265 | 䳇 wu3 266 | 五 wu3 267 | 仵 wu3 268 | 伍 wu3 269 | 侮 wu3 270 | 倵 wu3 271 | 儛 wu3 272 | 午 wu3 273 | 啎 wu3 274 | 墲 wu3 275 | 妩 wu3 276 | 娒 wu3 277 | 娬 wu3 278 | 嫵 wu3 279 | 嵨 wu3 280 | 庑 wu3 wu2 281 | 廡 wu3 wu2 282 | 忤 wu3 283 | 怃 wu3 284 | 憮 wu3 285 | 捂 wu3 286 | 摀 wu3 287 | 旿 wu3 288 | 橆 wu3 289 | 武 wu3 290 | 潕 wu3 291 | 熓 wu3 wen4 292 | 牾 wu2 wu3 293 | 玝 wu3 294 | 珷 wu3 295 | 甒 wu3 296 | 碔 wu3 297 | 舞 wu3 298 | 蕪 wu2 wu3 299 | 躌 wu3 300 | 迕 wu4 wu3 301 | 鵡 wu3 302 | 鹉 wu3 303 | 㙀 liu4 304 | 㨨 liu4 305 | 㶯 liu4 306 | 㽌 liu4 307 | 䄂 liu4 308 | 六 liu4 lu4 309 | 坴 liu4 310 | 塯 liu4 311 | 廇 liu4 312 | 溜 liu1 liu4 liu2 313 | 澑 liu4 liu1 liu2 314 | 熘 liu1 liu4 315 | 畂 liu4 jiu4 mu3 316 | 磂 liu4 317 | 翏 liu4 liao4 liu2 318 | 蹓 liu1 liu4 319 | 遛 liu2 liu4 320 | 鎦 liu2 liu4 321 | 鐂 liu4 liu2 322 | 镏 liu2 liu4 323 | 陆 liu4 324 | 陸 liu4 325 | 雡 liu4 326 | 霤 liu4 327 | 餾 liu4 liu2 328 | 馏 liu4 liu2 329 | 鬸 liu4 330 | 七 qi1 331 | 倛 qi1 332 | 僛 qi1 333 | 凄 qi1 334 | 唭 qi1 335 | 嘁 qi1 336 | 墄 qi1 337 | 妻 qi1 qi4 338 | 娸 qi1 339 | 悽 qi1 340 | 慼 qi1 341 | 慽 qi1 342 | 戚 qi1 343 | 攲 qi1 ji1 yi1 344 | 期 qi1 qi2 ji1 345 | 柒 qi1 346 | 栖 qi1 xi1 347 | 桤 qi1 348 | 桼 qi1 349 | 棲 qi1 xi1 350 | 榿 qi1 351 | 欺 qi1 352 | 沏 qi1 qie1 qie4 353 | 淒 qi1 354 | 漆 qi1 355 | 磎 qi1 xi1 356 | 磩 qi1 qi4 357 | 緀 qi1 358 | 萋 qi1 359 | 諆 qi1 ji1 360 | 郪 qi1 ci1 361 | 鏚 qi4 qi1 362 | 霋 qi1 363 | 顣 qi1 cu4 364 | 魌 qi1 365 | 鶈 qi1 366 | 鸂 qi1 xi1 367 | 仈 ba1 368 | 八 ba1 369 | 叭 ba1 ba5 370 | 吧 ba5 ba1 371 | 哵 ba1 372 | 岜 ba1 373 | 巴 ba1 374 | 扒 ba1 pa1 pa2 375 | 捌 ba1 376 | 朳 ba1 377 | 玐 ba1 378 | 疤 ba1 379 | 笆 ba1 380 | 粑 ba1 381 | 羓 ba1 382 | 芭 ba1 pa1 383 | 豝 ba1 384 | 釟 ba1 385 | 鈀 ba3 pa2 ba1 386 | 鲃 ba1 ba4 387 | 㡱 jiu3 388 | 久 jiu3 389 | 乆 jiu3 390 | 九 jiu3 391 | 乣 jiu3 392 | 奺 jiu3 393 | 灸 jiu3 394 | 玖 jiu3 395 | 糺 jiu1 jiu3 jiao3 396 | 糾 jiu1 jiu3 397 | 紤 jiu3 398 | 纠 jiu1 jiu3 jiao3 399 | 舏 jiu3 400 | 艽 jiu3 jiao1 401 | 酒 jiu3 402 | 镹 jiu3 403 | 韭 jiu3 404 | 韮 jiu3 405 | o ling2 406 | O ling2 407 | 〇 ling2 408 | 洞 ling5 409 | 幺 yi5 410 | 妖 yi5 411 | 吆 yi5 412 | 腰 yi5 413 | 邀 yi5 414 | 夭 yi5 415 | 訞 yi5 416 | 两 er5 417 | 俩 er5 418 | 仨 san1 419 | 拐 qi5 420 | 狗 jiu5 421 | Ⅰ yi1 422 | Ⅱ er2 423 | Ⅲ san1 424 | Ⅳ si4 425 | Ⅴ wu3 426 | Ⅵ liu4 427 | Ⅶ qi1 428 | Ⅷ ba1 429 | Ⅸ jiu3 430 | ① yi1 431 | ② er4 432 | ③ san1 433 | ④ si4 434 | ⑤ wu3 435 | ⑥ liu4 436 | ⑦ qi1 437 | ⑧ ba1 438 | ⑨ jiu3 -------------------------------------------------------------------------------- /source/BetterTranslate/Config.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Actions 6 | 7 | 8 | After 9 | preview-result 10 | Image File 11 | icon.png 12 | Script Interpreter 13 | /usr/bin/python 14 | Shell Script File 15 | bettertranslate.py 16 | Title 17 | Better Tranlate 18 | Regular Expression 19 | (?s)^.{1,200}$ 20 | 21 | 22 | Credits 23 | 24 | 25 | Link 26 | http://harmy.github.io 27 | Name 28 | harmy 29 | 30 | 31 | Extension Description 32 | Translate selected text instantly using google translate. 33 | Extension Identifier 34 | com.popclip.extension.bettertranslate 35 | Extension Name 36 | Better Translate 37 | Options 38 | 39 | 40 | Option Identifier 41 | destlang 42 | Option Label 43 | 44 | en 45 | Destination Language 46 | zh-Hans 47 | 翻译为 48 | zh-Hant 49 | 轉換為 50 | 51 | Option Type 52 | multiple 53 | Option Values 54 | 55 | Afrikaans 56 | Albanian 57 | Arabic 58 | Armenian 59 | Azerbaijani 60 | Basque 61 | Belarusian 62 | Bengali 63 | Bosnian 64 | Bulgarian 65 | Catalan 66 | Cebuano 67 | Chinese (Simplified) 68 | Chinese (Traditional) 69 | Croatian 70 | Czech 71 | Danish 72 | Dutch 73 | English 74 | Esperanto 75 | Estonian 76 | Filipino 77 | Finnish 78 | French 79 | Galician 80 | Georgian 81 | German 82 | Greek 83 | Gujarati 84 | Haitian Creole 85 | Hausa 86 | Hebrew 87 | Hindi 88 | Hmong 89 | Hungarian 90 | Icelandic 91 | Igbo 92 | Indonesian 93 | Irish 94 | Italian 95 | Japanese 96 | Javanese 97 | Kannada 98 | Khmer 99 | Korean 100 | Lao 101 | Latin 102 | Latvian 103 | Lithuanian 104 | Macedonian 105 | Malay 106 | Maltese 107 | Maori 108 | Marathi 109 | Mongolian 110 | Nepali 111 | Norwegian 112 | Persian 113 | Polish 114 | Portuguese 115 | Punjabi 116 | Romanian 117 | Russian 118 | Serbian 119 | Slovak 120 | Slovenian 121 | Somali 122 | Spanish 123 | Swahili 124 | Swedish 125 | Tamil 126 | Telugu 127 | Thai 128 | Turkish 129 | Ukrainian 130 | Urdu 131 | Vietnamese 132 | Welsh 133 | Yiddish 134 | Yoruba 135 | Zulu 136 | 137 | Option Default Value 138 | Chinese (Simplified) 139 | 140 | 141 | Option Identifier 142 | ttslang 143 | Option Label 144 | 145 | en 146 | Text To Speech 147 | zh-Hans 148 | 发音 149 | zh-Hant 150 | 發音 151 | 152 | Option Type 153 | multiple 154 | Option Values 155 | 156 | Disabled 157 | Afrikaans 158 | Albanian 159 | Arabic 160 | Armenian 161 | Azerbaijani 162 | Basque 163 | Belarusian 164 | Bengali 165 | Bosnian 166 | Bulgarian 167 | Catalan 168 | Cebuano 169 | Chinese (Simplified) 170 | Chinese (Traditional) 171 | Croatian 172 | Czech 173 | Danish 174 | Dutch 175 | English 176 | Esperanto 177 | Estonian 178 | Filipino 179 | Finnish 180 | French 181 | Galician 182 | Georgian 183 | German 184 | Greek 185 | Gujarati 186 | Haitian Creole 187 | Hausa 188 | Hebrew 189 | Hindi 190 | Hmong 191 | Hungarian 192 | Icelandic 193 | Igbo 194 | Indonesian 195 | Irish 196 | Italian 197 | Japanese 198 | Javanese 199 | Kannada 200 | Khmer 201 | Korean 202 | Lao 203 | Latin 204 | Latvian 205 | Lithuanian 206 | Macedonian 207 | Malay 208 | Maltese 209 | Maori 210 | Marathi 211 | Mongolian 212 | Nepali 213 | Norwegian 214 | Persian 215 | Polish 216 | Portuguese 217 | Punjabi 218 | Romanian 219 | Russian 220 | Serbian 221 | Slovak 222 | Slovenian 223 | Somali 224 | Spanish 225 | Swahili 226 | Swedish 227 | Tamil 228 | Telugu 229 | Thai 230 | Turkish 231 | Ukrainian 232 | Urdu 233 | Vietnamese 234 | Welsh 235 | Yiddish 236 | Yoruba 237 | Zulu 238 | 239 | Option Default Value 240 | Disabled 241 | 242 | 243 | Version 244 | 1 245 | 246 | 247 | --------------------------------------------------------------------------------