Beispiel #1
0
        def test_translate_word_match_capitalization(self):
            word1 = 'Hello'
            word2 = 'hello'
            translated1 = translate_word(word1)
            translated2 = translate_word(word2)

            self.assertTrue(translated1.istitle())
            self.assertFalse(translated2.istitle())
Beispiel #2
0
def translate():
    if request.method == 'POST':
        from_lang = request.form['from']
        sentence = request.form['sentence']
        if from_lang != 'en':
            to_lang = 'en'
            input_word = trans.get_translation(sentence, to_lang)
            # print(input_word, 'IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII')
        else:
            input_word = sentence

        trans.translate_word(input_word)
        return render_template("pages/try.html",
                               sentence=sentence,
                               translated=input_word)
Beispiel #3
0
def play_game_knowledge(res, req):
    global phrase
    user_id = req['session']['user_id']
    time = sessionStorage[user_id]['time']
    tr_lang = sessionStorage[user_id]['lang']

    if time == 1:
        # возвращаем слово из списка, переведенное на нужный язык
        phrase = choice(phrases)
        tr_text = translate_word(phrase, langs[tr_lang])
        res['response']['text'] = tr_text

    elif time == 2 and req['request']['original_utterance'].lower() == phrase:
            res['response']['text'] = 'Молодец, {}! Правильно! Продолжаем?'.format(username)
            res['response']['buttons'] = [
                {
                    'title': 'Да',
                    'hide': True
                },
                {
                    'title': 'Нет',
                    'hide': True
                }
            ]

            sessionStorage[user_id]['game_started2'] = False
            return

    else:

        res['response']['text'] = 'Нет! Это переводится так: {}. Продолжаем?'.format(phrase)
        res['response']['buttons'] = [
                {
                    'title': 'Да',
                    'hide': True
                },
                {
                    'title': 'Нет',
                    'hide': True
                }
            ]
        sessionStorage[user_id]['game_started2'] = False

    sessionStorage[user_id]['time'] += 1
Beispiel #4
0
 def translated_to(self, target_language = 'en'):
   if isinstance(target_language, basestring) :
     target_language = Language.objects.get(code = target_language)
   possible = TranslatedPhrase.objects.filter(first_native = self, second_native = None, third_native = None, first_target__native_language = target_language)
   if possible.exists():
     if DEBUG:
       stdout.write(".")
     return possible.get()
   else:
     if DEBUG:
       stdout.write("|")
     target_text = translate_word(self.native_text, self.native_language.code, target_language.code)
     if target_language._has_stemmer:
       target_stemmer = SnowballStemmer(target_language.name.lower())
       target_stem = Stem.objects.get_or_create(native_language = target_language, native_text = target_stemmer.stem(target_text))[0]
     else:
       target_stem = None
     result = Word.objects.get_or_create(native_text = target_text, native_stem = target_stem, native_language = target_language)[0]
     translation = TranslatedPhrase.objects.create(first_target = result, first_native = self)
     return translation
Beispiel #5
0
        def test_translate_word_translate(self):
            word = 'hello'
            translated = translate_word(word)

            self.assertNotEqual(word, translated)
Beispiel #6
0
def translater():
    if not request.json or not 'word' in request.json:
        abort(400)
    word = request.json.get('word')
    translated = " ".join(translate_word(word) for word in word.split())
    return jsonify({'word': translated}), 201
