def post(self): """Create a new language and fill it with empty translations""" if not users.is_current_user_admin(): self.error(403) code = self.request.get('code') label = self.request.get('label') language = Language.all().filter('code =', code).get() if language is not None: self.error(500) else: language = Language(code=code, label=label, enabled_in_tool=False, enabled_on_site=False) for phrase in Phrase.all(): translation = Translation(phrase=phrase, text='') translation.put() language.translations.append(translation.key()) language.put() init_cached_languages() self.response.headers['Content-Type'] = 'text/plain' self.response.out.write('')
def post(self): """Create a new phrase""" if not users.is_current_user_admin(): self.error(403) else: text = self.request.get('text') phrase = Phrase(text=text) phrase.put() for lang in Language.all(): translation = Translation(phrase=phrase, text='') translation.save() lang.translations.append(translation.key()) lang.save()
def save_translation_text(): """ Saves the text translation in the database """ translated_text = request.form['translated_text'] paragraph_id_input = int(request.form["p_id"]) bookgroup_id_input = int(request.form["bg_id"]) find_translated_text_in_db = db.session.query(Translation).filter_by( paragraph_id=paragraph_id_input, bookgroup_id=bookgroup_id_input).first() if find_translated_text_in_db: updated_translation = db.session.query(Translation).filter_by( paragraph_id = paragraph_id_input, bookgroup_id=bookgroup_id_input).update({ "translated_paragraph":translated_text}) db.session.commit() else: new_translation_for_db = Translation(translated_paragraph=translated_text, paragraph_id=paragraph_id_input, bookgroup_id=bookgroup_id_input) db.session.add(new_translation_for_db) db.session.commit() return jsonify({"translated_text": translated_text, "paragraph_id": paragraph_id_input})
def get_translations(code): json = [] for translation in Translation.all().filter("code =", code): json.append( {"id": translation.key().id(), "original": translation.phrase.text, "translation": translation.text} ) return json
def post(self): """Post new suggestion""" lang_code = self.request.path.split('/')[-3] language = Language.all().filter('code =', lang_code).get() if language is None: self.error(404) user = get_current_youtify_user_model() if not (users.is_current_user_admin() or user.key() in language.leaders): self.error(403) translation_id = self.request.path.split('/')[-1] translation = Translation.get_by_id(int(translation_id)) if translation is None: self.error(404) translation.text = self.request.get('text') translation.save() self.response.headers['Content-Type'] = 'text/plain' self.response.out.write('success')
def add_message(): """Add meesages to Message database""" message = request.form.get("message") author_id = g.user.user_id timestamp = datetime.now() chatroom_id = 1 new_message = Message(author_id=author_id, timestamp=timestamp, text=message, chatroom_id=chatroom_id) db.session.add(new_message) # Messages on line 60 will be passed in to be translated. # Call detect_language(text) and translate_text(target, text) functions. languages = db.session.query(User.language).distinct() # Loop over all existing user distinct languages. And translate the original message # to each language. Add translated messages to database. for language in languages: # languages returns a list of tuples. language is still a tuple of one element. # index language[0] to fix it. trans_text = translate_text(language[0], message).translated_text message_id = new_message.message_id new_translation = Translation(message_id=message_id, trans_text=trans_text, language=language) db.session.add(new_translation) db.session.commit() return ""
def get_translations(code): json = [] for translation in Translation.all().filter('code =', code): json.append({ 'id': translation.key().id(), 'original': translation.phrase.text, 'translation': translation.text, }) return json
def _add_translation_if_not_exist(word="", tr="", l1="", l2=""): language = Language(l1=l1, l2=l2) wordrow = Word.query.filter_by(word=word).first() if not wordrow: wordrow = Word(word=word, state="learning", language=language) db.session.add(wordrow) translation = Translation(translation=tr, word=wordrow) db.session.add(translation) db.session.commit()
def delete(self): """Delete a specific phrase and all its translations""" if not users.is_current_user_admin(): self.error(403) phrase_id = self.request.path.split('/')[-1] phrase = Phrase.get_by_id(int(phrase_id)) if phrase: phrase.delete() for translation in Translation.all().filter('phrase =', phrase): translation.delete() self.response.headers['Content-Type'] = 'text/plain' self.response.out.write('success'); else: self.error(404)
def send_message(msg_evt): """Send message to clients.""" text = msg_evt['value'] author_id = user().user_id timestamp = datetime.now() chatroom_id = 1 new_message = Message(author_id=author_id, timestamp=timestamp, text=text, chatroom_id=chatroom_id) db.session.add(new_message) # Inserting translation to database. for language, translation in translation_list(new_message.text).items(): message_id = new_message.message_id new_translation = Translation(message_id=message_id, trans_text=translation, language=language) db.session.add(new_translation) db.session.commit() # Emit both the message and the translation. emit('response', json_response(new_message), broadcast=True)