Exemplo n.º 1
0
    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('')
Exemplo n.º 2
0
    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()
Exemplo n.º 3
0
    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()
Exemplo n.º 4
0
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})
Exemplo n.º 5
0
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
Exemplo n.º 6
0
    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')
Exemplo n.º 7
0
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 ""
Exemplo n.º 8
0
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
Exemplo n.º 9
0
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
Exemplo n.º 10
0
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()
Exemplo n.º 11
0
    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('')
Exemplo n.º 12
0
    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)
Exemplo n.º 13
0
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)
Exemplo n.º 14
0
    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')