def _meal(self, msg, *args): """Displays a 'enjoy your meal' message in a random language""" rand_lang = self._get_random_lang() meal = 'Enjoy your meal' translator = Translator(self._trans_client_id, self._trans_client_sec) translated = translator.translate(meal, rand_lang[0]) return '{} (translated to {})'.format(translated, rand_lang[1])
def translate(text, from_lang="zh", to_lang=None, max_nb_lines=None): u'''Translate to a different language. Eg: '你好' becomes 'Hello' Only installed dictionaries can be used. to_lang possible values : CEDICT, HanDeDict, CFDICT, or 2-letter ISO language code for MS Translate if to_lang is unspecified, the default language will be used. ''' global MS_translator_object if "" == text: return "" if None == to_lang: to_lang = chinese_support_config.options["dictionary"] if "None" == to_lang: return "" if to_lang in ["CEDICT", "CFDICT", "HanDeDict"]: #Local dict return translate_local(text, from_lang, to_lang, max_nb_lines) else: #Ms translate if None == MS_translator_object: MS_translator_object = MSTranslator("chinese-support-add-on", "Mh+X5YY17LZZ8rO9hzJXYD3I02V3E+ltItF15ep7qG8=") try: return MS_translator_object.translate(text, to_lang) except: return ""
def translate(text, from_lang="zh", to_lang=None, max_nb_lines=None): u'''Translate to a different language. Eg: '你好' becomes 'Hello' Only installed dictionaries can be used. to_lang possible values : CEDICT, HanDeDict, CFDICT, or 2-letter ISO language code for MS Translate if to_lang is unspecified, the default language will be used. ''' global MS_translator_object if "" == text: return "" if None == to_lang: to_lang = chinese_support_config.options["dictionary"] if "None" == to_lang: return "" if to_lang in ["CEDICT", "CFDICT", "HanDeDict"]: #Local dict return translate_local(text, from_lang, to_lang, max_nb_lines) else: #Ms translate if None == MS_translator_object: MS_translator_object = MSTranslator( "chinese-support-add-on", "Mh+X5YY17LZZ8rO9hzJXYD3I02V3E+ltItF15ep7qG8=") try: return MS_translator_object.translate(text, to_lang) except: return ""
def translate(self): #prepare the translate environment translator = Translator(self.client_id, self.client_secret) #prepare the phantom server driver = webdriver.PhantomJS() print("server ready") for i in range(1, self.linkcount + 1): link = self.weblinkdic[i] driver.get(link) time.sleep(3) print("get link") description = driver.find_element_by_tag_name("body").text print(link) g = open("../translate/" + str(i) + ".txt", 'w+') for line in description.split('\n'): if len(line) > 5: line = line.strip() try: trans_line = translator.translate(line, 'zh-CHS', 'en') except: sys.exit("Error message") g.write(line + '\n') g.write(trans_line + '\n') g.close() driver.close() return
def translate_text(request): if RosettaSettings.instance().readonly: data = {'success': False, 'error': 'System in readonly mode. Please try later.'} else: language_from = request.GET.get('from', None) language_to = request.GET.get('to', None) text = request.GET.get('text', None) if language_from == language_to: data = {'success': True, 'translation': text} else: # run the translation: AZURE_CLIENT_ID = getattr(settings, 'AZURE_CLIENT_ID', None) AZURE_CLIENT_SECRET = getattr(settings, 'AZURE_CLIENT_SECRET', None) translator = Translator(AZURE_CLIENT_ID, AZURE_CLIENT_SECRET) try: translated_text = translator.translate(text, language_to, language_from) data = {'success': True, 'translation': translated_text} except TranslateApiException as e: data = {'success': False, 'error': "Translation API Exception: {0}".format(e.message)} return HttpResponse(json.dumps(data), content_type='application/json')
def translate(self): #prepare the translate environment client_id = self.variable.get() client_secret = self.userpasswd[client_id] translator = Translator(client_id, client_secret) #prepare the phantom server driver = webdriver.PhantomJS() for i in range(1,2): link = self.weblinkdic[i] driver.get(link) time.sleep(3) description = driver.find_element_by_tag_name("body").text #find_element_by_id #find_element_by_css_selector print(link) g = open("../translate/" +str(i)+".txt", 'w+') for line in description.split('\n'): if len(line)>5: line = line.strip() try: trans_line = translator.translate(line, 'zh-CHS', 'en') except: sys.exit("Error message") g.write(trans_line + '\n') g.close() driver.close() return
def translate(entities): message = "" try: text_for_translation = entities['phrase_to_translate'][0]['value'] lang = entities['language'][0]['value'].lower() language = "" if lang == "spanish": language = "es" elif lang == "french": language = "fr" elif lang == "german": language = "de" elif lang == "chinese": language = "zh-CHS" else: message = "We don't support translation to " + lang + " as of now. Check back later as support is being added." return message message = "\"" + text_for_translation + "\" in " + lang + " is \'" translator = Translator( 'SMSAssistant', 'fhV+AdYFiK0QfQ4PFys+oQ/T0xiBBVQa32kxxbP55Ks=') message += translator.translate(text_for_translation, language) + "\'" if test_mode: send_sms_to_admin(message) except: message = technical_issues() return message
def translate_text(request): language_from = request.GET.get('from', None) language_to = request.GET.get('to', None) text = request.GET.get('text', None) if language_from == language_to: data = {'success': True, 'translation': text} else: # run the translation: if getattr(rosetta_settings, 'GOOGLE_TRANSLATE', False): import goslate translator = goslate.Goslate() else: AZURE_CLIENT_ID = getattr(settings, 'AZURE_CLIENT_ID', None) AZURE_CLIENT_SECRET = getattr(settings, 'AZURE_CLIENT_SECRET', None) translator = Translator(AZURE_CLIENT_ID, AZURE_CLIENT_SECRET) try: translated_text = translator.translate(text, language_to, language_from) data = {'success': True, 'translation': translated_text} except TranslateApiException as e: data = {'success': False, 'error': "Translation API Exception: {0}".format(e.message)} return HttpResponse(json.dumps(data), content_type='application/json')
def translate_text(request): language_from = request.GET.get('from', None) language_to = request.GET.get('to', None) text = request.GET.get('text', None) if language_from == language_to: data = {'success': True, 'translation': text} else: # run the translation: AZURE_CLIENT_ID = getattr(settings, 'AZURE_CLIENT_ID', None) AZURE_CLIENT_SECRET = getattr(settings, 'AZURE_CLIENT_SECRET', None) translator = Translator(AZURE_CLIENT_ID, AZURE_CLIENT_SECRET) try: translated_text = translator.translate(text, language_to, language_from) data = {'success': True, 'translation': translated_text} except TranslateApiException as e: data = { 'success': False, 'error': "Translation API Exception: {0}".format(e.message), } return JsonResponse(data)
class Mangle: def __init__(self): self.translator = Translator(client_id, client_secret) self.langs = self.translator.get_languages() def mangle(self, message_text, language='en', times=0): # If they didn't specify, pick a random number of # times to scramble. if times == 0: times = random.randint(low, high) for i in range(times): rand_lang = random.choice(self.langs) message_text = self.translator.translate(message_text, from_lang=language, to_lang=rand_lang) message_text = self.translator.translate(message_text, from_lang=rand_lang, to_lang=language) return message_text
def run(): """Main function to query Microsoft Translator API and translate words :return: """ try: client_id = getenv('MS_TRANSLATOR_CLIENT_ID', None) api_key = getenv('MS_TRANSLATOR_API_KEY', None) if not api_key: client_id = str(raw_input('Microsoft Translator Client ID: ')) api_key = str(raw_input('Microsoft Translator API Key: ')) if client_id and api_key: translator = Translator(client_id, api_key) en_word_list = read_word_list() result_matrix = [] for lang in translator.get_languages(): # result = get_translated_text(en_word_list, lang, client_id, api_key) result_matrix.append(result) # Transpose the matrix for csv writer to_write_matrix = [list(i) for i in zip(*result_matrix)] write_result(to_write_matrix) except: sys.exit(2)
def speakCaption(): filename = str(datetime.now()) + ".png" os.rename("./pepper_picture/now.png", "./pepper_picture/" + filename) print "Creating caption..." script = 'curl -F "file=@./pepper_picture/' + filename + '" localhost:8000' result = commands.getoutput(script).split("\n")[3] print result print "Translating..." translator = Translator('Your client ID', 'Your client secret') #change this line result = translator.translate(result, "ja") print result print "Creating wav.file with Rospeex and preparing speech..." tts_command = { "method":"speak", "params":["1.1", {"language":"ja","text":result,"voiceType":"*","audioType":"audio/x-wav"}]} obj_command = json.dumps(tts_command) # string to json object req = urllib2.Request(tts_url, obj_command) received = urllib2.urlopen(req).read() # get data from server obj_received = json.loads(received) tmp = obj_received['result']['audio'] # extract result->audio speech = base64.decodestring(tmp.encode('utf-8')) f = open ("./result_voice/out.wav",'wb') f.write(speech) f.close commands.getoutput('aplay ./result_voice/out.wav')
def translate_text(request): language_from = request.GET.get('from', None) language_to = request.GET.get('to', None) text = request.GET.get('text', None) if language_from == language_to: data = {'success': True, 'translation': text} else: # run the translation: if getattr(rosetta_settings, 'GOOGLE_TRANSLATE', False): import goslate translator = goslate.Goslate() else: AZURE_CLIENT_ID = getattr(settings, 'AZURE_CLIENT_ID', None) AZURE_CLIENT_SECRET = getattr(settings, 'AZURE_CLIENT_SECRET', None) translator = Translator(AZURE_CLIENT_ID, AZURE_CLIENT_SECRET) try: translated_text = translator.translate(text, language_to, language_from) data = {'success': True, 'translation': translated_text} except TranslateApiException as e: data = { 'success': False, 'error': "Translation API Exception: {0}".format(e.message) } return HttpResponse(json.dumps(data), content_type='application/json')
def call_translate_method(self, text, from_language, to_language): # This is supposed to be secret. I'm not really worried unless we distribute this thing. translator = Translator("HypeBot", "6QvARrt7O0/JPsUeNRDeixHIGozNb6O7Gd5cFjFLjYU=") if from_language == None: from_language = translator.detect_language(text=text) if to_language == None: to_language = 'en' # Assume English return translator.translate(text=text, to_lang=to_language, from_lang=from_language)
def run_command(msg, *args): """Displays a 'enjoy your meal' message in a random language""" lang_code, country = jabberbot.locale.random() meal = 'Enjoy your meal' translator = Translator(trans_client_id, trans_client_sec) translated = translator.translate(meal, lang_code) meal = '{} (translated to {})'.format(translated, country) return 'groupchat', meal
def __init__(self, client_id, client_secret, language, low, high, language_blacklist): self.language = language self.translator = Translator(client_id, client_secret) self.languages = set( self.translator.get_languages()) - language_blacklist self.low = low self.high = high
def example_mstranslator(): """ Ref: https://github.com/wronglink/mstranslator/blob/master/mstranslator.py """ from mstranslator import Translator translator = Translator('ecnu_translator', 'sc6x4pJQDBtyqmGhhRmOknjeeXcL1YGBUTkvZLtn62k=') print(translator.translate('Привет, мир!', lang_from='ru', lang_to='en'))
def get(parameter, channel, author, folder): if not parameter: return None params = parameter.split(" ",2) client = Translator(config.AZURE_CLIENT_ID, config.AZURE_CLIENT_SECRET) try: return client.translate(params[2].decode("utf-8"), params[1], from_lang=params[0]).encode("utf-8") except: return "Viga! Kasutamine: !trans lähtekeelekood sihtkeelekood tekst"
def send(): with sqlite3.connect("sample.db") as connection: c = connection.cursor() cht = request.form['msg'] translator = Translator('rk', os.environ['CLIENT_KEY']) p = translator.translate(cht, "hi") t = time.strftime("%Y-%m-%d %H:%M:%S") c.execute("INSERT INTO chats(chat, time, name) VALUES(?, ?, ?)", (p, t,session.get('logged_in_user'))) return "Ok"
def C3POTranslate(c3pouser, c3pomessage, c3pochannel): translator = Translator('c3po', 'KgKKwR+UILpk0IUlZ0VaZTtBbOrXFqzsgit8y8jNK3M=') message = c3pomessage.split(' ', 1)[1] language = 'en' translated = translator.translate(message, language) print sc.api_call("chat.postMessage", as_user="******", channel=c3pochannel, text=translated)
class MicrosoftTranslator(AbstractTranslator): name = "microsoft" def __init__(self): super(MicrosoftTranslator, self).__init__() if self.options is not None: client_id = self.options.get("client_id") client_secret = self.options.get("client_secret") if client_id is None or client_secret is None: raise ValueError( "Misconfigured application. If you use the Microsoft Translator, provide a client_id and a client_secret" ) self.client = MSTranslator(client_id=client_id, client_secret=client_secret) else: self.client = None self._languages = None @property def languages(self): if self._languages is not None: return self._languages if self.client is None: self._languages = [] try: self._languages = self.client.get_languages() except MSTranslatorApiException: return [] return self._languages def _translate(self, texts, language, origin_language="en"): """ [ 'Hello' ], 'es' => { 'Hello' : 'Hola' } """ if self.client is None: return {} if language not in self.languages: return {} app.logger.debug("Translating %r to %r using Microsoft Translator API" % (texts, language)) try: ms_translations = self.client.translate_array(texts=texts, to_lang=language, from_lang=origin_language) except MSTranslatorApiException as e: traceback.print_exc() app.logger.warn("Error translating using Microsoft Translator API: %s" % e, exc_info=True) return {} app.logger.debug("Translated %s sentences using Microsoft Translator API" % len(ms_translations)) translations = {} for text, translation in zip(texts, ms_translations): translated_text = translation.get("TranslatedText") if translated_text: translations[text] = translated_text return translations
def translate_bing(text, in_lang, out_lang, bot): if not bot.config.has_option('translate', 'bing_user') or not bot.config.has_option('translate', 'bing_pass'): return 'No se ha habilitado el uso de bing en este bot!' else: user = bot.config.translate.bing_user password = bot.config.translate.bing_pass translator = Translator(user, password) if in_lang == 'auto': return translator.translate(text, out_lang) else: return translator.translate(text, out_lang, in_lang)
class TranslateBing: def __init__(self, logger): self.bing = Translator('l2a', '9W6zDb3DBJ77SCjWPOHZsp5y75j5gJvu0z0pjn9zdHk=') self.logger = logger.getChild(__name__) def translate(self, source, to_lang=None): self.logger.debug(source) if (not to_lang): to_lang = "ja" if self.bing.detect_language( source) == "en" else "en" return (self.bing.translate(source, to_lang))
def post_request(): # request.formにPOSTデータがある source = request.form["source"] df=pd.read_csv("secret_bing_translate.csv", header=None) NAME_TRANS = df[0][0] KEY_TRANS = df[0][1] translator = Translator(NAME_TRANS, KEY_TRANS) to_lang = request.form["to_lang"] from_lang = request.form["from_lang"] result = translator.translate(source, to_lang, from_lang) global firstevent histories[source] = result return render_template('index.html', message="翻訳結果", source = source, result=result, histories = histories)
def _birthday(self, msg, *args): """Sends a happy birthday in an random language greeting You can add a nickname: bday <nick> """ rand_lang = self._get_random_lang() greet = 'Happy birthday to you' translator = Translator(self._trans_client_id, self._trans_client_sec) translated = translator.translate(greet, rand_lang[0]) if args: return '{} @{} (translated to {})'.format(translated, ' '.join(args), rand_lang[1]) return '{} (translated to {})'.format(translated, rand_lang[1])
def run_command(msg, *args): """Sends a happy birthday in an random language greeting You can add a nickname: bday <nick> """ lang_code, country = jabberbot.locale.random() greet = 'Happy birthday to you' translator = Translator(trans_client_id, trans_client_sec) translated = translator.translate(greet, lang_code) mtype = 'groupchat' if args: return mtype, '{} @{} (translated to {})'.format( translated, ' '.join(args), country) return mtype, '{} (translated to {})'.format(translated, country)
class BingTranslator: def __init__(self): client_id = os.environ.get("BING_TRANSLATION_CLIENT_ID", "gigaware123") client_secret = os.environ.get("BING_TRANSLATION_SECRET", "Dp3afp41sR/sDsKRK3uWPt2i4WbAKqKB5q6RhCI9a1Q=") if not client_id or not client_secret: raise Exception("bing translation client id or client secret not found") self.translator = Translator(client_id, client_secret) def translate(self, untranslated, target_language): return self.translator.translate(untranslated, target_language, from_lang='en') def translate_all(self, untranslated, target_language): return self.translator.translate_array(untranslated, target_language, from_lang='en')
class MSTranslator(): def __init__(self, client_id, client_secret): self.client_id = client_id self.client_secret = client_secret self.translator = Translator(client_id, client_secret) def detect(self, text): code = self.translator.detect_language(text) lang = Language(code) return lang def translate(self, text, target_lang="ja"): translated_text = self.translator.translate(text, target_lang) return translated_text
def read_entry(entry): session_attributes = {} reprompt_text = None should_end_session = True speech_output = '' translator = Translator('wykopalexa', 'Y3ThYcaJRUm0Y2zfF0oTlz92c3UDIaDKup+KD7Ror3k=') entryText = re.sub('<[^<]+?>', '', entry['body']) speech_output = translator.translate(entryText, 'en-us', 'pl') return build_response( session_attributes, build_speechlet_response('wykop', speech_output, reprompt_text, should_end_session))
def translate_Bing(text): ''' This method translates a text string to english with the Microsoft Bing_translator. Note that this translator only translates 2.000.000 Letters / Month for free using a Microsoft account and the registered client with secret. :param text: String that is to be translated :return: english translation of the text ''' client_id = 'EuropenaTranslator' client_secret = 'iAcywBlP37WpSs/qxNVdlCOjVXYSti+L9YTUvBx4ets=' translator = Translator(client_id, client_secret) text4translation = translator.translate(text, 'en') return text4translation
def test_get_traslations(self): client = Translator(client_id, client_secret, debug=True) self.assertEqual( client.get_translations("sun", "ru"), {'From': 'en', 'Translations': [ {'Rating': 5, 'TranslatedText': u'Солнце', 'Count': 0, 'MatchDegree': 100, 'MatchedOriginalText': ''}, {'Rating': 1, 'TranslatedText': u'Солнце', 'Count': 1, 'MatchDegree': 100, 'MatchedOriginalText': 'sun'}, {'Rating': 1, 'TranslatedText': u'солнце', 'Count': 1, 'MatchDegree': 100, 'MatchedOriginalText': 'sun'}, {'Rating': 1, 'TranslatedText': u'ВС', 'Count': 1, 'MatchDegree': 99, 'MatchedOriginalText': 'SUN'}, {'Rating': 1, 'TranslatedText': u'Вос', 'Count': 1, 'MatchDegree': 99, 'MatchedOriginalText': 'Sun'}, {'Rating': 1, 'TranslatedText': u'Воскресенье', 'Count': 1, 'MatchDegree': 99, 'MatchedOriginalText': 'Sun'}, {'Rating': 1, 'TranslatedText': u'Вс', 'Count': 1, 'MatchDegree': 99, 'MatchedOriginalText': 'Sun'}, {'Rating': 0, 'TranslatedText': u'СОЛНЦЕ!!', 'Count': 0, 'MatchDegree': 63, 'MatchedOriginalText': 'SUN!!'} ]} )
def __init__(self): client_id = os.environ.get("BING_TRANSLATION_CLIENT_ID", "gigaware123") client_secret = os.environ.get("BING_TRANSLATION_SECRET", "Dp3afp41sR/sDsKRK3uWPt2i4WbAKqKB5q6RhCI9a1Q=") if not client_id or not client_secret: raise Exception("bing translation client id or client secret not found") self.translator = Translator(client_id, client_secret)
def translate(entities): phrase_to_translate = entities.get('phrase_to_translate')[0].get('value') message = "" if entities.get('language') == None: message = "Language not supported" else: language = entities.get('language')[0].get('value') language = language.lower() if language == "chinese" or language == "zh-CHS": language = "zh-CHS" elif language == "dutch" or language == "nl": language = "nl" elif language == "english" or language == "en": language = "en" elif language == "french" or language == "fr": language = "fr" elif language == "german" or language == "de": language = "de" elif language == "italian" or language == "it": language = "it" elif language == "japanese" or language == "ja": language = "ja" elif language == "korean" or language == "ko": language = "ko" elif language == "portuguese" or language == "pt": language = "pt" elif language == "russian" or language == "ru": language = "ru" elif language == "spanish" or language == "es": language = "es" elif language == "swedish" or language == "sv": language = "sv" elif language == "thai" or language == "th": language = "th" elif language == "vietnamese" or language == "vi": language = "vi" else: message = "Language not supported" if message != "Language not supported": translator = Translator('SMSAssistant', 'fhV+AdYFiK0QfQ4PFys+oQ/T0xiBBVQa32kxxbP55Ks=') message = translator.translate(phrase_to_translate, language) resp = twilio.twiml.Response() # print message resp.message(message) return resp
def speakCaption(): filename = str(datetime.now()) + ".png" os.rename("./pepper_picture/now.png", "./pepper_picture/" + filename) print "Creating caption..." script = 'curl -F "file=@./pepper_picture/' + filename + '" localhost:8000' result = commands.getoutput(script).split("\n")[3] print result print "Translating..." translator = Translator('Your client ID', 'Your client secret') #change this line result = translator.translate(result, "ja") print result print "Creating wav.file with Rospeex and preparing speech..." tts_command = { "method": "speak", "params": [ "1.1", { "language": "ja", "text": result, "voiceType": "*", "audioType": "audio/x-wav" } ] } obj_command = json.dumps(tts_command) # string to json object req = urllib2.Request(tts_url, obj_command) received = urllib2.urlopen(req).read() # get data from server obj_received = json.loads(received) tmp = obj_received['result']['audio'] # extract result->audio speech = base64.decodestring(tmp.encode('utf-8')) f = open("./result_voice/out.wav", 'wb') f.write(speech) f.close commands.getoutput('aplay ./result_voice/out.wav')
def translate(): if not request.json: abort(make_response(jsonify(message="Bad zapros"), 400)) # sanitize html data = bleach.clean(request.json['text']) if len(data) > 400: abort(make_response(jsonify(message="Slishkom long stroka"), 400)) splitted_original = re.split('(\W+)', data, flags=re.UNICODE) # transliterate flag. if true - the world will be transliterated transliterate_flag = True word_regex = re.compile('\w+', re.U) # array indexes of the words that will be really translated # used to put the translated words back in their places to_translate_indexes = [] # array of the words that will be translated to_translate = [] for i in range(0, len(splitted_original)): # if is's a word, not a comma, or space or whatever if re.match(word_regex, splitted_original[i]): # transliterate it or push in array for translation if transliterate_flag: splitted_original[i] = translit(splitted_original[i], 'ru', reversed=True) else: to_translate_indexes.append(i) to_translate.append(splitted_original[i]) transliterate_flag = not transliterate_flag translated = [{}] try: # translate the words translator = Translator(app.config['TRANSLATOR_ID'], app.config['TRANSLATOR_SECRET']) translated = translator.translate_array(to_translate, 'en', 'ru') except Exception as e: abort(make_response(jsonify(message="Try again popozhe"), 500)) # put the translated words back using the to_translate_indexes array for z in range(0, len(to_translate_indexes)): t = translated[z]['TranslatedText'] splitted_original[to_translate_indexes[z]] = t res = ''.join(splitted_original) return jsonify(translation=res, status=200)
def __init__(self): super(MicrosoftTranslator, self).__init__() if self.options is not None: client_id = self.options.get('client_id') client_secret = self.options.get('client_secret') if client_id is None or client_secret is None: raise ValueError("Misconfigured application. If you use the Microsoft Translator, provide a client_id and a client_secret") self.client = MSTranslator(client_id = client_id, client_secret = client_secret) else: self.client = None self._languages = None
def translate(text, from_lang="zh", to_lang=None, progress_bar=True): u'''Translate to a different language. Eg: '你好' becomes 'Hello' Only installed dictionaries can be used. to_lang possible values : "local_en", "local_de", "local_fr" or a 2-letter ISO language code for MS Translate if to_lang is unspecified, the default language will be used. if progress_bar is True, then will display a progress bar. ''' global MS_translator_object text = cleanup(text) if "" == text: return "" if None == to_lang: to_lang = chinese_support_config.options["dictionary"] if "None" == to_lang: return "" if to_lang.startswith("local_"): #Local dict return translate_local(text, to_lang[-2:]) else: #Ms translate ret = "" if progress_bar: mw.progress.start(label="MS Translator lookup", immediate=True) if None == MS_translator_object: MS_translator_object = MSTranslator( "chinese-support-add-on", "Mh+X5YY17LZZ8rO9hzJXYD3I02V3E+ltItF15ep7qG8=") try: ret = MS_translator_object.translate(text, to_lang) except: pass if "ArgumentException:" == ret[:18]: #Token has probably expired ret = "" if progress_bar: mw.progress.finish() return ret
def translate(text, from_lang="zh", to_lang=None, progress_bar=True): u'''Translate to a different language. Eg: '你好' becomes 'Hello' Only installed dictionaries can be used. to_lang possible values : "local_en", "local_de", "local_fr" or a 2-letter ISO language code for MS Translate if to_lang is unspecified, the default language will be used. if progress_bar is True, then will display a progress bar. ''' global MS_translator_object text = cleanup(text) if "" == text: return "" if None == to_lang: to_lang = chinese_support_config.options["dictionary"] if "None" == to_lang: return "" if to_lang.startswith("local_"): #Local dict return translate_local(text, to_lang[-2:]) else: #Ms translate ret = "" if progress_bar: mw.progress.start(label="MS Translator lookup", immediate=True) if None == MS_translator_object: MS_translator_object = MSTranslator("chinese-support-add-on", "Mh+X5YY17LZZ8rO9hzJXYD3I02V3E+ltItF15ep7qG8=") try: ret = MS_translator_object.translate(text, to_lang) except: pass if "ArgumentException:" == ret[:18]: #Token has probably expired ret="" if progress_bar: mw.progress.finish() return ret
def translate(): #missingword = request.form['missingword'] #to_language = request.form['to_language'] missingword = 'envelope' to_language = 'ja' #from_language = request.form['from_language'] #翻訳 print '1step' translator = Translator('skeven', 'vizaHdZEjZkP0ZdL/B3CQ0UO9yzsgmTT2hDtuvJFdL0=') # from_languageは自動的に判別されるので指定する必要が無い translated_word = translator.translate(missingword, to_language) print '2step' #translated_word = translator.translate("Hello", "ja") # Registering Word to DB(CSV?) languagetype = translator.detect_language(missingword) print '3step' inlinecsv = languagetype + '$YIN$' + missingword + '$YIN$' + to_language + "$YIN$" + translated_word + '\n' print inlinecsv f = open('./word/addinfo_dictionary_utf8.txt', 'a') f.write(inlinecsv.encode('utf-8')) f.close() return translated_word;
def __init__(self): super(MicrosoftTranslator, self).__init__() if self.options is not None: client_id = self.options.get('client_id') client_secret = self.options.get('client_secret') if client_id is None or client_secret is None: raise ValueError( "Misconfigured application. If you use the Microsoft Translator, provide a client_id and a client_secret" ) self.client = MSTranslator(client_id=client_id, client_secret=client_secret) else: self.client = None self._languages = None
def translate(self): #prepare the translate environment client_id = self.variable.get() client_secret = self.userpasswd[client_id] translator = Translator(client_id, client_secret) #prepare the phantom server #driver = webdriver.PhantomJS() #print("server ready") for i in range(1, 20): link = self.weblinkdic[i] try: html = urlopen(link) bsObj = BeautifulSoup(html.read()) description = bsObj.p.get_text().encode('utf-8') print(description) print(link) g = open("../translate/" + str(i) + ".txt", 'w+') for line in description.split('\n'): if len(line) > 5: line = line.strip() try: trans_line = translator.translate( line, 'zh-CHS', 'en') g.write(trans_line + '\n') except: sys.exit("Error message") g.close() except: sys.exit("Error Message") return
def init_translate(): aBasePath = os.getcwd() sourcePath = aBasePath + "/assets/BingCredentials" fileObj1 = open(sourcePath + '/bingClientId.txt', 'r') client_id = fileObj1.read().strip("\n\r") fileObj1.close() # print (type(client_id), client_id) fileObj2 = open(sourcePath + '/bingClientSecret.txt', 'r') client_secret = fileObj2.read().strip("\n\r") fileObj2.close() # print (type(client_secret), client_secret) client = Translator(client_id, client_secret, debug=False) return client
def init(recordToSkip=0): global translator translator = Translator('shalabh', '6Af7+rQSZl+Jqb/y4W0/QP196VkT+fiSMyoKRXBp8Y8=') client=MongoClient() db=client['yelp'] reviewTable=db['reviewData'] collection = db['converted_reviews'] count=0 #gs = goslate.Goslate() for line in file: count+=1 print count if count<=recordToSkip: continue record={} arr=line.replace("\n","").split(':') id=str(arr[0]) lng=str(arr[1]) if lng in langList: time.sleep(1) #print count find={"review_id":id} for review in reviewTable.find(find): text=review["text"] stars=review["stars"] #print text.encode('utf-8') time.sleep(1) if(len(text)>546): arr1=text.split(".") translated_text="" for item in arr1: translated_text= translated_text+". "+MyTranslator.translate(item.replace("\n","").encode('utf-8'), "en", lng) else: translated_text= MyTranslator.translate(text.replace("\n","").encode('utf-8'), "en", lng) print "===========================" #translated_text= MyTranslator.translate(text.replace("\n","").encode('utf-8'), "en", lng) time.sleep(1) #print translated_text record.update({'review_id':id}) record.update({'lng':lng}) record.update({'translation':translated_text}) record.update({'stars':stars}) collection.insert_one(record).inserted_id print count," record inserted" print "============================="
def translate(text, language): global translator for i in range(5): try: translation = translator.translate(text, language) if 'ArgumentException' in translation: raise Exception(translation) return re.sub(u'peer.fm', u'Peer.fm', translation, flags=re.IGNORECASE) except Exception, e: f = open('translate.log', 'w+') f.write(str(e)) f.close() time.sleep(20) translator = Translator( 'peerfm', 'bJHtNJK4zTLAGtaoyxnO5wI1N3XHN8Fygz2pEn11WTQ=')
class Translator: def __init__(self, developerKey='AIzaSyD-S4_2g1SRp4jucHpdLSBBq6xWhOsHcSI'): self.googleAPI = build('translate', 'v2', developerKey=developerKey) self.yandexAPI = YandexTranslate('trnsl.1.1.20160423T052231Z.a28f67a8074f04f8.0a0282fad14a1dfd13d21ed6ab55f0a0a61c2d3f') self.bingAPI = Bing_Translator('welcome_ciceron', 'VL9isREJUILWMCLE2hr75xVaePRof6kuGkCM+r9oTb0=') self.ciceronAPI = "http://221.142.31.56:{port}/translator/translate" def _googleTranslate(self, source_lang, target_lang, sentences): if (source_lang == 'ko' and target_lang == 'en') or \ (source_lang == 'en' and target_lang == 'ko'): result_google_jp = self.googleAPI.translations().list( source=source_lang, target='ja', q=sentences ).execute() if result_google_jp.get('translations') != None: inter_text = result_google_jp['translations'][0]['translatedText'] else: return False result_google = self.googleAPI.translations().list( source='ja', target=target_lang, q=inter_text ).execute() if result_google.get('translations') != None: result_text = result_google['translations'][0]['translatedText'] return result_text else: return False else: result_google = self.googleAPI.translations().list( source=source_lang, target=target_lang, q=sentences ).execute() if result_google.get('translations') != None: result_text = result_google['translations'][0]['translatedText'] return result_text else: return None def _ciceronTranslate(self, source_lang, target_lang, sentences): headers = {'content-type': 'application/json'} payload = {'src': sentences} if source_lang == 'en' and target_lang == 'ko': response = requests.post(self.ciceronAPI.format(port=7700), data=json.dumps(payload), headers=headers) elif source_lang == 'ko' and target_lang == 'en': response = requests.post(self.ciceronAPI.format(port=7710), data=json.dumps(payload), headers=headers) else: return None data = response.json() return data[0][0]['tgt'] def _bingTranslate(self, source_lang, target_lang, sentences): try: result_bing = self.bingAPI.translate(sentences, target_lang) return result_bing except Exception: traceback.print_exc() return None def _yandexTranslate(self, source_lang, target_lang, sentences): lang_FromTo = '%s-%s' % (source_lang, target_lang) result_yandex = self.yandexAPI.translate(sentences, lang_FromTo) if result_yandex.get('text') != None: return result_yandex['text'][0] else: return None def getCountryCode(self, country_id): if os.environ.get('PURPOSE') == 'PROD': DATABASE = "host=ciceronprod.cng6yzqtxqhh.ap-northeast-1.rds.amazonaws.com port=5432 dbname=ciceron user=ciceron_web password=noSecret01!" else: DATABASE = "host=aristoteles.ciceron.xyz port=5432 dbname=ciceron user=ciceron_web password=noSecret01!" conn = psycopg2.connect(DATABASE) cursor = conn.cursor() query = """SELECT google_code, yandex_code, bing_code FROM CICERON.D_LANGUAGES WHERE id = %s """ cursor.execute(query, (country_id, )) res = cursor.fetchone() if res is None or len(res) == 0: return False, None return True, {'google': res[0], 'yandex': res[1], 'bing': res[2]} def doWork(self, source_lang_id, target_lang_id, sentences): if len(sentences) > 1000: result_text = "한 문장에 1000글자가 넘어가면 초벌 번역이 불가능합니다. / It is imposiible to initial-translate if the length of the sentence is over 1000 characters." return True, {'google': result_text, 'bing': result_text, 'yandex': result_text} is_sourceId_OK, source_langCodeDict = self.getCountryCode(source_lang_id) is_targetId_OK, target_langCodeDict = self.getCountryCode(target_lang_id) if is_sourceId_OK == False or is_targetId_OK == False: fail_translation = "초벌 번역 처리가 불가능한 언어입니다. / Unsupported language." return False, {'google': fail_translation, 'bing': fail_translation, 'yandex': fail_translation} try: result_google = self._googleTranslate(source_langCodeDict['google'], target_langCodeDict['google'], sentences) except Exception: traceback.print_exc() result_google = "초벌번역 처리가 불가능한 문자가 삽입되었습니다. / Unsupported character is contained in the sentence." try: result_bing = self._bingTranslate(source_langCodeDict['bing'], target_langCodeDict['bing'], sentences) except Exception: traceback.print_exc() result_bing = "초벌번역 처리가 불가능한 문자가 삽입되었습니다. / Unsupported character is contained in the sentence." try: result_yandex = self._yandexTranslate(source_langCodeDict['yandex'], target_langCodeDict['yandex'], sentences) except Exception: traceback.print_exc() result_yandex = "초벌번역 처리가 불가능한 문자가 삽입되었습니다. / Unsupported character is contained in the sentence." try: result_ciceron = self._ciceronTranslate(source_langCodeDict['google'], target_langCodeDict['google'], sentences) except Exception: traceback.print_exc() result_yandex = "초벌번역 처리가 불가능한 문자가 삽입되었습니다. / Unsupported character is contained in the sentence." return True, {'google': result_google, 'bing': result_bing, 'yandex': result_yandex, 'ciceron': result_ciceron}
def __init__(self): self.translator = Translator(client_id, client_secret) self.langs = self.translator.get_languages()
#!/usr/bin/env python # -*- coding: utf-8 -*- from microsofttranslator import Translator # if this fails, do: # sudo easy_install microsofttranslator from ref_definitions2 import read_all_the_files translator = Translator('finalproj', 'LZTVKNyxQEjmIUbMWp1HhkN4x9XkIbnT6fHhaJfLFmo=') #print translator.translate('你好'.decode('utf8'), 'en', 'zh-CHT') (chinese_sentences,english_sentences) = read_all_the_files() of = open('bing_translations.txt', 'w') for chinese_sent in chinese_sentences: chinese_sent = ''.join([x for x in chinese_sent if x != ' ']) print >> of, chinese_sent print >> of, translator.translate(chinese_sent.decode('utf8'), 'en', 'zh-CHT').encode('utf-8') print >> of, '=========='
#!/usr/bin/env python # -*- coding: utf-8 -*- from microsofttranslator import Translator # if this fails, do: # sudo easy_install microsofttranslator from ref_definitions2 import read_all_the_files translator = Translator('finalproj', 'LZTVKNyxQEjmIUbMWp1HhkN4x9XkIbnT6fHhaJfLFmo=') #print translator.translate('你好'.decode('utf8'), 'en', 'zh-CHT') (chinese_sentences, english_sentences) = read_all_the_files() of = open('bing_translations.txt', 'w') for chinese_sent in chinese_sentences: chinese_sent = ''.join([x for x in chinese_sent if x != ' ']) print >> of, chinese_sent print >> of, translator.translate(chinese_sent.decode('utf8'), 'en', 'zh-CHT').encode('utf-8') print >> of, '=========='
def test_get_languages(self): client = Translator(client_id, client_secret, debug=True) languages = client.get_languages() self.assertEqual(type(languages), list) self.assertTrue(set(default_languages).issubset(set(languages)))
from microsofttranslator import Translator import csv t = Translator("WWEB", "ml7-win-wilson-eric-bernie") # ClientID,Client Secret words = open("words.csv").readlines() words = [word.strip() for word in words] with open("engToSpan.csv", "w") as csvfile: writer = csv.writer(csvfile, delimiter="\n") for w in words: try: writer.writerow([w + "," + t.translate(w, "es").encode("utf-8")]) except: pass
def __init__(self, client_id, client_secret): self.client_id = client_id self.client_secret = client_secret self.translator = Translator(client_id, client_secret)
def test_translate_array(self): client = Translator(client_id, client_secret, debug=True) self.assertEqual(client.translate("hello", "pt"), u'Ol\xe1')
def test_detect_language(self): client = Translator(client_id, client_secret, debug=True) self.assertEqual(client.detect_language('hello'), u'en')
def __init__(self, developerKey='AIzaSyD-S4_2g1SRp4jucHpdLSBBq6xWhOsHcSI'): self.googleAPI = build('translate', 'v2', developerKey=developerKey) self.yandexAPI = YandexTranslate('trnsl.1.1.20160423T052231Z.a28f67a8074f04f8.0a0282fad14a1dfd13d21ed6ab55f0a0a61c2d3f') self.bingAPI = Bing_Translator('welcome_ciceron', 'VL9isREJUILWMCLE2hr75xVaePRof6kuGkCM+r9oTb0=') self.ciceronAPI = "http://221.142.31.56:{port}/translator/translate"
from BeautifulSoup import BeautifulSoup soup = BeautifulSoup(open('senticnet.rdf', 'r')) dicionario = {} textos = soup.findAll('text') polaridade = soup.findAll('polarity') assert len(textos) == len(polaridade) for i in range(0,len(textos)): dicionario[ textos[i].contents[0].lower() ] = float(polaridade[i].contents[0]) assert dicionario['december'] == 0.611 tradutor = Translator("0ef986af-2384-4257-9562-8aa9ac02abb5","8iDU8Hv04E4bQXTCCFvL1oj/RIITad3yX8TYxx+UC4o=") #Testa se o tradutor esta funcionando #assert tradutor.translate(unicode("Olá","utf-8"), 'en', 'pt') == "Hello" arq_out = open('senticnet_pt.txt','a') dicionario_pt = {} texto = [] i = 0 for palavra in dicionario.keys(): try: if i >= 200: tradutor = Translator("0ef986af-2384-4257-9562-8aa9ac02abb5","8iDU8Hv04E4bQXTCCFvL1oj/RIITad3yX8TYxx+UC4o=") i = 0 palavra_pt = tradutor.translate(palavra, 'pt', 'en') dicionario_pt[palavra_pt] = dicionario[palavra]
def test_invalid_client_id(self): client = Translator("foo", "bar") with self.assertRaises(TranslateApiException): client.translate("hello", "pt")