def _stringEditMenu(userid, module, key, parent): keylist = langlist[str(module)] changestring = popuplib.easymenu('xachangestringmenu_'+str(random.randint(1, 10))+'_'+str(userid)+'_'+str(key).lower(),None,_changestring_select) changestring.settitle(xalang['change language']) changestring.submenu(parent) changestring.c_exitformat = '0. '+xalang('just back', playerlib.getPlayer(userid).get('lang')) changestring._xa = [module, key, parent] menulist.append(changestring) for ll in langlib.getLanguages(): lang = langlib.getLangAbbreviation(ll) changestring.addoption(str(lang), xalanguage.language.createLanguageString('%s = %s' % (lang, keylist(key, {}, lang)))) return changestring
def _stringEditMenu(userid, module, key, parent): keylist = langlist[str(module)] changestring = popuplib.easymenu( 'xachangestringmenu_' + str(random.randint(1, 10)) + '_' + str(userid) + '_' + str(key).lower(), None, _changestring_select) changestring.settitle(xalang['change language']) changestring.submenu(parent) changestring.c_exitformat = '0. ' + xalang( 'just back', playerlib.getPlayer(userid).get('lang')) changestring._xa = [module, key, parent] menulist.append(changestring) for ll in langlib.getLanguages(): lang = langlib.getLangAbbreviation(ll) changestring.addoption( str(lang), xalanguage.language.createLanguageString( '%s = %s' % (lang, keylist(key, {}, lang)))) return changestring
def load(): global mainmenu mainmenu = popuplib.easymenu('xamainsoundmenu',None,_mainmenu_select) mainmenu.settitle(xalanguage['sounds']) if xasoundslist: for sound in xasoundslist: for ll in langlib.getLanguages(): mainmenu.addoption(str(sound), str(sound),1,langlib.getLangAbbreviation(ll)) xasounds.addRequirement("xasettings") xasounds.registerCapability('play_adminsound', 'ADMIN') xasounds.addMenu('xamainsoundmenu',xalanguage['sounds'],'xamainsoundmenu','play_sound','UNRESTRICTED') xasounds.xasettings.registerMethod("xasounds", _switch_setting, xalanguage["sounds"]) """ If XA is loaded whilst a map is loaded, then call map start event """ if str(es.ServerVar('eventscripts_currentmap')) != "": es_map_start({}) for player in es.getUseridList(): player_activate({'userid':player})
def load(): global mainmenu mainmenu = popuplib.easymenu('xamainsoundmenu', None, _mainmenu_select) mainmenu.settitle(xalanguage['sounds']) if xasoundslist: for sound in xasoundslist: for ll in langlib.getLanguages(): mainmenu.addoption(str(sound), str(sound), 1, langlib.getLangAbbreviation(ll)) xasounds.addRequirement("xasettings") xasounds.registerCapability('play_adminsound', 'ADMIN') xasounds.addMenu('xamainsoundmenu', xalanguage['sounds'], 'xamainsoundmenu', 'play_sound', 'UNRESTRICTED') xasounds.xasettings.registerMethod("xasounds", _switch_setting, xalanguage["sounds"]) """ If XA is loaded whilst a map is loaded, then call map start event """ if str(es.ServerVar('eventscripts_currentmap')) != "": es_map_start({}) for player in es.getUseridList(): player_activate({'userid': player})
class LanguageDict(dict): languages = langlib.getLanguages() abbreviations = map(langlib.getLangAbbreviation, languages) defaultlang = langlib.getDefaultLang() def __init__(self, key, value): self.name = key if isinstance(value, dict): self.text = self.mapdict(str, value) else: self.text = {self.defaultlang:str(value)} def __str__(self): return ("LanguageDict(%s)" % self.name) def __repr__(self): return self.__str__ def __len__(self): return len(self.abbreviations) def __getitem__(self, key): if key in self.abbreviations: if key in self.text: return self.text[key] elif self.defaultlang in self.text: return self.text[self.defaultlang] elif "en" in self.text: return self.text["en"] else: raise IndexError("LanguageDict(%s): No language string available" % self.name) else: raise IndexError("LanguageDict(%s): No valid abbreviation" % self.name) def __setitem__(self, key, value): if key in self.abbreviations: self.text[key] = str(value) else: raise IndexError("LanguageDict(%s): No valid abbreviation" % self.name) def __delitem__(self, key): if key in self.abbreviations: if key != self.defaultlang and key != "en": del self.text[key] else: raise ValueError("LanguageDict(%s): You can't delete the default keys" % self.name) else: raise IndexError("LanguageDict(%s): No valid abbreviation" % self.name) def __iter__(self): return self.abbreviations.__iter__() def __contains__(self, key): if key in self.abbreviations: return True else: return False def clear(self): pass def copy(self): return copy.copy(self) def has_key(self, key): return self.__contains__(key) def items(self): return self.text.items() def keys(self): return self.abbreviations def update(self, iterable): return self.text.update(iterable) def fromkeys(self, seq, value = None): return self.text.fromkeys(seq, value) def values(self): return self.text.values() def mapdict(self, function, iterable): if callable(function) and iterable: for key in iterable: iterable[key] = function(iterable[key]) return iterable else: raise TypeError
class LanguageDict(dict): """ XA's Language class One of these is created for each strings.ini entry """ # Class variables languages = langlib.getLanguages() abbreviations = map(langlib.getLangAbbreviation, languages) defaultlang = langlib.getDefaultLang() def __init__(self, key, value): # Create our pseudo dict object self.name = key # Is the value already a dict? if isinstance(value, dict): self.text = self.mapdict(str, value) else: self.text = {self.defaultlang: str(value)} def __str__(self): # Return a printable string return self.name def __repr__(self): # Return something that represents our object return 'LanguageDict(%s)' % self.name def __len__(self): # Return the length of our pseudo dict return len(self.abbreviations) def __getitem__(self, key): # Get a translation from our pseudo dict # Is this a valid key for our pseudo dict? if key in self.abbreviations: # Is there a translation inside your dict? if key in self.text: return self.text[key] # Is the default language available? elif self.defaultlang in self.text: return self.text[self.defaultlang] # Is the english language available? elif 'en' in self.text: return self.text['en'] else: # Nothing there, raise an error raise IndexError( 'LanguageDict(%s): No language string available' % self.name) else: # Invalid key, raise an error raise IndexError('LanguageDict(%s): No valid abbreviation' % self.name) def __setitem__(self, key, value): # Add a new translation to our pseudo dict # Is this a valid key for our pseudo dict? if key in self.abbreviations: self.text[key] = str(value) else: # Invalid key, raise an error raise IndexError('LanguageDict(%s): No valid abbreviation' % self.name) def __delitem__(self, key): # Delete a translation from our pseudo dict # Is this a valid key for our pseudo dict? if key in self.abbreviations: # Is this a custom non-default translation? if key != self.defaultlang and key != 'en': del self.text[key] else: # No, it's a required translation, raise an error raise ValueError( 'LanguageDict(%s): You can\'t delete the default keys' % self.name) else: # Invalid key, raise an error raise IndexError('LanguageDict(%s): No valid abbreviation' % self.name) def __iter__(self): # Return something we can loop through return self.abbreviations.__iter__() def itervalues(self): return self.text.itervalues() def iterkeys(self): return self.text.iterkeys() def iteritems(self): return self.text.items() def __contains__(self, key): # Is this a valid key for our pseudo dict? return key in self.abbreviations def clear(self): # Oops, translations should not be cleared pass def copy(self): # Create a new copy of our pseudo dict return copy.copy(self) def has_key(self, key): # Is this a valid key for our pseudo dict? return self.__contains__(key) def items(self): # Return our translations return self.text.items() def keys(self): # Return our languages return self.abbreviations def update(self, iterable): # Update our translations return self.text.update(iterable) def fromkeys(self, seq, value=None): # Ooops, what's that? Doesn't matter, might be useful return self.text.fromkeys(seq, value) def values(self): # Return our translations return self.text.values() def mapdict(self, function, iterable): # Map a dict into our pseudo dict if callable(function) and iterable: for key in iterable: iterable[key] = function(iterable[key]) return iterable else: raise TypeError