Beispiel #7
0
def handle_dialog(res, req):
    user_id = req['session']['user_id']
    global username

    if req['session']['new']:
        res['response']['text'] = 'В этом навыке я могу перевести текст с любого языка на русский язык. Для ' \
            ' этого нужно сказать "Переведи (текст) на (язык)". Я могу сказать на каком языке ' \
            ' написан текст. Просто скажите "На каком языке (текст)" или "Что за язык (текст)". ' \
            ' Если вам скучно, то мы можем сыграть в игру, где я перевожу ваше ' \
            ' слово на случайный язык, а вы пытаетесь отгадать, что за язык. ' \
            ' (Для активации игры скажите "Давай сыграем в угадай язык"). ' \
            'Также вы можете проверить свои познания в каком-либо языке. ' \
            '(Для этого скажите "Давай проверим языкознание").' \
            'Пожалуйста, назови своё имя, чтобы продолжить общение.'
        sessionStorage[user_id] = {
            'first_name': None,
            'game_started1': False,
            'game_started2': False,
            'lang': None
        }

        return

    if sessionStorage[user_id]['first_name'] is None:
        first_name = get_first_name(req)
        if first_name is None:
            res['response']['text'] = 'Не расслышала имя. Повтори, пожалуйста!'
            return

        else:
            sessionStorage[user_id]['first_name'] = first_name
            username = sessionStorage[user_id]['first_name'].capitalize()
            res['response']['text'] = 'Привет, {}! Я могу: 1)перевести текст; ' \
                                      '2)сказать, на каком языке он написан; ' \
                                      '3)поиграть с тобой в языковые игры!'.format(username)
            res['response']['buttons'] = [
                {
                    'title': 'Помощь',
                    'hide': True
                },
                {
                    'title': 'Давай сыграем в угадай язык',
                    'hide': True
                },
                {
                    'title': 'Давай проверим языкознание',
                    'hide': True
                }
            ]

            return

    else:

        f_req = req['request']['original_utterance'].lower()

        if 'переведи' in f_req or 'переведите' in f_req:
            words = f_req.split()

            if 'привет' in words[0]:
                del words[0]

            # if words[-1] == 'язык':
            #     # нужный язык на русском языке
            #     text_lang = words[-2]
            #     # текст для перевода
            #     text_to_translate = ''
            #     for i in range(1, len(words) - 3):
            #         new = words[i] + ' '
            #         text_to_translate += new
            if words[-1] in langs.keys():
                text_lang = words[-1]
                text_to_translate = ''
                for i in range(1, len(words) - 2):
                    new = words[i] + ' '
                    text_to_translate += new

                # нужный язык в аббревиатуре
                req_lang = langs[text_lang]
                res['response']['text'] = translate_word(text_to_translate, req_lang).capitalize()
                res['response']['buttons'] = [
                    {
                        "title": "Переведено сервисом «Яндекс.Переводчик»",
                        "url": "http://translate.yandex.ru/",
                        "hide": False
                    },
                    {
                        'title': 'Помощь',
                        'hide': True
                    },
                    {
                        'title': 'Давай сыграем в угадай язык',
                        'hide': True
                    },
                    {
                        'title': 'Давай проверим языкознание',
                        'hide': True
                    }
                ]
            else:
                res['response']['text'] = 'Я не понимаю! Попробуй ещё раз!'
                res['response']['buttons'] = [
                    {
                        'title': 'Помощь',
                        'hide': True
                    },
                    {
                        'title': 'Давай сыграем в угадай язык',
                        'hide': True
                    },
                    {
                        'title': 'Давай проверим языкознание',
                        'hide': True
                    }
                ]

        elif 'на каком языке' in f_req or 'что за язык' in f_req:
            words = f_req.split()

            if 'привет' in words[0]:
                del words[0]

            # текст для определения языка
            text_to_know_lang = ''
            for i in range(3, len(words)):
                new = words[i] + ' '
                text_to_know_lang += new

            abb_lang = what_lang(text_to_know_lang)
            # ищем нуюную аббревиатуру в словаре
            for key, value in langs.items():
                if value == abb_lang:
                    res['response']['text'] = key.title()
                    res['response']['buttons'] = [
                        {
                            'title': 'Помощь',
                            'hide': True
                        },
                        {
                            'title': 'Давай сыграем в угадай язык',
                            'hide': True
                        },
                        {
                            'title': 'Давай проверим языкознание',
                            'hide': True
                        }
                    ]

        elif 'помощь' in f_req or 'что ты умеешь' in f_req:
            res['response']['text'] = help_text
            res['response']['buttons'] = [
                        {
                            'title': 'Давай сыграем в угадай язык',
                            'hide': True
                        },
                        {
                            'title': 'Давай проверим языкознание',
                            'hide': True
                        }
                    ]

        elif 'давай проверим языкознание' in f_req:
            sessionStorage[user_id]['game_started2'] = True
            res['response']['text'] = '{}! Назови язык, знание которого хочешь проверить.'.format(username)
            sessionStorage[user_id]['time'] = 1
            sessionStorage[user_id]['lang'] = False

        elif sessionStorage[user_id]['game_started2'] and (f_req in langs.keys()):
            sessionStorage[user_id]['lang'] = f_req
            res['response']['text'] = 'Продолжаем?'
            res['response']['buttons'] = [
                {
                    'title': 'Да',
                    'hide': True
                },
                {
                    'title': 'Нет',
                    'hide': True
                }
            ]

        elif sessionStorage[user_id]['game_started2'] and (sessionStorage[user_id]['lang'] is False) and (f_req not in langs.keys()):
            res['response']['text'] = 'Извини, но я не знаю такой язык. Попробуй ещё раз!'

        elif sessionStorage[user_id]['game_started2'] and sessionStorage[user_id]['lang'] and f_req in ['нет', 'стоп']:
            sessionStorage[user_id]['lang'] = False
            sessionStorage[user_id]['game_started2'] = False
            res['response']['text'] = 'Нет, так нет!'
            res['response']['buttons'] = [
                        {
                            'title': 'Помощь',
                            'hide': True
                        },
                        {
                            'title': 'Давай сыграем в угадай язык',
                            'hide': True
                        },
                        {
                            'title': 'Давай проверим языкознание',
                            'hide': True
                        }
                    ]

        elif sessionStorage[user_id]['game_started2'] and sessionStorage[user_id]['lang']:
            play_game_knowledge(res, req)

        elif sessionStorage[user_id]['game_started2'] is False and sessionStorage[user_id]['lang'] and f_req in ['да', 'продолжаем']:
            sessionStorage[user_id]['game_started2'] = True
            sessionStorage[user_id]['time'] = 1
            play_game_knowledge(res, req)

        elif sessionStorage[user_id]['game_started2'] is False and sessionStorage[user_id]['lang'] and f_req in ['нет', 'стоп']:
            sessionStorage[user_id]['lang'] = False
            res['response']['text'] = 'Как скажешь!'
            res['response']['buttons'] = [
                        {
                            'title': 'Помощь',
                            'hide': True
                        },
                        {
                            'title': 'Давай сыграем в угадай язык',
                            'hide': True
                        },
                        {
                            'title': 'Давай проверим языкознание',
                            'hide': True
                        }
                    ]

        elif 'давай сыграем в угадай язык' in f_req:
            sessionStorage[user_id]['game_started1'] = True
            res['response']['text'] = '{}! Назови любое слово, а потом попробуй угадать,' \
                                      ' на какой язык я его перевела.'.format(username)
            sessionStorage[user_id]['attempt'] = 1

        elif sessionStorage[user_id]['game_started1']:

            sessionStorage[user_id]['word'] = f_req
            play_game_guess_lang(res, req)

        else:
            res['response']['text'] = 'Я не понимаю! Попробуй ещё раз!'
            res['response']['buttons'] = [
                    {
                        'title': 'Помощь',
                        'hide': True
                    },
                    {
                        'title': 'Давай сыграем в угадай язык',
                        'hide': True
                    },
                    {
                        'title': 'Давай проверим языкознание',
                        'hide': True
                    }
                ]
