@@ -208,11 +208,11 @@ self.requested_languages = self.force(self.http_accept_language) self.lazy = True self.otherTs = {} def get_possible_languages(self): - possible_languages = self.current_languages + possible_languages = [lang for lang in self.current_languages] file_ending = re.compile("\.py$") for langfile in os.listdir(os.path.join(self.folder,'languages')): if file_ending.search(langfile): possible_languages.append(file_ending.sub('',langfile)) return possible_languages @@ -222,11 +222,11 @@ languages = languages[0] self.current_languages = languages self.force(self.http_accept_language) def force(self, *languages): - if not languages or languages[0] == None: + if not languages or languages[0] is None: languages = [] if len(languages) == 1 and isinstance(languages[0], (str, unicode)): languages = languages[0] if languages: if isinstance(languages, (str, unicode)): @@ -248,11 +248,11 @@ return languages self.language_file = None self.t = {} # ## no language by default return languages - def __call__(self, message, symbols={},language=None): + def __call__(self, message, symbols={}, language=None): if not language: if self.lazy: return lazyT(message, symbols, self) else: return self.translate(message, symbols) @@ -275,20 +275,23 @@ T('hello ## world ## token') -> 'hello ## world' the ## notation is ignored in multiline strings and strings that start with ##. this is to allow markmin syntax to be translated """ + #for some reason languages.py gets executed before gaehandler.py + # is able to set web2py_runtime_gae, so re-check here + is_gae = settings.global_settings.web2py_runtime_gae if not message.startswith('#') and not '\n' in message: tokens = message.rsplit('##', 1) else: # this allows markmin syntax in translations tokens = [message] if len(tokens) == 2: tokens[0] = tokens[0].strip() message = tokens[0] + '##' + tokens[1].strip() mt = self.t.get(message, None) - if mt == None: + if mt is None: self.t[message] = mt = tokens[0] if self.language_file and not is_gae: write_dict(self.language_file, self.t) if symbols or symbols == 0: return mt % symbols @@ -342,7 +345,9 @@ if __name__ == '__main__': import doctest doctest.testmod() + +