diff --git a/picard/tagger.py b/picard/tagger.py index 711b1d24b..29e5b3c08 100644 --- a/picard/tagger.py +++ b/picard/tagger.py @@ -206,9 +206,10 @@ class Tagger(QtGui.QApplication): def setup_gettext(self, localedir): """Setup locales, load translations, install gettext functions.""" - if self.config.setting["ui_language"]: + ui_language = self.config.setting["ui_language"] + if ui_language: os.environ['LANGUAGE'] = '' - os.environ['LANG'] = self.config.setting["ui_language"] + os.environ['LANG'] = ui_language if sys.platform == "win32": try: locale.setlocale(locale.LC_ALL, os.environ["LANG"]) @@ -221,6 +222,13 @@ class Tagger(QtGui.QApplication): except: pass else: + if sys.platform == "darwin" and not ui_language: + try: + import Foundation + defaults = Foundation.NSUserDefaults.standardUserDefaults() + os.environ["LANG"] = defaults.objectForKey_("AppleLanguages")[0] + except: + pass try: locale.setlocale(locale.LC_ALL, "") except: diff --git a/picard/ui/mainwindow.py b/picard/ui/mainwindow.py index 39bceb16b..6c59476d8 100644 --- a/picard/ui/mainwindow.py +++ b/picard/ui/mainwindow.py @@ -255,6 +255,7 @@ class MainWindow(QtGui.QMainWindow): def create_actions(self): self.options_action = QtGui.QAction(icontheme.lookup('preferences-desktop'), _("&Options..."), self) + self.options_action.setMenuRole(QtGui.QAction.PreferencesRole) self.options_action.triggered.connect(self.show_options) self.cut_action = QtGui.QAction(icontheme.lookup('edit-cut', icontheme.ICON_SIZE_MENU), _(u"&Cut"), self) @@ -273,6 +274,7 @@ class MainWindow(QtGui.QMainWindow): self.help_action.triggered.connect(self.show_help) self.about_action = QtGui.QAction(_("&About..."), self) + self.about_action.setMenuRole(QtGui.QAction.AboutRole) self.about_action.triggered.connect(self.show_about) self.donate_action = QtGui.QAction(_("&Donate..."), self) @@ -309,6 +311,7 @@ class MainWindow(QtGui.QMainWindow): self.submit_action.triggered.connect(self._on_submit) self.exit_action = QtGui.QAction(_(u"E&xit"), self) + self.exit_action.setMenuRole(QtGui.QAction.QuitRole) # TR: Keyboard shortcut for "Exit" self.exit_action.setShortcut(QtGui.QKeySequence(_(u"Ctrl+Q"))) self.exit_action.triggered.connect(self.close) diff --git a/setup.py b/setup.py index 6e92e97c4..cdfe55c88 100755 --- a/setup.py +++ b/setup.py @@ -30,7 +30,7 @@ try: 'iconfile' : 'picard.icns', 'frameworks' : ['libofa.0.dylib', 'libiconv.2.dylib', 'libdiscid.0.dylib'], 'resources' : ['locale'], - 'includes' : ['sip', 'PyQt4', 'picard.util.astrcmp', 'picard.musicdns.ofa', 'picard.musicdns.avcodec'], + 'includes' : ['sip', 'PyQt4', 'Foundation', 'picard.util.astrcmp', 'picard.musicdns.ofa', 'picard.musicdns.avcodec'], 'excludes' : ['pydoc', 'PyQt4.QtDeclarative', 'PyQt4.QtDesigner', 'PyQt4.QtHelp', 'PyQt4.QtMultimedia', 'PyQt4.QtOpenGL', 'PyQt4.QtScript', 'PyQt4.QtScriptTools', 'PyQt4.QtSql', 'PyQt4.QtSvg', 'PyQt4.QtTest', 'PyQt4.QtWebKit', 'PyQt4.QtXmlPatterns', 'PyQt4.phonon'],