1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76
|
"""
Localization related code
Copyright (c) 2010+, Anthony Garcia <anthony@lagg.me>
Distributed under the ISC License (see LICENSE)
"""
import os
from . import api
class LanguageError(api.APIError):
pass
class LanguageUnsupportedError(LanguageError):
pass
class language(object):
""" Steam API localization tools and reference """
# If there's a new language added feel free to add it here
_languages = {"da_DK": "Danish",
"nl_NL": "Dutch",
"en_US": "English",
"fi_FI": "Finnish",
"fr_FR": "French",
"de_DE": "German",
"hu_HU": "Hungarian",
"it_IT": "Italian",
"ja_JP": "Japanese",
"ko_KR": "Korean",
"no_NO": "Norwegian",
"pl_PL": "Polish",
"pt_PT": "Portuguese",
"pt_BR": "Brazilian Portuguese",
"ro_RO": "Romanian",
"ru_RU": "Russian",
"zh_CN": "Simplified Chinese",
"es_ES": "Spanish",
"sv_SE": "Swedish",
"zh_TW": "Traditional Chinese",
"tr_TR": "Turkish"}
_default_language = "en_US"
def __init__(self, code=None):
""" Raises LanguageUnsupportedError if the code isn't supported by the
API or otherwise invalid, uses the default language if no code is given.
'code' is an ISO language code. """
self._code = None
if not code:
_system_language = os.environ.get("LANG", language._default_language).split('.')[0]
if _system_language in language._languages.keys():
self._code = _system_language
else:
self._code = language._default_language
else:
code = code.lower()
for lcode, lname in language._languages.items():
code_lower = lcode.lower()
if code_lower == code or code_lower.split('_')[0] == code:
self._code = lcode
break
try:
self._name = language._languages[self._code]
except KeyError:
self._name = None
raise LanguageUnsupportedError(code)
@property
def code(self):
return self._code
@property
def name(self):
return self._name
|