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()
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
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()
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 } ]
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