Exemplo n.º 1
0
 def select_language(self, combo_language, data=None):
     model = self.combo_language.get_model()
     index = self.combo_language.get_active()
     self.config["lang"]=langs.keys()[index]
     dlg=gtk.MessageDialog(self, gtk.DIALOG_DESTROY_WITH_PARENT,
         gtk.MESSAGE_INFO, gtk.BUTTONS_CLOSE,
         "Launcher restart required.")
     dlg.run()
     dlg.destroy()
Exemplo n.º 2
0
def lt(text, lang=""):
    """Return text in current language or in specified language"""
    from langs import langs
    try:
        text=text.encode("utf-8")
    except:pass
    #
    if not lang:
        from flask import session
        lang=session["lang"]
    #check language exists
    if lang not in langs.keys():
        lang="en"
    #check text
    if text not in langs[lang].keys():
        print("LANGS: translation not found: %s" % text)
        return text
    #return translated text
    ntext=langs[lang][text]
    try:
        ntext=ntext.decode("utf-8")
    except:pass
    return ntext
Exemplo n.º 3
0
    def __init__(self, config):

        self.config=config
        self.lang=self.config.get("lang", "en")
        gtk.Window.__init__(self)
        self.set_title(lt("Options", self.lang))
        self.set_resizable(False)
        self.set_size_request(300, 250)
        self.set_border_width(20)
        self.set_position(gtk.WIN_POS_CENTER)

        self.connect("destroy", self.close_window)
        self.fixed = gtk.Fixed()
        self.label_set_pass = gtk.Label("Password:"******"Password", self.lang)+":")
        self.entry_set_pass = gtk.Entry()
        self.label_startup = gtk.Label("Load in startup Ubuntu")
        self.label_startup.set_text(lt("Load in startup Ubuntu", self.lang))
        self.check_startup = gtk.CheckButton()
        self.check_startup.set_active(self.config["startup"])
        self.check_startup.connect("toggled", self.entry_checkbox)
        self.label_set_port = gtk.Label("Port:")
        self.label_set_port.set_text(lt("Port", self.lang)+":")
        self.entry_set_port = gtk.Entry()
        self.entry_set_port.set_text(str(self.config["port"]))
        self.label_choose_image = gtk.Label("Choose images folder")
        self.label_choose_image.set_text(lt("Choose images folder", self.lang)+":")
        self.chooser_image_folder = \
            gtk.FileChooserButton(lt("Choose images folder", self.lang))
        self.chooser_image_folder.set_action(
            gtk.FILE_CHOOSER_ACTION_SELECT_FOLDER
            )
        self.chooser_image_folder.set_size_request(150,35)
        self.label_set_language = gtk.Label("Set language:")
        self.label_set_language.set_text(lt("Set language", self.lang)+":")
        self.combo_language = gtk.combo_box_new_text()

        #add languages
        for lang in langs:
            self.combo_language.append_text(lang)
        self.combo_language.set_active(langs.keys().index(\
            self.config["lang"]))

        self.combo_language.connect("changed", self.select_language)
        #get images path
        imgpath=self.config.get("images_path", \
            os.path.expanduser("~/Pictures"))
        self.chooser_image_folder.set_filename(imgpath)
        self.button_save = gtk.Button("Save")
        self.button_save.set_size_request(130, 30)
        self.button_save.connect("clicked", self.onsave)

        self.fixed.put(self.label_set_pass, 10, 5)
        self.fixed.put(self.entry_set_pass, 90, 0)
        #self.fixed.put(self.check_startup, 5, 42)
        #self.fixed.put(self.label_startup, 40, 44)
        self.fixed.put(self.label_set_port, 10, 44)
        self.fixed.put(self.entry_set_port, 90 ,42)
        self.fixed.put(self.label_choose_image, 10, 90)
        self.fixed.put(self.chooser_image_folder, 10, 110)
        self.fixed.put(self.label_set_language, 10, 150)
        self.fixed.put(self.combo_language, 10, 170)
        self.fixed.put(self.button_save, 120, 170)
        self.add(self.fixed)

        self.show_all()
Exemplo n.º 4
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
                    }
                ]
Exemplo n.º 5
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