Exemple #1
0
def sentence(request):
    de, en = py_.at(request.GET, 'de', 'en')
    data = dict(languages=['de', 'en', 'es', 'fr', 'ko'],
                translations=dict(de=de, en=en),
                query=dict(de=de, en=en))
    translator = Translator()

    if de:
        text = translator.translate(de, src='de', dest='en').text
        data['translations']['en'] = text
    elif en:
        text = translator.translate(en, src='en', dest='de').text
        data['translations']['de'] = text

    if de or en:
        text = data['translations']['en']
        results = run_async(
            lambda l: translator.translate(text, src='en', dest=l),
            data['languages'][2:])

        for i, result in enumerate(results, 2):
            lang = data['languages'][i]
            data['translations'][lang] = result.text

    return render(request, 'sentence.html', data)
    def __find(self, timeout):
        while not self.finder_pool.empty():
            self.__loading()
            proxy = self.finder_pool.get()

            try:
                translator = Translator(proxies=proxy, timeout=timeout)
                translator.translate('Hello', dest='de')
            except Exception:
                pass
            else:
                if self.finder_pool.qsize():
                    self.done_proxies.put(proxy)
            finally:
                self.finder_pool.task_done()
                self.__clear()
async def _(event):
    if event.fwd_from:
        return
    input_str = event.pattern_match.group(1)
    start = datetime.now()
    if event.reply_to_msg_id:
        previous_message = await event.get_reply_message()
        text = previous_message.message
        lan = input_str
    elif "|" in input_str:
        lan, text = input_str.split("|")
    else:
        await event.edit("Invalid Syntax. Module stopping.")
        return
    translator = Translator()
    try:
        translated = translator.translate(text, dest=lan)
        src_lang = translated.src
        translated_text = translated.text
        end = datetime.now()
        ms = (end - start).seconds
        output_str = "Translated from {} to {} in {} seconds. \n {}".format(src_lang, lan, str(ms), translated_text)
        await event.edit(output_str)
    except exc:
        await event.edit(str(exc))
Exemple #4
0
def do_translate(bot: Bot, update: Update, args: List[str]):

    short_name = "Created By @MidukkiBot 😬"

    msg = update.effective_message # type: Optional[Message]

    lan = " ".join(args)

    to_translate_text = msg.reply_to_message.text

    translator = Translator()

    try:

        translated = translator.translate(to_translate_text, dest=lan)

        src_lang = translated.src

        translated_text = translated.text

        msg.reply_text("Translated from {} to {}.\n {}".format(src_lang, lan, translated_text))

    except :

        msg.reply_text("Error")
Exemple #5
0
def translate(request):
    print("translate!!!")
    # 로그인 했을 경우
    if 'userId' in request.session:

        userId = request.session['userId']
        print(userId)
        user = User.objects.get(username=userId)

        # 로그인 확인 후 원래 작업
        spell = request.GET.get('spell')
        print(spell)

        #google translate 사용
        '''cmd = ['python']
        result = subprocess.Popen(cmd, stdout=subprocess.PIPE, stderr=subprocess.PIPE, shell=True).stdout
        output = result.read().strip()
        result.close()
        print(output)'''
        translator = Translator()
        translated = translator.translate(spell, dest='ko')
        print(spell + " : " + translated.text)
        context = {'mean': translated.text}
        return render(request, 'Vocabulary/translate.html', context)

    # 로그인 안했을 경우
    else:
        redirect_to = reverse('Main')
        return HttpResponseRedirect(redirect_to)
Exemple #6
0
    def __translate(self, line):
        self.__progress()

        curr_proxy = self.proxies.done_proxies.get()
        tr = Translator(proxies=curr_proxy, timeout=10)

        res = None

        try:
            res = tr.translate(line.msgid, dest=self.dest, src=self.src)
        except Exception:
            curr_proxy = self.proxies.done_proxies.get()
            tr = Translator(proxies=curr_proxy, timeout=10)
            res = tr.translate(line.msgid, dest=self.dest, src=self.src)
        finally:
            self.proxies.done_proxies.put(curr_proxy)
            line.msgstr = res.text if res else ''
Exemple #7
0
def message():
    data = json.loads(request.data)
    content = data["content"]
    translator = Translator()
    translated = translator.translate(content, dest="en")

    response = {"message": {"text": translated.text}}

    response = json.dumps(response, ensure_ascii=False)
    return response
Exemple #8
0
def google_translate(text, target='en'):
    if not target:
        target = 'en'
    # Instantiates a client
    translator = Translator()
    try:
        new = translator.translate(text, dest=target)
    except AttributeError as e:
        print(e)
        return None
    if new.extra_data['confidence'] and float(
            new.extra_data['confidence']) > float(0.8) and new.text != text:
        return new
    return None
