def __new__(cls, code): """This returns the language class for the given code, following a singleton like approach (only one object per language).""" code = code or "" # First see if a language object for this code already exists if code in cls._languages: return cls._languages[code] # No existing language. Let's build a new one and keep a copy language = cls._languages[code] = object.__new__(cls) language.code = code while code: langdata = data.get_language(code) if langdata: language.fullname, language.nplurals, language.pluralequation = langdata break code = data.simplercode(code) return language
def __new__(cls, code): """This returns the language class for the given code, following a singleton like approach (only one object per language).""" code = code or "" # First see if a language object for this code already exists if code in cls._languages: return cls._languages[code] # No existing language. Let's build a new one and keep a copy language = cls._languages[code] = object.__new__(cls) language.code = code while code: langdata = data.get_language(code) if langdata: language.fullname, language.nplurals, \ language.pluralequation = langdata break code = data.simplercode(code) return language
def __new__(cls, code): """This returns the language class for the given code, following a singleton like approach (only one object per language).""" code = code or "" # First see if a language object for this code already exists if code in cls._languages: return cls._languages[code] # No existing language. Let's build a new one and keep a copy language = cls._languages[code] = object.__new__(cls) language.code = code while code: langdata = data.get_language(code) if langdata: language.fullname, language.nplurals, \ language.pluralequation = langdata break code = data.simplercode(code) if not code: # message suppressed by default at level info logger.info("No information found about language code %s", code) pass return language
def nplural(self): lang = data.get_language(self.header.get("language")) if lang is None: return 1 return lang[1]