chiark / gitweb /
Disable all languages except english for an official release.
[cura.git] / Cura / util / resources.py
index ad1e5ebc2364ee1719e5dc79a9ea45f0a853e694..6eb90cc6f86d35a761d0e5bc99f65fd1bb57b89a 100644 (file)
@@ -3,15 +3,22 @@ __copyright__ = "Copyright (C) 2013 David Braam - Released under terms of the AG
 
 import os
 import sys
+import glob
 
-__all__ = ['getPathForResource', 'getPathForImage', 'getPathForMesh']
+#Cura/util classes should not depend on wx...
+import wx
+import gettext
 
+if sys.platform.startswith('darwin'):
+       try:
+               #Foundation import can crash on some MacOS installs
+               from Foundation import *
+       except:
+               pass
 
 if sys.platform.startswith('darwin'):
        if hasattr(sys, 'frozen'):
                try:
-                       #Foundation import can crash on some MacOS installs
-                       from Foundation import *
                        resourceBasePath = NSBundle.mainBundle().resourcePath()
                except:
                        resourceBasePath = os.path.join(os.path.dirname(__file__), "../../../../../")
@@ -37,3 +44,37 @@ def getPathForMesh(name):
 
 def getPathForFirmware(name):
        return getPathForResource(resourceBasePath, 'firmware', name)
+
+def getDefaultMachineProfiles():
+       path = os.path.normpath(os.path.join(resourceBasePath, 'machine_profiles', '*.ini'))
+       return glob.glob(path)
+
+def setupLocalization(selectedLanguage = None):
+       try:
+               if sys.platform.startswith('darwin'):
+                       languages = NSLocale.preferredLanguages()
+               else:
+                       #Using wx.Locale before you created wx.App seems to cause an nasty exception. So default to 'en' at the moment.
+                       languages = [wx.Locale(wx.LANGUAGE_DEFAULT).GetCanonicalName()]
+       except Exception as e:
+               languages = ['en']
+
+       if selectedLanguage is not None:
+               for item in getLanguageOptions():
+                       if item[1] == selectedLanguage and item[0] is not None:
+                               languages = [item[0]]
+
+       locale_path = os.path.normpath(os.path.join(resourceBasePath, 'locale'))
+       translation = gettext.translation('Cura', locale_path, languages, fallback=True)
+       translation.install(unicode=True)
+
+def getLanguageOptions():
+       return [
+               # [None, 'System default'],
+               ['en', 'English'],
+               # ['de', 'Deutsch'],
+               # ['fr', 'French'],
+               # ['nl', 'Nederlands'],
+               # ['sp', 'Spanish'],
+               # ['po', 'Polish']
+       ]