diff --git a/packages/addons/service/locale/source/default.py b/packages/addons/service/locale/source/default.py index d34da59446..0124daa08e 100644 --- a/packages/addons/service/locale/source/default.py +++ b/packages/addons/service/locale/source/default.py @@ -38,8 +38,20 @@ class Monitor(xbmc.Monitor): if os.path.isdir(localepath) == False: os.environ['I18NPATH'] = i18npath - subprocess.call([os.path.join(path, 'bin/localedef'), '-f', charmap, - '-i', locale, localepath]) + rc = subprocess.run([os.path.join(path, 'bin/localedef'), '-v', '-f', charmap, + '-i', locale, localepath], capture_output=True, + stdin=subprocess.DEVNULL) + + if rc.returncode not in [0, 1]: + xbmc.log(repr(rc), xbmc.LOGERROR) + try: + os.rmdir(localepath) + except OSError as e: + pass + if os.path.isfile(profile): + os.unlink(profile) + xbmcgui.Dialog().ok('Locale', strings(30004).format(lang)) + return if os.path.isdir(profiled) == False: os.makedirs(profiled) diff --git a/packages/addons/service/locale/source/resources/language/English/strings.po b/packages/addons/service/locale/source/resources/language/English/strings.po index 0538888a41..5bb8e37165 100644 --- a/packages/addons/service/locale/source/resources/language/English/strings.po +++ b/packages/addons/service/locale/source/resources/language/English/strings.po @@ -17,3 +17,7 @@ msgstr "" msgctxt "#30003" msgid "Locale changed to {}. Please reboot to apply globally." msgstr "" + +msgctxt "#30004" +msgid "Creating locale {} failed. Aborting." +msgstr ""