def language_source(context): langs = [ SimpleTerm( value=None, token='none', title=_(u'Use browser language setting'))] languages = ILanguageProvider(context.REQUEST) codes = languages.getAvailableLanguages() # If the current language is not in the available list, we # still add it in order to prevent vocabularies to fail preferred = languages.getPreferredLanguage() if preferred not in codes: codes.append(preferred) codes.sort() for lang in codes: langs.append(SimpleTerm( value=lang, token=lang, title=languages.getLanguageName(lang))) return SimpleVocabulary(langs)
class UserDataManager(silvaforms.ObjectDataManager): def __init__(self, content, request): super(UserDataManager, self).__init__(content) self.language = ILanguageProvider(request) def get(self, key): if key in ('userid', 'email', 'fullname'): return getattr(self.content, key)() if key == 'language': return self.language.getPreferredLanguage() raise KeyError(key) def set(self, key, value): if key in ('email', 'fullname'): if IEditableMember.providedBy(self.content): return getattr(self.content, 'set_' + key)(value) if key == 'language': return self.language.setPreferredLanguage(value)
def __init__(self, content, request): super(UserDataManager, self).__init__(content) self.language = ILanguageProvider(request)