Beispiel #8
0
def play_game_guess_lang(res, req):
    global tr_lang, tip1, tip2, tip3, tr_word
    user_id = req['session']['user_id']
    attempt = sessionStorage[user_id]['attempt']

    if attempt == 1:
        # возвращаем переведенное слово и 3 варианта ответа
        tr_lang = choice(list(langs.keys()))
        tr_word = translate_word(sessionStorage[user_id]['word'], langs[tr_lang])
        tips = [choice(list(langs.keys())), choice(list(langs.keys())), tr_lang]
        shuffle(tips)
        tip1 = tips[0]
        tip2 = tips[1]
        tip3 = tips[2]
        res['response']['text'] = tr_word
        res['response']['buttons'] = [

                    {
                        "title": "Переведено сервисом «Яндекс.Переводчик»",
                        "url": "http://translate.yandex.ru/",
                        "hide": False
                    },
                    {
                        'title': tip1,
                        'hide': True
                    },
                    {
                        'title': tip2,
                        'hide': True
                    },
                    {
                        'title': tip3,
                        'hide': True
                    }
                ]
        sessionStorage[user_id]['attempt'] += 1
        return

    elif req['request']['original_utterance'].lower() == tr_lang:
                res['response']['text'] = 'Молодец, {}! Правильно!'.format(username)
                sessionStorage[user_id]['game_started1'] = False
                res['response']['buttons'] = [
                        {
                            'title': 'Помощь',
                            'hide': True
                        },
                        {
                            'title': 'Давай сыграем в угадай язык',
                            'hide': True
                        },
                        {
                            'title': 'Давай проверим языкознание',
                            'hide': True
                        }
                    ]
                return
    else:

            if attempt == 3:
                right_word = translate_word(tr_word,'ru')
                res['response']['text'] = res['response']['text'] = f'Вы пытались. Это {tr_lang}.'

                res['response']['buttons'] = [
                        {
                            'title': 'Помощь',
                            'hide': True
                        },
                        {
                            'title': 'Давай сыграем в угадай язык',
                            'hide': True
                        },
                        {
                            'title': 'Давай проверим языкознание',
                            'hide': True
                        }
                    ]

                sessionStorage[user_id]['game_started1'] = False
                return
            else:
                res['response']['text'] = '{}, попробуй ещё раз!'.format(username)
                res['response']['buttons'] = [
                    {
                        'title': tip1,
                        'hide': True
                    },
                    {
                        'title': tip2,
                        'hide': True
                    },
                    {
                        'title': tip3,
                        'hide': True
                    }
                ]

    sessionStorage[user_id]['attempt'] += 1