oldschool-toontown/otp/otpbase/OTPLocalizer.py

47 lines
1.8 KiB
Python
Raw Normal View History

from panda3d.core import *
from direct.showbase import DConfig
2019-11-02 17:27:54 -05:00
import string
import types
try:
language = DConfig.GetString('language', 'english')
checkLanguage = DConfig.GetBool('check-language', 0)
2019-11-02 17:27:54 -05:00
except:
language = simbase.config.GetString('language', 'english')
checkLanguage = simbase.config.GetBool('check-language', 0)
def getLanguage():
return language
print('OTPLocalizer: Running in language: %s' % language)
2019-11-02 17:27:54 -05:00
if language == 'english':
_languageModule = 'otp.otpbase.OTPLocalizer' + language.capitalize()
2019-11-02 17:27:54 -05:00
else:
checkLanguage = 1
_languageModule = 'otp.otpbase.OTPLocalizer_' + language
print('from ' + _languageModule + ' import *')
2019-11-02 17:27:54 -05:00
from otp.otpbase.OTPLocalizerEnglish import *
if checkLanguage:
l = {}
g = {}
englishModule = __import__('otp.otpbase.OTPLocalizerEnglish', g, l)
foreignModule = __import__(_languageModule, g, l)
for key, val in list(englishModule.__dict__.items()):
if key not in foreignModule.__dict__:
print('WARNING: Foreign module: %s missing key: %s' % (_languageModule, key))
2019-11-02 17:27:54 -05:00
locals()[key] = val
elif isinstance(val, dict):
2019-11-02 17:27:54 -05:00
fval = foreignModule.__dict__.get(key)
for dkey, dval in list(val.items()):
if dkey not in fval:
print('WARNING: Foreign module: %s missing key: %s.%s' % (_languageModule, key, dkey))
2019-11-02 17:27:54 -05:00
fval[dkey] = dval
for dkey in list(fval.keys()):
if dkey not in val:
print('WARNING: Foreign module: %s extra key: %s.%s' % (_languageModule, key, dkey))
2019-11-02 17:27:54 -05:00
for key in list(foreignModule.__dict__.keys()):
if key not in englishModule.__dict__:
print('WARNING: Foreign module: %s extra key: %s' % (_languageModule, key))