def ask_for_default_language(assume_yes, language_code):
    codes = [i[0] for i in get_languages()]
    if language_code and language_code not in codes:
        print 'Default language code provided "%s" is not deffined on settings.py' % language_code
        language_code = None
    if assume_yes and not language_code:
        language_code = getattr(settings, 'LANGUAGE_CODE', None)
        if not language_code in codes:
            language_code = codes[0]
        print 'Default language code not provided. Using %s' % language_code
    elif language_code:
        print 'Default language code provided. Using %s' % language_code
    if language_code:
        return language_code
    print 'Available languages:'
    for i, lang_tuple in enumerate(get_languages()):
        print '\t%d. %s' % (i+1, lang_tuple[1])
    print 'Choose a default language. If you have without translate the project choose the current untranslated data'
    while True:
        prompt = "What's the default language of data? (1-%s) " % len(get_languages())
        answer = raw_input(prompt).strip()
        if answer != '':
            try:
                index = int(answer) - 1
                if index < 0 or index > len(get_languages()):
                    print "That's not a valid number"
                else:
                    return get_languages()[index][0]
            except ValueError:
                print "Please write a number"
def ask_for_default_language(assume_yes, language_code):
    codes = [i[0] for i in get_languages()]
    if language_code and language_code not in codes:
        print 'Default language code provided "%s" is not deffined on settings.py' % language_code
        language_code = None
    if assume_yes and not language_code:
        language_code = getattr(settings, 'LANGUAGE_CODE', None)
        if not language_code in codes:
            language_code = codes[0]
        print 'Default language code not provided. Using %s' % language_code
    elif language_code:
        print 'Default language code provided. Using %s' % language_code
    if language_code:
        return language_code
    print 'Available languages:'
    for i, lang_tuple in enumerate(get_languages()):
        print '\t%d. %s' % (i + 1, lang_tuple[1])
    print 'Choose a default language. If you have without translate the project choose the current untranslated data'
    while True:
        prompt = "What's the default language of data? (1-%s) " % len(
            get_languages())
        answer = raw_input(prompt).strip()
        if answer != '':
            try:
                index = int(answer) - 1
                if index < 0 or index > len(get_languages()):
                    print "That's not a valid number"
                else:
                    return get_languages()[index][0]
            except ValueError:
                print "Please write a number"
 def get_missing_languages(self, field_name, db_table):
     """ get only missings fields """
     db_table_fields = self.get_table_fields(db_table)
     for lang_code, lang_name in get_languages():
         if get_real_fieldname(field_name,
                               lang_code) not in db_table_fields:
             yield lang_code
示例#4
0
 def get_default_field(self, field_name, model):
     for lang_code, lang_name in get_languages():
         field_name_i18n = get_real_fieldname(field_name, lang_code)
         f = model._meta.get_field(field_name_i18n)
         if not f.null:
             return f
     try:
         return model._meta.get_field(field_name)
     except FieldDoesNotExist:
         return None
 def get_default_field(self, field_name, model):
     for lang_code, lang_name in get_languages():
         field_name_i18n = get_real_fieldname(field_name, lang_code)
         f = model._meta.get_field(field_name_i18n)
         if not f.null:
             return f
     try:
         return model._meta.get_field(field_name)
     except FieldDoesNotExist:
         return None
示例#6
0
def get_header(question):
    text = question.text
    if text:
        return text
    for language, language_title in transmeta.get_languages():
        text = getattr(question, 'text_%s' % language)
        if text:
            return text

    return u''
示例#7
0
 def get_db_change_languages(self, field_name, db_table_fields):
     """ get only db changes fields """
     for lang_code, lang_name in get_languages():
         if get_real_fieldname(field_name, lang_code) not in db_table_fields:
             yield lang_code
     for db_table_field in db_table_fields:
         pattern = re.compile('^%s_(?P<lang>\w{2})$' % field_name)
         m = pattern.match(db_table_field)
         if not m:
             continue
         lang = m.group('lang')
         yield lang
 def get_db_change_languages(self, field_name, db_table_fields):
     """ get only db changes fields """
     for lang_code, lang_name in get_languages():
         if get_real_fieldname(field_name, lang_code) not in db_table_fields:
             yield lang_code
     for db_table_field in db_table_fields:
         pattern = re.compile('^%s_(?P<lang>\w{2})$' % field_name)
         m = pattern.match(db_table_field)
         if not m:
             continue
         lang = m.group('lang')
         yield lang
示例#9
0
 def handle(self, *args, **options):
     """ command execution """
     #        assume_yes = options.get('assume_yes', False)
     # for each language
     default_language = fallback_language()
     for lang in get_languages():
         lang_code = lang[LANGUAGE_CODE]
         if lang_code == default_language:
             continue
         for model in REGISTRY:
             fields = REGISTRY[model].values()
             total = model.objects.count()
             current = 0
             for instance in model.objects.all():
                 current += 1
                 save = False
                 # for each field in this model
                 for field in fields:
                     # get the real field name (with language suffix)
                     realname = get_real_fieldname(field.name, lang_code)
                     # original language
                     original = get_real_fieldname(field.name,
                                                   default_language)
                     # original value
                     original_value = getattr(instance, original)
                     # get current value
                     value = getattr(instance, realname)
                     if value == None:
                         value = ""
                     new_value = KeyValue.objects.lookup(
                         original_value, lang_code)
                     # if it's not the default message
                     if new_value != value:
                         # if it's not the same value
                         setattr(instance, realname, new_value)
                         save = True
                 print "(Lang %s) Processed %s model, %04d / %04d" % (
                     lang_code, model, current, total),
                 if save:
                     instance.save()
                     print " (changed)"
                 else:
                     print ""
    def handle(self, *args, **options):
        """ command execution """
#        assume_yes = options.get('assume_yes', False)
        # for each language
        default_language = fallback_language()
        for lang in get_languages():
            lang_code = lang[LANGUAGE_CODE]
            if lang_code == default_language:
                continue
            for model in REGISTRY:
                fields = REGISTRY[model].values()
                total = model.objects.count()
                current = 0
                for instance in model.objects.all():
                    current += 1
                    save = False
                    # for each field in this model
                    for field in fields:
                        # get the real field name (with language suffix)
                        realname = get_real_fieldname(field.name, lang_code)
                        # original language
                        original = get_real_fieldname(field.name, default_language)
                        # original value
                        original_value = getattr(instance, original)
                        # get current value
                        value = getattr(instance, realname)
                        if value == None:
                            value = ""
                        new_value = KeyValue.objects.lookup(original_value, lang_code)
                        # if it's not the default message
                        if new_value != value:
                            # if it's not the same value
                            setattr(instance, realname, new_value)
                            save = True
                    print "(Lang %s) Processed %s model, %04d / %04d" % (lang_code, model, current, total),
                    if save:
                        instance.save()
                        print " (changed)"
                    else:
                        print ""
 def get_missing_languages(self, field_name, db_table):
     """ get only missings fields """
     db_table_fields = self.get_table_fields(db_table)
     for lang_code, lang_name in get_languages():
         if get_real_fieldname(field_name, lang_code) not in db_table_fields:
             yield lang_code