def translate(source, lang_from, lang_to): """ Translates source text from and to scpecified language """ lang_from_bingcode = lang_from.bingcode if lang_from else None t = Translator(settings.MS_TRANSLATOR_CLIENT_ID, settings.MS_TRANSLATOR_CLIENT_SECRET) return t.translate(source, lang_from_bingcode, lang_to.bingcode)
def btranslate(text_message, langfrom, langto): translator = Translator(client_id, client_secret) phrase_translated = translator.translate(text_message, lang_from=langfrom, lang_to=langto) #print phrase_translated return phrase_translated.encode('utf8')
def btranslate(text_message, langfrom, langto): client_id = config.get('microsoft', 'client_id') client_secret = config.get('microsoft', 'client_secret') translator = Translator(client_id, client_secret) phrase_translated = translator.translate( text_message, lang_from=langfrom, lang_to=langto) return phrase_translated.encode('utf8')
def makeFrenchQuery(myQuery): terms = parseQuery(myQuery) translator = Translator('myPythonTranslate64', 'YqNxIMdOAoaF5Am+/BT84sdQ1q7ZCNA1stU0viWcGi4=') frenchQuery = [] for term in terms: translate = translator.translate(term, lang_from='en', lang_to='fr') frenchQuery.append(translate) return frenchQuery
class TranslatorTestCase(unittest.TestCase): def setUp(self): self.translator = Translator(client_id, client_secret) self.translator_mock = TranslatorMock(client_id, client_secret) def test_translate(self): t = self.translator.translate('world', 'en', 'ru') self.assertEqual('мир', t) def test_translate_array(self): ts = self.translator.translate_array(['hello', 'world'], 'en', 'ru') translations = [t['TranslatedText'] for t in ts] self.assertEqual(['Привет', 'мир'], translations) def test_get_translations(self): t = self.translator.get_translations('world', 'en', 'ru') self.assertIsInstance(t, dict) self.assertIn('Translations', t) def test_break_sentences(self): t = self.translator.break_sentences('Hello. How are you?', 'en') self.assertEqual(['Hello. ', 'How are you?'], t) def test_add_translation(self): url = self.translator_mock.add_translation('orig', 'trans', 'en', 'ru', user='******') self.assertIn('originalText=orig', url) self.assertIn('translatedText=trans', url) def test_get_langs(self): langs = self.translator.get_langs() self.assertIsInstance(langs, list) self.assertIn('en', langs) def test_get_lang_names(self): lang_names = self.translator.get_lang_names(['ru', 'en'], 'en') self.assertEqual(['Russian', 'English'], lang_names) def test_get_speackable_langs(self): langs = self.translator.get_langs(speakable=True) self.assertIsInstance(langs, list) self.assertIn('en-us', langs) def test_detect_lang(self): self.assertEqual('en', self.translator.detect_lang('Hello')) def test_detect_langs(self): self.assertEqual(['en', 'ru'], self.translator.detect_langs(['Hello', 'Привет'])) def test_speak(self): self.assertIsNotNone(self.translator.speak('Hello', 'en')) def test_speak_to_file(self): s = StringIO() self.translator.speak_to_file(s, 'Hello', 'en') s.seek(0) self.assertTrue(len(s.read()) > 0)
def btranslate(text_message, langfrom, langto): client_id = config.get('microsoft', 'client_id') client_secret = config.get('microsoft', 'client_secret') translator = Translator(client_id, client_secret) phrase_translated = translator.translate(text_message, lang_from=langfrom, lang_to=langto) return phrase_translated.encode('utf8')
def analyse_entry(self, entry, params): txt = entry['nif:isString'] lang = params.get("lang") lang_to = params.get("lang_to") key = params.get("key") print(params) translator = Translator(key) txttranslated = translator.translate(txt, lang_from=lang, lang_to=lang_to) entry['output'] = {"nif:isString": txttranslated} yield entry
def translate(self, textToTranslate, languageList): if type(textToTranslate) is not str: raise ValueError("The argument textToTranslate must be string") #to save our translation limit the api calls are commented. uncoment to enable translation translator = Translator( 'GeorgiKaradjov', 'Y2c414NBMQlVgVPZK7vmFT7WZ/DJ4sKRYsTxG9NAXlQ=') tempTranslation = textToTranslate languageFrom = Language.English for language in languageList: if issubclass(type(language), Language): tempTranslation = translator.translate( tempTranslation, lang_from=languageFrom.value, lang_to=language.value) languageFrom = language else: raise ValueError( "You must pass only valid values from Languages enum") tempTranslation = translator.translate(tempTranslation, lang_from=languageFrom.value, lang_to=Language.English.value) return tempTranslation
def get_translation(to_translate): try: t = Translator('dorsalfunbot', 'lWJjt3W86DqQX5J+VGCDsvD3LU9/eZFvG0VQj4k6J/Y=') from_lang = t.detect_lang(to_translate) if from_lang == 'en': to_lang = 'fr' header = 'en -> fr:' else: to_lang = 'en' header = '{} -> en:'.format(from_lang) trans_text = t.translate(to_translate, lang_from=from_lang, lang_to=to_lang) return '{} {}'.format(header, trans_text) except Exception as e: print("Translation error: {}".format(e)) return None
def translate(texts: Union[str, List[str]], target_language: Lang = Lang.en) -> List[str]: """Microsoft translation implementation, see `brain.feature.translate`""" warnings.warn("Azure is not used as translation service anymore", DeprecationWarning, stacklevel=2) if not isinstance(texts, list): texts = [texts] # todo: reuse enum from language_detect translate_client = Translator(_KEY) translations = [ translate_client.translate(t, lang_to=target_language.name) for t in texts ] if not translations: raise Exception('no translations') return translations
def engine(): # Get question from user as text question = request.form['question'] #translate question translator = Translator('emad_punk123456', 'R0go6LNQEj3CVh7nhyHw/DLenWLuQNjyjdhnZ0okRGE=') translated_question = translator.translate(question, lang_from='ar', lang_to='en') lower_q = translated_question.lower() #unicode_question=unicode(question, "utf-8") # Send question to api for question analysis and generate query # this Online App is An example For apply Quepy Model on DBpedia # We use it only as a quick demo but we have alot we need to do .. if translated_question != "": url = "http://quepy.machinalis.com/engine/get_query?question=" + lower_q #gs.translate(text, 'de', 'en') # encoded_url = quote_plus(url.encode("utf-8")) # Get sparql query as json r = requests.get(url) j = r.json() # Select only the sparql code query = (j['queries'][0]['query']) #print (query) # Send sparql-query to SPARQLWrapper Model to run it on dbpedia sparql = SPARQLWrapper("http://dbpedia.org/sparql") sparql.setQuery(query) sparql.setReturnFormat(JSON) # Get results as json results = sparql.query().convert() #convert question string to array q2 = question.split(' ') #wiki_question = wikipedia.summary(question) # return json to answer page to view. return render_template('answer.html', query=query, question=lower_q, results=results, q2=q2, url=url)
def translate_2(text, source_language_code, target_language_code): client_id = "irlab-pan-author-obfuscation-16" client_secret = "TWGKKcKQ/VoASe1EksnZBNNVA8mlThBsPQ/5z7Wqkkk=" translator = Translator(client_id, client_secret) translation = translator.translate( text, lang_from=source_language_code, lang_to=target_language_code) return translation
import os import csv from mstranslator import Translator CLIENT_ID = 'NLP' CLIENT_SECRET = '7I2PWW9SJDRNj72bIjTqh7xOn7eke+rPNDx94JUKJEA=' translator = Translator('NLP', CLIENT_SECRET) files_in_dir = os.listdir("Data/Raw/") for datum in files_in_dir: print "Translating " + datum o = open("Data/Translated/"+datum,'w') g = open("Data/Raw/"+datum,'r') f = csv.reader(g, delimiter=',') allposts = [] writer = csv.writer(o) for line in f: allposts.append(translator.translate(line[0].decode("utf-8"), lang_from='hi', lang_to='en')) allposts = [[row] for row in allposts] writer.writerows(allposts) # o.write(gs.translate(line,'hi')) o.close() g.close() print "Translation complete"
class TranslatorTestCase(unittest.TestCase): def setUp(self): self.translator = Translator(client_id, client_secret) self.translator_mock = TranslatorMock(client_id, client_secret) def test_translate(self): t = self.translator.translate('world', 'en', 'ru') self.assertEqual('мир', t) def test_translate_array(self): ts = self.translator.translate_array(['hello', 'world'], 'en', 'ru') translations = [t['TranslatedText'] for t in ts] self.assertEqual(['Привет', 'мир'], translations) def test_translate_array2(self): ts = self.translator.translate_array2(['hello', 'world', 'Hello. How are you?'], 'en', 'ru') translations = [t['TranslatedText'] for t in ts] self.assertEqual(['Привет', 'мир', 'Привет. Как ваши дела?'], translations) alignments = [t['Alignment'] for t in ts] self.assertEqual(['0:4-0:5', '0:4-0:2', '0:5-0:6 7:18-8:21'], alignments) def test_get_translations(self): t = self.translator.get_translations('world', 'en', 'ru') self.assertIsInstance(t, dict) self.assertIn('Translations', t) def test_break_sentences(self): t = self.translator.break_sentences('Hello. How are you?', 'en') self.assertEqual(['Hello. ', 'How are you?'], t) def test_add_translation(self): url = self.translator_mock.add_translation('orig', 'trans', 'en', 'ru', user='******') self.assertIn('originalText=orig', url) self.assertIn('translatedText=trans', url) def test_get_langs(self): langs = self.translator.get_langs() self.assertIsInstance(langs, list) self.assertIn('en', langs) def test_get_lang_names(self): lang_names = self.translator.get_lang_names(['ru', 'en'], 'en') self.assertEqual(['Russian', 'English'], lang_names) def test_get_speackable_langs(self): langs = self.translator.get_langs(speakable=True) self.assertIsInstance(langs, list) self.assertIn('en-us', langs) def test_detect_lang(self): self.assertEqual('en', self.translator.detect_lang('Hello')) def test_detect_langs(self): self.assertEqual(['en', 'ru'], self.translator.detect_langs(['Hello', 'Привет'])) def test_speak(self): self.assertIsNotNone(self.translator.speak('Hello', 'en')) def test_speak_to_file(self): s = StringIO() self.translator.speak_to_file(s, 'Hello', 'en') s.seek(0) self.assertTrue(len(s.read()) > 0)
def request_image(window, keyword, num_of_try=0, translate=True): """ Queries Bing for images and retries up to 5 times if the randomly selected image could not be accessed :param keyword: string which specifies the image content :param num_of_try: internal parameter that increases if the selected image could not be retrieved (e.g. Forbidden Error) :param translate: Should the keyword be translated to english before the search? (may increase result size) :return: The image data in bytes """ if keyword is None: return None if translate: ms_key = open('../ms.key').read() trans = Translator('__RealTimeStoryIllustrator__', ms_key) translatedkw = trans.translate(keyword, lang_from='de', lang_to='en') print("IMAGE SERVICE: Getting image for " + str(keyword) + ". Searched for the english translation '" + str(translatedkw) + "'.") else: translatedkw = keyword print("IMAGE SERVICE: Getting image for " + str(keyword) + ".") if num_of_try > 5: # no images were found logger.error( "IMAGE SERVICE: Could not find an image after 5 tries for " + str(translatedkw) + ".") return None # OLD CODE FOR SEARCHING BEGIN # term = urllib.parse.quote_plus(translatedkw) # sites = [line.rstrip() for line in # open(os.path.join(os.path.dirname(os.path.abspath(__file__)), '..', 'data', 'sites.txt'), # encoding="utf-8")] # excludedsites = "" # for site in sites: # excludedsites = excludedsites + "-site:" + urllib.parse.quote_plus(site) + '%20' # img_type = '%7Eillustration+AND+clipart' # opener = urllib.request.build_opener() # opener.addheaders = [('User-agent', 'Mozilla/5.0')] # url = ('http://ajax.googleapis.com/ajax/services/search/images?' + # 'v=1.0&q=' + term + '%20' + img_type + '%20' + excludedsites + '%20&userip=91.141.0.105' + # '&rsz=8&imgsz=medium&safe=active' + '&tbs=ic:color') # OLD CODE FOR SEARCHING END try: params = { '$format': 'json', '$top': 10, 'ImageFilters': '\'Size:Small\'' } bing_key = open('../bing.key').read() api = BingSearchAPI(bing_key) result = api.search_image( str(translatedkw + '+AND+(illustration+OR+clipart)'), params) amount = len(result.json()['d']['results']) # print(json.dumps(result.json(), sort_keys=True, indent=2)) # print(result.json()) # print(result.json()['d']['results'][0]['MediaUrl']) img_num = random.randint(0, amount - 1) data = urllib.request.urlopen( result.json()['d']['results'][img_num]['MediaUrl'], timeout=2).read() return data except Exception as e: # have to catch everything since socket exceptions seem to be broken print("ERROR in IMAGE SERVICE: Trying again, request was denied " + str(e)) return request_image(window, keyword, num_of_try + 1, translate=translate)
import sqlite3 conn = sqlite3.connect('../database/twitter.sqlite') cur = conn.cursor() from mstranslator import Translator translator = Translator('XXXXXXXXXXXX') #cur.executescript('ALTER TABLE followers ADD loc_ind INTEGER;') #cur.execute('UPDATE followers SET loc_ind = 0') while True: cur.execute('SELECT id FROM t2 WHERE loc_ind <> 1') try: set = cur.fetchone()[0] except: print("All text has been translated") break cur.execute('SELECT location FROM t2 WHERE id = ?', (set, )) loc = cur.fetchone()[0] try: val = translator.translate(loc, lang_to='en') cur.execute('UPDATE t2 SET location = ? WHERE id = ?', (val, set)) cur.execute('UPDATE t2 SET loc_ind = 1 WHERE id = ?', (set, )) conn.commit() except: cur.execute('UPDATE t2 SET location = ? WHERE id = ?', (val, set)) cur.execute('UPDATE t2 SET loc_ind = 1 WHERE id = ?', (set, )) conn.commit() cur.close()
#------------------------------------------------------------------------------------------------------ if auto_translate: translator = Translator(trans_client, trans_secret) langs = getLangsProject(siteID) if blocksID: for phrase in blocksID: sql = 'SELECT * FROM blocks WHERE site_id = {projectID} AND id = {id}'.format( projectID=siteID, id=blocksID[phrase]) cursor.execute(sql) block = cursor.fetchone() for lang in langs: langTo = lang[3] langID = lang[0] translate = translator.translate( phrase.encode('utf-8'), lang_from=fromLang, lang_to=langTo) if translate: loadSQL.append( "({id}, {language_id}, '{text}', NOW(), NOW(), 1, {siteID}, {cc}, {pub}, 0, 0)" .format(id=id, language_id=langID, siteID=siteID, text=MySQLdb.escape_string( str(translate.encode('utf-8'))), cc=len(translate.split())), pub=auto_publishing) else: loadSQL.append( "({id}, {language_id}, '', NOW(), NOW(), 1, {siteID}, 0, {pub}, 0, 0)" .format(id=id,
class TranslatorTestCase(unittest.TestCase): def setUp(self): self.translator = Translator(SUBSCRIPTION_KEY) self.translator_mock = TranslatorMock(SUBSCRIPTION_KEY) def test_translate(self): t = self.translator.translate('world', 'en', 'ru') self.assertEqual('мир', t) def test_translate_exception(self): self.assertRaises(ArgumentOutOfRangeException, self.translator.translate, 'world', 'en', 'asdf') def test_translate_array(self): ts = self.translator.translate_array(['hello', 'world'], 'en', 'ru') translations = [t['TranslatedText'] for t in ts] self.assertEqual(['Привет', 'мир'], translations) def test_translate_array2(self): ts = self.translator.translate_array2(['hello', 'world', 'Hello. How are you?'], 'en', 'ru') translations = [t['TranslatedText'] for t in ts] self.assertEqual(['Привет', 'мир', 'Привет. Как ваши дела?'], translations) alignments = [t['Alignment'] for t in ts] self.assertEqual(['0:4-0:5', '0:4-0:2', '0:5-0:6 7:18-8:21'], alignments) def test_get_translations(self): t = self.translator.get_translations('world', 'en', 'ru') self.assertIsInstance(t, dict) self.assertIn('Translations', t) def test_break_sentences(self): t = self.translator.break_sentences('Hello. How are you?', 'en') self.assertEqual(['Hello. ', 'How are you?'], t) def test_add_translation(self): url = self.translator_mock.add_translation('orig', 'trans', 'en', 'ru', user='******') self.assertIn('originalText=orig', url) self.assertIn('translatedText=trans', url) def test_get_langs(self): langs = self.translator.get_langs() self.assertIsInstance(langs, list) self.assertIn('en', langs) def test_get_lang_names(self): lang_names = self.translator.get_lang_names(['ru', 'en'], 'en') self.assertEqual(['Russian', 'English'], lang_names) def test_get_speackable_langs(self): langs = self.translator.get_langs(speakable=True) self.assertIsInstance(langs, list) self.assertIn('en-us', langs) def test_detect_lang(self): self.assertEqual('en', self.translator.detect_lang('Hello')) def test_detect_langs(self): self.assertEqual(['en', 'ru'], self.translator.detect_langs(['Hello', 'Привет'])) def test_speak(self): self.assertIsNotNone(self.translator.speak('Hello', 'en')) def test_speak_to_file(self): s = StringIO() self.translator.speak_to_file(s, 'Hello', 'en') s.seek(0) self.assertTrue(len(s.read()) > 0)
def dict_mapping(word, key=key_user): translator = Translator(key) return translator.translate(word, lang_from='en', lang_to='th')
def btranslate(text_message, langfrom, langto): translator = Translator(client_id, client_secret) phrase_translated = translator.translate(text_message, lang_from=langfrom, lang_to=langto) # print phrase_translated return phrase_translated.encode("utf8")
def request_image(window, keyword, num_of_try=0, translate=True): """ Queries Bing for images and retries up to 5 times if the randomly selected image could not be accessed :param keyword: string which specifies the image content :param num_of_try: internal parameter that increases if the selected image could not be retrieved (e.g. Forbidden Error) :param translate: Should the keyword be translated to english before the search? (may increase result size) :return: The image data in bytes """ if keyword is None: return None if translate: ms_key = open('../ms.key').read() trans = Translator('__RealTimeStoryIllustrator__', ms_key) translatedkw = trans.translate(keyword, lang_from='de', lang_to='en') print("IMAGE SERVICE: Getting image for " + str(keyword) + ". Searched for the english translation '" + str(translatedkw) + "'.") else: translatedkw = keyword print("IMAGE SERVICE: Getting image for " + str(keyword) + ".") if num_of_try > 5: # no images were found logger.error("IMAGE SERVICE: Could not find an image after 5 tries for " + str(translatedkw) + ".") return None # OLD CODE FOR SEARCHING BEGIN # term = urllib.parse.quote_plus(translatedkw) # sites = [line.rstrip() for line in # open(os.path.join(os.path.dirname(os.path.abspath(__file__)), '..', 'data', 'sites.txt'), # encoding="utf-8")] # excludedsites = "" # for site in sites: # excludedsites = excludedsites + "-site:" + urllib.parse.quote_plus(site) + '%20' # img_type = '%7Eillustration+AND+clipart' # opener = urllib.request.build_opener() # opener.addheaders = [('User-agent', 'Mozilla/5.0')] # url = ('http://ajax.googleapis.com/ajax/services/search/images?' + # 'v=1.0&q=' + term + '%20' + img_type + '%20' + excludedsites + '%20&userip=91.141.0.105' + # '&rsz=8&imgsz=medium&safe=active' + '&tbs=ic:color') # OLD CODE FOR SEARCHING END try: params = {'$format': 'json', '$top': 10, 'ImageFilters': '\'Size:Small\''} bing_key = open('../bing.key').read() api = BingSearchAPI(bing_key) result = api.search_image(str(translatedkw+'+AND+(illustration+OR+clipart)'), params) amount = len(result.json()['d']['results']) # print(json.dumps(result.json(), sort_keys=True, indent=2)) # print(result.json()) # print(result.json()['d']['results'][0]['MediaUrl']) img_num = random.randint(0, amount-1) data = urllib.request.urlopen(result.json()['d']['results'][img_num]['MediaUrl'], timeout=2).read() return data except Exception as e: # have to catch everything since socket exceptions seem to be broken print("ERROR in IMAGE SERVICE: Trying again, request was denied "+str(e)) return request_image(window, keyword, num_of_try + 1, translate=translate)
import wikipedia from mstranslator import Translator translator = Translator("8dc97e03193b4674b160cfe2b07c8223") print(translator.translate('Привет, мир!', lang_from='ru', lang_to='en')) import wikipedia wikipedia.set_lang("en") mlen = wikipedia.page("machine learning") en_content = mlen.content wikipedia.set_lang("fr") #print(mlen.content) mlfr = wikipedia.page("machine learning") fr_content = mlfr.content #print(mlfr.content)
# Language properties for translation LANG_FROM = 'pt' LANG_TO = 'en' # Authenticating on twitter auth = tweepy.OAuthHandler(consumer_key, consumer_secret) auth.set_access_token(access_token, access_token_secret) # API fully authenticated api = tweepy.API(auth) # Tweets SEARCH_TERM = 'unisul' public_tweets = api.search(SEARCH_TERM) """ The polarity score is a float within the range [-1.0, 1.0]. The subjectivity is a float within the range [0.0, 1.0]where 0.0 is very objective and 1.0 is very subjective. """ for i in range(10): # Translated text text = translator.translate(public_tweets[i].text, lang_from=LANG_FROM, lang_to=LANG_TO) # Sentiment analysis analysis = TextBlob(text) print(text) print(analysis.sentiment)
def run(self, options): #self.mutex.lock() self.running = True suggestions_html = '<table border="0.5" cellspacing="0" cellpadding="2" width="100%" style="border-color:gray;">' if self.tm_source_segments_cache is None: self.refresh_tm() if not self.running: return if self.tm_source_segments_cache: matching_segments = db_op.get_translation_memory(self.tm_path, self.tm_source_segments_cache, options['target_language'], options['source_text'], 60) else: matching_segments = [] if not self.running: return if options['context']: suggestions_html += '<tr>' suggestions_html += '<td valign="middle"><img src="images/code_white_24dp.svg"></td>' suggestions_html += '<td><font color="gray">Occurrences (first 4):</font>' for index, occurrence in enumerate(options['context']): if index > 3: break suggestions_html += '<br>' + occurrence[0] + ':' + occurrence[1] suggestions_html += '</td></tr>' if options['previous_text']: if options['previous_text'] != '': suggestions_html += '<tr>' suggestions_html += '<td valign="middle"><img src="images/undo_white_24dp.svg"></td>' suggestions_html += '<td><font color="gray">Previous text:</font><br>' suggestions_html += html.escape(options['previous_text']) suggestions_html += '</td></tr>' for index, row in enumerate(matching_segments): suggestions_html += '<tr>' suggestions_html += '<td valign="middle"><img src="images/storage_white_24dp.svg"></td>' suggestions_html += '<td><font color="gray">TM match (' + str(row[0]) + '%):</font><br>' suggestions_html += html.escape(row[1]) suggestions_html += '<br><font color="gray">Translated text:</font><br>' suggestions_html += html.escape(row[2]) suggestions_html += '</td></tr>' if index + 1 >= self.limit: break if not self.running: return suggestions_html += '</table>' self.finished.emit(suggestions_html) #Machine translation settings = QtCore.QSettings("Babelruins.org", "BlackCAT") translator = Translator(settings.value('plugins_mstranslate_api_key', "")) try: mst_response = translator.translate(options['source_text'], options['source_language'], options['target_language']) if mst_response: #suggestions_html += '<table border="0.5" cellspacing="0" cellpadding="2" width="100%" style="border-color:gray;">' suggestions_html = suggestions_html[:-8] suggestions_html += '<tr>' suggestions_html += '<td valign="middle"><img src="images/computer_white_24dp.svg"></td>' suggestions_html += '<td><font color="gray">Microsoft Translate:</font><br>' suggestions_html += html.escape(mst_response) suggestions_html += '</td></tr>' suggestions_html += '</table>' #suggestions_html.replace('</table>', mt_html) if not self.running: return self.finished.emit(suggestions_html) except Exception as e: print(str(e))