40 lines
1.6 KiB
Python
40 lines
1.6 KiB
Python
from panda3d.core import *
|
|
|
|
language = ConfigVariableString('language', 'english').value
|
|
checkLanguage = ConfigVariableBool('check-language', 0).value
|
|
|
|
def getLanguage():
|
|
return language
|
|
|
|
|
|
print('OTPLocalizer: Running in language: %s' % language)
|
|
if language == 'english':
|
|
_languageModule = 'otp.otpbase.OTPLocalizer' + language.capitalize()
|
|
else:
|
|
checkLanguage = 1
|
|
_languageModule = 'otp.otpbase.OTPLocalizer_' + language
|
|
print('from ' + _languageModule + ' import *')
|
|
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))
|
|
locals()[key] = val
|
|
elif isinstance(val, dict):
|
|
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))
|
|
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))
|
|
|
|
for key in list(foreignModule.__dict__.keys()):
|
|
if key not in englishModule.__dict__:
|
|
print('WARNING: Foreign module: %s extra key: %s' % (_languageModule, key))
|