i18n get_locale_path: handle the case when the default locale is not set, SL #4450
If the default locale is not set (see SL #4450 for a use case), get_locale_path does now return None so that the sugar-activity script can handle that case cleanly. Signed-off-by: Simon Schampijer <simon@laptop.org> Reviewed-by: Daniel Drake <dsd@laptop.org>
This commit is contained in:
parent
63b8e87b1a
commit
dcbdcd77fe
@ -107,6 +107,7 @@ def main():
|
|||||||
|
|
||||||
# must be done early, some activities set translations globally, SL #3654
|
# must be done early, some activities set translations globally, SL #3654
|
||||||
locale_path = i18n.get_locale_path(bundle.get_bundle_id())
|
locale_path = i18n.get_locale_path(bundle.get_bundle_id())
|
||||||
|
if locale_path:
|
||||||
gettext.bindtextdomain(bundle.get_bundle_id(), locale_path)
|
gettext.bindtextdomain(bundle.get_bundle_id(), locale_path)
|
||||||
gettext.bindtextdomain('sugar-toolkit', sugar3.locale_path)
|
gettext.bindtextdomain('sugar-toolkit', sugar3.locale_path)
|
||||||
gettext.textdomain(bundle.get_bundle_id())
|
gettext.textdomain(bundle.get_bundle_id())
|
||||||
|
@ -119,7 +119,8 @@ def get_locale_path(bundle_id):
|
|||||||
@type bundle_id: string
|
@type bundle_id: string
|
||||||
@param bundle_id: The bundle id of the activity in question
|
@param bundle_id: The bundle id of the activity in question
|
||||||
@rtype: string
|
@rtype: string
|
||||||
@return: the preferred locale path
|
@return: the preferred locale path or None in the
|
||||||
|
case of an error
|
||||||
"""
|
"""
|
||||||
|
|
||||||
# Note: We pre-assign weights to the directories so that if no translations
|
# Note: We pre-assign weights to the directories so that if no translations
|
||||||
@ -135,10 +136,14 @@ def get_locale_path(bundle_id):
|
|||||||
|
|
||||||
candidate_dirs[os.path.join(sys.prefix, 'share', 'locale')] = 0
|
candidate_dirs[os.path.join(sys.prefix, 'share', 'locale')] = 0
|
||||||
|
|
||||||
|
default_locale = locale.getdefaultlocale()[0]
|
||||||
|
if not default_locale:
|
||||||
|
return None
|
||||||
|
|
||||||
for candidate_dir in candidate_dirs.keys():
|
for candidate_dir in candidate_dirs.keys():
|
||||||
if os.path.exists(candidate_dir):
|
if os.path.exists(candidate_dir):
|
||||||
full_path = os.path.join(candidate_dir, \
|
full_path = os.path.join(candidate_dir, \
|
||||||
locale.getdefaultlocale()[0], 'LC_MESSAGES', \
|
default_locale, 'LC_MESSAGES', \
|
||||||
bundle_id + '.mo')
|
bundle_id + '.mo')
|
||||||
if os.path.exists(full_path):
|
if os.path.exists(full_path):
|
||||||
try:
|
try:
|
||||||
|
Loading…
Reference in New Issue
Block a user