def update_language(self, locales): for _locale in locales: language = None try: CORE.info("Setting locale %r" % (_locale, )) _locale = Locale(_locale) language = '%s-%s' % (_locale.language, _locale.territory ) if _locale.territory else '%s' % ( _locale.language, ) if language != self.__current_language: self.set_locale(str(_locale)) self.__current_language = language return except (locale.Error, I18N_Error) as exc: if language in ( 'en', 'en-US'): # the system is missing english locale self.set_locale('C') if not self.__current_language: # only log once! CORE.error( 'Missing "en_US.UTF-8:UTF-8" in UCR variable "locale"' ) self.__current_language = language return CORE.warn("Locale %r is not available: %s" % (str(_locale), exc)) CORE.warn('Could not set language. Resetting locale.') self.set_locale('C') self.__current_language = None raise NotAcceptable(self._('Specified locale is not available'))
def update_language(self, locales): for _locale in locales: try: CORE.info("Setting locale %r" % (_locale,)) _locale = Locale(_locale) language = '%s-%s' % (_locale.language, _locale.territory) if _locale.territory else '%s' % (_locale.language,) if language != self.__current_language: self.set_locale(str(_locale)) self.__current_language = language return except (locale.Error, I18N_Error) as exc: CORE.warn("Locale %r is not available: %s" % (str(_locale), exc)) CORE.warn('Could not set language. Resetting locale.') self.set_locale('C') self.__current_language = None raise NotAcceptable(self._('Specified locale is not available'))