Only use first two letters of fallback ISO_639_2 language code/region

- With exception for fil -> fi
- Just in case xbmc.getLanguage ever gets fixed or even more broken
- Also tidy up related variable names
This commit is contained in:
MoojMidge 2024-04-19 11:31:41 +10:00
parent 9f32064693
commit ab76a2eea9
4 changed files with 23 additions and 18 deletions

View file

@ -374,6 +374,9 @@ class XbmcContext(AbstractContext):
if not lang_code:
language = xbmc.getLanguage(format=xbmc.ISO_639_2, region=False)
lang_code, separator, region = language.partition('-')
if lang_code != 'fil':
lang_code = lang_code[:2]
region = region[:2]
if not lang_code:
return 'en-US'
if region:

View file

@ -41,16 +41,16 @@ def _config_actions(context, action, *_args):
xbmc.executebuiltin('InstallAddon(script.module.inputstreamhelper)')
elif action == 'subtitles':
sub_lang = context.get_subtitle_language()
kodi_sub_lang = context.get_subtitle_language()
plugin_lang = settings.get_language()
sub_selection = settings.get_subtitle_selection()
if not sub_lang:
if not kodi_sub_lang:
preferred = (plugin_lang,)
elif sub_lang.partition('-')[0] != plugin_lang.partition('-')[0]:
preferred = (sub_lang, plugin_lang)
elif kodi_sub_lang.partition('-')[0] != plugin_lang.partition('-')[0]:
preferred = (kodi_sub_lang, plugin_lang)
else:
preferred = (sub_lang,)
preferred = (kodi_sub_lang,)
fallback = ('ASR' if preferred[0].startswith('en') else
context.get_language_name('en'))

View file

@ -66,16 +66,18 @@ class Subtitles(object):
else:
self.FORMATS['_default'] = 'vtt'
sub_lang = context.get_subtitle_language()
ui_lang = settings.get_language()
if not sub_lang and ui_lang:
self.preferred_lang = (ui_lang,)
elif sub_lang:
if (ui_lang and
sub_lang.partition('-')[0] != ui_lang.partition('-')[0]):
self.preferred_lang = (sub_lang, ui_lang)
kodi_sub_lang = context.get_subtitle_language()
plugin_lang = settings.get_language()
if not kodi_sub_lang and plugin_lang:
self.preferred_lang = (plugin_lang,)
elif kodi_sub_lang:
if not plugin_lang:
self.preferred_lang = (kodi_sub_lang,)
elif (plugin_lang.partition('-')[0]
!= kodi_sub_lang.partition('-')[0]):
self.preferred_lang = (kodi_sub_lang, plugin_lang)
else:
self.preferred_lang = (sub_lang,)
self.preferred_lang = (kodi_sub_lang,)
else:
self.preferred_lang = ('en',)

View file

@ -129,8 +129,8 @@ class Provider(AbstractProvider):
items_per_page = settings.items_per_page()
language = settings.get_language()
region = settings.get_region()
plugin_lang = settings.get_language()
plugin_region = settings.get_region()
api_last_origin = access_manager.get_last_origin()
@ -220,8 +220,8 @@ class Provider(AbstractProvider):
context.log_debug('Access token count: |%d| Refresh token count: |%d|' % (len(access_tokens), len(refresh_tokens)))
client = YouTube(context=context,
language=language,
region=region,
language=plugin_lang,
region=plugin_region,
items_per_page=items_per_page,
config=dev_keys if dev_keys else youtube_config)