Exemple #9
0
def translate_chinese(subs, dst="en"):
    # try to translate to english
    from py_translator import Translator
    lst = [row[2] for row in subs]
    trans = {}
    for sublist in slice_iterator(lst):
        translator = Translator()
        try:
            translations = translator.translate(sublist, dest=dst)    
            for translation in translations:
                trans[translation.origin] = translation.text
        except Exception as ex:
            print(ex)
    for row in subs:
        if row[2] in trans:
            row[2] = trans[row[2]]
    dump_sbv(dst_file=f"subtitle_{dst}.sbv", subs=subs)
Exemple #10
0
async def translateme(e):
  if not e.text[0].isalpha() and e.text[0]!="!" and e.text[0]!="/" and e.text[0]!="#" and e.text[0]!="@":
    global langi
    translator=Translator()
    textx=await e.get_reply_message()
    message = e.text
    if textx:
         message = textx
         text = str(message.message)
    else:
        text = str(message[4:])
    reply_text=translator.translate(text, dest=langi).text
    reply_text="`Source: `\n"+text+"`\n\nTranslation: `\n"+reply_text
    await bot.send_message(e.chat_id,reply_text)
    await e.delete()
    if LOGGER:
        await bot.send_message(LOGGER_GROUP,"Translate query "+message+" was executed successfully")
def main():
    try:
        filename = sys.argv[1]
    except IndexError:
        print('Use "python3 auto_translate.py %filename%"')
        sys.exit()

    translator = Translator()

    document = Document(filename)
    table = document.tables[0]
    for row in tqdm(table.rows):
        eng_cell = row.cells[0]
        ru_cell = row.cells[1]
        if eng_cell.text:
            if not ru_cell.text:
                text = translator.translate(eng_cell.text, src='en',
                                            dest='ru').text
                ru_cell.text = text

    document.save('auto_translated__' + filename)
    print('Done')
 def translate(self, txt):
     if self.fromLanguage == self.toLanguage:
         return txt
     else:
         if not self.WarningDone:
             self.WarningDone = True
             print(
                 "  !! Traduction en cours, soyez patient ... / translation ongoing, please be patient ..."
             )
         #translationChunks = txt.split('.')
         translationChunks = [txt]
         translatedTxt = ''
         for chunk in translationChunks:
             translatedChunk = Translator.translate(
                 self, chunk, dest=self.toLanguage,
                 src=self.fromLanguage).text
             translatedTxt += translatedChunk
             if DEBUG:
                 print("#DEBUG: text to translate : {}".format(
                     chunk.strip()))  # .encode('utf-8')
                 print("#DEBUG: translated text : {}\n".format(
                     translatedTxt))  # .encode('utf-8')
         return translatedTxt
Exemple #13
0
ctr_df.reset_index(inplace=True)
ctr_df.columns = ['word', 'n']

# ctr(frequency) from corpus
news_text = gutenberg.words()
ctr_df['frequency'] = 0
fdist = nltk.FreqDist(w.lower() for w in news_text)
words = list(ctr_df['word'].get_values())
for word in words:
    ctr_df.loc[ctr_df['word'] == word, 'frequency'] = fdist[word]

# names    
file = open('names.txt', 'r') 
names = file.read().split('\n')
names.extend(['Michael', 'Scott', 'Dwight', 'Schrute', 'Jim', 'Halpert', 'Pam', 'Beesly', 'Ryan', 'Howard', 
         'Andy', 'Bernard', 'Robert', 'California', 'Darryl', 'Philbin', 'Todd', 'Packer', 'Adolf', 'Hitler'])
file.close()
names = [x.lower() for x in names]

# short list of words
ctr_df_short = ctr_df[(ctr_df['frequency'] > 1) & (ctr_df['frequency'] < 10)
            & (~ctr_df['word'].isin(names))]\
    .sort_values(by='frequency')

#translation
ctr_df_short['translation'] = ' '
ctr_df_short['translation'] = ctr_df_short['word'].apply(lambda x: translator.translate(text=x,
                                                                                        dest='ru', src='en').text)
#save
ctr_df_short[['word', 'translation', 'frequency']].to_csv('words_got_s01e01.csv', encoding='utf-16', index=False,
                                                         sep='\t')
def translateSubtitles(subtitles):

    translator = Translator()
    translated = translator.translate(text=subtitles, dest='en', src='ru').text
    return translated
Exemple #15
0
# Optional library
# working library
# https://pypi.org/project/py-translator/
# pip3 install py_translator==2.1.8
from py_translator import Translator

#%% Create object from Translator

translator = Translator()

#%% Translate from string
print('-----------Translator from string --------------')

# English to Thai
translations = translator.translate(text='hello my friend',
                                    src='en',
                                    dest='th')

