def select_translations(): app_url = request.args.get('app_url') language = request.args.get('lang') target = request.args.get('target') if app_url and language and target: return redirect(url_for('.api_translate', app_url = app_url, lang = language, target = target)) targets = obtain_groups() languages = list(obtain_languages().iteritems()) languages.sort(lambda x1, x2 : cmp(x1[1], x2[1])) return render_template("translator/select_translations.html", targets = targets, languages = languages)
from collections import defaultdict from sqlalchemy import func, or_ from sqlalchemy.exc import IntegrityError from sqlalchemy.orm import joinedload_all from appcomposer import db from appcomposer.application import app from appcomposer.translator.languages import obtain_languages, obtain_groups from appcomposer.translator.suggestions import translate_texts from appcomposer.models import TranslatedApp, TranslationUrl, TranslationBundle, ActiveTranslationMessage, TranslationMessageHistory, TranslationKeySuggestion, TranslationValueSuggestion, GoLabOAuthUser, TranslationSyncLog, TranslationCurrentActiveUser, TranslationSubscription, TranslationNotificationRecipient DEBUG = False LANGUAGES = obtain_languages() GROUPS = obtain_groups() def get_golab_default_user(): default_email = app.config.get('TRANSLATOR_DEFAULT_EMAIL', '*****@*****.**') default_user = db.session.query(GoLabOAuthUser).filter_by(email = default_email).first() if default_user is None: default_user = GoLabOAuthUser(email = default_email, display_name = "AppComposer") db.session.add(default_user) try: db.session.commit() except IntegrityError: default_user = db.session.query(GoLabOAuthUser).filter_by(email = default_email).first() db.session.rollback() except: db.session.rollback() raise
def api_groups(): return jsonify(**obtain_groups())
if str_translations and link: resp = make_response(render_template("translator/lib.js", translations = str_translations, link = link)) else: resp = make_response("// App found and transtable, but no translation found") resp.content_type = 'application/javascript' return resp except Exception as e: traceback.print_exc() resp = make_response("""// Error: %s """ % repr(e)) resp.content_type = 'application/javascript' return resp TARGET_CHOICES = [] TARGETS = obtain_groups() for target_code in sorted(TARGETS): TARGET_CHOICES.append((target_code, TARGETS[target_code])) LANGUAGE_CHOICES = [] LANGUAGES = obtain_languages() for lang_code in sorted(LANGUAGES): LANGUAGE_CHOICES.append((lang_code, LANGUAGES[lang_code])) class UploadForm(Form): url = URLField(u"App URL", validators=[url(), required()]) language = Select2Field(u"Language", choices = LANGUAGE_CHOICES, validators = [ required() ]) target = Select2Field(u"Target age", choices = TARGET_CHOICES, validators = [ required() ], default = "ALL") opensocial_xml = FileField(u'OpenSocial XML file', validators = [required()]) def _guess_default_language():