1# -*- coding: utf-8 -*- 2from babelfish import LanguageReverseConverter, language_converters 3 4 5class Addic7edConverter(LanguageReverseConverter): 6 def __init__(self): 7 self.name_converter = language_converters['name'] 8 self.from_addic7ed = {u'Català': ('cat',), 'Chinese (Simplified)': ('zho',), 'Chinese (Traditional)': ('zho',), 9 'Euskera': ('eus',), 'Galego': ('glg',), 'Greek': ('ell',), 'Malay': ('msa',), 10 'Portuguese (Brazilian)': ('por', 'BR'), 'Serbian (Cyrillic)': ('srp', None, 'Cyrl'), 11 'Serbian (Latin)': ('srp',), 'Spanish (Latin America)': ('spa',), 12 'Spanish (Spain)': ('spa',)} 13 self.to_addic7ed = {('cat',): 'Català', ('zho',): 'Chinese (Simplified)', ('eus',): 'Euskera', 14 ('glg',): 'Galego', ('ell',): 'Greek', ('msa',): 'Malay', 15 ('por', 'BR'): 'Portuguese (Brazilian)', ('srp', None, 'Cyrl'): 'Serbian (Cyrillic)'} 16 self.codes = self.name_converter.codes | set(self.from_addic7ed.keys()) 17 18 def convert(self, alpha3, country=None, script=None): 19 if (alpha3, country, script) in self.to_addic7ed: 20 return self.to_addic7ed[(alpha3, country, script)] 21 if (alpha3, country) in self.to_addic7ed: 22 return self.to_addic7ed[(alpha3, country)] 23 if (alpha3,) in self.to_addic7ed: 24 return self.to_addic7ed[(alpha3,)] 25 26 return self.name_converter.convert(alpha3, country, script) 27 28 def reverse(self, addic7ed): 29 if addic7ed in self.from_addic7ed: 30 return self.from_addic7ed[addic7ed] 31 32 return self.name_converter.reverse(addic7ed) 33