# Thai to English
translations = translator.translate(
    text='ลมอ่อนพัดโชยมาน้ำตาก็ไหลรินเหลือเพียงกลิ่นหัวใจฟุ้งไปกับความเหงา',
    src='th',
    dest='en')

print('Original Text :')
print(translations.origin)

print('Translated Text :')
print(translations.text)

#%% language detection
Exemple #16
0
def translate(words, languages=None):
    languages = languages or ('ko', 'es', 'fr')
    translator = Translator()
    return run_async(lambda l: translator.translate(words, src='en', dest=l),
                     languages)
Exemple #17
0
import time

r = requests.get('https://books.trinket.io/pfe/08-lists.html')
soup = BeautifulSoup(r.text, 'html.parser')

texto_markdown = tomd.convert(str(soup.body))
lista = texto_markdown.splitlines()
print(lista)

flag_entre_comillas = False

with open('./libro/08-lists.md', 'a') as file:
    for item in lista[270:]:
        translator = Translator()
        if '```' in item:
            file.writelines('```')
            flag_entre_comillas = not flag_entre_comillas
            continue
        if not flag_entre_comillas:
            try:
                objeto_traducido = translator.translate(text=item,
                                                        dest='es').text
                file.writelines(objeto_traducido + '\n')
                print(objeto_traducido)
            except:
                print('out of range')
            time.sleep(5)
        else:
            file.writelines(item.replace('&gt;&gt;&gt;', '>>>') + '\n')

print('Hecho!')
Exemple #18
0
def translateSubtitles(subtitles, dest, src):
    if subtitles == None:
        return ''
    translator = Translator()
    translated = translator.translate(text=subtitles, dest=dest, src=src).text
    return translated
Exemple #19
0
class DataTranslation:
    def __init__(self) -> None:
        self.translator = Translator()

    def make_translation(self, word: str) -> Union[bool, str]:
        """
        Translate a word using GoogleTrans library
        The language might be indicate in the 2 first character
        :param word: string
        :param language: string
        :return: word string, or False if the word can't be translated
        """

        if word == 'en:spreads':
            # better translation for the word spreads
            return 'Pate à tartiner'
        elif word == 'en:sweets-spreads':
            return 'Pâte à tartiner sucrée'
        elif word == 'en:plant-based-spreads':
            return 'Pâte à tartiner végétal'
        elif word == ' ':
            return False
        else:
            # take the language indication
            language = self.get_language(word)
            if not language:
                return False
            else:
                # remove language indicator
                word = self.slice_language(word)
                # translate word to french
                word = self.translator.translate(word, src=language,
                                                 dest='fr').text
                # remove any type of punctuation
                return word.replace('-', ' ')

    def detect_lang(self, word: str) -> Union[bool, str]:
        """Detect language with googletrans"""
        # detect language
        tr = self.translator.detect(word)
        if tr.confidence < 0.5:
            return False
        else:
            for l in LANGCODES.values():
                if tr.lang == l:
                    return tr.lang
            return False

    def slice_language(self, word: str) -> str:
        if len(word) > 3 and word[2] == ':':
            return word[3:]
        return word

    def get_language(self, word: str) -> str:
        """
        Return the language of the word if its has a language indicator.
        If its has not googletrans library will detect its language
        """
        if len(self.slice_language(word)) == len(word):
            # the word has no language indicator
            lang = self.detect_lang(word)
        else:
            lang = word[:2]
            tr = self.translator.detect(word)
            # if language detected is different
            # the confidence of the translator is above 90 %
            # take the language from the translator
            if tr.confidence > 0.9 and tr.lang != lang:
                lang = tr.lang
        return lang
    audio = r.listen(source) # , duration=4
    print("Time's up")
    
print('Speech to text in progress')
#r.recognize_google(audio) # default language is english
InputText = r.recognize_google(audio, language="th")

print(InputText)

#%% Step-2: Translation
print('----- Step-2 Translating -----')

translator = Translator()

translations = translator.translate(text = InputText,
                                    src  = 'th',
                                    dest = dest_lang)

OutputText  =  translations.text

print('Translated Text : ' + OutputText)

#%% Step-3: Text to speech

OutputAudioFileName = 'AudioTranslate.mp3'

# Text to speech
tts = gTTS(text= OutputText, lang = dest_lang)
# Save file as filename
tts.save(OutputAudioFileName)
# Play the file
Exemple #21
0
import requests
from bs4 import BeautifulSoup
import re
from py_translator import Translator

r = requests.get('https://automatetheboringstuff.com/chapte16/')
soup = BeautifulSoup(r.text, 'html.parser')
numero = re.compile(r'^\d.*')
translator = Translator()

questions = soup.find_all('p')
for question in questions:
    is_question = numero.search(question.text)
    if is_question != None:
        print(translator.translate(text=question.text[2:], dest='es').text)