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
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_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''
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 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 ""