From 6644f74963898587454d45b3bb71b3c724d11c59 Mon Sep 17 00:00:00 2001 From: mglae Date: Sat, 13 Aug 2022 19:55:14 +0200 Subject: [PATCH 1/4] locale addon: fix call of localedef - Set stdin to /dev/null to fix error on Generic (GBM) CompletedProcess(args=['/storage/.kodi/addons/service.locale/bin/localedef', '-v', '-f', 'UTF-8', '-i', 'de_DE', '/storage/.kodi/addons/service.locale/locpath/de_DE.UTF-8'], returncode=4, stdout=b'', stderr=b"gzip: invalid magic\ngzip: invalid magic\n[error] character map file `UTF-8' not found: No such file or directory\n[warning] LC_NAME: field `name_gen' not defined\n[warning] LC_ADDRESS: field `country_post' not defined\n[warning] LC_ADDRESS: field `country_isbn' not defined\n[warning] LC_IDENTIFICATION: field `audience' not defined\n[warning] LC_IDENTIFICATION: field `application' not defined\n[warning] LC_IDENTIFICATION: field `abbreviation' not defined\n[error] no output file produced because errors were issued\n" - Add error detection code --- packages/addons/service/locale/source/default.py | 16 ++++++++++++++-- .../source/resources/language/English/strings.po | 4 ++++ 2 files changed, 18 insertions(+), 2 deletions(-) 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 "" From 2125e240e23fa36930f7b27b4bbb53d82268b980 Mon Sep 17 00:00:00 2001 From: mglae Date: Sat, 13 Aug 2022 19:55:24 +0200 Subject: [PATCH 2/4] locale addon: convert to new language layout --- .../language/{English => resource.language.en_gb}/strings.po | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename packages/addons/service/locale/source/resources/language/{English => resource.language.en_gb}/strings.po (100%) diff --git a/packages/addons/service/locale/source/resources/language/English/strings.po b/packages/addons/service/locale/source/resources/language/resource.language.en_gb/strings.po similarity index 100% rename from packages/addons/service/locale/source/resources/language/English/strings.po rename to packages/addons/service/locale/source/resources/language/resource.language.en_gb/strings.po From ef0be61a21343babd0ebc5453acd7c328f09e018 Mon Sep 17 00:00:00 2001 From: mglae Date: Sat, 13 Aug 2022 19:55:35 +0200 Subject: [PATCH 3/4] locale addon: convert to new settings format --- packages/addons/service/locale/package.mk | 5 +-- .../service/locale/resources/settings.xml | 40 ++++++++++++++++--- .../locale/source/settings-default.xml | 6 +-- 3 files changed, 40 insertions(+), 11 deletions(-) diff --git a/packages/addons/service/locale/package.mk b/packages/addons/service/locale/package.mk index e4afc309f8..09385b1e84 100644 --- a/packages/addons/service/locale/package.mk +++ b/packages/addons/service/locale/package.mk @@ -34,10 +34,9 @@ addon() { if [ "${l}" = "POSIX" ]; then continue fi - locales+="|${l}" + locales+="$(echo -e '\\\n ')" done - locales="${locales:1}" - sed -e "s/@LOCALES@/${locales}/" \ + sed -e "s|@LOCALES@|${locales}|" \ -i ${ADDON_BUILD}/${PKG_ADDON_ID}/resources/settings.xml } diff --git a/packages/addons/service/locale/resources/settings.xml b/packages/addons/service/locale/resources/settings.xml index 5157d70e48..4fa663090d 100644 --- a/packages/addons/service/locale/resources/settings.xml +++ b/packages/addons/service/locale/resources/settings.xml @@ -1,7 +1,37 @@ - - - - - + + +
+ + + + 0 + UTF-8 + + + + + + + + false + + + + 30001 + + + + 0 + en_GB + + @LOCALES@ + + + + 30002 + + + +
diff --git a/packages/addons/service/locale/source/settings-default.xml b/packages/addons/service/locale/source/settings-default.xml index 5db70160c9..e5018a4d90 100644 --- a/packages/addons/service/locale/source/settings-default.xml +++ b/packages/addons/service/locale/source/settings-default.xml @@ -1,4 +1,4 @@ - - - + + UTF-8 +