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'))
예제 #2
0
	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'))