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 | ||||
|     locale_path = i18n.get_locale_path(bundle.get_bundle_id()) | ||||
|     if locale_path: | ||||
|         gettext.bindtextdomain(bundle.get_bundle_id(), locale_path) | ||||
|         gettext.bindtextdomain('sugar-toolkit', sugar3.locale_path) | ||||
|         gettext.textdomain(bundle.get_bundle_id()) | ||||
|  | ||||
| @ -119,7 +119,8 @@ def get_locale_path(bundle_id): | ||||
|         @type   bundle_id:      string | ||||
|         @param  bundle_id:      The bundle id of the activity in question | ||||
|         @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 | ||||
| @ -135,10 +136,14 @@ def get_locale_path(bundle_id): | ||||
| 
 | ||||
|     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(): | ||||
|         if os.path.exists(candidate_dir): | ||||
|             full_path = os.path.join(candidate_dir, \ | ||||
|                 locale.getdefaultlocale()[0], 'LC_MESSAGES', \ | ||||
|                 default_locale, 'LC_MESSAGES', \ | ||||
|                 bundle_id + '.mo') | ||||
|             if os.path.exists(full_path): | ||||
|                 try: | ||||
|  | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user
	 Simon Schampijer
						Simon Schampijer