import re, string language = { 'AA': 'Afar', 'AB': 'Abkhazian', 'AF': 'Afrikaans', 'AM': 'Amharic', 'AR': 'Arabic', 'AS': 'Assamese', 'AY': 'Aymara', 'AZ': 'Azerbaijani', 'BA': 'Bashkir', 'BE': 'Byelorussian', 'BG': 'Bulgarian', 'BH': 'Bihari', 'BI': 'Bislama', 'BN': 'Bengali', 'BO': 'Tibetan', 'BR': 'Breton', 'CA': 'Catalan', 'CO': 'Corsican', 'CS': 'Czech', 'CY': 'Welsh', 'DA': 'Danish', 'DE': 'German', 'EL': 'Greek', 'EN': 'English', 'EO': 'Esperanto', 'ES': 'Spanish', 'ET': 'Estonian', 'EU': 'Basque', 'FA': 'Persian', 'FI': 'Finnish', 'FO': 'Faroese', 'FR': 'French', 'FY': 'Frisian', 'GA': 'Irish', 'GD': 'ScotsGaelic', 'GL': 'Galician', 'HI': 'Hindi', 'HR': 'Croatian', 'HU': 'Hungarian', 'HY': 'Armenian', 'IN': 'Indonesian', 'IS': 'Icelandic', 'IT': 'Italian', 'IW': 'Hebrew', 'JA': 'Japanese', 'JW': 'Javanese', 'KA': 'Georgian', 'KO': 'Korean', 'LA': 'Latin', 'LT': 'Lithuanian', 'LV': 'Latvian', 'MK': 'Macedonian', 'MN': 'Mongolian', 'MO': 'Moldavian', 'MS': 'Malay', 'NL': 'Dutch', 'NN': 'Notdefined', 'NO': 'Norwegian', 'PA': 'Punjabi', 'PL': 'Polish', 'PT': 'Portuguese', 'RO': 'Romanian', 'RU': 'Russian', 'SA': 'Sanskrit', 'SH': 'Serbo-Croat', 'SK': 'Slovak', 'SL': 'Slovenian', 'SM': 'Samoan', 'SR': 'Serbian', 'SV': 'Swedish', 'TA': 'Tamil', 'TH': 'Thai', 'TR': 'Turkish', 'UK': 'Ukrainian', 'UR': 'Urdu', 'VI': 'Vietnamese', 'XX': 'Polyglott?', 'ZH': 'Chinese', } for key, value in language.items(): language[value.lower()] = key def names(code): list = re.split('([A-Z]{2})', code) i = 1 while i < len(list): list[i] = language.get(list[i], list[i]) if list[i+1] == ' ': list[i+1] = ', ' i += 2 return string.join(list, '') def codes(name): list = re.split('(\w+)', name) i = 1 while i < len(list): list[i] = language.get(list[i].lower(), list[i]) i += 2 return string.join(list, '')