Must be done early, some activities set translations globally.
To not depend on gconf at this stage the shell does set
an env variable when reading the GConf key.

Signed-off-by: Simon Schampijer <si...@laptop.org>
---
 bin/sugar-activity              |    8 ++++++++
 src/sugar3/activity/activity.py |    6 ------
 src/sugar3/activity/i18n.py     |    8 ++------
 3 files changed, 10 insertions(+), 12 deletions(-)

diff --git a/bin/sugar-activity b/bin/sugar-activity
index 51ba6bf..5aef1ae 100644
--- a/bin/sugar-activity
+++ b/bin/sugar-activity
@@ -26,6 +26,8 @@ import dbus.service
 import dbus.glib
 
 from sugar3.activity import activityhandle
+from sugar3.activity import i18n
+import sugar3
 from sugar3.bundle.activitybundle import ActivityBundle
 from sugar3 import logger
 
@@ -97,6 +99,12 @@ def main():
     os.environ['SUGAR_BUNDLE_NAME'] = bundle.get_name()
     os.environ['SUGAR_BUNDLE_VERSION'] = str(bundle.get_activity_version())
 
+    # must be done early, some activities set translations globally, SL #3654
+    locale_path = i18n.get_locale_path(bundle.get_bundle_id())
+    gettext.bindtextdomain(bundle.get_bundle_id(), locale_path)
+    gettext.bindtextdomain('sugar-toolkit', sugar3.locale_path)
+    gettext.textdomain(bundle.get_bundle_id())
+
     splitted_module = args[0].rsplit('.', 1)
     module_name = splitted_module[0]
     class_name = splitted_module[1]
diff --git a/src/sugar3/activity/activity.py b/src/sugar3/activity/activity.py
index 4dea554..711b247 100644
--- a/src/sugar3/activity/activity.py
+++ b/src/sugar3/activity/activity.py
@@ -259,12 +259,6 @@ class Activity(Window, Gtk.Container):
 
         """
         # Stuff that needs to be done early
-
-        locale_path = i18n.get_locale_path(self.get_bundle_id())
-        gettext.bindtextdomain(self.get_bundle_id(), locale_path)
-        gettext.bindtextdomain('sugar-toolkit', sugar3.locale_path)
-        gettext.textdomain(self.get_bundle_id())
-
         icons_path = os.path.join(get_bundle_path(), 'icons')
         Gtk.IconTheme.get_default().append_search_path(icons_path)
 
diff --git a/src/sugar3/activity/i18n.py b/src/sugar3/activity/i18n.py
index 92acb96..f179992 100644
--- a/src/sugar3/activity/i18n.py
+++ b/src/sugar3/activity/i18n.py
@@ -17,8 +17,6 @@
 # Free Software Foundation, Inc., 59 Temple Place - Suite 330,
 # Boston, MA 02111-1307, USA.
 
-from gi.repository import GConf
-
 from gettext import gettext
 import locale
 import os
@@ -135,10 +133,8 @@ def get_locale_path(bundle_id):
     if 'SUGAR_LOCALEDIR' in os.environ:
         candidate_dirs[os.environ['SUGAR_LOCALEDIR']] = 2
 
-    gconf_client = GConf.Client.get_default()
-    package_dir = gconf_client.get_string('/desktop/sugar/i18n/langpackdir')
-    if package_dir is not None and package_dir is not '':
-        candidate_dirs[package_dir] = 1
+    if 'SUGAR_LANGPACKDIR' in os.environ:
+        candidate_dirs[os.environ['SUGAR_LANGPACKDIR']] = 1
 
     candidate_dirs[os.path.join(sys.prefix, 'share', 'locale')] = 0
 
-- 
1.7.10.2

_______________________________________________
Sugar-devel mailing list
Sugar-devel@lists.sugarlabs.org
http://lists.sugarlabs.org/listinfo/sugar-devel

Reply via email to