diff --git a/picard/mbxml.py b/picard/mbxml.py
index 83e575ef04..3d47e535b7 100644
--- a/picard/mbxml.py
+++ b/picard/mbxml.py
@@ -278,6 +278,8 @@ def track_to_metadata(node, track):
m.length = int(nodes[0].text)
elif name == 'artist_credit':
artist_credit_to_metadata(nodes[0], m)
+ if config.setting["language_from_release"] and 'language' not in m and '~releaselanguage' in m:
+ m.add_unique("language", m['~releaselanguage'])
m['~length'] = format_time(m.length)
diff --git a/picard/ui/options/metadata.py b/picard/ui/options/metadata.py
index a880ac366e..fa57c1bc17 100644
--- a/picard/ui/options/metadata.py
+++ b/picard/ui/options/metadata.py
@@ -41,6 +41,7 @@ class MetadataOptionsPage(OptionsPage):
config.BoolOption("setting", "folksonomy_tags", False),
config.BoolOption("setting", "convert_punctuation", True),
config.BoolOption("setting", "standardize_artists", False),
+ config.BoolOption("setting", "language_from_release", False),
]
def __init__(self, parent=None):
@@ -70,6 +71,7 @@ def load(self):
self.ui.va_name.setText(config.setting["va_name"])
self.ui.nat_name.setText(config.setting["nat_name"])
self.ui.standardize_artists.setChecked(config.setting["standardize_artists"])
+ self.ui.language_from_release.setChecked(config.setting["language_from_release"])
def save(self):
config.setting["translate_artist_names"] = self.ui.translate_artist_names.isChecked()
@@ -85,6 +87,7 @@ def save(self):
if self.tagger.nats is not None:
self.tagger.nats.update()
config.setting["standardize_artists"] = self.ui.standardize_artists.isChecked()
+ config.setting["language_from_release"] = self.ui.language_from_release.isChecked()
def set_va_name_default(self):
self.ui.va_name.setText(self.options[0].default)
diff --git a/picard/ui/ui_options_metadata.py b/picard/ui/ui_options_metadata.py
index 15f0d06594..1eb4860f24 100644
--- a/picard/ui/ui_options_metadata.py
+++ b/picard/ui/ui_options_metadata.py
@@ -36,6 +36,9 @@ def setupUi(self, MetadataOptionsPage):
self.standardize_artists = QtGui.QCheckBox(self.metadata_groupbox)
self.standardize_artists.setObjectName(_fromUtf8("standardize_artists"))
self.verticalLayout_3.addWidget(self.standardize_artists)
+ self.language_from_release = QtGui.QCheckBox(self.metadata_groupbox)
+ self.language_from_release.setObjectName(_fromUtf8("language_from_release"))
+ self.verticalLayout_3.addWidget(self.language_from_release)
self.convert_punctuation = QtGui.QCheckBox(self.metadata_groupbox)
self.convert_punctuation.setObjectName(_fromUtf8("convert_punctuation"))
self.verticalLayout_3.addWidget(self.convert_punctuation)
@@ -88,7 +91,8 @@ def setupUi(self, MetadataOptionsPage):
QtCore.QMetaObject.connectSlotsByName(MetadataOptionsPage)
MetadataOptionsPage.setTabOrder(self.translate_artist_names, self.artist_locale)
MetadataOptionsPage.setTabOrder(self.artist_locale, self.standardize_artists)
- MetadataOptionsPage.setTabOrder(self.standardize_artists, self.convert_punctuation)
+ MetadataOptionsPage.setTabOrder(self.standardize_artists, self.language_from_release)
+ MetadataOptionsPage.setTabOrder(self.language_from_release, self.convert_punctuation)
MetadataOptionsPage.setTabOrder(self.convert_punctuation, self.release_ars)
MetadataOptionsPage.setTabOrder(self.release_ars, self.track_ars)
MetadataOptionsPage.setTabOrder(self.track_ars, self.folksonomy_tags)
@@ -101,6 +105,7 @@ def retranslateUi(self, MetadataOptionsPage):
self.metadata_groupbox.setTitle(_("Metadata"))
self.translate_artist_names.setText(_("Translate artist names to this locale where possible:"))
self.standardize_artists.setText(_("Use standardized artist names"))
+ self.language_from_release.setText(_("Use the release language as fallback for tracks"))
self.convert_punctuation.setText(_("Convert Unicode punctuation characters to ASCII"))
self.release_ars.setText(_("Use release relationships"))
self.track_ars.setText(_("Use track relationships"))
diff --git a/test/test_mbxml.py b/test/test_mbxml.py
index 2739a06eaf..d94d846cc6 100644
--- a/test/test_mbxml.py
+++ b/test/test_mbxml.py
@@ -16,6 +16,7 @@
"standardize_tracks": False,
"standardize_artists": False,
"standardize_releases": False,
+ "language_from_release": False,
"translate_artist_names": False
}
diff --git a/ui/options_metadata.ui b/ui/options_metadata.ui
index c9ba4308bc..e8daf3f284 100644
--- a/ui/options_metadata.ui
+++ b/ui/options_metadata.ui
@@ -49,6 +49,13 @@
+ -
+
+
+ Use the release language as fallback for tracks
+
+
+
-
@@ -166,6 +173,7 @@
translate_artist_names
artist_locale
standardize_artists
+ language_from_release
convert_punctuation
release_ars
track_ars