From fd72f10d5987b01bbc055f4b20bf158dd7d47349 Mon Sep 17 00:00:00 2001 From: Sophist Date: Mon, 21 Apr 2014 11:24:29 +0100 Subject: [PATCH 001/212] Add track metadata plugin priority processing All track metadata processors are equal but some are more equal than others. This commit allows a track metadata plugin to register with high priority, and to run before plugins which are not high priority. This is needed for the Standardize Performers plugin. --- picard/metadata.py | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/picard/metadata.py b/picard/metadata.py index babece9d2..75968344a 100644 --- a/picard/metadata.py +++ b/picard/metadata.py @@ -441,6 +441,7 @@ class Metadata(dict): _album_metadata_processors = ExtensionPoint() _track_metadata_processors = ExtensionPoint() +_track_metadata_processors_priority = ExtensionPoint() def register_album_metadata_processor(function): @@ -448,9 +449,12 @@ def register_album_metadata_processor(function): _album_metadata_processors.register(function.__module__, function) -def register_track_metadata_processor(function): +def register_track_metadata_processor(function, priority = False): """Registers new track-level metadata processor.""" - _track_metadata_processors.register(function.__module__, function) + if priority: + _track_metadata_processors_priority.register(function.__module__, function) + else: + _track_metadata_processors.register(function.__module__, function) def run_album_metadata_processors(tagger, metadata, release): @@ -459,5 +463,9 @@ def run_album_metadata_processors(tagger, metadata, release): def run_track_metadata_processors(tagger, metadata, release, track): + for processor in _track_metadata_processors_priority: + processor(tagger, metadata, track, release) + for processor in _track_metadata_processors: processor(tagger, metadata, track, release) + From f1d3e2b46e16aa38cc121f7d0090150f245eb2ea Mon Sep 17 00:00:00 2001 From: Sophist Date: Mon, 21 Apr 2014 11:42:27 +0100 Subject: [PATCH 002/212] Add Standardise Performers plugin --- contrib/plugins/standardise_performers.py | 55 +++++++++++++++++++++++ 1 file changed, 55 insertions(+) create mode 100644 contrib/plugins/standardise_performers.py diff --git a/contrib/plugins/standardise_performers.py b/contrib/plugins/standardise_performers.py new file mode 100644 index 000000000..1ddc6f13f --- /dev/null +++ b/contrib/plugins/standardise_performers.py @@ -0,0 +1,55 @@ +# -*- coding: utf-8 -*- + +PLUGIN_NAME = _(u'Standardise Performers') +PLUGIN_AUTHOR = u'Sophist' +PLUGIN_DESCRIPTION = u'''Splits multi-instrument performer tags into single +instruments and combines names so e.g. (from 10cc by 10cc track 1): +
+Performer [acoustic guitar, bass, dobro, electric guitar and tambourine]: Graham Gouldman
+Performer [acoustic guitar, electric guitar, grand piano and synthesizer]: Lol Creme
+Performer [electric guitar, moog and slide guitar]: Eric Stewart
+
+becomes: +
+Performer [acoustic guitar]: Graham Gouldman; Lol Creme
+Performer [bass]: Graham Gouldman
+Performer [dobro]: Graham Gouldman
+Performer [electric guitar]: Eric Stewart; Graham Gouldman; Lol Creme
+Performer [grand piano]: Lol Creme
+Performer [moog]: Eric Stewart
+Performer [slide guitar]: Eric Stewart
+Performer [synthesizer]: Lol Creme
+Performer [tambourine]: Graham Gouldman
+
+''' +PLUGIN_VERSION = '0.1' +PLUGIN_API_VERSIONS = ["1.3.0"] + +import re +from picard import log +from picard.metadata import register_track_metadata_processor + +standardise_performers_split = re.compile(r", | and ").split + +def standardise_performers(album, metadata, *args): + for key, values in metadata.rawitems(): + if not key.startswith('performer:') \ + and not key.startswith('~performersort:'): + continue + mainkey, subkey = key.split(':', 1) + if not subkey: + continue + instruments = standardise_performers_split(subkey) + if len(instruments) == 1: + continue + log.debug("%s: Splitting Performer [%s] into separate performers", + PLUGIN_NAME, + subkey, + ) + for instrument in instruments: + newkey = '%s:%s' % (mainkey, instrument) + for value in values: + metadata.add_unique(newkey, value) + del metadata[key] + +register_track_metadata_processor(standardise_performers, priority = True) From 52e4766ec78165f1944c30f080c13891a6ce2761 Mon Sep 17 00:00:00 2001 From: Sophist Date: Mon, 21 Apr 2014 11:44:05 +0100 Subject: [PATCH 003/212] Add NEWS --- NEWS.txt | 2 ++ 1 file changed, 2 insertions(+) diff --git a/NEWS.txt b/NEWS.txt index e57caa528..5f93473cd 100644 --- a/NEWS.txt +++ b/NEWS.txt @@ -45,6 +45,8 @@ * Add integrated functions $eq_any, $ne_all, $eq_all, $ne_any, $swapprefix and $delprefix. * Add %_performance_attributes%, containing performance attributes for the work e.g. live, cover, medley etc. Use $inmulti in file naming scripts i.e. ...$if($inmulti(%_performance_attributes%,medley), (Medley),) + * Add Standardise Performers plugin to convert e.g. Performer [piano and guitar] into + Performer [piano] and Performer [guitar]. Version 1.2 - 2013-03-30 From 60fc6e4499259e3a92ec45bb286a1329660ce391 Mon Sep 17 00:00:00 2001 From: Laurent Monin Date: Mon, 21 Apr 2014 14:32:51 +0200 Subject: [PATCH 004/212] Add weight parameter to metadata_processors Processors having more weight will be run first, default weight is 0. --- contrib/plugins/standardise_performers.py | 2 +- picard/metadata.py | 35 ++++++++++++----------- 2 files changed, 19 insertions(+), 18 deletions(-) diff --git a/contrib/plugins/standardise_performers.py b/contrib/plugins/standardise_performers.py index 1ddc6f13f..2f8b6711d 100644 --- a/contrib/plugins/standardise_performers.py +++ b/contrib/plugins/standardise_performers.py @@ -52,4 +52,4 @@ def standardise_performers(album, metadata, *args): metadata.add_unique(newkey, value) del metadata[key] -register_track_metadata_processor(standardise_performers, priority = True) +register_track_metadata_processor(standardise_performers, weight=100) diff --git a/picard/metadata.py b/picard/metadata.py index 75968344a..39c15a896 100644 --- a/picard/metadata.py +++ b/picard/metadata.py @@ -439,33 +439,34 @@ class Metadata(dict): self.apply_func(lambda s: s.strip()) -_album_metadata_processors = ExtensionPoint() -_track_metadata_processors = ExtensionPoint() -_track_metadata_processors_priority = ExtensionPoint() +from collections import defaultdict + +_album_metadata_processors = defaultdict(ExtensionPoint) +_track_metadata_processors = defaultdict(ExtensionPoint) -def register_album_metadata_processor(function): +def register_album_metadata_processor(function, weight=0): """Registers new album-level metadata processor.""" - _album_metadata_processors.register(function.__module__, function) + _album_metadata_processors[weight].register(function.__module__, function) -def register_track_metadata_processor(function, priority = False): +def register_track_metadata_processor(function, weight=0): """Registers new track-level metadata processor.""" - if priority: - _track_metadata_processors_priority.register(function.__module__, function) - else: - _track_metadata_processors.register(function.__module__, function) + _track_metadata_processors[weight].register(function.__module__, function) def run_album_metadata_processors(tagger, metadata, release): - for processor in _album_metadata_processors: - processor(tagger, metadata, release) + for weight, processors in sorted(_album_metadata_processors.iteritems(), + key=lambda (k, v): k, + reverse=True): + for processor in processors: + processor(tagger, metadata, release) def run_track_metadata_processors(tagger, metadata, release, track): - for processor in _track_metadata_processors_priority: - processor(tagger, metadata, track, release) - - for processor in _track_metadata_processors: - processor(tagger, metadata, track, release) + for weight, processors in sorted(_track_metadata_processors.iteritems(), + key=lambda (k, v): k, + reverse=True): + for processor in processors: + processor(tagger, metadata, track, release) From 1a4d2b5ce75377c61df7b603b5962bb176ba5b8a Mon Sep 17 00:00:00 2001 From: Sophist Date: Mon, 21 Apr 2014 17:20:57 +0100 Subject: [PATCH 005/212] Set default weights to 50 ... ... so we can have plugins with lower than default priority. --- picard/metadata.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/picard/metadata.py b/picard/metadata.py index 39c15a896..f390db752 100644 --- a/picard/metadata.py +++ b/picard/metadata.py @@ -445,12 +445,12 @@ _album_metadata_processors = defaultdict(ExtensionPoint) _track_metadata_processors = defaultdict(ExtensionPoint) -def register_album_metadata_processor(function, weight=0): +def register_album_metadata_processor(function, weight=50): """Registers new album-level metadata processor.""" _album_metadata_processors[weight].register(function.__module__, function) -def register_track_metadata_processor(function, weight=0): +def register_track_metadata_processor(function, weight=50): """Registers new track-level metadata processor.""" _track_metadata_processors[weight].register(function.__module__, function) From 4724e7301534c6c5e95976d41a503dd2a88f0aef Mon Sep 17 00:00:00 2001 From: Sophist Date: Mon, 21 Apr 2014 17:42:55 +0100 Subject: [PATCH 006/212] Set default weights to 100... and plugin weight to 200. --- contrib/plugins/standardise_performers.py | 2 +- picard/metadata.py | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/contrib/plugins/standardise_performers.py b/contrib/plugins/standardise_performers.py index 2f8b6711d..bd0796254 100644 --- a/contrib/plugins/standardise_performers.py +++ b/contrib/plugins/standardise_performers.py @@ -52,4 +52,4 @@ def standardise_performers(album, metadata, *args): metadata.add_unique(newkey, value) del metadata[key] -register_track_metadata_processor(standardise_performers, weight=100) +register_track_metadata_processor(standardise_performers, weight=200) diff --git a/picard/metadata.py b/picard/metadata.py index f390db752..bc3c68149 100644 --- a/picard/metadata.py +++ b/picard/metadata.py @@ -445,12 +445,12 @@ _album_metadata_processors = defaultdict(ExtensionPoint) _track_metadata_processors = defaultdict(ExtensionPoint) -def register_album_metadata_processor(function, weight=50): +def register_album_metadata_processor(function, weight=100): """Registers new album-level metadata processor.""" _album_metadata_processors[weight].register(function.__module__, function) -def register_track_metadata_processor(function, weight=50): +def register_track_metadata_processor(function, weight=100): """Registers new track-level metadata processor.""" _track_metadata_processors[weight].register(function.__module__, function) From 2fc6da074bd850435744ab0041656d21b34ca4ee Mon Sep 17 00:00:00 2001 From: Laurent Monin Date: Thu, 24 Apr 2014 21:37:35 +0200 Subject: [PATCH 007/212] Add PluginPriority and PluginFunctions classes PluginPriority defines few common values for plugin execution priority. PluginFunctions wraps ExtensionPoint and use defaultdict() to handle priorities. It also provide a register() and a run() methods. --- picard/plugin.py | 35 +++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) diff --git a/picard/plugin.py b/picard/plugin.py index de3f456c8..0af4dcb12 100644 --- a/picard/plugin.py +++ b/picard/plugin.py @@ -18,6 +18,7 @@ # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. from PyQt4 import QtCore +from collections import defaultdict import imp import os.path import shutil @@ -213,3 +214,37 @@ class PluginManager(QtCore.QObject): def enabled(self, name): return True + + +class PluginPriority: + + """ + Define few priority values for plugin functions execution order + Those with higher values are executed first + Default priority is PluginPriority.NORMAL + """ + HIGH = 100 + NORMAL = 0 + LOW = -100 + + +class PluginFunctions: + + """ + Store ExtensionPoint in a defaultdict with priority as key + run() method will execute entries with higher priority value first + """ + + def __init__(self): + self.functions = defaultdict(ExtensionPoint) + + def register(self, module, item, priority=PluginPriority.NORMAL): + self.functions[priority].register(module, item) + + def run(self, *args, **kwargs): + "Execute registered functions with passed parameters honouring priority" + for priority, functions in sorted(self.functions.iteritems(), + key=lambda (k, v): k, + reverse=True): + for function in functions: + function(*args, **kwargs) From b7468b82f060a267c3b638aec62e77fb5861246d Mon Sep 17 00:00:00 2001 From: Laurent Monin Date: Thu, 24 Apr 2014 21:39:45 +0200 Subject: [PATCH 008/212] Use PluginFunctions and PluginPriority to reduce code redundancy. weight was renamed priority Execution loops were replaced by PluginFunctions.run() call --- picard/metadata.py | 29 +++++++++-------------------- 1 file changed, 9 insertions(+), 20 deletions(-) diff --git a/picard/metadata.py b/picard/metadata.py index bc3c68149..921f877de 100644 --- a/picard/metadata.py +++ b/picard/metadata.py @@ -28,7 +28,7 @@ from hashlib import md5 from os import fdopen, unlink from PyQt4.QtCore import QObject from picard import config, log -from picard.plugin import ExtensionPoint +from picard.plugin import PluginFunctions, PluginPriority from picard.similarity import similarity2 from picard.util import ( encode_filename, @@ -439,34 +439,23 @@ class Metadata(dict): self.apply_func(lambda s: s.strip()) -from collections import defaultdict - -_album_metadata_processors = defaultdict(ExtensionPoint) -_track_metadata_processors = defaultdict(ExtensionPoint) +_album_metadata_processors = PluginFunctions() +_track_metadata_processors = PluginFunctions() -def register_album_metadata_processor(function, weight=100): +def register_album_metadata_processor(function, priority=PluginPriority.NORMAL): """Registers new album-level metadata processor.""" - _album_metadata_processors[weight].register(function.__module__, function) + _album_metadata_processors.register(function.__module__, function, priority) -def register_track_metadata_processor(function, weight=100): +def register_track_metadata_processor(function, priority=PluginPriority.NORMAL): """Registers new track-level metadata processor.""" - _track_metadata_processors[weight].register(function.__module__, function) + _track_metadata_processors.register(function.__module__, function, priority) def run_album_metadata_processors(tagger, metadata, release): - for weight, processors in sorted(_album_metadata_processors.iteritems(), - key=lambda (k, v): k, - reverse=True): - for processor in processors: - processor(tagger, metadata, release) + _album_metadata_processors.run(tagger, metadata, release) def run_track_metadata_processors(tagger, metadata, release, track): - for weight, processors in sorted(_track_metadata_processors.iteritems(), - key=lambda (k, v): k, - reverse=True): - for processor in processors: - processor(tagger, metadata, track, release) - + _track_metadata_processors.run(tagger, metadata, track, release) From 8deddf772d315cea7fea3cbae0cd624b503e22c8 Mon Sep 17 00:00:00 2001 From: Laurent Monin Date: Thu, 24 Apr 2014 21:41:14 +0200 Subject: [PATCH 009/212] Use PluginPriority.HIGH and rename weight to priority --- contrib/plugins/standardise_performers.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/contrib/plugins/standardise_performers.py b/contrib/plugins/standardise_performers.py index bd0796254..855a9c9df 100644 --- a/contrib/plugins/standardise_performers.py +++ b/contrib/plugins/standardise_performers.py @@ -28,6 +28,7 @@ PLUGIN_API_VERSIONS = ["1.3.0"] import re from picard import log from picard.metadata import register_track_metadata_processor +from picard.plugin import PluginPriority standardise_performers_split = re.compile(r", | and ").split @@ -52,4 +53,5 @@ def standardise_performers(album, metadata, *args): metadata.add_unique(newkey, value) del metadata[key] -register_track_metadata_processor(standardise_performers, weight=200) +register_track_metadata_processor(standardise_performers, + priority=PluginPriority.HIGH) From 23ef8465f93e993d794dd8b13e06e581fb8a344d Mon Sep 17 00:00:00 2001 From: Laurent Monin Date: Fri, 25 Apr 2014 11:21:29 +0200 Subject: [PATCH 010/212] Try to run on previous Picard versions at normal priority. Since there is no PluginPriority on previous Picard versions, this plugin will raise an exception, better catch it and emit a warning. Sophist said: "It will work in most cases at normal priority, but any other plugins that run before it will get the old performers rather than the standardized performers. --- contrib/plugins/standardise_performers.py | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/contrib/plugins/standardise_performers.py b/contrib/plugins/standardise_performers.py index 855a9c9df..558120fe0 100644 --- a/contrib/plugins/standardise_performers.py +++ b/contrib/plugins/standardise_performers.py @@ -28,7 +28,6 @@ PLUGIN_API_VERSIONS = ["1.3.0"] import re from picard import log from picard.metadata import register_track_metadata_processor -from picard.plugin import PluginPriority standardise_performers_split = re.compile(r", | and ").split @@ -53,5 +52,16 @@ def standardise_performers(album, metadata, *args): metadata.add_unique(newkey, value) del metadata[key] -register_track_metadata_processor(standardise_performers, - priority=PluginPriority.HIGH) + +try: + from picard.plugin import PluginPriority + + register_track_metadata_processor(standardise_performers, + priority=PluginPriority.HIGH) +except ImportError: + log.warning( + "Running %r plugin on this Picard version may not work as you expect. " + "Any other plugins that run before it will get the old performers " + "rather than the standardized performers." % PLUGIN_NAME + ) + register_track_metadata_processor(standardise_performers) From d7ba54dc5148a7e8f203eb5d9e8489cb3f56fdac Mon Sep 17 00:00:00 2001 From: Laurent Monin Date: Wed, 23 Apr 2014 15:13:24 +0200 Subject: [PATCH 011/212] Make version_to_string() and version_from_string() more tolerant With those changes they can be used to parse plugin API versions too. Test cases were modified accordingly. Main changes: ```python >>> version_from_string("1.0") (1, 0, 0, 'final', 0) >>> version_from_string("1.0.1") (1, 0, 1, 'final', 0) ``` --- picard/__init__.py | 6 +++++- test/test_versions.py | 48 ++++++++++++++++++++++++++++++++++++++++--- 2 files changed, 50 insertions(+), 4 deletions(-) diff --git a/picard/__init__.py b/picard/__init__.py index 1371adf29..e8f52379b 100644 --- a/picard/__init__.py +++ b/picard/__init__.py @@ -58,11 +58,15 @@ def version_to_string(version, short=False): return version_str -_version_re = re.compile("(\d+)[._](\d+)[._](\d+)[._]?(dev|final)[._]?(\d+)$") +_version_re = re.compile("(\d+)[._](\d+)(?:[._](\d+)[._]?(?:(dev|final)[._]?(\d+))?)?$") def version_from_string(version_str): m = _version_re.search(version_str) if m: g = m.groups() + if g[2] is None: + return (int(g[0]), int(g[1]), 0, 'final', 0) + if g[3] is None: + return (int(g[0]), int(g[1]), int(g[2]), 'final', 0) return (int(g[0]), int(g[1]), int(g[2]), g[3], int(g[4])) raise VersionError("String '%s' do not match regex '%s'" % (version_str, _version_re.pattern)) diff --git a/test/test_versions.py b/test/test_versions.py index a473fb771..dc0b57bb3 100644 --- a/test/test_versions.py +++ b/test/test_versions.py @@ -1,11 +1,21 @@ # -*- coding: utf-8 -*- +import sys import unittest from picard import (version_to_string, version_from_string, VersionError) +# assertLess is available since 2.7 only +if sys.version_info[:2] == (2, 6): + def assertLess(self, a, b, msg=None): + if not a < b: + self.fail('%s not less than %s' % (repr(a), repr(b))) + + unittest.TestCase.assertLess = assertLess + + class VersionsTest(unittest.TestCase): def test_version_conv_1(self): @@ -24,9 +34,9 @@ class VersionsTest(unittest.TestCase): self.assertEqual(l, version_from_string(s)) def test_version_conv_4(self): - l, s = (1, 0, 2, '', 0), '1.0.2' - self.assertRaises(VersionError, version_to_string, (l)) - self.assertRaises(VersionError, version_from_string, (s)) + l, s = (1, 0, 2, 'final', 0), '1.0.2' + self.assertEqual(version_to_string(l, short=True), s) + self.assertEqual(l, version_from_string(s)) def test_version_conv_5(self): l, s = (999, 999, 999, 'dev', 999), '999.999.999dev999' @@ -68,3 +78,35 @@ class VersionsTest(unittest.TestCase): def test_version_conv_14(self): l = 'anything_28x_1_0_dev_0' self.assertRaises(VersionError, version_to_string, (l)) + + def test_version_conv_15(self): + l, s = (1, 1, 0, 'final', 0), 'anything_28_1_1_0' + self.assertEqual(l, version_from_string(s)) + + def test_version_conv_16(self): + self.assertRaises(VersionError, version_from_string, '1.1.0dev') + + def test_version_conv_17(self): + self.assertRaises(VersionError, version_from_string, '1.1.0devx') + + def test_version_conv_18(self): + l, s = (1, 1, 0, 'final', 0), '1.1' + self.assertEqual(version_to_string(l, short=True), s) + self.assertEqual(l, version_from_string(s)) + + def test_version_conv_19(self): + self.assertRaises(VersionError, version_from_string, '123') + + def test_version_conv_20(self): + self.assertRaises(VersionError, version_from_string, '123.') + + def test_api_vesions_1(self): + "Ensure api versions are ordered from oldest to newest" + from picard import api_versions + + len_api_versions = len(api_versions) + if len_api_versions > 1: + for i in xrange(len_api_versions - 1): + a = version_from_string(api_versions[i]) + b = version_from_string(api_versions[i+1]) + self.assertLess(a, b) From 9f63a24cf8ccb649b85f579cfaecbcec0ab29ef3 Mon Sep 17 00:00:00 2001 From: Laurent Monin Date: Wed, 23 Apr 2014 15:16:29 +0200 Subject: [PATCH 012/212] Reformat api_versions list, one per line, and note about order Order is important since we have now a test case to prevent a lower version to be added. --- picard/__init__.py | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/picard/__init__.py b/picard/__init__.py index e8f52379b..00535b4b8 100644 --- a/picard/__init__.py +++ b/picard/__init__.py @@ -82,4 +82,13 @@ else: __version__ = PICARD_VERSION_STR PICARD_FANCY_VERSION_STR = PICARD_VERSION_STR_SHORT -api_versions = ["0.15.0", "0.15.1", "0.16.0", "1.0.0", "1.1.0", "1.2.0", "1.3.0"] +# Keep those ordered +api_versions = [ + "0.15.0", + "0.15.1", + "0.16.0", + "1.0.0", + "1.1.0", + "1.2.0", + "1.3.0", +] From 8afce2a1d4a53592b8c6e0a9f87b1e093197c1f2 Mon Sep 17 00:00:00 2001 From: Laurent Monin Date: Wed, 23 Apr 2014 15:19:55 +0200 Subject: [PATCH 013/212] Use version_from_string() and sets intersection to check API vs plugin versions Logging was improved, showing plugin version and compatible API versions in debug mode. When a plugin cannot be loaded due to incompatible API version log as a warning (was info). --- picard/plugin.py | 37 ++++++++++++++++++++----------------- 1 file changed, 20 insertions(+), 17 deletions(-) diff --git a/picard/plugin.py b/picard/plugin.py index de3f456c8..f68b05c31 100644 --- a/picard/plugin.py +++ b/picard/plugin.py @@ -23,7 +23,7 @@ import os.path import shutil import picard.plugins import traceback -from picard import config, log +from picard import config, log, version_from_string, version_to_string from picard.const import USER_PLUGIN_DIR from picard.util import os_path_samefile @@ -138,6 +138,7 @@ class PluginManager(QtCore.QObject): def __init__(self): QtCore.QObject.__init__(self) self.plugins = [] + self._api_versions = set([version_from_string(v) for v in picard.api_versions]) def load_plugindir(self, plugindir): plugindir = os.path.normpath(plugindir) @@ -154,7 +155,6 @@ class PluginManager(QtCore.QObject): self.load_plugin(name, plugindir) def load_plugin(self, name, plugindir): - log.debug("Loading plugin %r", name) try: info = imp.find_module(name, [plugindir]) except ImportError: @@ -171,24 +171,27 @@ class PluginManager(QtCore.QObject): break plugin_module = imp.load_module("picard.plugins." + name, *info) plugin = PluginWrapper(plugin_module, plugindir) - for version in list(plugin.api_versions): - for api_version in picard.api_versions: - if api_version.startswith(version): - plugin.compatible = True - setattr(picard.plugins, name, plugin_module) - if index: - self.plugins[index] = plugin - else: - self.plugins.append(plugin) - break + versions = [version_from_string(v) for v in + list(plugin.api_versions)] + compatible_versions = list(set(versions) & self._api_versions) + if compatible_versions: + log.debug("Loading plugin %r version %s, compatible with API: %s", + plugin.name, + plugin.version, + ", ".join([version_to_string(v, short=True) for v in + sorted(compatible_versions)])) + plugin.compatible = True + setattr(picard.plugins, name, plugin_module) + if index: + self.plugins[index] = plugin else: - continue - break + self.plugins.append(plugin) else: - log.info("Plugin '%s' from '%s' is not compatible" - " with this version of Picard." % (plugin.name, plugin.file)) + log.warning("Plugin '%s' from '%s' is not compatible" + " with this version of Picard." + % (plugin.name, plugin.file)) except: - log.error(traceback.format_exc()) + log.error("Plugin %r : %s", name, traceback.format_exc()) if info[0] is not None: info[0].close() return plugin From 3b5fe5f6d07cf4f3a8044e7f5ba936844b285b74 Mon Sep 17 00:00:00 2001 From: Laurent Monin Date: Wed, 23 Apr 2014 16:05:35 +0200 Subject: [PATCH 014/212] No need to traceback on VersionError, just display an error Traceback isn't useful in this case anyway. --- picard/plugin.py | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/picard/plugin.py b/picard/plugin.py index f68b05c31..0ca4f06ae 100644 --- a/picard/plugin.py +++ b/picard/plugin.py @@ -23,7 +23,11 @@ import os.path import shutil import picard.plugins import traceback -from picard import config, log, version_from_string, version_to_string +from picard import (config, + log, + version_from_string, + version_to_string, + VersionError) from picard.const import USER_PLUGIN_DIR from picard.util import os_path_samefile @@ -190,6 +194,8 @@ class PluginManager(QtCore.QObject): log.warning("Plugin '%s' from '%s' is not compatible" " with this version of Picard." % (plugin.name, plugin.file)) + except VersionError as e: + log.error("Plugin %r has an invalid API version string : %s", name, e) except: log.error("Plugin %r : %s", name, traceback.format_exc()) if info[0] is not None: From 6c27d39f442b418f9b1f58aa9a59c71699d750a5 Mon Sep 17 00:00:00 2001 From: Laurent Monin Date: Fri, 25 Apr 2014 12:06:30 +0200 Subject: [PATCH 015/212] Use path returned by imp.find_module() instead of module.__file__ It will display the source file path (.py) instead of the compiled file path (.pyc) --- picard/plugin.py | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/picard/plugin.py b/picard/plugin.py index 0ca4f06ae..6b4a41f81 100644 --- a/picard/plugin.py +++ b/picard/plugin.py @@ -83,10 +83,11 @@ class ExtensionPoint(object): class PluginWrapper(object): - def __init__(self, module, plugindir): + def __init__(self, module, plugindir, file=None): self.module = module self.compatible = False self.dir = plugindir + self._file = file def __get_name(self): try: @@ -131,7 +132,10 @@ class PluginWrapper(object): api_versions = property(__get_api_versions) def __get_file(self): - return self.module.__file__ + if not self._file: + return self.module.__file__ + else: + return self._file file = property(__get_file) @@ -174,7 +178,7 @@ class PluginManager(QtCore.QObject): index = i break plugin_module = imp.load_module("picard.plugins." + name, *info) - plugin = PluginWrapper(plugin_module, plugindir) + plugin = PluginWrapper(plugin_module, plugindir, file=info[1]) versions = [version_from_string(v) for v in list(plugin.api_versions)] compatible_versions = list(set(versions) & self._api_versions) From 12bf7d7b7542a6890fa9c4ae1cf0094949defbd7 Mon Sep 17 00:00:00 2001 From: Laurent Monin Date: Fri, 25 Apr 2014 12:28:20 +0200 Subject: [PATCH 016/212] Log number of plugin names found in each directory --- picard/plugin.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/picard/plugin.py b/picard/plugin.py index 6b4a41f81..235a0a967 100644 --- a/picard/plugin.py +++ b/picard/plugin.py @@ -153,12 +153,14 @@ class PluginManager(QtCore.QObject): if not os.path.isdir(plugindir): log.debug("Plugin directory %r doesn't exist", plugindir) return - log.debug("Looking for plugins in directory: %r", plugindir) names = set() for path in [os.path.join(plugindir, file) for file in os.listdir(plugindir)]: name = _plugin_name_from_path(path) if name: names.add(name) + log.debug("Looking for plugins in directory %r, %d names found", + plugindir, + len(names)) for name in names: self.load_plugin(name, plugindir) From 2c72bbab1c628361cf438a628d39de64e0107b41 Mon Sep 17 00:00:00 2001 From: Laurent Monin Date: Fri, 25 Apr 2014 12:33:18 +0200 Subject: [PATCH 017/212] Log when a plugin conflicts with a previously loaded one. Old one was silently replaced, this debug information will help to know which one was replaced by which one. Here is an example of log: ``` D: 12:29:36 Looking for plugins in directory '/home/zas/.config/MusicBrainz/Picard/plugins', 1 names found D: 12:29:36 Module 'addrelease' conflict: unregistering previously loaded u'Add Cluster As Release' version 0.5 from '/home/zas/src/picard_zas/contrib/plugins/addrelease.py' D: 12:29:36 Loading plugin u'Add Cluster As Release' version 0.5, compatible with API: 1.0 ``` --- picard/plugin.py | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/picard/plugin.py b/picard/plugin.py index 235a0a967..6c5a7a235 100644 --- a/picard/plugin.py +++ b/picard/plugin.py @@ -176,6 +176,12 @@ class PluginManager(QtCore.QObject): index = None for i, p in enumerate(self.plugins): if name == p.module_name: + log.debug("Module %r conflict: unregistering previously" \ + " loaded %r version %s from %r", + p.module_name, + p.name, + p.version, + p.file) _unregister_module_extensions(name) index = i break From 48b9a5b32bfe7b4ee7e87b3b922ecb52fd220fcf Mon Sep 17 00:00:00 2001 From: Laurent Monin Date: Fri, 25 Apr 2014 12:50:35 +0200 Subject: [PATCH 018/212] Use constants instead of hard-coded string and number. "picard.plugins." -> _PLUGIN_MODULE_PREFIX It also fixes a potential issue forgotten in 5c25d56b7 preventive fix. --- picard/plugin.py | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/picard/plugin.py b/picard/plugin.py index 6c5a7a235..b16a4f1fa 100644 --- a/picard/plugin.py +++ b/picard/plugin.py @@ -35,6 +35,8 @@ from picard.util import os_path_samefile _suffixes = [s[0] for s in imp.get_suffixes()] _package_entries = ["__init__.py", "__init__.pyc", "__init__.pyo"] _extension_points = [] +_PLUGIN_MODULE_PREFIX = "picard.plugins." +_PLUGIN_MODULE_PREFIX_LEN = len(_PLUGIN_MODULE_PREFIX) def _plugin_name_from_path(path): @@ -65,8 +67,8 @@ class ExtensionPoint(object): _extension_points.append(self) def register(self, module, item): - if module.startswith("picard.plugins."): - module = module[15:] + if module.startswith(_PLUGIN_MODULE_PREFIX): + module = module[_PLUGIN_MODULE_PREFIX_LEN:] else: module = None self.__items.append((module, item)) @@ -98,8 +100,8 @@ class PluginWrapper(object): def __get_module_name(self): name = self.module.__name__ - if name.startswith("picard.plugins"): - name = name[15:] + if name.startswith(_PLUGIN_MODULE_PREFIX): + name = name[_PLUGIN_MODULE_PREFIX_LEN:] return name module_name = property(__get_module_name) @@ -185,7 +187,7 @@ class PluginManager(QtCore.QObject): _unregister_module_extensions(name) index = i break - plugin_module = imp.load_module("picard.plugins." + name, *info) + plugin_module = imp.load_module(_PLUGIN_MODULE_PREFIX + name, *info) plugin = PluginWrapper(plugin_module, plugindir, file=info[1]) versions = [version_from_string(v) for v in list(plugin.api_versions)] From 26dca738f176956313889014e9e2472952c4469b Mon Sep 17 00:00:00 2001 From: Laurent Monin Date: Fri, 25 Apr 2014 15:07:41 +0200 Subject: [PATCH 019/212] Add a note about optional `priority` parameter in NEWS.txt --- NEWS.txt | 3 +++ 1 file changed, 3 insertions(+) diff --git a/NEWS.txt b/NEWS.txt index 5f93473cd..a10725726 100644 --- a/NEWS.txt +++ b/NEWS.txt @@ -45,6 +45,9 @@ * Add integrated functions $eq_any, $ne_all, $eq_all, $ne_any, $swapprefix and $delprefix. * Add %_performance_attributes%, containing performance attributes for the work e.g. live, cover, medley etc. Use $inmulti in file naming scripts i.e. ...$if($inmulti(%_performance_attributes%,medley), (Medley),) + * Add optional `priority` parameter to `register_album_metadata_processor()` and `register_track_metadata_processor()` + Default priority is `PluginPriority.NORMAL`, plugins registered with `PluginPriority.HIGH` will be run first, + plugins registered with `PluginPriority.LOW` will run last * Add Standardise Performers plugin to convert e.g. Performer [piano and guitar] into Performer [piano] and Performer [guitar]. From 645aa64c154d82db197104133dbc45349e2991cc Mon Sep 17 00:00:00 2001 From: Laurent Monin Date: Fri, 25 Apr 2014 19:11:35 +0200 Subject: [PATCH 020/212] log.warning() will take care of format parameters, '%' -> ',' --- contrib/plugins/standardise_performers.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/contrib/plugins/standardise_performers.py b/contrib/plugins/standardise_performers.py index 558120fe0..a4ff53a93 100644 --- a/contrib/plugins/standardise_performers.py +++ b/contrib/plugins/standardise_performers.py @@ -62,6 +62,6 @@ except ImportError: log.warning( "Running %r plugin on this Picard version may not work as you expect. " "Any other plugins that run before it will get the old performers " - "rather than the standardized performers." % PLUGIN_NAME + "rather than the standardized performers.", PLUGIN_NAME ) register_track_metadata_processor(standardise_performers) From a3b0e2129096dbcd304468e1b7b846b18c4731fd Mon Sep 17 00:00:00 2001 From: Laurent Monin Date: Sat, 26 Apr 2014 12:08:02 +0200 Subject: [PATCH 021/212] Improve API versions list test - fix typo in method name - make comment more explicit - test the case where only one element is in the list - ignore 0 element case (should test skip(), but 2.6 lacks it) --- test/test_versions.py | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/test/test_versions.py b/test/test_versions.py index dc0b57bb3..593d7387b 100644 --- a/test/test_versions.py +++ b/test/test_versions.py @@ -100,8 +100,8 @@ class VersionsTest(unittest.TestCase): def test_version_conv_20(self): self.assertRaises(VersionError, version_from_string, '123.') - def test_api_vesions_1(self): - "Ensure api versions are ordered from oldest to newest" + def test_api_versions_1(self): + "Check api versions format and order (from oldest to newest)" from picard import api_versions len_api_versions = len(api_versions) @@ -110,3 +110,5 @@ class VersionsTest(unittest.TestCase): a = version_from_string(api_versions[i]) b = version_from_string(api_versions[i+1]) self.assertLess(a, b) + elif len_api_versions == 1: + a = version_from_string(api_versions[0]) From 8a5a2d85144a690a5899c9fb340ea6018c7a7740 Mon Sep 17 00:00:00 2001 From: Laurent Monin Date: Sat, 26 Apr 2014 14:32:13 +0200 Subject: [PATCH 022/212] Fix missing _() in some cases. ====================================================================== ERROR: test_display_tag_name (test.test_utils.TagsTest) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/travis/build/musicbrainz/picard/test/test_utils.py", line 89, in test_display_tag_name self.assertEqual(dtn('tag'), 'tag') File "/home/travis/build/musicbrainz/picard/picard/util/tags.py", line 106, in display_tag_name return _(name) NameError: global name '_' is not defined --- test/test_utils.py | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/test/test_utils.py b/test/test_utils.py index 5dbab82a3..a327f1f22 100644 --- a/test/test_utils.py +++ b/test/test_utils.py @@ -4,6 +4,11 @@ import os.path import unittest from picard import util +import __builtin__ +# ensure _() is defined +if '_' not in __builtin__.__dict__: + __builtin__.__dict__['_'] = lambda a: a + class ReplaceWin32IncompatTest(unittest.TestCase): @@ -82,9 +87,6 @@ class HiddenPathTest(unittest.TestCase): class TagsTest(unittest.TestCase): def test_display_tag_name(self): - def _(s): - return s - dtn = util.tags.display_tag_name self.assertEqual(dtn('tag'), 'tag') self.assertEqual(dtn('tag:desc'), 'tag [desc]') From ab9fbd70ede3a0aa95d9ba757f678a64be1599ff Mon Sep 17 00:00:00 2001 From: Laurent Monin Date: Mon, 28 Apr 2014 13:08:16 +0200 Subject: [PATCH 023/212] Add linear_combination_of_weights() It is a safer alternative to reduce(lambda x, y: x + y[0] * y[1] / total, parts, 0.0) expression which was requiring a separated calculation of total, prone to errors. --- picard/util/__init__.py | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/picard/util/__init__.py b/picard/util/__init__.py index 04f99f2f7..3f17c7518 100644 --- a/picard/util/__init__.py +++ b/picard/util/__init__.py @@ -325,3 +325,24 @@ def is_hidden_path(path): """Returns true if at least one element of the path starts with a dot""" path = os.path.normpath(path) # we need to ignore /./ and /a/../ cases return any(s.startswith('.') for s in path.split(os.sep)) + + +def linear_combination_of_weights(parts): + """Produces a probability as a linear combination of weights + Parts should be a list of tuples in the form: + [(v0, w0), (v1, w1), ..., (vn, wn)] + where vn is a value between 0.0 and 1.0 + and wn corresponding weight as a positive number + """ + total = 0.0 + sum_of_products = 0.0 + for value, weight in parts: + if value < 0.0: + raise ValueError, "Value must be greater than or equal to 0.0" + if value > 1.0: + raise ValueError, "Value must be lesser than or equal to 1.0" + if weight < 0: + raise ValueError, "Weight must be greater than or equal to 0.0" + total += weight + sum_of_products += value * weight + return sum_of_products / total From 38762d55d6c969ee6a7d5b8d23b997041220b75f Mon Sep 17 00:00:00 2001 From: Laurent Monin Date: Mon, 28 Apr 2014 13:53:30 +0200 Subject: [PATCH 024/212] Fix release similarity calculation Total didn't include all weights (ie. weights["format"] wasn't added), leading to incorrect result, eventually > 1.0 The fix consists mostly to get rid of separated calculation of the total, using previously introduced linear_combination_of_weights(). - partly rewrite compare_to_track() and compare_to_release() - move parts building to new compare_to_release_parts() and drop return_parts parameter - drop calculation of totals since this is handled in linear_combination_of_weights() --- picard/metadata.py | 31 ++++++++++++------------------- 1 file changed, 12 insertions(+), 19 deletions(-) diff --git a/picard/metadata.py b/picard/metadata.py index 921f877de..f7542fccc 100644 --- a/picard/metadata.py +++ b/picard/metadata.py @@ -32,6 +32,7 @@ from picard.plugin import PluginFunctions, PluginPriority from picard.similarity import similarity2 from picard.util import ( encode_filename, + linear_combination_of_weights, mimetype as mime, replace_win32_incompat, ) @@ -207,12 +208,10 @@ class Metadata(dict): def compare(self, other): parts = [] - total = 0 if self.length and other.length: score = 1.0 - min(abs(self.length - other.length), 30000) / 30000.0 parts.append((score, 8)) - total += 8 for name, weight in self.__weights: a = self[name] @@ -229,27 +228,28 @@ class Metadata(dict): else: score = similarity2(a, b) parts.append((score, weight)) - total += weight - return reduce(lambda x, y: x + y[0] * y[1] / total, parts, 0.0) - def compare_to_release(self, release, weights, return_parts=False): + return linear_combination_of_weights(parts) + + def compare_to_release(self, release, weights): """ Compare metadata to a MusicBrainz release. Produces a probability as a linear combination of weights that the metadata matches a certain album. """ - total = 0.0 + parts = self.compare_to_release_parts(release, weights) + return (linear_combination_of_weights(parts), release) + + def compare_to_release_parts(self, release, weights): parts = [] if "album" in self: b = release.title[0].text parts.append((similarity2(self["album"], b), weights["album"])) - total += weights["album"] if "albumartist" in self and "albumartist" in weights: a = self["albumartist"] b = artist_credit_from_node(release.artist_credit[0])[0] parts.append((similarity2(a, b), weights["albumartist"])) - total += weights["albumartist"] if "totaltracks" in self: a = int(self["totaltracks"]) @@ -259,7 +259,6 @@ class Metadata(dict): b = int(release.medium_list[0].track_count[0].text) score = 0.0 if a > b else 0.3 if a < b else 1.0 parts.append((score, weights["totaltracks"])) - total += weights["totaltracks"] preferred_countries = config.setting["preferred_release_countries"] preferred_formats = config.setting["preferred_release_formats"] @@ -299,50 +298,44 @@ class Metadata(dict): else: score = 0.0 parts.append((score, weights["releasetype"])) - total += weights["releasetype"] rg = QObject.tagger.get_release_group_by_id(release.release_group[0].id) if release.id in rg.loaded_albums: parts.append((1.0, 6)) - return (total, parts) if return_parts else \ - (reduce(lambda x, y: x + y[0] * y[1] / total, parts, 0.0), release) + return parts def compare_to_track(self, track, weights): - total = 0.0 parts = [] if 'title' in self: a = self['title'] b = track.title[0].text parts.append((similarity2(a, b), weights["title"])) - total += weights["title"] if 'artist' in self: a = self['artist'] b = artist_credit_from_node(track.artist_credit[0])[0] parts.append((similarity2(a, b), weights["artist"])) - total += weights["artist"] a = self.length if a > 0 and 'length' in track.children: b = int(track.length[0].text) score = 1.0 - min(abs(a - b), 30000) / 30000.0 parts.append((score, weights["length"])) - total += weights["length"] releases = [] if "release_list" in track.children and "release" in track.release_list[0].children: releases = track.release_list[0].release if not releases: - sim = reduce(lambda x, y: x + y[0] * y[1] / total, parts, 0.0) + sim = linear_combination_of_weights(parts) return (sim, None, None, track) result = (-1,) for release in releases: - t, p = self.compare_to_release(release, weights, return_parts=True) - sim = reduce(lambda x, y: x + y[0] * y[1] / (total + t), parts + p, 0.0) + release_parts = self.compare_to_release_parts(release, weights) + sim = linear_combination_of_weights(parts + release_parts) if sim > result[0]: rg = release.release_group[0] if "release_group" in release.children else None result = (sim, rg, release, track) From 4f2da821d3a93d45e06660ddb9d1de6dcc928d91 Mon Sep 17 00:00:00 2001 From: Laurent Monin Date: Mon, 28 Apr 2014 16:22:18 +0200 Subject: [PATCH 025/212] Add tests for util.linear_combination_of_weights --- test/test_utils.py | 43 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 43 insertions(+) diff --git a/test/test_utils.py b/test/test_utils.py index a327f1f22..8a9cd9e85 100644 --- a/test/test_utils.py +++ b/test/test_utils.py @@ -96,3 +96,46 @@ class TagsTest(unittest.TestCase): self.assertEqual(dtn('~length'), 'Length') self.assertEqual(dtn('~lengthx'), '~lengthx') self.assertEqual(dtn(''), '') + + +class LinearCombinationTest(unittest.TestCase): + + def test_0(self): + parts = [] + self.assertRaises(ZeroDivisionError, util.linear_combination_of_weights, parts) + + def test_1(self): + parts = [(1.0, 1), (1.0, 1), (1.0, 1)] + self.assertEqual(util.linear_combination_of_weights(parts), 1.0) + + def test_2(self): + parts = [(0.0, 1), (0.0, 0), (1.0, 0)] + self.assertEqual(util.linear_combination_of_weights(parts), 0.0) + + def test_3(self): + parts = [(0.0, 1), (1.0, 1)] + self.assertEqual(util.linear_combination_of_weights(parts), 0.5) + + def test_4(self): + parts = [(0.5, 4), (1.0, 1)] + self.assertEqual(util.linear_combination_of_weights(parts), 0.6) + + def test_5(self): + parts = [(0.95, 100), (0.05, 399), (0.0, 1), (1.0, 0)] + self.assertEqual(util.linear_combination_of_weights(parts), 0.2299) + + def test_6(self): + parts = [(-0.5, 4)] + self.assertRaises(ValueError, util.linear_combination_of_weights, parts) + + def test_7(self): + parts = [(0.5, -4)] + self.assertRaises(ValueError, util.linear_combination_of_weights, parts) + + def test_8(self): + parts = [(1.5, 4)] + self.assertRaises(ValueError, util.linear_combination_of_weights, parts) + + def test_9(self): + parts = ((1.5, 4)) + self.assertRaises(TypeError, util.linear_combination_of_weights, parts) From aa933f29673f9272c57312200518bb2effd19a30 Mon Sep 17 00:00:00 2001 From: Sophist Date: Thu, 1 May 2014 13:53:04 +0100 Subject: [PATCH 026/212] Make warnings show if not debugging --- picard/plugin.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/picard/plugin.py b/picard/plugin.py index 049abc013..83f2dce9b 100644 --- a/picard/plugin.py +++ b/picard/plugin.py @@ -154,7 +154,7 @@ class PluginManager(QtCore.QObject): def load_plugindir(self, plugindir): plugindir = os.path.normpath(plugindir) if not os.path.isdir(plugindir): - log.debug("Plugin directory %r doesn't exist", plugindir) + log.warning("Plugin directory %r doesn't exist", plugindir) return names = set() for path in [os.path.join(plugindir, file) for file in os.listdir(plugindir)]: @@ -179,7 +179,7 @@ class PluginManager(QtCore.QObject): index = None for i, p in enumerate(self.plugins): if name == p.module_name: - log.debug("Module %r conflict: unregistering previously" \ + log.warning("Module %r conflict: unregistering previously" \ " loaded %r version %s from %r", p.module_name, p.name, @@ -233,7 +233,7 @@ class PluginManager(QtCore.QObject): if plugin is not None: self.plugin_installed.emit(plugin, False) except (OSError, IOError): - log.debug("Unable to copy %s to plugin folder %s" % (path, USER_PLUGIN_DIR)) + log.warning("Unable to copy %s to plugin folder %s" % (path, USER_PLUGIN_DIR)) def enabled(self, name): return True From 4f063f7831146ef1865b75296b3c95492c3faf7d Mon Sep 17 00:00:00 2001 From: Sophist Date: Thu, 1 May 2014 14:56:33 +0100 Subject: [PATCH 027/212] Make plugins load in consistent order. See http://forums.musicbrainz.org/viewtopic.php?id=4939. --- picard/plugin.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/picard/plugin.py b/picard/plugin.py index 83f2dce9b..844dd2252 100644 --- a/picard/plugin.py +++ b/picard/plugin.py @@ -164,7 +164,7 @@ class PluginManager(QtCore.QObject): log.debug("Looking for plugins in directory %r, %d names found", plugindir, len(names)) - for name in names: + for name in sorted(names): self.load_plugin(name, plugindir) def load_plugin(self, name, plugindir): From 25505c9216d84eee65ba1e230d6e9ce9600d5093 Mon Sep 17 00:00:00 2001 From: Sophist Date: Fri, 2 May 2014 07:56:35 +0100 Subject: [PATCH 028/212] Fix dist directory structure for plugins Resolves PICARD-600 --- setup.py | 23 ++++++++++++++--------- 1 file changed, 14 insertions(+), 9 deletions(-) diff --git a/setup.py b/setup.py index 24038e85c..4f54cf056 100755 --- a/setup.py +++ b/setup.py @@ -624,12 +624,18 @@ def generate_file(infilename, outfilename, variables): def contrib_plugin_files(): - plugin_files = [] - for root, dirs, files in os.walk(os.path.join("contrib", "plugins")): + plugin_files = {} + dist_root = os.path.join("contrib", "plugins") + for root, dirs, files in os.walk(dist_root): + file_root = os.path.relpath(root, dist_root) if root != dist_root else '' for file in files: if file.endswith(".py"): - plugin_files.append(os.path.join(root, file)) - return sorted(plugin_files) + if file_root in plugin_files: + plugin_files[file_root].append(os.path.join(root, file)) + else: + plugin_files[file_root] = [os.path.join(root, file)] + return [(os.path.join("plugins", x) if x != '' else "plugins", sorted(y)) + for x, y in plugin_files.iteritems()] try: @@ -651,8 +657,7 @@ try: find_file_in_path("PyQt4/plugins/imageformats/qtiff4.dll")])) self.distribution.data_files.append( ("accessible", [find_file_in_path("PyQt4/plugins/accessible/qtaccessiblewidgets4.dll")])) - self.distribution.data_files.append( - ("plugins", contrib_plugin_files())) + self.distribution.data_files.append(contrib_plugin_files())) py2exe.run(self) print "*** creating the NSIS setup script ***" @@ -689,9 +694,9 @@ except ImportError: def find_file_in_path(filename): for include_path in sys.path: - file_path = os.path.join(include_path, filename) - if os.path.exists(file_path): - return file_path + file_root = os.path.join(include_path, filename) + if os.path.exists(file_root): + return file_root if do_py2app: from py2app.util import copy_file, find_app From 4165e356a4c1338a0531682617a0f71f4804253e Mon Sep 17 00:00:00 2001 From: Sophist Date: Fri, 2 May 2014 08:06:07 +0100 Subject: [PATCH 029/212] Fix bug picked up by Travis --- setup.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/setup.py b/setup.py index 4f54cf056..3de111cfe 100755 --- a/setup.py +++ b/setup.py @@ -657,7 +657,7 @@ try: find_file_in_path("PyQt4/plugins/imageformats/qtiff4.dll")])) self.distribution.data_files.append( ("accessible", [find_file_in_path("PyQt4/plugins/accessible/qtaccessiblewidgets4.dll")])) - self.distribution.data_files.append(contrib_plugin_files())) + self.distribution.data_files.append(contrib_plugin_files()) py2exe.run(self) print "*** creating the NSIS setup script ***" From 63aa7b508618e87e91f9858fec53935df439c813 Mon Sep 17 00:00:00 2001 From: Sophist Date: Fri, 2 May 2014 08:29:19 +0100 Subject: [PATCH 030/212] Improve code and add top-level sort --- setup.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/setup.py b/setup.py index 3de111cfe..fb02f7769 100755 --- a/setup.py +++ b/setup.py @@ -627,16 +627,16 @@ def contrib_plugin_files(): plugin_files = {} dist_root = os.path.join("contrib", "plugins") for root, dirs, files in os.walk(dist_root): - file_root = os.path.relpath(root, dist_root) if root != dist_root else '' + file_root = os.path.join('plugins', os.path.relpath(root, dist_root)) \ + if root != dist_root else 'plugins' for file in files: if file.endswith(".py"): if file_root in plugin_files: plugin_files[file_root].append(os.path.join(root, file)) else: plugin_files[file_root] = [os.path.join(root, file)] - return [(os.path.join("plugins", x) if x != '' else "plugins", sorted(y)) - for x, y in plugin_files.iteritems()] - + data_files = [(x, sorted(y)) for x, y in plugin_files.iteritems()] + return sorted(data_files, key=lambda x: x[0]) try: from py2exe.build_exe import py2exe From 72b21c69c26498ce5f7c2e7a5f3d862f5f6fd929 Mon Sep 17 00:00:00 2001 From: Sophist Date: Fri, 2 May 2014 08:30:04 +0100 Subject: [PATCH 031/212] Add back deleted blank line --- setup.py | 1 + 1 file changed, 1 insertion(+) diff --git a/setup.py b/setup.py index fb02f7769..1ab4830c1 100755 --- a/setup.py +++ b/setup.py @@ -638,6 +638,7 @@ def contrib_plugin_files(): data_files = [(x, sorted(y)) for x, y in plugin_files.iteritems()] return sorted(data_files, key=lambda x: x[0]) + try: from py2exe.build_exe import py2exe From 7c90c3cb6e5b9edb3916d794abf3a7cc67304d0f Mon Sep 17 00:00:00 2001 From: Laurent Monin Date: Fri, 2 May 2014 17:00:06 +0200 Subject: [PATCH 032/212] Workaround: setup.py regen_pot_file didn't work with babel < 1.0 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit A babel bug prevents `input_dirs` to be parsed correctly with babel pre-1.0 versions. Using regen_pot_file with babel 0.9.6 leads to an empty pot file (but header). The fix appears in babel 1.0 Changelog: - fix ‘input_dirs’ option for setuptools integration (ticket #232, initial patch by Étienne Bersac) The workaround just splits `input_dirs` as it should when old babel versions are used. --- setup.py | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/setup.py b/setup.py index 24038e85c..ce2e92947 100755 --- a/setup.py +++ b/setup.py @@ -391,8 +391,16 @@ class picard_get_po_files(Command): _regen_pot_description = "Regenerate po/picard.pot, parsing source tree for new or updated strings" try: + from babel import __version__ as babel_version from babel.messages import frontend as babel + def versiontuple(v): + return tuple(map(int, (v.split(".")))) + + # input_dirs are incorrectly handled in babel versions < 1.0 + # http://babel.edgewall.org/ticket/232 + input_dirs_workaround = versiontuple(babel_version) < (1, 0, 0) + class picard_regen_pot_file(babel.extract_messages): description = _regen_pot_description @@ -401,6 +409,13 @@ try: babel.extract_messages.initialize_options(self) self.output_file = 'po/picard.pot' self.input_dirs = 'contrib, picard' + if self.input_dirs and input_dirs_workaround: + self._input_dirs = self.input_dirs + + def finalize_options(self): + babel.extract_messages.finalize_options(self) + if input_dirs_workaround and self._input_dirs: + self.input_dirs = re.split(',\s*', self._input_dirs) except ImportError: class picard_regen_pot_file(Command): From 10f55d5df373a595012a4be380d8d2a26a989ff2 Mon Sep 17 00:00:00 2001 From: Sophist Date: Sat, 3 May 2014 07:08:24 +0100 Subject: [PATCH 033/212] Tweak Standardise Performers Since we have a try/except block so that this will run on previous versions, tweak the API_VERSIONS so that it will load on these versions of Picard. --- contrib/plugins/standardise_performers.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/contrib/plugins/standardise_performers.py b/contrib/plugins/standardise_performers.py index a4ff53a93..451791cb8 100644 --- a/contrib/plugins/standardise_performers.py +++ b/contrib/plugins/standardise_performers.py @@ -22,8 +22,8 @@ Performer [synthesizer]: Lol Creme Performer [tambourine]: Graham Gouldman ''' -PLUGIN_VERSION = '0.1' -PLUGIN_API_VERSIONS = ["1.3.0"] +PLUGIN_VERSION = '0.2' +PLUGIN_API_VERSIONS = ["0.15.0", "0.15.1", "0.16.0", "1.0.0", "1.1.0", "1.2.0", "1.3.0"] import re from picard import log From 751f2b64f7a5a8e37ab3f3876262a91c61932538 Mon Sep 17 00:00:00 2001 From: Laurent Monin Date: Sat, 3 May 2014 17:09:50 +0200 Subject: [PATCH 034/212] PICARD-597: use named place holders in translatable strings - modify set_statusbar_message(): drop hacky %s replacement, it shouldn't be needed anyway - add named arguments echo and translate to it, to cover all needs - rewrite translatable strings to use named place holders - fix up some messages, add plural forms if needed http://tickets.musicbrainz.org/browse/PICARD-597 --- contrib/plugins/replaygain/__init__.py | 35 +++++++-- picard/acoustid.py | 51 ++++++++++++-- picard/acoustidmanager.py | 27 +++++-- picard/album.py | 18 +++-- picard/cluster.py | 29 +++++--- picard/collection.py | 38 +++++++--- picard/coverart.py | 18 +++-- picard/file.py | 24 +++++-- picard/tagger.py | 27 +++++-- picard/ui/mainwindow.py | 98 ++++++++++++++++++++------ 10 files changed, 289 insertions(+), 76 deletions(-) diff --git a/contrib/plugins/replaygain/__init__.py b/contrib/plugins/replaygain/__init__.py index 1bc4a36a7..96f76e615 100644 --- a/contrib/plugins/replaygain/__init__.py +++ b/contrib/plugins/replaygain/__init__.py @@ -63,14 +63,23 @@ class ReplayGain(BaseAction): self._add_file_to_queue(obj) def _calculate_replaygain(self, file): - self.tagger.window.set_statusbar_message(N_('Calculating replay gain for "%s"...'), file.filename) + self.tagger.window.set_statusbar_message( + N_('Calculating replay gain for "%(filename)s"...'), + {'filename': file.filename} + ) calculate_replay_gain_for_files([file], file.NAME, self.tagger) def _replaygain_callback(self, file, result=None, error=None): if not error: - self.tagger.window.set_statusbar_message(N_('Replay gain for "%s" successfully calculated.'), file.filename) + self.tagger.window.set_statusbar_message( + N_('Replay gain for "%(filename)s" successfully calculated.'), + {'filename': file.filename} + ) else: - self.tagger.window.set_statusbar_message(N_('Could not calculate replay gain for "%s".'), file.filename) + self.tagger.window.set_statusbar_message( + N_('Could not calculate replay gain for "%(filename)s".'), + {'filename': file.filename} + ) class AlbumGain(BaseAction): NAME = N_("Calculate album &gain...") @@ -100,7 +109,10 @@ class AlbumGain(BaseAction): return files_by_format def _calculate_albumgain(self, album): - self.tagger.window.set_statusbar_message(N_('Calculating album gain for "%s"...'), album.metadata["album"]) + self.tagger.window.set_statusbar_message( + N_('Calculating album gain for "%(album)s"...'), + {'album': album.metadata["album"]} + ) filelist = [t.linked_files[0] for t in album.tracks if t.is_linked()] for format, files in self.split_files_by_type(filelist).iteritems(): @@ -108,7 +120,10 @@ class AlbumGain(BaseAction): def _calculate_natgain(self, natalbum): """Calculates the replaygain""" - self.tagger.window.set_statusbar_message(N_('Calculating album gain for "%s"...'), natalbum.metadata["album"]) + self.tagger.window.set_statusbar_message( + N_('Calculating album gain for "%(album)s"...'), + {'album': natalbum.metadata["album"]} + ) filelist = [t.linked_files[0] for t in natalbum.tracks if t.is_linked()] for file_ in filelist: @@ -116,9 +131,15 @@ class AlbumGain(BaseAction): def _albumgain_callback(self, album, result=None, error=None): if not error: - self.tagger.window.set_statusbar_message(N_('Album gain for "%s" successfully calculated.'), album.metadata["album"]) + self.tagger.window.set_statusbar_message( + N_('Album gain for "%(album)s" successfully calculated.'), + {'album': album.metadata["album"]} + ) else: - self.tagger.window.set_statusbar_message(N_('Could not calculate album gain for "%s".'), album.metadata["album"]) + self.tagger.window.set_statusbar_message( + N_('Could not calculate album gain for "%(album)s".'), + {'album': album.metadata["album"]} + ) class ReplayGainOptionsPage(OptionsPage): diff --git a/picard/acoustid.py b/picard/acoustid.py index 423225fc1..38055bb61 100644 --- a/picard/acoustid.py +++ b/picard/acoustid.py @@ -98,8 +98,18 @@ class AcoustIDClient(QtCore.QObject): recording_list_el = acoustid_el.append_child('recording_list') if error: - log.error("AcoustID: Lookup network error for '%s': %r", file.filename, unicode(http.errorString())) - self.tagger.window.set_statusbar_message(N_("AcoustID lookup network error for '%s'!"), file.filename) + mparms = { + 'error': unicode(http.errorString()), + 'filename': file.filename, + } + log.error( + "AcoustID: Lookup network error for '%(filename)s': %(error)r" % + mparms) + self.tagger.window.set_statusbar_message( + N_("AcoustID lookup network error for '%(filename)s'!"), + mparms, + echo=None + ) else: status = document.response[0].status[0].text if status == 'ok': @@ -112,9 +122,18 @@ class AcoustIDClient(QtCore.QObject): parse_recording(recording) log.debug("AcoustID: Lookup successful for '%s'", file.filename) else: - error_message = document.response[0].error[0].message[0].text - log.error("AcoustID: Lookup error for '%s': %r", file.filename, error_message) - self.tagger.window.set_statusbar_message(N_("AcoustID lookup failed for '%s'!"), file.filename) + mparms = { + 'error': document.response[0].error[0].message[0].text, + 'filename': file.filename + } + log.error( + "AcoustID: Lookup error for '%(filename)s': %(error)r" % + mparms) + self.tagger.window.set_statusbar_message( + N_("AcoustID lookup failed for '%(filename)s'!"), + mparms, + echo=None + ) next(doc, http, error) @@ -124,12 +143,30 @@ class AcoustIDClient(QtCore.QObject): except KeyError: # The file has been removed. do nothing return + mparms = { + 'filename': file.filename + } if not result: - self.tagger.window.set_statusbar_message(N_("Acoustid lookup returned no result for file '%s'"), file.filename) + log.debug( + "AcoustID: lookup returned no result for file '%(filename)s'" % + mparms + ) + self.tagger.window.set_statusbar_message( + N_("AcoustID lookup returned no result for file '%(filename)s'"), + mparms, + echo=None + ) file.clear_pending() return + log.debug( + "AcoustID: looking up the fingerprint for file '%(filename)s'" % + mparms + ) self.tagger.window.set_statusbar_message( - N_("Looking up the fingerprint for file %s..."), file.filename) + N_("Looking up the fingerprint for file '%(filename)s' ..."), + mparms, + echo=None + ) params = dict(meta='recordings releasegroups releases tracks compress') if result[0] == 'fingerprint': type, fingerprint, length = result diff --git a/picard/acoustidmanager.py b/picard/acoustidmanager.py index 17ea95556..58d42bd40 100644 --- a/picard/acoustidmanager.py +++ b/picard/acoustidmanager.py @@ -75,17 +75,34 @@ class AcoustIDManager(QtCore.QObject): if not fingerprints: self._check_unsubmitted() return - self.tagger.window.set_statusbar_message(N_('Submitting AcoustIDs...')) + log.debug("AcoustID: submitting ...") + self.tagger.window.set_statusbar_message( + N_('Submitting AcoustIDs ...'), + echo=None + ) self.tagger.xmlws.submit_acoustid_fingerprints(fingerprints, partial(self.__fingerprint_submission_finished, fingerprints)) def __fingerprint_submission_finished(self, fingerprints, document, http, error): if error: + mparms = { + 'error': unicode(http.errorString()) + } + log.error( + "AcoustID: submission failed with error '%(error)s'" % + mparms) self.tagger.window.set_statusbar_message( - N_("AcoustID submission failed with error '%s'"), - unicode(http.errorString()), - timeout=3000) + N_("AcoustID submission failed with error '%(error)s'"), + mparms, + echo=None, + timeout=3000 + ) else: - self.tagger.window.set_statusbar_message(N_('AcoustIDs successfully submitted.'), timeout=3000) + log.debug('AcoustID: successfully submitted') + self.tagger.window.set_statusbar_message( + N_('AcoustIDs successfully submitted.'), + echo=None, + timeout=3000 + ) for submission in fingerprints: submission.orig_recordingid = submission.recordingid self._check_unsubmitted() diff --git a/picard/album.py b/picard/album.py index c8b05f750..f429a5e32 100644 --- a/picard/album.py +++ b/picard/album.py @@ -274,11 +274,14 @@ class Album(DataObject, Item): self.match_files(self.unmatched_files.files) self.update() self.tagger.window.set_statusbar_message( - _('Album %s loaded: %s - %s'), - self.id, - self.metadata['albumartist'], - self.metadata['album'], - timeout=3000) + N_('Album %(id)s loaded: %(artist)s - %(album)s'), + { + 'id': self.id, + 'artist': self.metadata['albumartist'], + 'album': self.metadata['album'] + }, + timeout=3000 + ) for func in self._after_load_callbacks: func() self._after_load_callbacks = [] @@ -287,7 +290,10 @@ class Album(DataObject, Item): if self._requests: log.info("Not reloading, some requests are still active.") return - self.tagger.window.set_statusbar_message('Loading album %s ...', self.id) + self.tagger.window.set_statusbar_message( + N_('Loading album %(id)s ...'), + {'id': self.id} + ) self.loaded = False if self.release_group: self.release_group.loaded = False diff --git a/picard/cluster.py b/picard/cluster.py index 6a80524e7..1ff816396 100644 --- a/picard/cluster.py +++ b/picard/cluster.py @@ -145,12 +145,17 @@ class Cluster(QtCore.QObject, Item): except (AttributeError, IndexError): releases = None + mparms = { + 'album': self.metadata['album'] + } + # no matches if not releases: self.tagger.window.set_statusbar_message( - N_("No matching releases for cluster %s"), - self.metadata['album'], - timeout=3000) + N_("No matching releases for cluster %(album)s"), + mparms, + timeout=3000 + ) return # multiple matches -- calculate similarities to each of them @@ -160,18 +165,26 @@ class Cluster(QtCore.QObject, Item): if match[0] < config.setting['cluster_lookup_threshold']: self.tagger.window.set_statusbar_message( - N_("No matching releases for cluster %s"), - self.metadata['album'], - timeout=3000) + N_("No matching releases for cluster %(album)s"), + mparms, + timeout=3000 + ) return - self.tagger.window.set_statusbar_message(N_("Cluster %s identified!"), self.metadata['album'], timeout=3000) + self.tagger.window.set_statusbar_message( + N_("Cluster %(album)s identified!"), + mparms, + timeout=3000 + ) self.tagger.move_files_to_album(self.files, match[1].id) def lookup_metadata(self): """Try to identify the cluster using the existing metadata.""" if self.lookup_task: return - self.tagger.window.set_statusbar_message(N_("Looking up the metadata for cluster %s..."), self.metadata['album']) + self.tagger.window.set_statusbar_message( + N_("Looking up the metadata for cluster %(album)s..."), + {'album': self.metadata['album']} + ) self.lookup_task = self.tagger.xmlws.find_releases(self._lookup_finished, artist=self.metadata['albumartist'], release=self.metadata['album'], diff --git a/picard/collection.py b/picard/collection.py index 7a00e1fde..4260111d9 100644 --- a/picard/collection.py +++ b/picard/collection.py @@ -55,10 +55,19 @@ class Collection(QtCore.QObject): self.releases.update(ids) self.size += count callback() - + mparms = { + 'count': count, + 'name': self.name + } + log.debug('Added %(count)i releases to collection "%(name)s"' % mparms) self.tagger.window.set_statusbar_message( - ungettext('Added %i release to collection "%s"', - 'Added %i releases to collection "%s"', count) % (count, self.name)) + ungettext('Added %(count)i release to collection "%(name)s"', + 'Added %(count)i releases to collection "%(name)s"', + count), + mparms, + translate=None, + echo=None + ) def _remove_finished(self, ids, callback, document, reply, error): self.pending.difference_update(ids) @@ -67,18 +76,31 @@ class Collection(QtCore.QObject): self.releases.difference_update(ids) self.size -= count callback() - + mparms = { + 'count': count, + 'name': self.name + } + log.debug('Removed %(count)i releases from collection "%(name)s"' % + mparms) self.tagger.window.set_statusbar_message( - ungettext('Removed %i release from collection "%s"', - 'Removed %i releases from collection "%s"', count) % (count, self.name)) - + ungettext('Removed %(count)i release from collection "%(name)s"', + 'Removed %(count)i releases from collection "%(name)s"', + count), + mparms, + translate=None, + echo=None + ) def load_user_collections(callback=None): tagger = QtCore.QObject.tagger def request_finished(document, reply, error): if error: - tagger.window.set_statusbar_message(_("Error loading collections: %s"), unicode(reply.errorString())) + tagger.window.set_statusbar_message( + N_("Error loading collections: %(error)s"), + {'error': unicode(reply.errorString())}, + echo=log.error + ) return collection_list = document.metadata[0].collection_list[0] if "collection" in collection_list.children: diff --git a/picard/coverart.py b/picard/coverart.py index 2b28aa0f4..d7c1d20b6 100644 --- a/picard/coverart.py +++ b/picard/coverart.py @@ -82,8 +82,13 @@ def _coverart_downloaded(album, metadata, release, try_list, coverinfos, data, h _coverart_http_error(album, http) else: QObject.tagger.window.set_statusbar_message( - N_("Cover art of type '%s' downloaded for %s from %s"), - coverinfos['type'].title(), album.id, coverinfos['host']) + N_("Cover art of type '%(type)s' downloaded for %(albumid)s from %(host)s"), + { + 'type': coverinfos['type'].title(), + 'albumid': album.id, + 'host': coverinfos['host'] + } + ) mime = mimetype.get_from_data(data, default="image/jpeg") try: @@ -248,8 +253,13 @@ def _walk_try_list(album, metadata, release, try_list): album._requests += 1 coverinfos = try_list.pop(0) QObject.tagger.window.set_statusbar_message( - N_("Downloading cover art of type '%s' for %s from %s ..."), - coverinfos['type'], album.id, coverinfos['host']) + N_("Downloading cover art of type '%(type)s' for %(albumid)s from %(host)s .."), + { + 'type': coverinfos['type'], + 'albumid': album.id, + 'host': coverinfos['host'] + } + ) album.tagger.xmlws.download( coverinfos['host'], coverinfos['port'], coverinfos['path'], partial(_coverart_downloaded, album, metadata, release, try_list, coverinfos), diff --git a/picard/file.py b/picard/file.py index 5fd0835cc..77a9b6259 100644 --- a/picard/file.py +++ b/picard/file.py @@ -490,7 +490,11 @@ class File(QtCore.QObject, Item): # no matches if not tracks: - self.tagger.window.set_statusbar_message(N_("No matching tracks for file %s"), self.filename, timeout=3000) + self.tagger.window.set_statusbar_message( + N_("No matching tracks for file '%(filename)s'"), + {'filename': self.filename}, + timeout=3000 + ) self.clear_pending() return @@ -503,12 +507,17 @@ class File(QtCore.QObject, Item): threshold = config.setting['file_lookup_threshold'] if match[0] < threshold: self.tagger.window.set_statusbar_message( - N_("No matching tracks above the threshold for file %s"), - self.filename, - timeout=3000) + N_("No matching tracks above the threshold for file '%(filename)s'"), + {'filename': self.filename}, + timeout=3000 + ) self.clear_pending() return - self.tagger.window.set_statusbar_message(N_("File %s identified!"), self.filename, timeout=3000) + self.tagger.window.set_statusbar_message( + N_("File '%(filename)s' identified!"), + {'filename': self.filename}, + timeout=3000 + ) self.clear_pending() rg, release, track = match[1:] @@ -524,7 +533,10 @@ class File(QtCore.QObject, Item): """Try to identify the file using the existing metadata.""" if self.lookup_task: return - self.tagger.window.set_statusbar_message(N_("Looking up the metadata for file %s..."), self.filename) + self.tagger.window.set_statusbar_message( + N_("Looking up the metadata for file %(filename)s ..."), + {'filename': self.filename} + ) self.clear_lookup_task() metadata = self.metadata self.lookup_task = self.tagger.xmlws.find_tracks(partial(self._lookup_finished, 'metadata'), diff --git a/picard/tagger.py b/picard/tagger.py index 0698eed85..b40f121fe 100644 --- a/picard/tagger.py +++ b/picard/tagger.py @@ -360,7 +360,21 @@ class Tagger(QtGui.QApplication): else: number_of_files = len(files) if number_of_files: - self.window.set_statusbar_message(N_("Adding %d files from '%s' ..."), number_of_files, root) + mparms = { + 'count': number_of_files, + 'directory': root, + } + log.debug("Adding %(count)d files from '%(directory)s'" % + mparms) + self.window.set_statusbar_message( + ungettext( + "Adding %(count)d file from '%(directory)s' ...", + "Adding %(count)d files from '%(directory)s' ...", + number_of_files), + mparms, + translate=None, + echo=None + ) return (os.path.join(root, f) for f in files) def process(result=None, error=None): @@ -495,10 +509,13 @@ class Tagger(QtGui.QApplication): files.extend(obj.linked_files) elif isinstance(obj, Album): self.window.set_statusbar_message( - N_("Removing album %s: %s - %s"), - obj.id, - obj.metadata['albumartist'], - obj.metadata['album']) + N_("Removing album %(id)s: %(artist)s - %(album)s"), + { + 'id': obj.id, + 'artist': obj.metadata['albumartist'], + 'album': obj.metadata['album'] + } + ) self.remove_album(obj) elif isinstance(obj, Cluster): self.remove_cluster(obj) diff --git a/picard/ui/mainwindow.py b/picard/ui/mainwindow.py index a554f845f..3b064d33c 100644 --- a/picard/ui/mainwindow.py +++ b/picard/ui/mainwindow.py @@ -245,19 +245,52 @@ class MainWindow(QtGui.QMainWindow): self.listening_label.setVisible(False) def set_statusbar_message(self, message, *args, **kwargs): - """Set the status bar message.""" + """Set the status bar message. + + *args are passed to % operator, if args[0] is a mapping it is used for + named place holders values + >>> w.set_statusbar_message("File %(filename)s", {'filename': 'x.txt'}) + + Keyword arguments: + `echo` parameter defaults to `log.debug`, called before message is + translated, it can be disabled passing None or replaced by ie. + `log.error`. If None, skipped. + + `translate` is a method called on message before it is sent to history + log and status bar, it defaults to `_()`. If None, skipped. + + `timeout` defines duration of the display in milliseconds + + `history` is a method called with translated message as argument, it + defaults to `log.history_info`. If None, skipped. + + Empty messages are never passed to echo and history functions but they + are sent to status bar (ie. to clear it). + """ + def isdict(obj): + return hasattr(obj, 'keys') and hasattr(obj, '__getitem__') + + echo = kwargs.get('echo', log.debug) + # _ is defined using __builtin__.__dict__, so setting it as default named argument + # value doesn't work as expected + translate = kwargs.get('translate', _) + timeout = kwargs.get('timeout', 0) + history = kwargs.get('history', log.history_info) + if len(args) == 1 and isdict(args[0]): + # named place holders + mparms = args[0] + else: + # simple place holders, ensure compatibility + mparms = args if message: - try: - log.debug(repr(message.replace('%%s', '%%r')), *args) - except: - pass - if args: - message = _(message) % args - else: - message = _(message) - log.history_info(message) - thread.to_main(self.statusBar().showMessage, message, - kwargs.get("timeout", 0)) + if echo: + echo(message % mparms) + if translate: + message = translate(message) + message = message % mparms + if history: + history(message) + thread.to_main(self.statusBar().showMessage, message, timeout) def _on_submit(self): if self.tagger.use_acoustid: @@ -658,11 +691,17 @@ class MainWindow(QtGui.QMainWindow): if len(dir_list) == 1: config.persist["current_directory"] = dir_list[0] - self.set_statusbar_message(N_("Adding directory: '%s' ..."), dir_list[0]) + self.set_statusbar_message( + N_("Adding directory: '%(directory)s' ..."), + {'directory': dir_list[0]} + ) elif len(dir_list) > 1: (parent, dir) = os.path.split(str(dir_list[0])) config.persist["current_directory"] = parent - self.set_statusbar_message(N_("Adding multiple directories from: '%s' ..."), parent) + self.set_statusbar_message( + N_("Adding multiple directories from '%(directory)s' ..."), + {'directory': parent} + ) for directory in dir_list: directory = unicode(directory) @@ -799,30 +838,49 @@ class MainWindow(QtGui.QMainWindow): self.update_actions() metadata = None - statusbar = u"" obj = None if len(objects) == 1: obj = list(objects)[0] if isinstance(obj, File): metadata = obj.metadata - statusbar = obj.filename if obj.state == obj.ERROR: - statusbar += _(" (Error: %s)") % obj.error + msg = N_("%(filename)s (error: %(error)s)") + mparms = { + 'filename': obj.filename, + 'error': obj.error + } + else: + msg = N_("%(filename)s") + mparms = { + 'filename': obj.filename, + } + self.set_statusbar_message(msg, mparms, echo=None, history=None) elif isinstance(obj, Track): metadata = obj.metadata if obj.num_linked_files == 1: file = obj.linked_files[0] - statusbar = "%s (%d%%)" % (file.filename, file.similarity * 100) if file.state == File.ERROR: - statusbar += _(" (Error: %s)") % file.error + msg = N_("%(filename)s (%(similarity)d%%) (error: %(error)s)") + mparms = { + 'filename': file.filename, + 'similarity': file.similarity * 100, + 'error': file.error + } + else: + msg = N_("%(filename)s (%(similarity)d%%)") + mparms = { + 'filename': file.filename, + 'similarity': file.similarity * 100, + } + self.set_statusbar_message(msg, mparms, echo=None, + history=None) elif obj.can_edit_tags(): metadata = obj.metadata self.metadata_box.selection_dirty = True self.metadata_box.update() self.cover_art_box.set_metadata(metadata, obj) - self.set_statusbar_message(statusbar) self.selection_updated.emit(objects) def show_cover_art(self): From d5c053ea7a7a5d0cf30ecdb4edfb4a251260a272 Mon Sep 17 00:00:00 2001 From: Laurent Monin Date: Sat, 3 May 2014 17:20:21 +0200 Subject: [PATCH 035/212] Remove unneeded toBool() forgotten in commit 6ff1f5350 Traceback (most recent call last): File "./picard/acoustid.py", line 219, in _on_fpcalc_error finished = process.property('picard_finished').toBool() AttributeError: 'bool' object has no attribute 'toBool' --- picard/acoustid.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/picard/acoustid.py b/picard/acoustid.py index 423225fc1..a2bb70427 100644 --- a/picard/acoustid.py +++ b/picard/acoustid.py @@ -179,7 +179,7 @@ class AcoustIDClient(QtCore.QObject): def _on_fpcalc_error(self, next, filename, error): process = self.sender() - finished = process.property('picard_finished').toBool() + finished = process.property('picard_finished') if finished: return process.setProperty('picard_finished', True) From cab9bacf697e119ff7dcd56c73aba6951c803198 Mon Sep 17 00:00:00 2001 From: Laurent Monin Date: Sat, 3 May 2014 17:28:26 +0200 Subject: [PATCH 036/212] Update pot file --- po/picard.pot | 314 +++++++++++++++++++++++++++----------------------- 1 file changed, 170 insertions(+), 144 deletions(-) diff --git a/po/picard.pot b/po/picard.pot index 9b4a99eb8..9b3f5709d 100644 --- a/po/picard.pot +++ b/po/picard.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: picard 1.3.0dev4\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2014-04-19 10:12+0200\n" +"POT-Creation-Date: 2014-05-03 17:28+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -33,6 +33,10 @@ msgstr "" msgid "Remove specific release information..." msgstr "" +#: contrib/plugins/standardise_performers.py:3 +msgid "Standardise Performers" +msgstr "" + #: contrib/plugins/lastfm/ui_options_lastfm.py:99 msgid "Last.fm" msgstr "" @@ -84,39 +88,39 @@ msgstr "" msgid "Calculate replay &gain..." msgstr "" -#: contrib/plugins/replaygain/__init__.py:66 +#: contrib/plugins/replaygain/__init__.py:67 #, python-format -msgid "Calculating replay gain for \"%s\"..." +msgid "Calculating replay gain for \"%(filename)s\"..." msgstr "" -#: contrib/plugins/replaygain/__init__.py:71 +#: contrib/plugins/replaygain/__init__.py:75 #, python-format -msgid "Replay gain for \"%s\" successfully calculated." +msgid "Replay gain for \"%(filename)s\" successfully calculated." msgstr "" -#: contrib/plugins/replaygain/__init__.py:73 +#: contrib/plugins/replaygain/__init__.py:80 #, python-format -msgid "Could not calculate replay gain for \"%s\"." +msgid "Could not calculate replay gain for \"%(filename)s\"." msgstr "" -#: contrib/plugins/replaygain/__init__.py:76 +#: contrib/plugins/replaygain/__init__.py:85 msgid "Calculate album &gain..." msgstr "" -#: contrib/plugins/replaygain/__init__.py:103 -#: contrib/plugins/replaygain/__init__.py:111 +#: contrib/plugins/replaygain/__init__.py:113 +#: contrib/plugins/replaygain/__init__.py:124 #, python-format -msgid "Calculating album gain for \"%s\"..." +msgid "Calculating album gain for \"%(album)s\"..." msgstr "" -#: contrib/plugins/replaygain/__init__.py:119 +#: contrib/plugins/replaygain/__init__.py:135 #, python-format -msgid "Album gain for \"%s\" successfully calculated." +msgid "Album gain for \"%(album)s\" successfully calculated." msgstr "" -#: contrib/plugins/replaygain/__init__.py:121 +#: contrib/plugins/replaygain/__init__.py:140 #, python-format -msgid "Could not calculate album gain for \"%s\"." +msgid "Could not calculate album gain for \"%(album)s\"." msgstr "" #: contrib/plugins/replaygain/ui_options_replaygain.py:59 @@ -173,40 +177,40 @@ msgstr "" msgid "Value" msgstr "" -#: picard/acoustid.py:102 +#: picard/acoustid.py:109 #, python-format -msgid "AcoustID lookup network error for '%s'!" +msgid "AcoustID lookup network error for '%(filename)s'!" msgstr "" -#: picard/acoustid.py:117 +#: picard/acoustid.py:133 #, python-format -msgid "AcoustID lookup failed for '%s'!" +msgid "AcoustID lookup failed for '%(filename)s'!" msgstr "" -#: picard/acoustid.py:128 +#: picard/acoustid.py:155 #, python-format -msgid "Acoustid lookup returned no result for file '%s'" +msgid "AcoustID lookup returned no result for file '%(filename)s'" msgstr "" -#: picard/acoustid.py:132 +#: picard/acoustid.py:166 #, python-format -msgid "Looking up the fingerprint for file %s..." +msgid "Looking up the fingerprint for file '%(filename)s' ..." msgstr "" -#: picard/acoustidmanager.py:78 -msgid "Submitting AcoustIDs..." +#: picard/acoustidmanager.py:80 +msgid "Submitting AcoustIDs ..." msgstr "" -#: picard/acoustidmanager.py:84 +#: picard/acoustidmanager.py:94 #, python-format -msgid "AcoustID submission failed with error '%s'" +msgid "AcoustID submission failed with error '%(error)s'" msgstr "" -#: picard/acoustidmanager.py:88 +#: picard/acoustidmanager.py:102 msgid "AcoustIDs successfully submitted." msgstr "" -#: picard/album.py:65 picard/cluster.py:242 +#: picard/album.py:65 picard/cluster.py:255 msgid "Unmatched Files" msgstr "" @@ -217,52 +221,57 @@ msgstr "" #: picard/album.py:277 #, python-format -msgid "Album %s loaded: %s - %s" +msgid "Album %(id)s loaded: %(artist)s - %(album)s" msgstr "" -#: picard/album.py:297 +#: picard/album.py:294 +#, python-format +msgid "Loading album %(id)s ..." +msgstr "" + +#: picard/album.py:303 msgid "[loading album information]" msgstr "" -#: picard/album.py:472 +#: picard/album.py:478 #, python-format msgid "; %i image" msgid_plural "; %i images" msgstr[0] "" msgstr[1] "" -#: picard/cluster.py:151 picard/cluster.py:163 +#: picard/cluster.py:155 picard/cluster.py:168 #, python-format -msgid "No matching releases for cluster %s" -msgstr "" - -#: picard/cluster.py:167 -#, python-format -msgid "Cluster %s identified!" +msgid "No matching releases for cluster %(album)s" msgstr "" #: picard/cluster.py:174 #, python-format -msgid "Looking up the metadata for cluster %s..." +msgid "Cluster %(album)s identified!" msgstr "" -#: picard/collection.py:60 +#: picard/cluster.py:185 #, python-format -msgid "Added %i release to collection \"%s\"" -msgid_plural "Added %i releases to collection \"%s\"" +msgid "Looking up the metadata for cluster %(album)s..." +msgstr "" + +#: picard/collection.py:64 +#, python-format +msgid "Added %(count)i release to collection \"%(name)s\"" +msgid_plural "Added %(count)i releases to collection \"%(name)s\"" msgstr[0] "" msgstr[1] "" -#: picard/collection.py:72 +#: picard/collection.py:86 #, python-format -msgid "Removed %i release from collection \"%s\"" -msgid_plural "Removed %i releases from collection \"%s\"" +msgid "Removed %(count)i release from collection \"%(name)s\"" +msgid_plural "Removed %(count)i releases from collection \"%(name)s\"" msgstr[0] "" msgstr[1] "" -#: picard/collection.py:81 +#: picard/collection.py:100 #, python-format -msgid "Error loading collections: %s" +msgid "Error loading collections: %(error)s" msgstr "" #: picard/config_upgrade.py:58 picard/config_upgrade.py:71 @@ -353,36 +362,36 @@ msgstr "" #: picard/coverart.py:85 #, python-format -msgid "Cover art of type '%s' downloaded for %s from %s" +msgid "Cover art of type '%(type)s' downloaded for %(albumid)s from %(host)s" msgstr "" -#: picard/coverart.py:251 +#: picard/coverart.py:256 #, python-format -msgid "Downloading cover art of type '%s' for %s from %s ..." +msgid "Downloading cover art of type '%(type)s' for %(albumid)s from %(host)s .." msgstr "" #: picard/coverartarchive.py:30 msgid "Unknown" msgstr "" -#: picard/file.py:493 +#: picard/file.py:494 #, python-format -msgid "No matching tracks for file %s" +msgid "No matching tracks for file '%(filename)s'" msgstr "" -#: picard/file.py:506 +#: picard/file.py:510 #, python-format -msgid "No matching tracks above the threshold for file %s" +msgid "No matching tracks above the threshold for file '%(filename)s'" msgstr "" -#: picard/file.py:511 +#: picard/file.py:517 #, python-format -msgid "File %s identified!" +msgid "File '%(filename)s' identified!" msgstr "" -#: picard/file.py:527 +#: picard/file.py:537 #, python-format -msgid "Looking up the metadata for file %s..." +msgid "Looking up the metadata for file %(filename)s ..." msgstr "" #: picard/releasegroup.py:53 @@ -417,21 +426,23 @@ msgstr "" msgid "[no release info]" msgstr "" -#: picard/tagger.py:363 +#: picard/tagger.py:370 #, python-format -msgid "Adding %d files from '%s' ..." +msgid "Adding %(count)d file from '%(directory)s' ..." +msgid_plural "Adding %(count)d files from '%(directory)s' ..." +msgstr[0] "" +msgstr[1] "" + +#: picard/tagger.py:512 +#, python-format +msgid "Removing album %(id)s: %(artist)s - %(album)s" msgstr "" -#: picard/tagger.py:498 -#, python-format -msgid "Removing album %s: %s - %s" -msgstr "" - -#: picard/tagger.py:511 +#: picard/tagger.py:528 msgid "CD Lookup Error" msgstr "" -#: picard/tagger.py:512 +#: picard/tagger.py:529 #, python-format msgid "" "Error while reading CD:\n" @@ -439,12 +450,12 @@ msgid "" "%s" msgstr "" -#: picard/ui/cdlookup.py:35 picard/ui/mainwindow.py:564 picard/util/tags.py:21 +#: picard/ui/cdlookup.py:35 picard/ui/mainwindow.py:597 picard/util/tags.py:21 msgid "Album" msgstr "" #: picard/ui/cdlookup.py:35 picard/ui/itemviews.py:96 -#: picard/ui/mainwindow.py:565 picard/util/tags.py:22 +#: picard/ui/mainwindow.py:598 picard/util/tags.py:22 msgid "Artist" msgstr "" @@ -615,15 +626,15 @@ msgstr "" msgid "Contains albums and matched files" msgstr "" -#: picard/ui/logview.py:92 +#: picard/ui/logview.py:109 msgid "Log" msgstr "" -#: picard/ui/logview.py:95 +#: picard/ui/logview.py:113 msgid "Debug mode" msgstr "" -#: picard/ui/logview.py:107 +#: picard/ui/logview.py:134 msgid "Activity History" msgstr "" @@ -666,283 +677,298 @@ msgstr "" msgid " Listening on port %(port)d " msgstr "" -#: picard/ui/mainwindow.py:266 +#: picard/ui/mainwindow.py:299 msgid "Submission Error" msgstr "" -#: picard/ui/mainwindow.py:267 +#: picard/ui/mainwindow.py:300 msgid "" "You need to configure your AcoustID API key before you can submit " "fingerprints." msgstr "" -#: picard/ui/mainwindow.py:272 +#: picard/ui/mainwindow.py:305 msgid "&Options..." msgstr "" -#: picard/ui/mainwindow.py:276 +#: picard/ui/mainwindow.py:309 msgid "&Cut" msgstr "" -#: picard/ui/mainwindow.py:281 +#: picard/ui/mainwindow.py:314 msgid "&Paste" msgstr "" -#: picard/ui/mainwindow.py:286 +#: picard/ui/mainwindow.py:319 msgid "&Help..." msgstr "" -#: picard/ui/mainwindow.py:290 +#: picard/ui/mainwindow.py:323 msgid "&About..." msgstr "" -#: picard/ui/mainwindow.py:294 +#: picard/ui/mainwindow.py:327 msgid "&Donate..." msgstr "" -#: picard/ui/mainwindow.py:297 +#: picard/ui/mainwindow.py:330 msgid "&Report a Bug..." msgstr "" -#: picard/ui/mainwindow.py:300 +#: picard/ui/mainwindow.py:333 msgid "&Support Forum..." msgstr "" -#: picard/ui/mainwindow.py:303 +#: picard/ui/mainwindow.py:336 msgid "&Add Files..." msgstr "" -#: picard/ui/mainwindow.py:304 +#: picard/ui/mainwindow.py:337 msgid "Add files to the tagger" msgstr "" -#: picard/ui/mainwindow.py:309 +#: picard/ui/mainwindow.py:342 msgid "A&dd Folder..." msgstr "" -#: picard/ui/mainwindow.py:310 +#: picard/ui/mainwindow.py:343 msgid "Add a folder to the tagger" msgstr "" -#: picard/ui/mainwindow.py:312 +#: picard/ui/mainwindow.py:345 msgid "Ctrl+D" msgstr "" -#: picard/ui/mainwindow.py:315 +#: picard/ui/mainwindow.py:348 msgid "&Save" msgstr "" -#: picard/ui/mainwindow.py:316 +#: picard/ui/mainwindow.py:349 msgid "Save selected files" msgstr "" -#: picard/ui/mainwindow.py:322 +#: picard/ui/mainwindow.py:355 msgid "S&ubmit" msgstr "" -#: picard/ui/mainwindow.py:323 +#: picard/ui/mainwindow.py:356 msgid "Submit acoustic fingerprints" msgstr "" -#: picard/ui/mainwindow.py:327 +#: picard/ui/mainwindow.py:360 msgid "E&xit" msgstr "" -#: picard/ui/mainwindow.py:330 +#: picard/ui/mainwindow.py:363 msgid "Ctrl+Q" msgstr "" -#: picard/ui/mainwindow.py:333 +#: picard/ui/mainwindow.py:366 msgid "&Remove" msgstr "" -#: picard/ui/mainwindow.py:334 +#: picard/ui/mainwindow.py:367 msgid "Remove selected files/albums" msgstr "" -#: picard/ui/mainwindow.py:338 +#: picard/ui/mainwindow.py:371 msgid "Lookup in &Browser" msgstr "" -#: picard/ui/mainwindow.py:339 +#: picard/ui/mainwindow.py:372 msgid "Lookup selected item on MusicBrainz website" msgstr "" -#: picard/ui/mainwindow.py:343 +#: picard/ui/mainwindow.py:376 msgid "File &Browser" msgstr "" -#: picard/ui/mainwindow.py:347 +#: picard/ui/mainwindow.py:380 msgid "Ctrl+B" msgstr "" -#: picard/ui/mainwindow.py:350 +#: picard/ui/mainwindow.py:383 msgid "&Cover Art" msgstr "" -#: picard/ui/mainwindow.py:356 picard/ui/mainwindow.py:558 +#: picard/ui/mainwindow.py:389 picard/ui/mainwindow.py:591 msgid "Search" msgstr "" -#: picard/ui/mainwindow.py:359 +#: picard/ui/mainwindow.py:392 msgid "Lookup &CD..." msgstr "" -#: picard/ui/mainwindow.py:360 +#: picard/ui/mainwindow.py:393 msgid "Lookup the details of the CD in your drive" msgstr "" -#: picard/ui/mainwindow.py:362 +#: picard/ui/mainwindow.py:395 msgid "Ctrl+K" msgstr "" -#: picard/ui/mainwindow.py:365 +#: picard/ui/mainwindow.py:398 msgid "&Scan" msgstr "" -#: picard/ui/mainwindow.py:368 +#: picard/ui/mainwindow.py:401 msgid "Ctrl+Y" msgstr "" -#: picard/ui/mainwindow.py:371 +#: picard/ui/mainwindow.py:404 msgid "Cl&uster" msgstr "" -#: picard/ui/mainwindow.py:374 +#: picard/ui/mainwindow.py:407 msgid "Ctrl+U" msgstr "" -#: picard/ui/mainwindow.py:377 +#: picard/ui/mainwindow.py:410 msgid "&Lookup" msgstr "" -#: picard/ui/mainwindow.py:378 +#: picard/ui/mainwindow.py:411 msgid "Lookup selected items in MusicBrainz" msgstr "" -#: picard/ui/mainwindow.py:383 +#: picard/ui/mainwindow.py:416 msgid "Ctrl+L" msgstr "" -#: picard/ui/mainwindow.py:386 +#: picard/ui/mainwindow.py:419 msgid "&Info..." msgstr "" -#: picard/ui/mainwindow.py:389 +#: picard/ui/mainwindow.py:422 msgid "Ctrl+I" msgstr "" -#: picard/ui/mainwindow.py:392 +#: picard/ui/mainwindow.py:425 msgid "&Refresh" msgstr "" -#: picard/ui/mainwindow.py:393 +#: picard/ui/mainwindow.py:426 msgid "Ctrl+R" msgstr "" -#: picard/ui/mainwindow.py:396 +#: picard/ui/mainwindow.py:429 msgid "&Rename Files" msgstr "" -#: picard/ui/mainwindow.py:401 +#: picard/ui/mainwindow.py:434 msgid "&Move Files" msgstr "" -#: picard/ui/mainwindow.py:406 +#: picard/ui/mainwindow.py:439 msgid "Save &Tags" msgstr "" -#: picard/ui/mainwindow.py:411 +#: picard/ui/mainwindow.py:444 msgid "Tags From &File Names..." msgstr "" -#: picard/ui/mainwindow.py:414 +#: picard/ui/mainwindow.py:447 msgid "&Open My Collections in Browser" msgstr "" -#: picard/ui/mainwindow.py:418 +#: picard/ui/mainwindow.py:451 msgid "View Error/Debug &Log" msgstr "" -#: picard/ui/mainwindow.py:421 +#: picard/ui/mainwindow.py:454 msgid "View Activity &History" msgstr "" -#: picard/ui/mainwindow.py:428 +#: picard/ui/mainwindow.py:461 msgid "&Play file" msgstr "" -#: picard/ui/mainwindow.py:429 +#: picard/ui/mainwindow.py:462 msgid "Play the file in your default media player" msgstr "" -#: picard/ui/mainwindow.py:433 +#: picard/ui/mainwindow.py:466 msgid "Open Containing &Folder" msgstr "" -#: picard/ui/mainwindow.py:434 +#: picard/ui/mainwindow.py:467 msgid "Open the containing folder in your file explorer" msgstr "" -#: picard/ui/mainwindow.py:459 +#: picard/ui/mainwindow.py:492 msgid "&File" msgstr "" -#: picard/ui/mainwindow.py:470 +#: picard/ui/mainwindow.py:503 msgid "&Edit" msgstr "" -#: picard/ui/mainwindow.py:476 +#: picard/ui/mainwindow.py:509 msgid "&View" msgstr "" -#: picard/ui/mainwindow.py:482 +#: picard/ui/mainwindow.py:515 msgid "&Options" msgstr "" -#: picard/ui/mainwindow.py:488 +#: picard/ui/mainwindow.py:521 msgid "&Tools" msgstr "" -#: picard/ui/mainwindow.py:499 picard/ui/util.py:35 +#: picard/ui/mainwindow.py:532 picard/ui/util.py:35 msgid "&Help" msgstr "" -#: picard/ui/mainwindow.py:520 +#: picard/ui/mainwindow.py:553 msgid "Actions" msgstr "" -#: picard/ui/mainwindow.py:566 +#: picard/ui/mainwindow.py:599 msgid "Track" msgstr "" -#: picard/ui/mainwindow.py:629 +#: picard/ui/mainwindow.py:662 msgid "All Supported Formats" msgstr "" -#: picard/ui/mainwindow.py:661 +#: picard/ui/mainwindow.py:695 #, python-format -msgid "Adding directory: '%s' ..." +msgid "Adding directory: '%(directory)s' ..." msgstr "" -#: picard/ui/mainwindow.py:665 +#: picard/ui/mainwindow.py:702 #, python-format -msgid "Adding multiple directories from: '%s' ..." +msgid "Adding multiple directories from '%(directory)s' ..." msgstr "" -#: picard/ui/mainwindow.py:728 +#: picard/ui/mainwindow.py:767 msgid "Configuration Required" msgstr "" -#: picard/ui/mainwindow.py:729 +#: picard/ui/mainwindow.py:768 msgid "" "Audio fingerprinting is not yet configured. Would you like to configure " "it now?" msgstr "" -#: picard/ui/mainwindow.py:811 picard/ui/mainwindow.py:818 +#: picard/ui/mainwindow.py:848 #, python-format -msgid " (Error: %s)" +msgid "%(filename)s (error: %(error)s)" +msgstr "" + +#: picard/ui/mainwindow.py:854 +#, python-format +msgid "%(filename)s" +msgstr "" + +#: picard/ui/mainwindow.py:864 +#, python-format +msgid "%(filename)s (%(similarity)d%%) (error: %(error)s)" +msgstr "" + +#: picard/ui/mainwindow.py:871 +#, python-format +msgid "%(filename)s (%(similarity)d%%)" msgstr "" #: picard/ui/metadatabox.py:82 From da274639ae5fbaf0112be7b9ea6033ae12751b10 Mon Sep 17 00:00:00 2001 From: Laurent Monin Date: Sun, 4 May 2014 11:46:19 +0200 Subject: [PATCH 037/212] Typo fix, add missing dot in translatable string. --- picard/coverart.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/picard/coverart.py b/picard/coverart.py index d7c1d20b6..ecc098279 100644 --- a/picard/coverart.py +++ b/picard/coverart.py @@ -253,7 +253,7 @@ def _walk_try_list(album, metadata, release, try_list): album._requests += 1 coverinfos = try_list.pop(0) QObject.tagger.window.set_statusbar_message( - N_("Downloading cover art of type '%(type)s' for %(albumid)s from %(host)s .."), + N_("Downloading cover art of type '%(type)s' for %(albumid)s from %(host)s ..."), { 'type': coverinfos['type'], 'albumid': album.id, From 3b9d29f91bda2d2efb3af32b4d7c8f1ccbc4e7c8 Mon Sep 17 00:00:00 2001 From: Laurent Monin Date: Sun, 4 May 2014 11:47:16 +0200 Subject: [PATCH 038/212] Update pot file --- po/picard.pot | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/po/picard.pot b/po/picard.pot index 9b3f5709d..285a272b2 100644 --- a/po/picard.pot +++ b/po/picard.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: picard 1.3.0dev4\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2014-05-03 17:28+0200\n" +"POT-Creation-Date: 2014-05-04 11:46+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -367,7 +367,7 @@ msgstr "" #: picard/coverart.py:256 #, python-format -msgid "Downloading cover art of type '%(type)s' for %(albumid)s from %(host)s .." +msgid "Downloading cover art of type '%(type)s' for %(albumid)s from %(host)s ..." msgstr "" #: picard/coverartarchive.py:30 From dc3e78454b5caaf1f32e8904e56ab8180232c91c Mon Sep 17 00:00:00 2001 From: Sophist Date: Sun, 4 May 2014 22:02:31 +0100 Subject: [PATCH 039/212] Fix setup.py plugin_files Fixes error in commit 25505c9216d84eee65ba1e230d6e9ce9600d5093 --- setup.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/setup.py b/setup.py index 3fbf55594..02cf1df66 100755 --- a/setup.py +++ b/setup.py @@ -673,7 +673,7 @@ try: find_file_in_path("PyQt4/plugins/imageformats/qtiff4.dll")])) self.distribution.data_files.append( ("accessible", [find_file_in_path("PyQt4/plugins/accessible/qtaccessiblewidgets4.dll")])) - self.distribution.data_files.append(contrib_plugin_files()) + self.distribution.data_files += contrib_plugin_files() py2exe.run(self) print "*** creating the NSIS setup script ***" From dea65996415967463d4bbde1798683e0e04acabe Mon Sep 17 00:00:00 2001 From: Sophist Date: Sun, 4 May 2014 22:04:33 +0100 Subject: [PATCH 040/212] Revert unintended global change made in commit 25505c9216d84eee65ba1e230d6e9ce9600d5093 --- setup.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/setup.py b/setup.py index 02cf1df66..8d0b99be3 100755 --- a/setup.py +++ b/setup.py @@ -710,9 +710,9 @@ except ImportError: def find_file_in_path(filename): for include_path in sys.path: - file_root = os.path.join(include_path, filename) - if os.path.exists(file_root): - return file_root + file_path = os.path.join(include_path, filename) + if os.path.exists(file_path): + return file_path if do_py2app: from py2app.util import copy_file, find_app From 8ab91f939a58575197de5f9b0f2e265e8e1cd910 Mon Sep 17 00:00:00 2001 From: Laurent Monin Date: Mon, 5 May 2014 07:13:40 +0200 Subject: [PATCH 041/212] PICARD-602: import missing log Traceback (most recent call last): File "/usr/lib/picard/picard/webservice.py", line 241, in _process_reply handler(str(reply.readAll()), reply, error) File "/usr/lib/picard/picard/collection.py", line 102, in request_finished echo=log.error NameError: global name 'log' is not defined --- picard/collection.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/picard/collection.py b/picard/collection.py index 4260111d9..a83788ccf 100644 --- a/picard/collection.py +++ b/picard/collection.py @@ -19,7 +19,7 @@ from functools import partial from PyQt4 import QtCore -from picard import config +from picard import config, log user_collections = {} From 4658f9ff7f8c7959c5a9b006c5bb9caf6ff54ed8 Mon Sep 17 00:00:00 2001 From: Laurent Monin Date: Mon, 5 May 2014 07:20:01 +0200 Subject: [PATCH 042/212] Update translations --- po/attributes/da.po | 47 +- po/attributes/de.po | 591 ++++++----- po/attributes/el.po | 47 +- po/attributes/en_CA.po | 47 +- po/attributes/en_GB.po | 47 +- po/attributes/eo.po | 47 +- po/attributes/es.po | 47 +- po/attributes/et.po | 22 +- po/attributes/fi.po | 49 +- po/attributes/ja.po | 47 +- po/attributes/nb.po | 47 +- po/attributes/nl.po | 22 +- po/attributes/pl.po | 47 +- po/attributes/pt_BR.po | 47 +- po/attributes/ro.po | 47 +- po/attributes/ru.po | 2299 ++++++++++++++++++++++++++++++++++++++++ po/attributes/sk.po | 47 +- po/attributes/sv.po | 47 +- po/attributes/tr.po | 47 +- po/attributes/zh_CN.po | 47 +- po/bg.po | 1180 ++++++++++----------- po/ca.po | 1252 ++++++++++------------ po/countries/ru.po | 53 +- po/cs.po | 1261 ++++++++++------------ po/cy.po | 1206 ++++++++++----------- po/da.po | 1260 ++++++++++------------ po/de.po | 1279 ++++++++++------------ po/el.po | 1234 ++++++++++----------- po/en_CA.po | 1262 ++++++++++------------ po/en_GB.po | 1276 ++++++++++------------ po/eo.po | 1186 ++++++++++----------- po/es.po | 749 ++++++------- po/et.po | 741 ++++++------- po/fi.po | 1284 ++++++++++------------ po/fo.po | 1184 ++++++++++----------- po/fr.po | 751 ++++++------- po/fy.po | 1166 +++++++++----------- po/gl.po | 1234 ++++++++++----------- po/he.po | 1234 ++++++++++----------- po/hu.po | 1236 ++++++++++----------- po/id.po | 1203 ++++++++++----------- po/is.po | 1234 ++++++++++----------- po/it.po | 745 ++++++------- po/ja.po | 1255 ++++++++++------------ po/ko.po | 1187 ++++++++++----------- po/mr.po | 1188 ++++++++++----------- po/nb.po | 1194 ++++++++++----------- po/nl.po | 755 ++++++------- po/oc.po | 1234 ++++++++++----------- po/picard.pot | 4 +- po/pl.po | 1281 ++++++++++------------ po/pt.po | 1224 ++++++++++----------- po/pt_BR.po | 1244 ++++++++++------------ po/ro.po | 1197 ++++++++++----------- po/ru.po | 1414 ++++++++++++------------ po/sk.po | 1279 ++++++++++------------ po/sl.po | 1260 ++++++++++------------ po/sv.po | 1258 ++++++++++------------ po/te.po | 1186 ++++++++++----------- po/tr.po | 1244 ++++++++++------------ po/uk.po | 1239 ++++++++++------------ po/zh_CN.po | 1173 ++++++++++---------- 62 files changed, 24706 insertions(+), 26008 deletions(-) create mode 100644 po/attributes/ru.po diff --git a/po/attributes/da.po b/po/attributes/da.po index 60fc7b376..a856337b0 100644 --- a/po/attributes/da.po +++ b/po/attributes/da.po @@ -4,7 +4,7 @@ msgid "" msgstr "" "Project-Id-Version: MusicBrainz\n" -"PO-Revision-Date: 2014-03-31 21:30+0000\n" +"PO-Revision-Date: 2014-04-17 03:31+0000\n" "Last-Translator: Ian McEwen \n" "Language-Team: Danish (http://www.transifex.com/projects/p/musicbrainz/language/da/)\n" "MIME-Version: 1.0\n" @@ -63,6 +63,16 @@ msgctxt "work_attribute_type_allowed_value" msgid "A-sharp minor" msgstr "" +#: DB:work_attribute_type/name:13 +msgctxt "work_attribute_type" +msgid "APRA ID" +msgstr "" + +#: DB:work_attribute_type/name:6 +msgctxt "work_attribute_type" +msgid "ASCAP ID" +msgstr "" + #: DB:release_group_primary_type/name:1 msgctxt "release_group_primary_type" msgid "Album" @@ -138,6 +148,11 @@ msgctxt "work_attribute_type_allowed_value" msgid "B-flat minor" msgstr "" +#: DB:work_attribute_type/name:7 +msgctxt "work_attribute_type" +msgid "BMI ID" +msgstr "" + #: DB:cover_art_archive.art_type/name:2 msgctxt "cover_art_type" msgid "Back" @@ -493,6 +508,11 @@ msgctxt "work_attribute_type_allowed_value" msgid "Darbārī kānaḍa" msgstr "" +#: DB:release_group_secondary_type/name:10 +msgctxt "release_group_secondary_type" +msgid "Demo" +msgstr "" + #: DB:work_attribute_type_allowed_value/value:79 msgctxt "work_attribute_type_allowed_value" msgid "Devāmṛtavarṣiṇi" @@ -698,6 +718,11 @@ msgctxt "work_attribute_type_allowed_value" msgid "G-sharp minor" msgstr "" +#: DB:work_attribute_type/name:9 +msgctxt "work_attribute_type" +msgid "GEMA ID" +msgstr "" + #: DB:work_attribute_type_allowed_value/value:88 msgctxt "work_attribute_type_allowed_value" msgid "Gamakakriya" @@ -943,6 +968,11 @@ msgctxt "work_attribute_type_allowed_value" msgid "Jōnpuri" msgstr "" +#: DB:work_attribute_type/name:11 +msgctxt "work_attribute_type" +msgid "KOMCA ID" +msgstr "" + #: DB:work_attribute_type_allowed_value/value:128 msgctxt "work_attribute_type_allowed_value" msgid "Kalgaḍa" @@ -1318,6 +1348,11 @@ msgctxt "area_type" msgid "Municipality" msgstr "" +#: DB:work_attribute_type/name:12 +msgctxt "work_attribute_type" +msgid "MÜST ID" +msgstr "" + #: DB:work_attribute_type_allowed_value/value:167 msgctxt "work_attribute_type_allowed_value" msgid "Mānavati" @@ -1728,11 +1763,21 @@ msgctxt "medium_format" msgid "SACD" msgstr "" +#: DB:work_attribute_type/name:8 +msgctxt "work_attribute_type" +msgid "SESAC ID" +msgstr "" + #: DB:medium_format/name:36 msgctxt "medium_format" msgid "SHM-CD" msgstr "" +#: DB:work_attribute_type/name:10 +msgctxt "work_attribute_type" +msgid "SOCAN ID" +msgstr "" + #: DB:medium_format/name:23 msgctxt "medium_format" msgid "SVCD" diff --git a/po/attributes/de.po b/po/attributes/de.po index b28909ad8..f50a4732e 100644 --- a/po/attributes/de.po +++ b/po/attributes/de.po @@ -19,8 +19,8 @@ msgid "" msgstr "" "Project-Id-Version: MusicBrainz\n" -"PO-Revision-Date: 2014-03-31 21:30+0000\n" -"Last-Translator: Ian McEwen \n" +"PO-Revision-Date: 2014-04-25 17:13+0000\n" +"Last-Translator: nikki\n" "Language-Team: German (http://www.transifex.com/projects/p/musicbrainz/language/de/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -78,6 +78,16 @@ msgctxt "work_attribute_type_allowed_value" msgid "A-sharp minor" msgstr "ais-Moll" +#: DB:work_attribute_type/name:13 +msgctxt "work_attribute_type" +msgid "APRA ID" +msgstr "APRA-ID" + +#: DB:work_attribute_type/name:6 +msgctxt "work_attribute_type" +msgid "ASCAP ID" +msgstr "ASCAP-ID" + #: DB:release_group_primary_type/name:1 msgctxt "release_group_primary_type" msgid "Album" @@ -86,12 +96,12 @@ msgstr "Album" #: DB:work_attribute_type_allowed_value/value:40 msgctxt "work_attribute_type_allowed_value" msgid "Amṛtavarṣiṇi" -msgstr "" +msgstr "Amṛtavarṣiṇi" #: DB:work_attribute_type_allowed_value/value:39 msgctxt "work_attribute_type_allowed_value" msgid "Amṛtavāhiṇi" -msgstr "" +msgstr "Amṛtavāhiṇi" #: DB:area_alias_type/name:1 msgctxt "alias_type" @@ -111,7 +121,7 @@ msgstr "Künstlername" #: DB:work_attribute_type_allowed_value/value:44 msgctxt "work_attribute_type_allowed_value" msgid "Asāvēri" -msgstr "" +msgstr "Asāvēri" #: DB:work_type/name:25 msgctxt "work_type" @@ -126,12 +136,12 @@ msgstr "Hörbuch" #: DB:work_attribute_type_allowed_value/value:45 msgctxt "work_attribute_type_allowed_value" msgid "Aṭāna" -msgstr "" +msgstr "Aṭāna" #: DB:work_attribute_type_allowed_value/value:289 msgctxt "work_attribute_type_allowed_value" msgid "Aṭṭa" -msgstr "" +msgstr "Aṭṭa" #: DB:work_attribute_type_allowed_value/value:33 msgctxt "work_attribute_type_allowed_value" @@ -153,6 +163,11 @@ msgctxt "work_attribute_type_allowed_value" msgid "B-flat minor" msgstr "b-Moll" +#: DB:work_attribute_type/name:7 +msgctxt "work_attribute_type" +msgid "BMI ID" +msgstr "BMI-ID" + #: DB:cover_art_archive.art_type/name:2 msgctxt "cover_art_type" msgid "Back" @@ -161,12 +176,12 @@ msgstr "Rückseite" #: DB:work_attribute_type_allowed_value/value:47 msgctxt "work_attribute_type_allowed_value" msgid "Bahudāri" -msgstr "" +msgstr "Bahudāri" #: DB:work_attribute_type_allowed_value/value:48 msgctxt "work_attribute_type_allowed_value" msgid "Balahaṁsa" -msgstr "" +msgstr "Balahaṁsa" #: DB:work_type/name:2 msgctxt "work_type" @@ -176,12 +191,12 @@ msgstr "Ballett" #: DB:work_attribute_type_allowed_value/value:49 msgctxt "work_attribute_type_allowed_value" msgid "Bauḷi" -msgstr "" +msgstr "Bauḷi" #: DB:work_attribute_type_allowed_value/value:51 msgctxt "work_attribute_type_allowed_value" msgid "Behāg" -msgstr "" +msgstr "Behāg" #: DB:work_type/name:26 msgctxt "work_type" @@ -196,42 +211,42 @@ msgstr "Betamax" #: DB:work_attribute_type_allowed_value/value:52 msgctxt "work_attribute_type_allowed_value" msgid "Bhairavi" -msgstr "" +msgstr "Bhairavi" #: DB:work_attribute_type_allowed_value/value:53 msgctxt "work_attribute_type_allowed_value" msgid "Bhavāni" -msgstr "" +msgstr "Bhavāni" #: DB:work_attribute_type_allowed_value/value:54 msgctxt "work_attribute_type_allowed_value" msgid "Bhāvapriya" -msgstr "" +msgstr "Bhāvapriya" #: DB:work_attribute_type_allowed_value/value:55 msgctxt "work_attribute_type_allowed_value" msgid "Bhīmpalāsi" -msgstr "" +msgstr "Bhīmpalāsi" #: DB:work_attribute_type_allowed_value/value:56 msgctxt "work_attribute_type_allowed_value" msgid "Bhōga sāvēri" -msgstr "" +msgstr "Bhōga sāvēri" #: DB:work_attribute_type_allowed_value/value:57 msgctxt "work_attribute_type_allowed_value" msgid "Bhūpāḷaṁ" -msgstr "" +msgstr "Bhūpāḷaṁ" #: DB:work_attribute_type_allowed_value/value:58 msgctxt "work_attribute_type_allowed_value" msgid "Bhūṣāvaḷi" -msgstr "" +msgstr "Bhūṣāvaḷi" #: DB:work_attribute_type_allowed_value/value:59 msgctxt "work_attribute_type_allowed_value" msgid "Bilahari" -msgstr "" +msgstr "Bilahari" #: DB:medium_format/name:20 msgctxt "medium_format" @@ -271,27 +286,27 @@ msgstr "Rundfunkübertragung" #: DB:work_attribute_type_allowed_value/value:62 msgctxt "work_attribute_type_allowed_value" msgid "Budamanōhari" -msgstr "" +msgstr "Budamanōhari" #: DB:work_attribute_type_allowed_value/value:46 msgctxt "work_attribute_type_allowed_value" msgid "Bāgēśrī" -msgstr "" +msgstr "Bāgēśrī" #: DB:work_attribute_type_allowed_value/value:50 msgctxt "work_attribute_type_allowed_value" msgid "Bēgaḍa" -msgstr "" +msgstr "Bēgaḍa" #: DB:work_attribute_type_allowed_value/value:60 msgctxt "work_attribute_type_allowed_value" msgid "Bṛndāvana sāranga" -msgstr "" +msgstr "Bṛndāvana sāranga" #: DB:work_attribute_type_allowed_value/value:61 msgctxt "work_attribute_type_allowed_value" msgid "Bṛndāvani" -msgstr "" +msgstr "Bṛndāvani" #: DB:work_attribute_type_allowed_value/value:2 msgctxt "work_attribute_type_allowed_value" @@ -306,7 +321,7 @@ msgstr "c-Moll" #: DB:work_attribute_type_allowed_value/value:1 msgctxt "work_attribute_type_allowed_value" msgid "C-flat major" -msgstr "" +msgstr "Ces-Dur" #: DB:work_attribute_type_allowed_value/value:4 msgctxt "work_attribute_type_allowed_value" @@ -336,17 +351,17 @@ msgstr "CD-R" #: DB:work_attribute_type_allowed_value/value:63 msgctxt "work_attribute_type_allowed_value" msgid "Cakravākaṁ" -msgstr "" +msgstr "Cakravākaṁ" #: DB:work_attribute_type_allowed_value/value:64 msgctxt "work_attribute_type_allowed_value" msgid "Candrajyōti" -msgstr "" +msgstr "Candrajyōti" #: DB:work_attribute_type_allowed_value/value:65 msgctxt "work_attribute_type_allowed_value" msgid "Candrakauns" -msgstr "" +msgstr "Candrakauns" #: DB:work_type/name:3 msgctxt "work_type" @@ -366,7 +381,7 @@ msgstr "4-/8-Spur-Kassette" #: DB:work_attribute_type_allowed_value/value:66 msgctxt "work_attribute_type_allowed_value" msgid "Carturdaśa rāgamālika" -msgstr "" +msgstr "Carturdaśa rāgamālika" #: DB:medium_format/name:8 msgctxt "medium_format" @@ -381,12 +396,12 @@ msgstr "Kassettenhülle" #: DB:work_attribute_type_allowed_value/value:291 msgctxt "work_attribute_type_allowed_value" msgid "Caturaśra-jāti jhaṁpe" -msgstr "" +msgstr "Caturaśra-jāti jhaṁpe" #: DB:work_attribute_type_allowed_value/value:70 msgctxt "work_attribute_type_allowed_value" msgid "Cencu kāmbhōji" -msgstr "" +msgstr "Cencu kāmbhōji" #: DB:artist_type/name:4 msgctxt "artist_type" @@ -396,17 +411,17 @@ msgstr "Figur" #: DB:artist_type/name:6 msgctxt "artist_type" msgid "Choir" -msgstr "" +msgstr "Chor" #: DB:work_attribute_type_allowed_value/value:71 msgctxt "work_attribute_type_allowed_value" msgid "Cintāmaṇi" -msgstr "" +msgstr "Cintāmaṇi" #: DB:work_attribute_type_allowed_value/value:72 msgctxt "work_attribute_type_allowed_value" msgid "Cittaranjani" -msgstr "" +msgstr "Cittaranjani" #: DB:area_type/name:3 msgctxt "area_type" @@ -431,17 +446,17 @@ msgstr "Land" #: DB:work_attribute_type_allowed_value/value:67 msgctxt "work_attribute_type_allowed_value" msgid "Cārukēśi" -msgstr "" +msgstr "Cārukēśi" #: DB:work_attribute_type_allowed_value/value:68 msgctxt "work_attribute_type_allowed_value" msgid "Cāyānāṭa" -msgstr "" +msgstr "Cāyānāṭa" #: DB:work_attribute_type_allowed_value/value:69 msgctxt "work_attribute_type_allowed_value" msgid "Cāyātarangiṇi" -msgstr "" +msgstr "Cāyātarangiṇi" #: DB:work_attribute_type_allowed_value/value:8 msgctxt "work_attribute_type_allowed_value" @@ -501,42 +516,47 @@ msgstr "DVD-Video" #: DB:work_attribute_type_allowed_value/value:73 msgctxt "work_attribute_type_allowed_value" msgid "Darbār" -msgstr "" +msgstr "Darbār" #: DB:work_attribute_type_allowed_value/value:74 msgctxt "work_attribute_type_allowed_value" msgid "Darbārī kānaḍa" -msgstr "" +msgstr "Darbārī kānaḍa" + +#: DB:release_group_secondary_type/name:10 +msgctxt "release_group_secondary_type" +msgid "Demo" +msgstr "Demo" #: DB:work_attribute_type_allowed_value/value:79 msgctxt "work_attribute_type_allowed_value" msgid "Devāmṛtavarṣiṇi" -msgstr "" +msgstr "Devāmṛtavarṣiṇi" #: DB:work_attribute_type_allowed_value/value:80 msgctxt "work_attribute_type_allowed_value" msgid "Dhanaśrī" -msgstr "" +msgstr "Dhanaśrī" #: DB:work_attribute_type_allowed_value/value:81 msgctxt "work_attribute_type_allowed_value" msgid "Dhanyāsi" -msgstr "" +msgstr "Dhanyāsi" #: DB:work_attribute_type_allowed_value/value:82 msgctxt "work_attribute_type_allowed_value" msgid "Dharmāvati" -msgstr "" +msgstr "Dharmāvati" #: DB:work_attribute_type_allowed_value/value:285 msgctxt "work_attribute_type_allowed_value" msgid "Dhr̥va" -msgstr "" +msgstr "Dhr̥va" #: DB:work_attribute_type_allowed_value/value:83 msgctxt "work_attribute_type_allowed_value" msgid "Dhēnuka" -msgstr "" +msgstr "Dhēnuka" #: DB:release_packaging/name:3 msgctxt "release_packaging" @@ -571,47 +591,47 @@ msgstr "DualDisc" #: DB:work_attribute_type_allowed_value/value:86 msgctxt "work_attribute_type_allowed_value" msgid "Durga" -msgstr "" +msgstr "Durga" #: DB:work_attribute_type_allowed_value/value:87 msgctxt "work_attribute_type_allowed_value" msgid "Dvijāvanti" -msgstr "" +msgstr "Dvijāvanti" #: DB:work_attribute_type_allowed_value/value:76 msgctxt "work_attribute_type_allowed_value" msgid "Dēvagāndhāri" -msgstr "" +msgstr "Dēvagāndhāri" #: DB:work_attribute_type_allowed_value/value:77 msgctxt "work_attribute_type_allowed_value" msgid "Dēvakriya" -msgstr "" +msgstr "Dēvakriya" #: DB:work_attribute_type_allowed_value/value:78 msgctxt "work_attribute_type_allowed_value" msgid "Dēvamanōhari" -msgstr "" +msgstr "Dēvamanōhari" #: DB:work_attribute_type_allowed_value/value:75 msgctxt "work_attribute_type_allowed_value" msgid "Dēś" -msgstr "" +msgstr "Dēś" #: DB:work_attribute_type_allowed_value/value:292 msgctxt "work_attribute_type_allowed_value" msgid "Dēśādi" -msgstr "" +msgstr "Dēśādi" #: DB:work_attribute_type_allowed_value/value:84 msgctxt "work_attribute_type_allowed_value" msgid "Dīpakaṁ" -msgstr "" +msgstr "Dīpakaṁ" #: DB:work_attribute_type_allowed_value/value:85 msgctxt "work_attribute_type_allowed_value" msgid "Dīpāḷi" -msgstr "" +msgstr "Dīpāḷi" #: DB:work_attribute_type_allowed_value/value:13 msgctxt "work_attribute_type_allowed_value" @@ -713,20 +733,25 @@ msgctxt "work_attribute_type_allowed_value" msgid "G-sharp minor" msgstr "gis-Moll" +#: DB:work_attribute_type/name:9 +msgctxt "work_attribute_type" +msgid "GEMA ID" +msgstr "GEMA-ID" + #: DB:work_attribute_type_allowed_value/value:88 msgctxt "work_attribute_type_allowed_value" msgid "Gamakakriya" -msgstr "" +msgstr "Gamakakriya" #: DB:work_attribute_type_allowed_value/value:89 msgctxt "work_attribute_type_allowed_value" msgid "Gamakakriya/Pūrvīkaḷyāṇi" -msgstr "" +msgstr "Gamakakriya/Pūrvīkaḷyāṇi" #: DB:work_attribute_type_allowed_value/value:95 msgctxt "work_attribute_type_allowed_value" msgid "Garuḍadhvani" -msgstr "" +msgstr "Garuḍadhvani" #: DB:release_packaging/name:12 msgctxt "release_packaging" @@ -736,37 +761,37 @@ msgstr "" #: DB:work_attribute_type_allowed_value/value:99 msgctxt "work_attribute_type_allowed_value" msgid "Gaurīmanōhari" -msgstr "" +msgstr "Gaurīmanōhari" #: DB:work_attribute_type_allowed_value/value:96 msgctxt "work_attribute_type_allowed_value" msgid "Gauḍa malhār" -msgstr "" +msgstr "Gauḍa malhār" #: DB:work_attribute_type_allowed_value/value:97 msgctxt "work_attribute_type_allowed_value" msgid "Gauḷa" -msgstr "" +msgstr "Gauḷa" #: DB:work_attribute_type_allowed_value/value:98 msgctxt "work_attribute_type_allowed_value" msgid "Gauḷipantu" -msgstr "" +msgstr "Gauḷipantu" #: DB:work_attribute_type_allowed_value/value:90 msgctxt "work_attribute_type_allowed_value" msgid "Gaṁbhīra nāṭa" -msgstr "" +msgstr "Gaṁbhīra nāṭa" #: DB:work_attribute_type_allowed_value/value:91 msgctxt "work_attribute_type_allowed_value" msgid "Gaṁbhīra vāṇi" -msgstr "" +msgstr "Gaṁbhīra vāṇi" #: DB:work_attribute_type_allowed_value/value:100 msgctxt "work_attribute_type_allowed_value" msgid "Ghanṭa" -msgstr "" +msgstr "Ghanṭa" #: DB:artist_type/name:2 msgctxt "artist_type" @@ -776,27 +801,27 @@ msgstr "Gruppe" #: DB:work_attribute_type_allowed_value/value:102 msgctxt "work_attribute_type_allowed_value" msgid "Gurjāri" -msgstr "" +msgstr "Gurjāri" #: DB:work_attribute_type_allowed_value/value:92 msgctxt "work_attribute_type_allowed_value" msgid "Gānamūrti" -msgstr "" +msgstr "Gānamūrti" #: DB:work_attribute_type_allowed_value/value:93 msgctxt "work_attribute_type_allowed_value" msgid "Gānavāridhi" -msgstr "" +msgstr "Gānavāridhi" #: DB:work_attribute_type_allowed_value/value:94 msgctxt "work_attribute_type_allowed_value" msgid "Gāngēyabhūṣaṇi" -msgstr "" +msgstr "Gāngēyabhūṣaṇi" #: DB:work_attribute_type_allowed_value/value:101 msgctxt "work_attribute_type_allowed_value" msgid "Gōpikāvasantaṁ" -msgstr "" +msgstr "Gōpikāvasantaṁ" #: DB:medium_format/name:17 msgctxt "medium_format" @@ -816,47 +841,47 @@ msgstr "HQCD" #: DB:work_attribute_type_allowed_value/value:104 msgctxt "work_attribute_type_allowed_value" msgid "Hamsadhvani" -msgstr "" +msgstr "Hamsadhvani" #: DB:work_attribute_type_allowed_value/value:107 msgctxt "work_attribute_type_allowed_value" msgid "Hamsavinōdini" -msgstr "" +msgstr "Hamsavinōdini" #: DB:work_attribute_type_allowed_value/value:103 msgctxt "work_attribute_type_allowed_value" msgid "Hamīr kaḷyaṇi" -msgstr "" +msgstr "Hamīr kaḷyaṇi" #: DB:work_attribute_type_allowed_value/value:108 msgctxt "work_attribute_type_allowed_value" msgid "Harikāmbhōji" -msgstr "" +msgstr "Harikāmbhōji" #: DB:work_attribute_type_allowed_value/value:105 msgctxt "work_attribute_type_allowed_value" msgid "Haṁsanādaṁ" -msgstr "" +msgstr "Haṁsanādaṁ" #: DB:work_attribute_type_allowed_value/value:106 msgctxt "work_attribute_type_allowed_value" msgid "Haṁsānandi" -msgstr "" +msgstr "Haṁsānandi" #: DB:work_attribute_type_allowed_value/value:112 msgctxt "work_attribute_type_allowed_value" msgid "Hindustān gāndhāri" -msgstr "" +msgstr "Hindustān gāndhāri" #: DB:work_attribute_type_allowed_value/value:110 msgctxt "work_attribute_type_allowed_value" msgid "Hindōḷa vasantaṁ" -msgstr "" +msgstr "Hindōḷa vasantaṁ" #: DB:work_attribute_type_allowed_value/value:111 msgctxt "work_attribute_type_allowed_value" msgid "Hindōḷaṁ" -msgstr "" +msgstr "Hindōḷaṁ" #: DB:label_type/name:2 msgctxt "label_type" @@ -866,7 +891,7 @@ msgstr "Holding" #: DB:work_attribute_type_allowed_value/value:113 msgctxt "work_attribute_type_allowed_value" msgid "Hussēnī" -msgstr "" +msgstr "Hussēnī" #: DB:medium_format/name:38 msgctxt "medium_format" @@ -876,7 +901,7 @@ msgstr "Hybrid-SACD" #: DB:work_attribute_type_allowed_value/value:109 msgctxt "work_attribute_type_allowed_value" msgid "Hēmavati" -msgstr "" +msgstr "Hēmavati" #: DB:label_type/name:9 msgctxt "label_type" @@ -896,32 +921,32 @@ msgstr "Interview" #: DB:work_attribute_type/name:3 msgctxt "work_attribute_type" msgid "JASRAC ID" -msgstr "" +msgstr "JASRAC-ID" #: DB:work_attribute_type_allowed_value/value:114 msgctxt "work_attribute_type_allowed_value" msgid "Jaganmōhini" -msgstr "" +msgstr "Jaganmōhini" #: DB:work_attribute_type_allowed_value/value:115 msgctxt "work_attribute_type_allowed_value" msgid "Janaranjani" -msgstr "" +msgstr "Janaranjani" #: DB:work_attribute_type_allowed_value/value:116 msgctxt "work_attribute_type_allowed_value" msgid "Jaya manōhari" -msgstr "" +msgstr "Jaya manōhari" #: DB:work_attribute_type_allowed_value/value:117 msgctxt "work_attribute_type_allowed_value" msgid "Jayantasēna" -msgstr "" +msgstr "Jayantasēna" #: DB:work_attribute_type_allowed_value/value:118 msgctxt "work_attribute_type_allowed_value" msgid "Jayantaśrī" -msgstr "" +msgstr "Jayantaśrī" #: DB:release_packaging/name:1 msgctxt "release_packaging" @@ -931,117 +956,122 @@ msgstr "Jewelcase" #: DB:work_attribute_type_allowed_value/value:119 msgctxt "work_attribute_type_allowed_value" msgid "Jhankāradhvani" -msgstr "" +msgstr "Jhankāradhvani" #: DB:work_attribute_type_allowed_value/value:120 msgctxt "work_attribute_type_allowed_value" msgid "Jingala" -msgstr "" +msgstr "Jingala" #: DB:work_attribute_type_allowed_value/value:124 msgctxt "work_attribute_type_allowed_value" msgid "Jyōti svarūpiṇi" -msgstr "" +msgstr "Jyōti svarūpiṇi" #: DB:work_attribute_type_allowed_value/value:121 msgctxt "work_attribute_type_allowed_value" msgid "Jōg" -msgstr "" +msgstr "Jōg" #: DB:work_attribute_type_allowed_value/value:122 msgctxt "work_attribute_type_allowed_value" msgid "Jōgiya" -msgstr "" +msgstr "Jōgiya" #: DB:work_attribute_type_allowed_value/value:123 msgctxt "work_attribute_type_allowed_value" msgid "Jōnpuri" -msgstr "" +msgstr "Jōnpuri" + +#: DB:work_attribute_type/name:11 +msgctxt "work_attribute_type" +msgid "KOMCA ID" +msgstr "KOMCA-ID" #: DB:work_attribute_type_allowed_value/value:128 msgctxt "work_attribute_type_allowed_value" msgid "Kalgaḍa" -msgstr "" +msgstr "Kalgaḍa" #: DB:work_attribute_type_allowed_value/value:130 msgctxt "work_attribute_type_allowed_value" msgid "Kalyāṇi" -msgstr "" +msgstr "Kalyāṇi" #: DB:work_attribute_type_allowed_value/value:127 msgctxt "work_attribute_type_allowed_value" msgid "Kalāvati" -msgstr "" +msgstr "Kalāvati" #: DB:work_attribute_type_allowed_value/value:131 msgctxt "work_attribute_type_allowed_value" msgid "Kamalāmanōhari" -msgstr "" +msgstr "Kamalāmanōhari" #: DB:work_attribute_type_allowed_value/value:133 msgctxt "work_attribute_type_allowed_value" msgid "Kamās" -msgstr "" +msgstr "Kamās" #: DB:work_attribute_type_allowed_value/value:137 msgctxt "work_attribute_type_allowed_value" msgid "Kannaḍa gaula" -msgstr "" +msgstr "Kannaḍa gaula" #: DB:work_attribute_type_allowed_value/value:141 msgctxt "work_attribute_type_allowed_value" msgid "Karaharapriya" -msgstr "" +msgstr "Karaharapriya" #: DB:work_attribute_type_allowed_value/value:142 msgctxt "work_attribute_type_allowed_value" msgid "Karṇaranjani" -msgstr "" +msgstr "Karṇaranjani" #: DB:work_attribute_type_allowed_value/value:143 msgctxt "work_attribute_type_allowed_value" msgid "Karṇāṭaka behāg" -msgstr "" +msgstr "Karṇāṭaka behāg" #: DB:work_attribute_type_allowed_value/value:144 msgctxt "work_attribute_type_allowed_value" msgid "Karṇāṭaka dēvagāndhāri" -msgstr "" +msgstr "Karṇāṭaka dēvagāndhāri" #: DB:work_attribute_type_allowed_value/value:145 msgctxt "work_attribute_type_allowed_value" msgid "Karṇāṭaka kāpi" -msgstr "" +msgstr "Karṇāṭaka kāpi" #: DB:work_attribute_type_allowed_value/value:146 msgctxt "work_attribute_type_allowed_value" msgid "Karṇāṭaka śudda sāvēri" -msgstr "" +msgstr "Karṇāṭaka śudda sāvēri" #: DB:work_attribute_type_allowed_value/value:147 msgctxt "work_attribute_type_allowed_value" msgid "Kathanakutūhalaṁ" -msgstr "" +msgstr "Kathanakutūhalaṁ" #: DB:work_attribute_type_allowed_value/value:129 msgctxt "work_attribute_type_allowed_value" msgid "Kaḷyāṇa vasantaṁ" -msgstr "" +msgstr "Kaḷyāṇa vasantaṁ" #: DB:work_attribute_type_allowed_value/value:125 msgctxt "work_attribute_type_allowed_value" msgid "Kaḷā sāvēri" -msgstr "" +msgstr "Kaḷā sāvēri" #: DB:work_attribute_type_allowed_value/value:126 msgctxt "work_attribute_type_allowed_value" msgid "Kaḷānidhi" -msgstr "" +msgstr "Kaḷānidhi" #: DB:work_attribute_type_allowed_value/value:150 msgctxt "work_attribute_type_allowed_value" msgid "Kedāraṁ" -msgstr "" +msgstr "Kedāraṁ" #: DB:release_packaging/name:6 msgctxt "release_packaging" @@ -1051,97 +1081,97 @@ msgstr "Keep-Case" #: DB:work_attribute_type/name:1 msgctxt "work_attribute_type" msgid "Key" -msgstr "" +msgstr "Tonart" #: DB:work_attribute_type_allowed_value/value:282 msgctxt "work_attribute_type_allowed_value" msgid "Khaṇḍa chāpu" -msgstr "" +msgstr "Khaṇḍa chāpu" #: DB:work_attribute_type_allowed_value/value:293 msgctxt "work_attribute_type_allowed_value" msgid "Khaṇḍa-jāti tripuṭa" -msgstr "" +msgstr "Khaṇḍa-jāti tripuṭa" #: DB:work_attribute_type_allowed_value/value:294 msgctxt "work_attribute_type_allowed_value" msgid "Khaṇḍa-jāti ēka" -msgstr "" +msgstr "Khaṇḍa-jāti ēka" #: DB:work_attribute_type_allowed_value/value:155 msgctxt "work_attribute_type_allowed_value" msgid "Kuntalavarāḷi" -msgstr "" +msgstr "Kuntalavarāḷi" #: DB:work_attribute_type_allowed_value/value:156 msgctxt "work_attribute_type_allowed_value" msgid "Kurinji" -msgstr "" +msgstr "Kurinji" #: DB:work_attribute_type_allowed_value/value:132 msgctxt "work_attribute_type_allowed_value" msgid "Kāmaranjani" -msgstr "" +msgstr "Kāmaranjani" #: DB:work_attribute_type_allowed_value/value:134 msgctxt "work_attribute_type_allowed_value" msgid "Kāmavardani/Pantuvarāḷi" -msgstr "" +msgstr "Kāmavardani/Pantuvarāḷi" #: DB:work_attribute_type_allowed_value/value:136 msgctxt "work_attribute_type_allowed_value" msgid "Kānaḍa" -msgstr "" +msgstr "Kānaḍa" #: DB:work_attribute_type_allowed_value/value:138 msgctxt "work_attribute_type_allowed_value" msgid "Kāntāmaṇi" -msgstr "" +msgstr "Kāntāmaṇi" #: DB:work_attribute_type_allowed_value/value:139 msgctxt "work_attribute_type_allowed_value" msgid "Kāpi" -msgstr "" +msgstr "Kāpi" #: DB:work_attribute_type_allowed_value/value:140 msgctxt "work_attribute_type_allowed_value" msgid "Kāpi nārāyaṇi" -msgstr "" +msgstr "Kāpi nārāyaṇi" #: DB:work_attribute_type_allowed_value/value:148 msgctxt "work_attribute_type_allowed_value" msgid "Kāvaḍicindu" -msgstr "" +msgstr "Kāvaḍicindu" #: DB:work_attribute_type_allowed_value/value:135 msgctxt "work_attribute_type_allowed_value" msgid "Kāṁbhōji" -msgstr "" +msgstr "Kāṁbhōji" #: DB:work_attribute_type_allowed_value/value:149 msgctxt "work_attribute_type_allowed_value" msgid "Kēdāragauḷa" -msgstr "" +msgstr "Kēdāragauḷa" #: DB:work_attribute_type_allowed_value/value:152 msgctxt "work_attribute_type_allowed_value" msgid "Kīravāṇi" -msgstr "" +msgstr "Kīravāṇi" #: DB:work_attribute_type_allowed_value/value:151 msgctxt "work_attribute_type_allowed_value" msgid "Kīraṇāvaḷi" -msgstr "" +msgstr "Kīraṇāvaḷi" #: DB:work_attribute_type_allowed_value/value:153 msgctxt "work_attribute_type_allowed_value" msgid "Kōkiladhvani" -msgstr "" +msgstr "Kōkiladhvani" #: DB:work_attribute_type_allowed_value/value:154 msgctxt "work_attribute_type_allowed_value" msgid "Kōkilapriya" -msgstr "" +msgstr "Kōkilapriya" #: DB:label_alias_type/name:1 msgctxt "alias_type" @@ -1151,12 +1181,12 @@ msgstr "Labelname" #: DB:work_attribute_type_allowed_value/value:157 msgctxt "work_attribute_type_allowed_value" msgid "Lalita" -msgstr "" +msgstr "Lalita" #: DB:work_attribute_type_allowed_value/value:158 msgctxt "work_attribute_type_allowed_value" msgid "Lalita pancamaṁ" -msgstr "" +msgstr "Lalita pancamaṁ" #: DB:medium_format/name:5 msgctxt "medium_format" @@ -1166,12 +1196,12 @@ msgstr "LaserDisc" #: DB:work_attribute_type_allowed_value/value:159 msgctxt "work_attribute_type_allowed_value" msgid "Latāngi" -msgstr "" +msgstr "Latāngi" #: DB:work_attribute_type_allowed_value/value:160 msgctxt "work_attribute_type_allowed_value" msgid "Lavāngi" -msgstr "" +msgstr "Lavāngi" #: DB:artist_alias_type/name:2 msgctxt "alias_type" @@ -1191,17 +1221,17 @@ msgstr "Live" #: DB:work_attribute_type_allowed_value/value:161 msgctxt "work_attribute_type_allowed_value" msgid "Madhyamā varāḷi" -msgstr "" +msgstr "Madhyamā varāḷi" #: DB:work_attribute_type_allowed_value/value:162 msgctxt "work_attribute_type_allowed_value" msgid "Madhyamāvati" -msgstr "" +msgstr "Madhyamāvati" #: DB:work_attribute_type_allowed_value/value:295 msgctxt "work_attribute_type_allowed_value" msgid "Madhyādi" -msgstr "" +msgstr "Madhyādi" #: DB:work_type/name:7 msgctxt "work_type" @@ -1211,22 +1241,22 @@ msgstr "Madrigal" #: DB:work_attribute_type_allowed_value/value:163 msgctxt "work_attribute_type_allowed_value" msgid "Maduvanti" -msgstr "" +msgstr "Maduvanti" #: DB:work_attribute_type_allowed_value/value:296 msgctxt "work_attribute_type_allowed_value" msgid "Mahālakṣmi" -msgstr "" +msgstr "Mahālakṣmi" #: DB:work_attribute_type_allowed_value/value:164 msgctxt "work_attribute_type_allowed_value" msgid "Malahari" -msgstr "" +msgstr "Malahari" #: DB:work_attribute_type_allowed_value/value:166 msgctxt "work_attribute_type_allowed_value" msgid "Malayamārutaṁ" -msgstr "" +msgstr "Malayamārutaṁ" #: DB:gender/name:1 msgctxt "gender" @@ -1236,12 +1266,12 @@ msgstr "Männlich" #: DB:work_attribute_type_allowed_value/value:168 msgctxt "work_attribute_type_allowed_value" msgid "Mandāri" -msgstr "" +msgstr "Mandāri" #: DB:work_attribute_type_allowed_value/value:172 msgctxt "work_attribute_type_allowed_value" msgid "Manōranjani" -msgstr "" +msgstr "Manōranjani" #: DB:work_type/name:8 msgctxt "work_type" @@ -1251,17 +1281,17 @@ msgstr "Messe" #: DB:work_attribute_type_allowed_value/value:175 msgctxt "work_attribute_type_allowed_value" msgid "Mayūra sāvēri" -msgstr "" +msgstr "Mayūra sāvēri" #: DB:work_attribute_type_allowed_value/value:170 msgctxt "work_attribute_type_allowed_value" msgid "Maṇirangu" -msgstr "" +msgstr "Maṇirangu" #: DB:work_attribute_type_allowed_value/value:286 msgctxt "work_attribute_type_allowed_value" msgid "Maṭhya" -msgstr "" +msgstr "Maṭhya" #: DB:cover_art_archive.art_type/name:4 msgctxt "cover_art_type" @@ -1271,7 +1301,7 @@ msgstr "Medium" #: DB:work_attribute_type_allowed_value/value:176 msgctxt "work_attribute_type_allowed_value" msgid "Meghamalhar" -msgstr "" +msgstr "Meghamalhar" #: DB:medium_format/name:6 msgctxt "medium_format" @@ -1286,37 +1316,37 @@ msgstr "Mixtape/Street" #: DB:work_attribute_type_allowed_value/value:281 msgctxt "work_attribute_type_allowed_value" msgid "Miśra chāpu" -msgstr "" +msgstr "Miśra chāpu" #: DB:work_attribute_type_allowed_value/value:177 msgctxt "work_attribute_type_allowed_value" msgid "Miśra khamāj" -msgstr "" +msgstr "Miśra khamāj" #: DB:work_attribute_type_allowed_value/value:178 msgctxt "work_attribute_type_allowed_value" msgid "Miśra pahāḍi" -msgstr "" +msgstr "Miśra pahāḍi" #: DB:work_attribute_type_allowed_value/value:180 msgctxt "work_attribute_type_allowed_value" msgid "Miśra yaman" -msgstr "" +msgstr "Miśra yaman" #: DB:work_attribute_type_allowed_value/value:179 msgctxt "work_attribute_type_allowed_value" msgid "Miśra śivaranjani" -msgstr "" +msgstr "Miśra śivaranjani" #: DB:work_attribute_type_allowed_value/value:287 msgctxt "work_attribute_type_allowed_value" msgid "Miśra-jāti jhaṁpe" -msgstr "" +msgstr "Miśra-jāti jhaṁpe" #: DB:work_attribute_type_allowed_value/value:297 msgctxt "work_attribute_type_allowed_value" msgid "Miśra-jāti rūpaka" -msgstr "" +msgstr "Miśra-jāti rūpaka" #: DB:work_type/name:9 msgctxt "work_type" @@ -1326,87 +1356,92 @@ msgstr "Motette" #: DB:work_attribute_type_allowed_value/value:183 msgctxt "work_attribute_type_allowed_value" msgid "Mukhāri" -msgstr "" +msgstr "Mukhāri" #: DB:area_type/name:4 msgctxt "area_type" msgid "Municipality" msgstr "Gemeinde" +#: DB:work_attribute_type/name:12 +msgctxt "work_attribute_type" +msgid "MÜST ID" +msgstr "MÜST-ID" + #: DB:work_attribute_type_allowed_value/value:167 msgctxt "work_attribute_type_allowed_value" msgid "Mānavati" -msgstr "" +msgstr "Mānavati" #: DB:work_attribute_type_allowed_value/value:171 msgctxt "work_attribute_type_allowed_value" msgid "Mānji" -msgstr "" +msgstr "Mānji" #: DB:work_attribute_type_allowed_value/value:169 msgctxt "work_attribute_type_allowed_value" msgid "Mānḍu" -msgstr "" +msgstr "Mānḍu" #: DB:work_attribute_type_allowed_value/value:173 msgctxt "work_attribute_type_allowed_value" msgid "Mārgahindōḷaṁ" -msgstr "" +msgstr "Mārgahindōḷaṁ" #: DB:work_attribute_type_allowed_value/value:174 msgctxt "work_attribute_type_allowed_value" msgid "Māyāmāḷavagauḷa" -msgstr "" +msgstr "Māyāmāḷavagauḷa" #: DB:work_attribute_type_allowed_value/value:165 msgctxt "work_attribute_type_allowed_value" msgid "Māḷavi" -msgstr "" +msgstr "Māḷavi" #: DB:work_attribute_type_allowed_value/value:181 msgctxt "work_attribute_type_allowed_value" msgid "Mōhan kaḷyāṇi" -msgstr "" +msgstr "Mōhan kaḷyāṇi" #: DB:work_attribute_type_allowed_value/value:182 msgctxt "work_attribute_type_allowed_value" msgid "Mōhanaṁ" -msgstr "" +msgstr "Mōhanaṁ" #: DB:work_attribute_type_allowed_value/value:196 msgctxt "work_attribute_type_allowed_value" msgid "Navarasa kannaḍa" -msgstr "" +msgstr "Navarasa kannaḍa" #: DB:work_attribute_type_allowed_value/value:195 msgctxt "work_attribute_type_allowed_value" msgid "Navarāgamālika" -msgstr "" +msgstr "Navarāgamālika" #: DB:work_attribute_type_allowed_value/value:197 msgctxt "work_attribute_type_allowed_value" msgid "Navrōj" -msgstr "" +msgstr "Navrōj" #: DB:work_attribute_type_allowed_value/value:187 msgctxt "work_attribute_type_allowed_value" msgid "Naḷinakānti" -msgstr "" +msgstr "Naḷinakānti" #: DB:work_attribute_type_allowed_value/value:191 msgctxt "work_attribute_type_allowed_value" msgid "Naṭabhairavi" -msgstr "" +msgstr "Naṭabhairavi" #: DB:work_attribute_type_allowed_value/value:194 msgctxt "work_attribute_type_allowed_value" msgid "Naṭanārāyaṇi" -msgstr "" +msgstr "Naṭanārāyaṇi" #: DB:work_attribute_type_allowed_value/value:200 msgctxt "work_attribute_type_allowed_value" msgid "Nirōṣita" -msgstr "" +msgstr "Nirōṣita" #: DB:release_packaging/name:7 msgctxt "release_packaging" @@ -1416,52 +1451,52 @@ msgstr "Keine" #: DB:work_attribute_type_allowed_value/value:184 msgctxt "work_attribute_type_allowed_value" msgid "Nādanāmakriya" -msgstr "" +msgstr "Nādanāmakriya" #: DB:work_attribute_type_allowed_value/value:185 msgctxt "work_attribute_type_allowed_value" msgid "Nāga gāndhāri" -msgstr "" +msgstr "Nāga gāndhāri" #: DB:work_attribute_type_allowed_value/value:186 msgctxt "work_attribute_type_allowed_value" msgid "Nāgasvarāvaḷi" -msgstr "" +msgstr "Nāgasvarāvaḷi" #: DB:work_attribute_type_allowed_value/value:188 msgctxt "work_attribute_type_allowed_value" msgid "Nārāyaṇi" -msgstr "" +msgstr "Nārāyaṇi" #: DB:work_attribute_type_allowed_value/value:189 msgctxt "work_attribute_type_allowed_value" msgid "Nāsikabhūṣaṇi" -msgstr "" +msgstr "Nāsikabhūṣaṇi" #: DB:work_attribute_type_allowed_value/value:198 msgctxt "work_attribute_type_allowed_value" msgid "Nāyaki" -msgstr "" +msgstr "Nāyaki" #: DB:work_attribute_type_allowed_value/value:190 msgctxt "work_attribute_type_allowed_value" msgid "Nāṭa" -msgstr "" +msgstr "Nāṭa" #: DB:work_attribute_type_allowed_value/value:192 msgctxt "work_attribute_type_allowed_value" msgid "Nāṭakapriya" -msgstr "" +msgstr "Nāṭakapriya" #: DB:work_attribute_type_allowed_value/value:193 msgctxt "work_attribute_type_allowed_value" msgid "Nāṭakurinji" -msgstr "" +msgstr "Nāṭakurinji" #: DB:work_attribute_type_allowed_value/value:199 msgctxt "work_attribute_type_allowed_value" msgid "Nīlāṁbari" -msgstr "" +msgstr "Nīlāṁbari" #: DB:cover_art_archive.art_type/name:5 msgctxt "cover_art_type" @@ -1491,7 +1526,7 @@ msgstr "Oratorium" #: DB:artist_type/name:5 msgctxt "artist_type" msgid "Orchestra" -msgstr "" +msgstr "Orchester" #: DB:label_type/name:4 msgctxt "label_type" @@ -1541,7 +1576,7 @@ msgstr "Ouvertüre" #: DB:work_attribute_type_allowed_value/value:203 msgctxt "work_attribute_type_allowed_value" msgid "Paras" -msgstr "" +msgstr "Paras" #: DB:work_type/name:13 msgctxt "work_type" @@ -1551,7 +1586,7 @@ msgstr "Partita" #: DB:work_attribute_type_allowed_value/value:204 msgctxt "work_attribute_type_allowed_value" msgid "Paṭdīp" -msgstr "" +msgstr "Paṭdīp" #: DB:artist_type/name:1 msgctxt "artist_type" @@ -1606,37 +1641,37 @@ msgstr "Herausgeber" #: DB:work_attribute_type_allowed_value/value:205 msgctxt "work_attribute_type_allowed_value" msgid "Puṇṇāgavarāḷi" -msgstr "" +msgstr "Puṇṇāgavarāḷi" #: DB:work_attribute_type_allowed_value/value:209 msgctxt "work_attribute_type_allowed_value" msgid "Puṣpalatika" -msgstr "" +msgstr "Puṣpalatika" #: DB:work_attribute_type_allowed_value/value:202 msgctxt "work_attribute_type_allowed_value" msgid "Pālamanjari" -msgstr "" +msgstr "Pālamanjari" #: DB:work_attribute_type_allowed_value/value:201 msgctxt "work_attribute_type_allowed_value" msgid "Pāḍi" -msgstr "" +msgstr "Pāḍi" #: DB:work_attribute_type_allowed_value/value:208 msgctxt "work_attribute_type_allowed_value" msgid "Pūrvi" -msgstr "" +msgstr "Pūrvi" #: DB:work_attribute_type_allowed_value/value:206 msgctxt "work_attribute_type_allowed_value" msgid "Pūrṇa ṣaḍjaṁ" -msgstr "" +msgstr "Pūrṇa ṣaḍjaṁ" #: DB:work_attribute_type_allowed_value/value:207 msgctxt "work_attribute_type_allowed_value" msgid "Pūrṇacandrika" -msgstr "" +msgstr "Pūrṇacandrika" #: DB:work_type/name:14 msgctxt "work_type" @@ -1646,22 +1681,22 @@ msgstr "Quartett" #: DB:work_attribute_type_allowed_value/value:215 msgctxt "work_attribute_type_allowed_value" msgid "Ranjani" -msgstr "" +msgstr "Ranjani" #: DB:work_attribute_type_allowed_value/value:216 msgctxt "work_attribute_type_allowed_value" msgid "Rasikapriya" -msgstr "" +msgstr "Rasikapriya" #: DB:work_attribute_type_allowed_value/value:217 msgctxt "work_attribute_type_allowed_value" msgid "Ratipati priya" -msgstr "" +msgstr "Ratipati priya" #: DB:work_attribute_type_allowed_value/value:218 msgctxt "work_attribute_type_allowed_value" msgid "Ravicandrika" -msgstr "" +msgstr "Ravicandrika" #: DB:medium_format/name:10 msgctxt "medium_format" @@ -1686,68 +1721,78 @@ msgstr "Verwertungsgesellschaft" #: DB:work_attribute_type_allowed_value/value:222 msgctxt "work_attribute_type_allowed_value" msgid "Rudrapriya" -msgstr "" +msgstr "Rudrapriya" #: DB:work_attribute_type/name:4 msgctxt "work_attribute_type" msgid "Rāga (Carnatic)" -msgstr "" +msgstr "Raga (karnatisch)" #: DB:work_attribute_type_allowed_value/value:210 msgctxt "work_attribute_type_allowed_value" msgid "Rāgamālika" -msgstr "" +msgstr "Rāgamālika" #: DB:work_attribute_type_allowed_value/value:211 msgctxt "work_attribute_type_allowed_value" msgid "Rāgavinōdini" -msgstr "" +msgstr "Rāgavinōdini" #: DB:work_attribute_type_allowed_value/value:212 msgctxt "work_attribute_type_allowed_value" msgid "Rāgēśrī" -msgstr "" +msgstr "Rāgēśrī" #: DB:work_attribute_type_allowed_value/value:213 msgctxt "work_attribute_type_allowed_value" msgid "Rāma manōhari" -msgstr "" +msgstr "Rāma manōhari" #: DB:work_attribute_type_allowed_value/value:214 msgctxt "work_attribute_type_allowed_value" msgid "Rāmapriya" -msgstr "" +msgstr "Rāmapriya" #: DB:work_attribute_type_allowed_value/value:219 msgctxt "work_attribute_type_allowed_value" msgid "Rēvagupti" -msgstr "" +msgstr "Rēvagupti" #: DB:work_attribute_type_allowed_value/value:220 msgctxt "work_attribute_type_allowed_value" msgid "Rēvati" -msgstr "" +msgstr "Rēvati" #: DB:work_attribute_type_allowed_value/value:221 msgctxt "work_attribute_type_allowed_value" msgid "Rītigauḷa" -msgstr "" +msgstr "Rītigauḷa" #: DB:work_attribute_type_allowed_value/value:280 msgctxt "work_attribute_type_allowed_value" msgid "Rūpaka" -msgstr "" +msgstr "Rūpaka" #: DB:medium_format/name:3 msgctxt "medium_format" msgid "SACD" msgstr "SACD" +#: DB:work_attribute_type/name:8 +msgctxt "work_attribute_type" +msgid "SESAC ID" +msgstr "SESAC-ID" + #: DB:medium_format/name:36 msgctxt "medium_format" msgid "SHM-CD" msgstr "SHM-CD" +#: DB:work_attribute_type/name:10 +msgctxt "work_attribute_type" +msgid "SOCAN ID" +msgstr "SOCAN-ID" + #: DB:medium_format/name:23 msgctxt "medium_format" msgid "SVCD" @@ -1756,27 +1801,27 @@ msgstr "SVCD" #: DB:work_attribute_type_allowed_value/value:223 msgctxt "work_attribute_type_allowed_value" msgid "Sahānā" -msgstr "" +msgstr "Sahānā" #: DB:work_attribute_type_allowed_value/value:231 msgctxt "work_attribute_type_allowed_value" msgid "Sarasvati" -msgstr "" +msgstr "Sarasvati" #: DB:work_attribute_type_allowed_value/value:232 msgctxt "work_attribute_type_allowed_value" msgid "Sarasvatī manōhari" -msgstr "" +msgstr "Sarasvatī manōhari" #: DB:work_attribute_type_allowed_value/value:230 msgctxt "work_attribute_type_allowed_value" msgid "Sarasāngi" -msgstr "" +msgstr "Sarasāngi" #: DB:work_attribute_type_allowed_value/value:233 msgctxt "work_attribute_type_allowed_value" msgid "Saurāṣtraṁ" -msgstr "" +msgstr "Saurāṣtraṁ" #: DB:artist_alias_type/name:3 DB:label_alias_type/name:2 #: DB:place_alias_type/name:2 DB:work_alias_type/name:2 @@ -1788,27 +1833,27 @@ msgstr "Suchverbesserung" #: DB:work_attribute_type_allowed_value/value:235 msgctxt "work_attribute_type_allowed_value" msgid "Sencuruṭṭi" -msgstr "" +msgstr "Sencuruṭṭi" #: DB:work_attribute_type_allowed_value/value:236 msgctxt "work_attribute_type_allowed_value" msgid "Simhavāhini" -msgstr "" +msgstr "Simhavāhini" #: DB:work_attribute_type_allowed_value/value:237 msgctxt "work_attribute_type_allowed_value" msgid "Simhēndra madhyamaṁ" -msgstr "" +msgstr "Simhēndra madhyamaṁ" #: DB:work_attribute_type_allowed_value/value:238 msgctxt "work_attribute_type_allowed_value" msgid "Sindhubhairavi" -msgstr "" +msgstr "Sindhubhairavi" #: DB:work_attribute_type_allowed_value/value:239 msgctxt "work_attribute_type_allowed_value" msgid "Sindhumandāri" -msgstr "" +msgstr "Sindhumandāri" #: DB:release_group_primary_type/name:2 msgctxt "release_group_primary_type" @@ -1883,7 +1928,7 @@ msgstr "Verwaltungseinheit" #: DB:work_attribute_type_allowed_value/value:244 msgctxt "work_attribute_type_allowed_value" msgid "Sucaritra" -msgstr "" +msgstr "Sucaritra" #: DB:work_type/name:6 msgctxt "work_type" @@ -1893,22 +1938,22 @@ msgstr "Suite" #: DB:work_attribute_type_allowed_value/value:250 msgctxt "work_attribute_type_allowed_value" msgid "Sumanēśaranjani" -msgstr "" +msgstr "Sumanēśaranjani" #: DB:work_attribute_type_allowed_value/value:251 msgctxt "work_attribute_type_allowed_value" msgid "Sunādavinōdini" -msgstr "" +msgstr "Sunādavinōdini" #: DB:work_attribute_type_allowed_value/value:252 msgctxt "work_attribute_type_allowed_value" msgid "Suraṭi" -msgstr "" +msgstr "Suraṭi" #: DB:work_attribute_type_allowed_value/value:253 msgctxt "work_attribute_type_allowed_value" msgid "Svararanjani" -msgstr "" +msgstr "Svararanjani" #: DB:work_type/name:18 msgctxt "work_type" @@ -1923,47 +1968,47 @@ msgstr "Sinfonie" #: DB:work_attribute_type_allowed_value/value:224 msgctxt "work_attribute_type_allowed_value" msgid "Sālaga bhairavi" -msgstr "" +msgstr "Sālaga bhairavi" #: DB:work_attribute_type_allowed_value/value:225 msgctxt "work_attribute_type_allowed_value" msgid "Sāma" -msgstr "" +msgstr "Sāma" #: DB:work_attribute_type_allowed_value/value:229 msgctxt "work_attribute_type_allowed_value" msgid "Sāranga" -msgstr "" +msgstr "Sāranga" #: DB:work_attribute_type_allowed_value/value:228 msgctxt "work_attribute_type_allowed_value" msgid "Sārāmati" -msgstr "" +msgstr "Sārāmati" #: DB:work_attribute_type_allowed_value/value:234 msgctxt "work_attribute_type_allowed_value" msgid "Sāvēri" -msgstr "" +msgstr "Sāvēri" #: DB:work_attribute_type_allowed_value/value:255 msgctxt "work_attribute_type_allowed_value" msgid "Tanarūpi" -msgstr "" +msgstr "Tanarūpi" #: DB:work_attribute_type_allowed_value/value:256 msgctxt "work_attribute_type_allowed_value" msgid "Tillāng" -msgstr "" +msgstr "Tillāng" #: DB:work_attribute_type_allowed_value/value:288 msgctxt "work_attribute_type_allowed_value" msgid "Tiśra-jāti tripuṭa" -msgstr "" +msgstr "Tiśra-jāti tripuṭa" #: DB:work_attribute_type_allowed_value/value:284 msgctxt "work_attribute_type_allowed_value" msgid "Tiśra-jāti ēka" -msgstr "" +msgstr "Tiśra-jāti ēka" #: DB:cover_art_archive.art_type/name:7 msgctxt "cover_art_type" @@ -1978,12 +2023,12 @@ msgstr "Tray" #: DB:work_attribute_type/name:5 msgctxt "work_attribute_type" msgid "Tāla (Carnatic)" -msgstr "" +msgstr "Tala (karnatisch)" #: DB:work_attribute_type_allowed_value/value:257 msgctxt "work_attribute_type_allowed_value" msgid "Tōḍi" -msgstr "" +msgstr "Tōḍi" #: DB:medium_format/name:28 msgctxt "medium_format" @@ -1998,7 +2043,7 @@ msgstr "USB-Stick" #: DB:work_attribute_type_allowed_value/value:258 msgctxt "work_attribute_type_allowed_value" msgid "Udaya ravicandrika" -msgstr "" +msgstr "Udaya ravicandrika" #: DB:medium_format/name:22 msgctxt "medium_format" @@ -2013,47 +2058,47 @@ msgstr "VHS" #: DB:work_attribute_type_allowed_value/value:261 msgctxt "work_attribute_type_allowed_value" msgid "Vakuḷābharaṇaṁ" -msgstr "" +msgstr "Vakuḷābharaṇaṁ" #: DB:work_attribute_type_allowed_value/value:262 msgctxt "work_attribute_type_allowed_value" msgid "Valaji" -msgstr "" +msgstr "Valaji" #: DB:work_attribute_type_allowed_value/value:263 msgctxt "work_attribute_type_allowed_value" msgid "Vandanadhāriṇi" -msgstr "" +msgstr "Vandanadhāriṇi" #: DB:work_attribute_type_allowed_value/value:265 msgctxt "work_attribute_type_allowed_value" msgid "Varamu" -msgstr "" +msgstr "Varamu" #: DB:work_attribute_type_allowed_value/value:264 msgctxt "work_attribute_type_allowed_value" msgid "Varāḷi" -msgstr "" +msgstr "Varāḷi" #: DB:work_attribute_type_allowed_value/value:266 msgctxt "work_attribute_type_allowed_value" msgid "Varṇarūpini" -msgstr "" +msgstr "Varṇarūpini" #: DB:work_attribute_type_allowed_value/value:267 msgctxt "work_attribute_type_allowed_value" msgid "Vasanta" -msgstr "" +msgstr "Vasanta" #: DB:work_attribute_type_allowed_value/value:268 msgctxt "work_attribute_type_allowed_value" msgid "Vasanta varāḷi" -msgstr "" +msgstr "Vasanta varāḷi" #: DB:work_attribute_type_allowed_value/value:269 msgctxt "work_attribute_type_allowed_value" msgid "Vasantabhairavi" -msgstr "" +msgstr "Vasantabhairavi" #: DB:place_type/name:2 msgctxt "place_type" @@ -2068,17 +2113,17 @@ msgstr "Videokassette" #: DB:work_attribute_type_allowed_value/value:273 msgctxt "work_attribute_type_allowed_value" msgid "Vijayanagari" -msgstr "" +msgstr "Vijayanagari" #: DB:work_attribute_type_allowed_value/value:274 msgctxt "work_attribute_type_allowed_value" msgid "Vijayasarasvati" -msgstr "" +msgstr "Vijayasarasvati" #: DB:work_attribute_type_allowed_value/value:275 msgctxt "work_attribute_type_allowed_value" msgid "Vijayaśrī" -msgstr "" +msgstr "Vijayaśrī" #: DB:medium_format/name:7 msgctxt "medium_format" @@ -2088,37 +2133,37 @@ msgstr "Vinyl" #: DB:work_attribute_type_allowed_value/value:259 msgctxt "work_attribute_type_allowed_value" msgid "Vācaspati" -msgstr "" +msgstr "Vācaspati" #: DB:work_attribute_type_allowed_value/value:260 msgctxt "work_attribute_type_allowed_value" msgid "Vāgadīśvari" -msgstr "" +msgstr "Vāgadīśvari" #: DB:work_attribute_type_allowed_value/value:270 msgctxt "work_attribute_type_allowed_value" msgid "Vāsanti" -msgstr "" +msgstr "Vāsanti" #: DB:work_attribute_type_allowed_value/value:271 msgctxt "work_attribute_type_allowed_value" msgid "Vēgavāhiṇi" -msgstr "" +msgstr "Vēgavāhiṇi" #: DB:work_attribute_type_allowed_value/value:272 msgctxt "work_attribute_type_allowed_value" msgid "Vēlāvali" -msgstr "" +msgstr "Vēlāvali" #: DB:work_attribute_type_allowed_value/value:276 msgctxt "work_attribute_type_allowed_value" msgid "Vīra vasantaṁ" -msgstr "" +msgstr "Vīra vasantaṁ" #: DB:cover_art_archive.art_type/name:13 msgctxt "cover_art_type" msgid "Watermark" -msgstr "" +msgstr "Wasserzeichen" #: DB:medium_format/name:14 msgctxt "medium_format" @@ -2133,12 +2178,12 @@ msgstr "Werkname" #: DB:work_attribute_type_allowed_value/value:277 msgctxt "work_attribute_type_allowed_value" msgid "Yadukula kāṁbōji" -msgstr "" +msgstr "Yadukula kāṁbōji" #: DB:work_attribute_type_allowed_value/value:278 msgctxt "work_attribute_type_allowed_value" msgid "Yamuna kalyāṇi" -msgstr "" +msgstr "Yamuna kalyāṇi" #: DB:work_type/name:19 msgctxt "work_type" @@ -2158,109 +2203,109 @@ msgstr "Etüde" #: DB:work_attribute_type_allowed_value/value:35 msgctxt "work_attribute_type_allowed_value" msgid "Ābhēri" -msgstr "" +msgstr "Ābhēri" #: DB:work_attribute_type_allowed_value/value:36 msgctxt "work_attribute_type_allowed_value" msgid "Ābhōgi" -msgstr "" +msgstr "Ābhōgi" #: DB:work_attribute_type_allowed_value/value:279 msgctxt "work_attribute_type_allowed_value" msgid "Ādi" -msgstr "" +msgstr "Ādi" #: DB:work_attribute_type_allowed_value/value:290 msgctxt "work_attribute_type_allowed_value" msgid "Ādi (Tiśra naḍe)" -msgstr "" +msgstr "Ādi (Tiśra naḍe)" #: DB:work_attribute_type_allowed_value/value:37 msgctxt "work_attribute_type_allowed_value" msgid "Āhir bhairav" -msgstr "" +msgstr "Āhir bhairav" #: DB:work_attribute_type_allowed_value/value:38 msgctxt "work_attribute_type_allowed_value" msgid "Āhiri" -msgstr "" +msgstr "Āhiri" #: DB:work_attribute_type_allowed_value/value:41 msgctxt "work_attribute_type_allowed_value" msgid "Ānandabhairavi" -msgstr "" +msgstr "Ānandabhairavi" #: DB:work_attribute_type_allowed_value/value:42 msgctxt "work_attribute_type_allowed_value" msgid "Āndōḷika" -msgstr "" +msgstr "Āndōḷika" #: DB:work_attribute_type_allowed_value/value:43 msgctxt "work_attribute_type_allowed_value" msgid "Ārabhi" -msgstr "" +msgstr "Ārabhi" #: DB:work_attribute_type_allowed_value/value:283 msgctxt "work_attribute_type_allowed_value" msgid "Ēka" -msgstr "" +msgstr "Ēka" #: DB:work_attribute_type_allowed_value/value:226 msgctxt "work_attribute_type_allowed_value" msgid "Śankarābharaṇaṁ" -msgstr "" +msgstr "Śankarābharaṇaṁ" #: DB:work_attribute_type_allowed_value/value:240 msgctxt "work_attribute_type_allowed_value" msgid "Śivaranjani" -msgstr "" +msgstr "Śivaranjani" #: DB:work_attribute_type_allowed_value/value:241 msgctxt "work_attribute_type_allowed_value" msgid "Śrī" -msgstr "" +msgstr "Śrī" #: DB:work_attribute_type_allowed_value/value:242 msgctxt "work_attribute_type_allowed_value" msgid "Śrīranjani" -msgstr "" +msgstr "Śrīranjani" #: DB:work_attribute_type_allowed_value/value:243 msgctxt "work_attribute_type_allowed_value" msgid "Śubhapantuvarāḷi" -msgstr "" +msgstr "Śubhapantuvarāḷi" #: DB:work_attribute_type_allowed_value/value:245 msgctxt "work_attribute_type_allowed_value" msgid "Śudda sārang" -msgstr "" +msgstr "Śudda sārang" #: DB:work_attribute_type_allowed_value/value:246 msgctxt "work_attribute_type_allowed_value" msgid "Śudda sāvēri" -msgstr "" +msgstr "Śudda sāvēri" #: DB:work_attribute_type_allowed_value/value:247 msgctxt "work_attribute_type_allowed_value" msgid "Śuddadhanyāsi" -msgstr "" +msgstr "Śuddadhanyāsi" #: DB:work_attribute_type_allowed_value/value:248 msgctxt "work_attribute_type_allowed_value" msgid "Śuddasīmantini" -msgstr "" +msgstr "Śuddasīmantini" #: DB:work_attribute_type_allowed_value/value:254 msgctxt "work_attribute_type_allowed_value" msgid "Śyāṁ kaḷyāṇ" -msgstr "" +msgstr "Śyāṁ kaḷyāṇ" #: DB:work_attribute_type_allowed_value/value:249 msgctxt "work_attribute_type_allowed_value" msgid "Śūḷiṇi" -msgstr "" +msgstr "Śūḷiṇi" #: DB:work_attribute_type_allowed_value/value:227 msgctxt "work_attribute_type_allowed_value" msgid "Ṣanmukhapriya" -msgstr "" +msgstr "Ṣanmukhapriya" diff --git a/po/attributes/el.po b/po/attributes/el.po index 3141e9089..ee37a93a9 100644 --- a/po/attributes/el.po +++ b/po/attributes/el.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: MusicBrainz\n" -"PO-Revision-Date: 2014-03-31 21:30+0000\n" +"PO-Revision-Date: 2014-04-17 03:31+0000\n" "Last-Translator: Ian McEwen \n" "Language-Team: Greek (http://www.transifex.com/projects/p/musicbrainz/language/el/)\n" "MIME-Version: 1.0\n" @@ -67,6 +67,16 @@ msgctxt "work_attribute_type_allowed_value" msgid "A-sharp minor" msgstr "" +#: DB:work_attribute_type/name:13 +msgctxt "work_attribute_type" +msgid "APRA ID" +msgstr "" + +#: DB:work_attribute_type/name:6 +msgctxt "work_attribute_type" +msgid "ASCAP ID" +msgstr "" + #: DB:release_group_primary_type/name:1 msgctxt "release_group_primary_type" msgid "Album" @@ -142,6 +152,11 @@ msgctxt "work_attribute_type_allowed_value" msgid "B-flat minor" msgstr "" +#: DB:work_attribute_type/name:7 +msgctxt "work_attribute_type" +msgid "BMI ID" +msgstr "" + #: DB:cover_art_archive.art_type/name:2 msgctxt "cover_art_type" msgid "Back" @@ -497,6 +512,11 @@ msgctxt "work_attribute_type_allowed_value" msgid "Darbārī kānaḍa" msgstr "" +#: DB:release_group_secondary_type/name:10 +msgctxt "release_group_secondary_type" +msgid "Demo" +msgstr "" + #: DB:work_attribute_type_allowed_value/value:79 msgctxt "work_attribute_type_allowed_value" msgid "Devāmṛtavarṣiṇi" @@ -702,6 +722,11 @@ msgctxt "work_attribute_type_allowed_value" msgid "G-sharp minor" msgstr "" +#: DB:work_attribute_type/name:9 +msgctxt "work_attribute_type" +msgid "GEMA ID" +msgstr "" + #: DB:work_attribute_type_allowed_value/value:88 msgctxt "work_attribute_type_allowed_value" msgid "Gamakakriya" @@ -947,6 +972,11 @@ msgctxt "work_attribute_type_allowed_value" msgid "Jōnpuri" msgstr "" +#: DB:work_attribute_type/name:11 +msgctxt "work_attribute_type" +msgid "KOMCA ID" +msgstr "" + #: DB:work_attribute_type_allowed_value/value:128 msgctxt "work_attribute_type_allowed_value" msgid "Kalgaḍa" @@ -1322,6 +1352,11 @@ msgctxt "area_type" msgid "Municipality" msgstr "" +#: DB:work_attribute_type/name:12 +msgctxt "work_attribute_type" +msgid "MÜST ID" +msgstr "" + #: DB:work_attribute_type_allowed_value/value:167 msgctxt "work_attribute_type_allowed_value" msgid "Mānavati" @@ -1732,11 +1767,21 @@ msgctxt "medium_format" msgid "SACD" msgstr "SACD" +#: DB:work_attribute_type/name:8 +msgctxt "work_attribute_type" +msgid "SESAC ID" +msgstr "" + #: DB:medium_format/name:36 msgctxt "medium_format" msgid "SHM-CD" msgstr "" +#: DB:work_attribute_type/name:10 +msgctxt "work_attribute_type" +msgid "SOCAN ID" +msgstr "" + #: DB:medium_format/name:23 msgctxt "medium_format" msgid "SVCD" diff --git a/po/attributes/en_CA.po b/po/attributes/en_CA.po index 1534630aa..8361adfe2 100644 --- a/po/attributes/en_CA.po +++ b/po/attributes/en_CA.po @@ -6,7 +6,7 @@ msgid "" msgstr "" "Project-Id-Version: MusicBrainz\n" -"PO-Revision-Date: 2014-03-31 21:30+0000\n" +"PO-Revision-Date: 2014-04-17 03:31+0000\n" "Last-Translator: Ian McEwen \n" "Language-Team: English (Canada) (http://www.transifex.com/projects/p/musicbrainz/language/en_CA/)\n" "MIME-Version: 1.0\n" @@ -65,6 +65,16 @@ msgctxt "work_attribute_type_allowed_value" msgid "A-sharp minor" msgstr "" +#: DB:work_attribute_type/name:13 +msgctxt "work_attribute_type" +msgid "APRA ID" +msgstr "" + +#: DB:work_attribute_type/name:6 +msgctxt "work_attribute_type" +msgid "ASCAP ID" +msgstr "" + #: DB:release_group_primary_type/name:1 msgctxt "release_group_primary_type" msgid "Album" @@ -140,6 +150,11 @@ msgctxt "work_attribute_type_allowed_value" msgid "B-flat minor" msgstr "" +#: DB:work_attribute_type/name:7 +msgctxt "work_attribute_type" +msgid "BMI ID" +msgstr "" + #: DB:cover_art_archive.art_type/name:2 msgctxt "cover_art_type" msgid "Back" @@ -495,6 +510,11 @@ msgctxt "work_attribute_type_allowed_value" msgid "Darbārī kānaḍa" msgstr "" +#: DB:release_group_secondary_type/name:10 +msgctxt "release_group_secondary_type" +msgid "Demo" +msgstr "" + #: DB:work_attribute_type_allowed_value/value:79 msgctxt "work_attribute_type_allowed_value" msgid "Devāmṛtavarṣiṇi" @@ -700,6 +720,11 @@ msgctxt "work_attribute_type_allowed_value" msgid "G-sharp minor" msgstr "" +#: DB:work_attribute_type/name:9 +msgctxt "work_attribute_type" +msgid "GEMA ID" +msgstr "" + #: DB:work_attribute_type_allowed_value/value:88 msgctxt "work_attribute_type_allowed_value" msgid "Gamakakriya" @@ -945,6 +970,11 @@ msgctxt "work_attribute_type_allowed_value" msgid "Jōnpuri" msgstr "" +#: DB:work_attribute_type/name:11 +msgctxt "work_attribute_type" +msgid "KOMCA ID" +msgstr "" + #: DB:work_attribute_type_allowed_value/value:128 msgctxt "work_attribute_type_allowed_value" msgid "Kalgaḍa" @@ -1320,6 +1350,11 @@ msgctxt "area_type" msgid "Municipality" msgstr "Municipality" +#: DB:work_attribute_type/name:12 +msgctxt "work_attribute_type" +msgid "MÜST ID" +msgstr "" + #: DB:work_attribute_type_allowed_value/value:167 msgctxt "work_attribute_type_allowed_value" msgid "Mānavati" @@ -1730,11 +1765,21 @@ msgctxt "medium_format" msgid "SACD" msgstr "SACD" +#: DB:work_attribute_type/name:8 +msgctxt "work_attribute_type" +msgid "SESAC ID" +msgstr "" + #: DB:medium_format/name:36 msgctxt "medium_format" msgid "SHM-CD" msgstr "SHM-CD" +#: DB:work_attribute_type/name:10 +msgctxt "work_attribute_type" +msgid "SOCAN ID" +msgstr "" + #: DB:medium_format/name:23 msgctxt "medium_format" msgid "SVCD" diff --git a/po/attributes/en_GB.po b/po/attributes/en_GB.po index 090b7988c..3cbdf17f8 100644 --- a/po/attributes/en_GB.po +++ b/po/attributes/en_GB.po @@ -4,7 +4,7 @@ msgid "" msgstr "" "Project-Id-Version: MusicBrainz\n" -"PO-Revision-Date: 2014-03-31 21:30+0000\n" +"PO-Revision-Date: 2014-04-17 03:31+0000\n" "Last-Translator: Ian McEwen \n" "Language-Team: English (United Kingdom) (http://www.transifex.com/projects/p/musicbrainz/language/en_GB/)\n" "MIME-Version: 1.0\n" @@ -63,6 +63,16 @@ msgctxt "work_attribute_type_allowed_value" msgid "A-sharp minor" msgstr "" +#: DB:work_attribute_type/name:13 +msgctxt "work_attribute_type" +msgid "APRA ID" +msgstr "" + +#: DB:work_attribute_type/name:6 +msgctxt "work_attribute_type" +msgid "ASCAP ID" +msgstr "" + #: DB:release_group_primary_type/name:1 msgctxt "release_group_primary_type" msgid "Album" @@ -138,6 +148,11 @@ msgctxt "work_attribute_type_allowed_value" msgid "B-flat minor" msgstr "" +#: DB:work_attribute_type/name:7 +msgctxt "work_attribute_type" +msgid "BMI ID" +msgstr "" + #: DB:cover_art_archive.art_type/name:2 msgctxt "cover_art_type" msgid "Back" @@ -493,6 +508,11 @@ msgctxt "work_attribute_type_allowed_value" msgid "Darbārī kānaḍa" msgstr "" +#: DB:release_group_secondary_type/name:10 +msgctxt "release_group_secondary_type" +msgid "Demo" +msgstr "" + #: DB:work_attribute_type_allowed_value/value:79 msgctxt "work_attribute_type_allowed_value" msgid "Devāmṛtavarṣiṇi" @@ -698,6 +718,11 @@ msgctxt "work_attribute_type_allowed_value" msgid "G-sharp minor" msgstr "" +#: DB:work_attribute_type/name:9 +msgctxt "work_attribute_type" +msgid "GEMA ID" +msgstr "" + #: DB:work_attribute_type_allowed_value/value:88 msgctxt "work_attribute_type_allowed_value" msgid "Gamakakriya" @@ -943,6 +968,11 @@ msgctxt "work_attribute_type_allowed_value" msgid "Jōnpuri" msgstr "" +#: DB:work_attribute_type/name:11 +msgctxt "work_attribute_type" +msgid "KOMCA ID" +msgstr "" + #: DB:work_attribute_type_allowed_value/value:128 msgctxt "work_attribute_type_allowed_value" msgid "Kalgaḍa" @@ -1318,6 +1348,11 @@ msgctxt "area_type" msgid "Municipality" msgstr "" +#: DB:work_attribute_type/name:12 +msgctxt "work_attribute_type" +msgid "MÜST ID" +msgstr "" + #: DB:work_attribute_type_allowed_value/value:167 msgctxt "work_attribute_type_allowed_value" msgid "Mānavati" @@ -1728,11 +1763,21 @@ msgctxt "medium_format" msgid "SACD" msgstr "SACD" +#: DB:work_attribute_type/name:8 +msgctxt "work_attribute_type" +msgid "SESAC ID" +msgstr "" + #: DB:medium_format/name:36 msgctxt "medium_format" msgid "SHM-CD" msgstr "" +#: DB:work_attribute_type/name:10 +msgctxt "work_attribute_type" +msgid "SOCAN ID" +msgstr "" + #: DB:medium_format/name:23 msgctxt "medium_format" msgid "SVCD" diff --git a/po/attributes/eo.po b/po/attributes/eo.po index a287bbd1e..fc771f8d4 100644 --- a/po/attributes/eo.po +++ b/po/attributes/eo.po @@ -5,7 +5,7 @@ msgid "" msgstr "" "Project-Id-Version: MusicBrainz\n" -"PO-Revision-Date: 2014-03-31 21:30+0000\n" +"PO-Revision-Date: 2014-04-17 03:31+0000\n" "Last-Translator: Ian McEwen \n" "Language-Team: Esperanto (http://www.transifex.com/projects/p/musicbrainz/language/eo/)\n" "MIME-Version: 1.0\n" @@ -64,6 +64,16 @@ msgctxt "work_attribute_type_allowed_value" msgid "A-sharp minor" msgstr "" +#: DB:work_attribute_type/name:13 +msgctxt "work_attribute_type" +msgid "APRA ID" +msgstr "" + +#: DB:work_attribute_type/name:6 +msgctxt "work_attribute_type" +msgid "ASCAP ID" +msgstr "" + #: DB:release_group_primary_type/name:1 msgctxt "release_group_primary_type" msgid "Album" @@ -139,6 +149,11 @@ msgctxt "work_attribute_type_allowed_value" msgid "B-flat minor" msgstr "" +#: DB:work_attribute_type/name:7 +msgctxt "work_attribute_type" +msgid "BMI ID" +msgstr "" + #: DB:cover_art_archive.art_type/name:2 msgctxt "cover_art_type" msgid "Back" @@ -494,6 +509,11 @@ msgctxt "work_attribute_type_allowed_value" msgid "Darbārī kānaḍa" msgstr "" +#: DB:release_group_secondary_type/name:10 +msgctxt "release_group_secondary_type" +msgid "Demo" +msgstr "" + #: DB:work_attribute_type_allowed_value/value:79 msgctxt "work_attribute_type_allowed_value" msgid "Devāmṛtavarṣiṇi" @@ -699,6 +719,11 @@ msgctxt "work_attribute_type_allowed_value" msgid "G-sharp minor" msgstr "" +#: DB:work_attribute_type/name:9 +msgctxt "work_attribute_type" +msgid "GEMA ID" +msgstr "" + #: DB:work_attribute_type_allowed_value/value:88 msgctxt "work_attribute_type_allowed_value" msgid "Gamakakriya" @@ -944,6 +969,11 @@ msgctxt "work_attribute_type_allowed_value" msgid "Jōnpuri" msgstr "" +#: DB:work_attribute_type/name:11 +msgctxt "work_attribute_type" +msgid "KOMCA ID" +msgstr "" + #: DB:work_attribute_type_allowed_value/value:128 msgctxt "work_attribute_type_allowed_value" msgid "Kalgaḍa" @@ -1319,6 +1349,11 @@ msgctxt "area_type" msgid "Municipality" msgstr "" +#: DB:work_attribute_type/name:12 +msgctxt "work_attribute_type" +msgid "MÜST ID" +msgstr "" + #: DB:work_attribute_type_allowed_value/value:167 msgctxt "work_attribute_type_allowed_value" msgid "Mānavati" @@ -1729,11 +1764,21 @@ msgctxt "medium_format" msgid "SACD" msgstr "SAKD" +#: DB:work_attribute_type/name:8 +msgctxt "work_attribute_type" +msgid "SESAC ID" +msgstr "" + #: DB:medium_format/name:36 msgctxt "medium_format" msgid "SHM-CD" msgstr "" +#: DB:work_attribute_type/name:10 +msgctxt "work_attribute_type" +msgid "SOCAN ID" +msgstr "" + #: DB:medium_format/name:23 msgctxt "medium_format" msgid "SVCD" diff --git a/po/attributes/es.po b/po/attributes/es.po index 3e1e22c12..e15d25125 100644 --- a/po/attributes/es.po +++ b/po/attributes/es.po @@ -18,7 +18,7 @@ msgid "" msgstr "" "Project-Id-Version: MusicBrainz\n" -"PO-Revision-Date: 2014-03-31 21:30+0000\n" +"PO-Revision-Date: 2014-04-17 03:31+0000\n" "Last-Translator: Ian McEwen \n" "Language-Team: Spanish (http://www.transifex.com/projects/p/musicbrainz/language/es/)\n" "MIME-Version: 1.0\n" @@ -77,6 +77,16 @@ msgctxt "work_attribute_type_allowed_value" msgid "A-sharp minor" msgstr "" +#: DB:work_attribute_type/name:13 +msgctxt "work_attribute_type" +msgid "APRA ID" +msgstr "" + +#: DB:work_attribute_type/name:6 +msgctxt "work_attribute_type" +msgid "ASCAP ID" +msgstr "" + #: DB:release_group_primary_type/name:1 msgctxt "release_group_primary_type" msgid "Album" @@ -152,6 +162,11 @@ msgctxt "work_attribute_type_allowed_value" msgid "B-flat minor" msgstr "" +#: DB:work_attribute_type/name:7 +msgctxt "work_attribute_type" +msgid "BMI ID" +msgstr "" + #: DB:cover_art_archive.art_type/name:2 msgctxt "cover_art_type" msgid "Back" @@ -507,6 +522,11 @@ msgctxt "work_attribute_type_allowed_value" msgid "Darbārī kānaḍa" msgstr "" +#: DB:release_group_secondary_type/name:10 +msgctxt "release_group_secondary_type" +msgid "Demo" +msgstr "" + #: DB:work_attribute_type_allowed_value/value:79 msgctxt "work_attribute_type_allowed_value" msgid "Devāmṛtavarṣiṇi" @@ -712,6 +732,11 @@ msgctxt "work_attribute_type_allowed_value" msgid "G-sharp minor" msgstr "" +#: DB:work_attribute_type/name:9 +msgctxt "work_attribute_type" +msgid "GEMA ID" +msgstr "" + #: DB:work_attribute_type_allowed_value/value:88 msgctxt "work_attribute_type_allowed_value" msgid "Gamakakriya" @@ -957,6 +982,11 @@ msgctxt "work_attribute_type_allowed_value" msgid "Jōnpuri" msgstr "" +#: DB:work_attribute_type/name:11 +msgctxt "work_attribute_type" +msgid "KOMCA ID" +msgstr "" + #: DB:work_attribute_type_allowed_value/value:128 msgctxt "work_attribute_type_allowed_value" msgid "Kalgaḍa" @@ -1332,6 +1362,11 @@ msgctxt "area_type" msgid "Municipality" msgstr "Municipio" +#: DB:work_attribute_type/name:12 +msgctxt "work_attribute_type" +msgid "MÜST ID" +msgstr "" + #: DB:work_attribute_type_allowed_value/value:167 msgctxt "work_attribute_type_allowed_value" msgid "Mānavati" @@ -1742,11 +1777,21 @@ msgctxt "medium_format" msgid "SACD" msgstr "SACD" +#: DB:work_attribute_type/name:8 +msgctxt "work_attribute_type" +msgid "SESAC ID" +msgstr "" + #: DB:medium_format/name:36 msgctxt "medium_format" msgid "SHM-CD" msgstr "SHM-CD" +#: DB:work_attribute_type/name:10 +msgctxt "work_attribute_type" +msgid "SOCAN ID" +msgstr "" + #: DB:medium_format/name:23 msgctxt "medium_format" msgid "SVCD" diff --git a/po/attributes/et.po b/po/attributes/et.po index 9b39240f5..e36df5159 100644 --- a/po/attributes/et.po +++ b/po/attributes/et.po @@ -4,8 +4,8 @@ msgid "" msgstr "" "Project-Id-Version: MusicBrainz\n" -"PO-Revision-Date: 2014-04-17 03:31+0000\n" -"Last-Translator: Ian McEwen \n" +"PO-Revision-Date: 2014-04-17 17:07+0000\n" +"Last-Translator: Mihkel Tõnnov \n" "Language-Team: Estonian (http://www.transifex.com/projects/p/musicbrainz/language/et/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -66,12 +66,12 @@ msgstr "ais-moll" #: DB:work_attribute_type/name:13 msgctxt "work_attribute_type" msgid "APRA ID" -msgstr "" +msgstr "APRA ID" #: DB:work_attribute_type/name:6 msgctxt "work_attribute_type" msgid "ASCAP ID" -msgstr "" +msgstr "ASCAP ID" #: DB:release_group_primary_type/name:1 msgctxt "release_group_primary_type" @@ -151,7 +151,7 @@ msgstr "b-moll" #: DB:work_attribute_type/name:7 msgctxt "work_attribute_type" msgid "BMI ID" -msgstr "" +msgstr "BMI ID" #: DB:cover_art_archive.art_type/name:2 msgctxt "cover_art_type" @@ -511,7 +511,7 @@ msgstr "Darbārī kānaḍa" #: DB:release_group_secondary_type/name:10 msgctxt "release_group_secondary_type" msgid "Demo" -msgstr "" +msgstr "demo" #: DB:work_attribute_type_allowed_value/value:79 msgctxt "work_attribute_type_allowed_value" @@ -721,7 +721,7 @@ msgstr "gis-moll" #: DB:work_attribute_type/name:9 msgctxt "work_attribute_type" msgid "GEMA ID" -msgstr "" +msgstr "GEMA ID" #: DB:work_attribute_type_allowed_value/value:88 msgctxt "work_attribute_type_allowed_value" @@ -971,7 +971,7 @@ msgstr "Jōnpuri" #: DB:work_attribute_type/name:11 msgctxt "work_attribute_type" msgid "KOMCA ID" -msgstr "" +msgstr "KOMCA ID" #: DB:work_attribute_type_allowed_value/value:128 msgctxt "work_attribute_type_allowed_value" @@ -1351,7 +1351,7 @@ msgstr "vald" #: DB:work_attribute_type/name:12 msgctxt "work_attribute_type" msgid "MÜST ID" -msgstr "" +msgstr "MÜST ID" #: DB:work_attribute_type_allowed_value/value:167 msgctxt "work_attribute_type_allowed_value" @@ -1766,7 +1766,7 @@ msgstr "SACD" #: DB:work_attribute_type/name:8 msgctxt "work_attribute_type" msgid "SESAC ID" -msgstr "" +msgstr "SESAC ID" #: DB:medium_format/name:36 msgctxt "medium_format" @@ -1776,7 +1776,7 @@ msgstr "SHM-CD" #: DB:work_attribute_type/name:10 msgctxt "work_attribute_type" msgid "SOCAN ID" -msgstr "" +msgstr "SOCAN ID" #: DB:medium_format/name:23 msgctxt "medium_format" diff --git a/po/attributes/fi.po b/po/attributes/fi.po index fd2b272e9..5fc2580bd 100644 --- a/po/attributes/fi.po +++ b/po/attributes/fi.po @@ -12,8 +12,8 @@ msgid "" msgstr "" "Project-Id-Version: MusicBrainz\n" -"PO-Revision-Date: 2014-04-10 16:11+0000\n" -"Last-Translator: Phonebox\n" +"PO-Revision-Date: 2014-04-17 03:31+0000\n" +"Last-Translator: Ian McEwen \n" "Language-Team: Finnish (http://www.transifex.com/projects/p/musicbrainz/language/fi/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -71,6 +71,16 @@ msgctxt "work_attribute_type_allowed_value" msgid "A-sharp minor" msgstr "" +#: DB:work_attribute_type/name:13 +msgctxt "work_attribute_type" +msgid "APRA ID" +msgstr "" + +#: DB:work_attribute_type/name:6 +msgctxt "work_attribute_type" +msgid "ASCAP ID" +msgstr "" + #: DB:release_group_primary_type/name:1 msgctxt "release_group_primary_type" msgid "Album" @@ -146,6 +156,11 @@ msgctxt "work_attribute_type_allowed_value" msgid "B-flat minor" msgstr "" +#: DB:work_attribute_type/name:7 +msgctxt "work_attribute_type" +msgid "BMI ID" +msgstr "" + #: DB:cover_art_archive.art_type/name:2 msgctxt "cover_art_type" msgid "Back" @@ -501,6 +516,11 @@ msgctxt "work_attribute_type_allowed_value" msgid "Darbārī kānaḍa" msgstr "" +#: DB:release_group_secondary_type/name:10 +msgctxt "release_group_secondary_type" +msgid "Demo" +msgstr "" + #: DB:work_attribute_type_allowed_value/value:79 msgctxt "work_attribute_type_allowed_value" msgid "Devāmṛtavarṣiṇi" @@ -706,6 +726,11 @@ msgctxt "work_attribute_type_allowed_value" msgid "G-sharp minor" msgstr "" +#: DB:work_attribute_type/name:9 +msgctxt "work_attribute_type" +msgid "GEMA ID" +msgstr "" + #: DB:work_attribute_type_allowed_value/value:88 msgctxt "work_attribute_type_allowed_value" msgid "Gamakakriya" @@ -951,6 +976,11 @@ msgctxt "work_attribute_type_allowed_value" msgid "Jōnpuri" msgstr "" +#: DB:work_attribute_type/name:11 +msgctxt "work_attribute_type" +msgid "KOMCA ID" +msgstr "" + #: DB:work_attribute_type_allowed_value/value:128 msgctxt "work_attribute_type_allowed_value" msgid "Kalgaḍa" @@ -1326,6 +1356,11 @@ msgctxt "area_type" msgid "Municipality" msgstr "Hallinnollinen alue" +#: DB:work_attribute_type/name:12 +msgctxt "work_attribute_type" +msgid "MÜST ID" +msgstr "" + #: DB:work_attribute_type_allowed_value/value:167 msgctxt "work_attribute_type_allowed_value" msgid "Mānavati" @@ -1736,11 +1771,21 @@ msgctxt "medium_format" msgid "SACD" msgstr "Super Audio CD" +#: DB:work_attribute_type/name:8 +msgctxt "work_attribute_type" +msgid "SESAC ID" +msgstr "" + #: DB:medium_format/name:36 msgctxt "medium_format" msgid "SHM-CD" msgstr "SHM-CD" +#: DB:work_attribute_type/name:10 +msgctxt "work_attribute_type" +msgid "SOCAN ID" +msgstr "" + #: DB:medium_format/name:23 msgctxt "medium_format" msgid "SVCD" diff --git a/po/attributes/ja.po b/po/attributes/ja.po index 6e26c053d..f53a145f0 100644 --- a/po/attributes/ja.po +++ b/po/attributes/ja.po @@ -6,7 +6,7 @@ msgid "" msgstr "" "Project-Id-Version: MusicBrainz\n" -"PO-Revision-Date: 2014-03-31 21:30+0000\n" +"PO-Revision-Date: 2014-04-17 03:31+0000\n" "Last-Translator: Ian McEwen \n" "Language-Team: Japanese (http://www.transifex.com/projects/p/musicbrainz/language/ja/)\n" "MIME-Version: 1.0\n" @@ -65,6 +65,16 @@ msgctxt "work_attribute_type_allowed_value" msgid "A-sharp minor" msgstr "嬰イ短調" +#: DB:work_attribute_type/name:13 +msgctxt "work_attribute_type" +msgid "APRA ID" +msgstr "" + +#: DB:work_attribute_type/name:6 +msgctxt "work_attribute_type" +msgid "ASCAP ID" +msgstr "" + #: DB:release_group_primary_type/name:1 msgctxt "release_group_primary_type" msgid "Album" @@ -140,6 +150,11 @@ msgctxt "work_attribute_type_allowed_value" msgid "B-flat minor" msgstr "変ロ短調" +#: DB:work_attribute_type/name:7 +msgctxt "work_attribute_type" +msgid "BMI ID" +msgstr "" + #: DB:cover_art_archive.art_type/name:2 msgctxt "cover_art_type" msgid "Back" @@ -495,6 +510,11 @@ msgctxt "work_attribute_type_allowed_value" msgid "Darbārī kānaḍa" msgstr "" +#: DB:release_group_secondary_type/name:10 +msgctxt "release_group_secondary_type" +msgid "Demo" +msgstr "" + #: DB:work_attribute_type_allowed_value/value:79 msgctxt "work_attribute_type_allowed_value" msgid "Devāmṛtavarṣiṇi" @@ -700,6 +720,11 @@ msgctxt "work_attribute_type_allowed_value" msgid "G-sharp minor" msgstr "嬰ト短調" +#: DB:work_attribute_type/name:9 +msgctxt "work_attribute_type" +msgid "GEMA ID" +msgstr "" + #: DB:work_attribute_type_allowed_value/value:88 msgctxt "work_attribute_type_allowed_value" msgid "Gamakakriya" @@ -945,6 +970,11 @@ msgctxt "work_attribute_type_allowed_value" msgid "Jōnpuri" msgstr "" +#: DB:work_attribute_type/name:11 +msgctxt "work_attribute_type" +msgid "KOMCA ID" +msgstr "" + #: DB:work_attribute_type_allowed_value/value:128 msgctxt "work_attribute_type_allowed_value" msgid "Kalgaḍa" @@ -1320,6 +1350,11 @@ msgctxt "area_type" msgid "Municipality" msgstr "市制" +#: DB:work_attribute_type/name:12 +msgctxt "work_attribute_type" +msgid "MÜST ID" +msgstr "" + #: DB:work_attribute_type_allowed_value/value:167 msgctxt "work_attribute_type_allowed_value" msgid "Mānavati" @@ -1730,11 +1765,21 @@ msgctxt "medium_format" msgid "SACD" msgstr "SACD" +#: DB:work_attribute_type/name:8 +msgctxt "work_attribute_type" +msgid "SESAC ID" +msgstr "" + #: DB:medium_format/name:36 msgctxt "medium_format" msgid "SHM-CD" msgstr "" +#: DB:work_attribute_type/name:10 +msgctxt "work_attribute_type" +msgid "SOCAN ID" +msgstr "" + #: DB:medium_format/name:23 msgctxt "medium_format" msgid "SVCD" diff --git a/po/attributes/nb.po b/po/attributes/nb.po index 8996ec464..ae575a5b5 100644 --- a/po/attributes/nb.po +++ b/po/attributes/nb.po @@ -4,7 +4,7 @@ msgid "" msgstr "" "Project-Id-Version: MusicBrainz\n" -"PO-Revision-Date: 2014-03-31 21:30+0000\n" +"PO-Revision-Date: 2014-04-17 03:31+0000\n" "Last-Translator: Ian McEwen \n" "Language-Team: Norwegian Bokmål (http://www.transifex.com/projects/p/musicbrainz/language/nb/)\n" "MIME-Version: 1.0\n" @@ -63,6 +63,16 @@ msgctxt "work_attribute_type_allowed_value" msgid "A-sharp minor" msgstr "" +#: DB:work_attribute_type/name:13 +msgctxt "work_attribute_type" +msgid "APRA ID" +msgstr "" + +#: DB:work_attribute_type/name:6 +msgctxt "work_attribute_type" +msgid "ASCAP ID" +msgstr "" + #: DB:release_group_primary_type/name:1 msgctxt "release_group_primary_type" msgid "Album" @@ -138,6 +148,11 @@ msgctxt "work_attribute_type_allowed_value" msgid "B-flat minor" msgstr "" +#: DB:work_attribute_type/name:7 +msgctxt "work_attribute_type" +msgid "BMI ID" +msgstr "" + #: DB:cover_art_archive.art_type/name:2 msgctxt "cover_art_type" msgid "Back" @@ -493,6 +508,11 @@ msgctxt "work_attribute_type_allowed_value" msgid "Darbārī kānaḍa" msgstr "" +#: DB:release_group_secondary_type/name:10 +msgctxt "release_group_secondary_type" +msgid "Demo" +msgstr "" + #: DB:work_attribute_type_allowed_value/value:79 msgctxt "work_attribute_type_allowed_value" msgid "Devāmṛtavarṣiṇi" @@ -698,6 +718,11 @@ msgctxt "work_attribute_type_allowed_value" msgid "G-sharp minor" msgstr "" +#: DB:work_attribute_type/name:9 +msgctxt "work_attribute_type" +msgid "GEMA ID" +msgstr "" + #: DB:work_attribute_type_allowed_value/value:88 msgctxt "work_attribute_type_allowed_value" msgid "Gamakakriya" @@ -943,6 +968,11 @@ msgctxt "work_attribute_type_allowed_value" msgid "Jōnpuri" msgstr "" +#: DB:work_attribute_type/name:11 +msgctxt "work_attribute_type" +msgid "KOMCA ID" +msgstr "" + #: DB:work_attribute_type_allowed_value/value:128 msgctxt "work_attribute_type_allowed_value" msgid "Kalgaḍa" @@ -1318,6 +1348,11 @@ msgctxt "area_type" msgid "Municipality" msgstr "" +#: DB:work_attribute_type/name:12 +msgctxt "work_attribute_type" +msgid "MÜST ID" +msgstr "" + #: DB:work_attribute_type_allowed_value/value:167 msgctxt "work_attribute_type_allowed_value" msgid "Mānavati" @@ -1728,11 +1763,21 @@ msgctxt "medium_format" msgid "SACD" msgstr "SACD" +#: DB:work_attribute_type/name:8 +msgctxt "work_attribute_type" +msgid "SESAC ID" +msgstr "" + #: DB:medium_format/name:36 msgctxt "medium_format" msgid "SHM-CD" msgstr "" +#: DB:work_attribute_type/name:10 +msgctxt "work_attribute_type" +msgid "SOCAN ID" +msgstr "" + #: DB:medium_format/name:23 msgctxt "medium_format" msgid "SVCD" diff --git a/po/attributes/nl.po b/po/attributes/nl.po index 06ca8f4fa..99e228006 100644 --- a/po/attributes/nl.po +++ b/po/attributes/nl.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: MusicBrainz\n" -"PO-Revision-Date: 2014-04-17 03:31+0000\n" -"Last-Translator: Ian McEwen \n" +"PO-Revision-Date: 2014-04-17 14:53+0000\n" +"Last-Translator: Maurits Meulenbelt \n" "Language-Team: Dutch (http://www.transifex.com/projects/p/musicbrainz/language/nl/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -70,12 +70,12 @@ msgstr "Ais kleine terts" #: DB:work_attribute_type/name:13 msgctxt "work_attribute_type" msgid "APRA ID" -msgstr "" +msgstr "APRA ID" #: DB:work_attribute_type/name:6 msgctxt "work_attribute_type" msgid "ASCAP ID" -msgstr "" +msgstr "ASCAP ID" #: DB:release_group_primary_type/name:1 msgctxt "release_group_primary_type" @@ -155,7 +155,7 @@ msgstr "Bes kleine terts" #: DB:work_attribute_type/name:7 msgctxt "work_attribute_type" msgid "BMI ID" -msgstr "" +msgstr "BMI ID" #: DB:cover_art_archive.art_type/name:2 msgctxt "cover_art_type" @@ -515,7 +515,7 @@ msgstr "Darbārī kānaḍa" #: DB:release_group_secondary_type/name:10 msgctxt "release_group_secondary_type" msgid "Demo" -msgstr "" +msgstr "Demo" #: DB:work_attribute_type_allowed_value/value:79 msgctxt "work_attribute_type_allowed_value" @@ -725,7 +725,7 @@ msgstr "Gis kleine terts" #: DB:work_attribute_type/name:9 msgctxt "work_attribute_type" msgid "GEMA ID" -msgstr "" +msgstr "GEMA ID" #: DB:work_attribute_type_allowed_value/value:88 msgctxt "work_attribute_type_allowed_value" @@ -975,7 +975,7 @@ msgstr "Jōnpuri" #: DB:work_attribute_type/name:11 msgctxt "work_attribute_type" msgid "KOMCA ID" -msgstr "" +msgstr "KOMCA ID" #: DB:work_attribute_type_allowed_value/value:128 msgctxt "work_attribute_type_allowed_value" @@ -1355,7 +1355,7 @@ msgstr "Gemeente" #: DB:work_attribute_type/name:12 msgctxt "work_attribute_type" msgid "MÜST ID" -msgstr "" +msgstr "MÜST ID" #: DB:work_attribute_type_allowed_value/value:167 msgctxt "work_attribute_type_allowed_value" @@ -1770,7 +1770,7 @@ msgstr "SACD" #: DB:work_attribute_type/name:8 msgctxt "work_attribute_type" msgid "SESAC ID" -msgstr "" +msgstr "SESAC ID" #: DB:medium_format/name:36 msgctxt "medium_format" @@ -1780,7 +1780,7 @@ msgstr "SHM-CD" #: DB:work_attribute_type/name:10 msgctxt "work_attribute_type" msgid "SOCAN ID" -msgstr "" +msgstr "SOCAN ID" #: DB:medium_format/name:23 msgctxt "medium_format" diff --git a/po/attributes/pl.po b/po/attributes/pl.po index e52ac4857..5959f9b38 100644 --- a/po/attributes/pl.po +++ b/po/attributes/pl.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: MusicBrainz\n" -"PO-Revision-Date: 2014-03-31 21:30+0000\n" +"PO-Revision-Date: 2014-04-17 03:31+0000\n" "Last-Translator: Ian McEwen \n" "Language-Team: Polish (http://www.transifex.com/projects/p/musicbrainz/language/pl/)\n" "MIME-Version: 1.0\n" @@ -67,6 +67,16 @@ msgctxt "work_attribute_type_allowed_value" msgid "A-sharp minor" msgstr "" +#: DB:work_attribute_type/name:13 +msgctxt "work_attribute_type" +msgid "APRA ID" +msgstr "" + +#: DB:work_attribute_type/name:6 +msgctxt "work_attribute_type" +msgid "ASCAP ID" +msgstr "" + #: DB:release_group_primary_type/name:1 msgctxt "release_group_primary_type" msgid "Album" @@ -142,6 +152,11 @@ msgctxt "work_attribute_type_allowed_value" msgid "B-flat minor" msgstr "" +#: DB:work_attribute_type/name:7 +msgctxt "work_attribute_type" +msgid "BMI ID" +msgstr "" + #: DB:cover_art_archive.art_type/name:2 msgctxt "cover_art_type" msgid "Back" @@ -497,6 +512,11 @@ msgctxt "work_attribute_type_allowed_value" msgid "Darbārī kānaḍa" msgstr "" +#: DB:release_group_secondary_type/name:10 +msgctxt "release_group_secondary_type" +msgid "Demo" +msgstr "" + #: DB:work_attribute_type_allowed_value/value:79 msgctxt "work_attribute_type_allowed_value" msgid "Devāmṛtavarṣiṇi" @@ -702,6 +722,11 @@ msgctxt "work_attribute_type_allowed_value" msgid "G-sharp minor" msgstr "" +#: DB:work_attribute_type/name:9 +msgctxt "work_attribute_type" +msgid "GEMA ID" +msgstr "" + #: DB:work_attribute_type_allowed_value/value:88 msgctxt "work_attribute_type_allowed_value" msgid "Gamakakriya" @@ -947,6 +972,11 @@ msgctxt "work_attribute_type_allowed_value" msgid "Jōnpuri" msgstr "" +#: DB:work_attribute_type/name:11 +msgctxt "work_attribute_type" +msgid "KOMCA ID" +msgstr "" + #: DB:work_attribute_type_allowed_value/value:128 msgctxt "work_attribute_type_allowed_value" msgid "Kalgaḍa" @@ -1322,6 +1352,11 @@ msgctxt "area_type" msgid "Municipality" msgstr "" +#: DB:work_attribute_type/name:12 +msgctxt "work_attribute_type" +msgid "MÜST ID" +msgstr "" + #: DB:work_attribute_type_allowed_value/value:167 msgctxt "work_attribute_type_allowed_value" msgid "Mānavati" @@ -1732,11 +1767,21 @@ msgctxt "medium_format" msgid "SACD" msgstr "" +#: DB:work_attribute_type/name:8 +msgctxt "work_attribute_type" +msgid "SESAC ID" +msgstr "" + #: DB:medium_format/name:36 msgctxt "medium_format" msgid "SHM-CD" msgstr "" +#: DB:work_attribute_type/name:10 +msgctxt "work_attribute_type" +msgid "SOCAN ID" +msgstr "" + #: DB:medium_format/name:23 msgctxt "medium_format" msgid "SVCD" diff --git a/po/attributes/pt_BR.po b/po/attributes/pt_BR.po index 3ecb0bbf4..b49ecbc34 100644 --- a/po/attributes/pt_BR.po +++ b/po/attributes/pt_BR.po @@ -12,7 +12,7 @@ msgid "" msgstr "" "Project-Id-Version: MusicBrainz\n" -"PO-Revision-Date: 2014-03-31 21:30+0000\n" +"PO-Revision-Date: 2014-04-17 03:31+0000\n" "Last-Translator: Ian McEwen \n" "Language-Team: Portuguese (Brazil) (http://www.transifex.com/projects/p/musicbrainz/language/pt_BR/)\n" "MIME-Version: 1.0\n" @@ -71,6 +71,16 @@ msgctxt "work_attribute_type_allowed_value" msgid "A-sharp minor" msgstr "" +#: DB:work_attribute_type/name:13 +msgctxt "work_attribute_type" +msgid "APRA ID" +msgstr "" + +#: DB:work_attribute_type/name:6 +msgctxt "work_attribute_type" +msgid "ASCAP ID" +msgstr "" + #: DB:release_group_primary_type/name:1 msgctxt "release_group_primary_type" msgid "Album" @@ -146,6 +156,11 @@ msgctxt "work_attribute_type_allowed_value" msgid "B-flat minor" msgstr "" +#: DB:work_attribute_type/name:7 +msgctxt "work_attribute_type" +msgid "BMI ID" +msgstr "" + #: DB:cover_art_archive.art_type/name:2 msgctxt "cover_art_type" msgid "Back" @@ -501,6 +516,11 @@ msgctxt "work_attribute_type_allowed_value" msgid "Darbārī kānaḍa" msgstr "" +#: DB:release_group_secondary_type/name:10 +msgctxt "release_group_secondary_type" +msgid "Demo" +msgstr "" + #: DB:work_attribute_type_allowed_value/value:79 msgctxt "work_attribute_type_allowed_value" msgid "Devāmṛtavarṣiṇi" @@ -706,6 +726,11 @@ msgctxt "work_attribute_type_allowed_value" msgid "G-sharp minor" msgstr "" +#: DB:work_attribute_type/name:9 +msgctxt "work_attribute_type" +msgid "GEMA ID" +msgstr "" + #: DB:work_attribute_type_allowed_value/value:88 msgctxt "work_attribute_type_allowed_value" msgid "Gamakakriya" @@ -951,6 +976,11 @@ msgctxt "work_attribute_type_allowed_value" msgid "Jōnpuri" msgstr "" +#: DB:work_attribute_type/name:11 +msgctxt "work_attribute_type" +msgid "KOMCA ID" +msgstr "" + #: DB:work_attribute_type_allowed_value/value:128 msgctxt "work_attribute_type_allowed_value" msgid "Kalgaḍa" @@ -1326,6 +1356,11 @@ msgctxt "area_type" msgid "Municipality" msgstr "Municipalidade" +#: DB:work_attribute_type/name:12 +msgctxt "work_attribute_type" +msgid "MÜST ID" +msgstr "" + #: DB:work_attribute_type_allowed_value/value:167 msgctxt "work_attribute_type_allowed_value" msgid "Mānavati" @@ -1736,11 +1771,21 @@ msgctxt "medium_format" msgid "SACD" msgstr "SACD" +#: DB:work_attribute_type/name:8 +msgctxt "work_attribute_type" +msgid "SESAC ID" +msgstr "" + #: DB:medium_format/name:36 msgctxt "medium_format" msgid "SHM-CD" msgstr "" +#: DB:work_attribute_type/name:10 +msgctxt "work_attribute_type" +msgid "SOCAN ID" +msgstr "" + #: DB:medium_format/name:23 msgctxt "medium_format" msgid "SVCD" diff --git a/po/attributes/ro.po b/po/attributes/ro.po index 465918910..c72badb80 100644 --- a/po/attributes/ro.po +++ b/po/attributes/ro.po @@ -4,7 +4,7 @@ msgid "" msgstr "" "Project-Id-Version: MusicBrainz\n" -"PO-Revision-Date: 2014-03-31 21:30+0000\n" +"PO-Revision-Date: 2014-04-17 03:31+0000\n" "Last-Translator: Ian McEwen \n" "Language-Team: Romanian (http://www.transifex.com/projects/p/musicbrainz/language/ro/)\n" "MIME-Version: 1.0\n" @@ -63,6 +63,16 @@ msgctxt "work_attribute_type_allowed_value" msgid "A-sharp minor" msgstr "" +#: DB:work_attribute_type/name:13 +msgctxt "work_attribute_type" +msgid "APRA ID" +msgstr "" + +#: DB:work_attribute_type/name:6 +msgctxt "work_attribute_type" +msgid "ASCAP ID" +msgstr "" + #: DB:release_group_primary_type/name:1 msgctxt "release_group_primary_type" msgid "Album" @@ -138,6 +148,11 @@ msgctxt "work_attribute_type_allowed_value" msgid "B-flat minor" msgstr "" +#: DB:work_attribute_type/name:7 +msgctxt "work_attribute_type" +msgid "BMI ID" +msgstr "" + #: DB:cover_art_archive.art_type/name:2 msgctxt "cover_art_type" msgid "Back" @@ -493,6 +508,11 @@ msgctxt "work_attribute_type_allowed_value" msgid "Darbārī kānaḍa" msgstr "" +#: DB:release_group_secondary_type/name:10 +msgctxt "release_group_secondary_type" +msgid "Demo" +msgstr "" + #: DB:work_attribute_type_allowed_value/value:79 msgctxt "work_attribute_type_allowed_value" msgid "Devāmṛtavarṣiṇi" @@ -698,6 +718,11 @@ msgctxt "work_attribute_type_allowed_value" msgid "G-sharp minor" msgstr "" +#: DB:work_attribute_type/name:9 +msgctxt "work_attribute_type" +msgid "GEMA ID" +msgstr "" + #: DB:work_attribute_type_allowed_value/value:88 msgctxt "work_attribute_type_allowed_value" msgid "Gamakakriya" @@ -943,6 +968,11 @@ msgctxt "work_attribute_type_allowed_value" msgid "Jōnpuri" msgstr "" +#: DB:work_attribute_type/name:11 +msgctxt "work_attribute_type" +msgid "KOMCA ID" +msgstr "" + #: DB:work_attribute_type_allowed_value/value:128 msgctxt "work_attribute_type_allowed_value" msgid "Kalgaḍa" @@ -1318,6 +1348,11 @@ msgctxt "area_type" msgid "Municipality" msgstr "" +#: DB:work_attribute_type/name:12 +msgctxt "work_attribute_type" +msgid "MÜST ID" +msgstr "" + #: DB:work_attribute_type_allowed_value/value:167 msgctxt "work_attribute_type_allowed_value" msgid "Mānavati" @@ -1728,11 +1763,21 @@ msgctxt "medium_format" msgid "SACD" msgstr "SACD" +#: DB:work_attribute_type/name:8 +msgctxt "work_attribute_type" +msgid "SESAC ID" +msgstr "" + #: DB:medium_format/name:36 msgctxt "medium_format" msgid "SHM-CD" msgstr "" +#: DB:work_attribute_type/name:10 +msgctxt "work_attribute_type" +msgid "SOCAN ID" +msgstr "" + #: DB:medium_format/name:23 msgctxt "medium_format" msgid "SVCD" diff --git a/po/attributes/ru.po b/po/attributes/ru.po new file mode 100644 index 000000000..b6e0ee9f9 --- /dev/null +++ b/po/attributes/ru.po @@ -0,0 +1,2299 @@ +# +# Translators: +# greycat , 2012 +# Nikolai Prokoschenko , 2011 +# dubwai , 2012 +# Дмитрий Яковлев , 2014 +msgid "" +msgstr "" +"Project-Id-Version: MusicBrainz\n" +"PO-Revision-Date: 2014-05-04 13:30+0000\n" +"Last-Translator: Дмитрий Яковлев \n" +"Language-Team: Russian (http://www.transifex.com/projects/p/musicbrainz/language/ru/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: ru\n" +"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" + +#: DB:medium_format/name:30 +msgctxt "medium_format" +msgid "10\" Vinyl" +msgstr "" + +#: DB:medium_format/name:31 +msgctxt "medium_format" +msgid "12\" Vinyl" +msgstr "12\" винил" + +#: DB:medium_format/name:29 +msgctxt "medium_format" +msgid "7\" Vinyl" +msgstr "7\" винил" + +#: DB:medium_format/name:34 +msgctxt "medium_format" +msgid "8cm CD" +msgstr "8 см CD" + +#: DB:medium_format/name:40 +msgctxt "medium_format" +msgid "8cm CD+G" +msgstr "8cm CD+G" + +#: DB:work_attribute_type_allowed_value/value:28 +msgctxt "work_attribute_type_allowed_value" +msgid "A major" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:29 +msgctxt "work_attribute_type_allowed_value" +msgid "A minor" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:26 +msgctxt "work_attribute_type_allowed_value" +msgid "A-flat major" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:27 +msgctxt "work_attribute_type_allowed_value" +msgid "A-flat minor" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:30 +msgctxt "work_attribute_type_allowed_value" +msgid "A-sharp minor" +msgstr "" + +#: DB:work_attribute_type/name:13 +msgctxt "work_attribute_type" +msgid "APRA ID" +msgstr "" + +#: DB:work_attribute_type/name:6 +msgctxt "work_attribute_type" +msgid "ASCAP ID" +msgstr "" + +#: DB:release_group_primary_type/name:1 +msgctxt "release_group_primary_type" +msgid "Album" +msgstr "Альбом" + +#: DB:work_attribute_type_allowed_value/value:40 +msgctxt "work_attribute_type_allowed_value" +msgid "Amṛtavarṣiṇi" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:39 +msgctxt "work_attribute_type_allowed_value" +msgid "Amṛtavāhiṇi" +msgstr "" + +#: DB:area_alias_type/name:1 +msgctxt "alias_type" +msgid "Area name" +msgstr "" + +#: DB:work_type/name:1 +msgctxt "work_type" +msgid "Aria" +msgstr "Ария" + +#: DB:artist_alias_type/name:1 +msgctxt "alias_type" +msgid "Artist name" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:44 +msgctxt "work_attribute_type_allowed_value" +msgid "Asāvēri" +msgstr "" + +#: DB:work_type/name:25 +msgctxt "work_type" +msgid "Audio drama" +msgstr "" + +#: DB:release_group_secondary_type/name:5 +msgctxt "release_group_secondary_type" +msgid "Audiobook" +msgstr "Аудиокнига" + +#: DB:work_attribute_type_allowed_value/value:45 +msgctxt "work_attribute_type_allowed_value" +msgid "Aṭāna" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:289 +msgctxt "work_attribute_type_allowed_value" +msgid "Aṭṭa" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:33 +msgctxt "work_attribute_type_allowed_value" +msgid "B major" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:34 +msgctxt "work_attribute_type_allowed_value" +msgid "B minor" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:31 +msgctxt "work_attribute_type_allowed_value" +msgid "B-flat major" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:32 +msgctxt "work_attribute_type_allowed_value" +msgid "B-flat minor" +msgstr "" + +#: DB:work_attribute_type/name:7 +msgctxt "work_attribute_type" +msgid "BMI ID" +msgstr "" + +#: DB:cover_art_archive.art_type/name:2 +msgctxt "cover_art_type" +msgid "Back" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:47 +msgctxt "work_attribute_type_allowed_value" +msgid "Bahudāri" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:48 +msgctxt "work_attribute_type_allowed_value" +msgid "Balahaṁsa" +msgstr "" + +#: DB:work_type/name:2 +msgctxt "work_type" +msgid "Ballet" +msgstr "Балет" + +#: DB:work_attribute_type_allowed_value/value:49 +msgctxt "work_attribute_type_allowed_value" +msgid "Bauḷi" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:51 +msgctxt "work_attribute_type_allowed_value" +msgid "Behāg" +msgstr "" + +#: DB:work_type/name:26 +msgctxt "work_type" +msgid "Beijing opera" +msgstr "" + +#: DB:medium_format/name:24 +msgctxt "medium_format" +msgid "Betamax" +msgstr "Бетамакс" + +#: DB:work_attribute_type_allowed_value/value:52 +msgctxt "work_attribute_type_allowed_value" +msgid "Bhairavi" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:53 +msgctxt "work_attribute_type_allowed_value" +msgid "Bhavāni" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:54 +msgctxt "work_attribute_type_allowed_value" +msgid "Bhāvapriya" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:55 +msgctxt "work_attribute_type_allowed_value" +msgid "Bhīmpalāsi" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:56 +msgctxt "work_attribute_type_allowed_value" +msgid "Bhōga sāvēri" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:57 +msgctxt "work_attribute_type_allowed_value" +msgid "Bhūpāḷaṁ" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:58 +msgctxt "work_attribute_type_allowed_value" +msgid "Bhūṣāvaḷi" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:59 +msgctxt "work_attribute_type_allowed_value" +msgid "Bilahari" +msgstr "" + +#: DB:medium_format/name:20 +msgctxt "medium_format" +msgid "Blu-ray" +msgstr "Blu-ray" + +#: DB:medium_format/name:35 +msgctxt "medium_format" +msgid "Blu-spec CD" +msgstr "" + +#: DB:release_packaging/name:9 +msgctxt "release_packaging" +msgid "Book" +msgstr "Книга" + +#: DB:cover_art_archive.art_type/name:3 +msgctxt "cover_art_type" +msgid "Booklet" +msgstr "" + +#: DB:release_status/name:3 +msgctxt "release_status" +msgid "Bootleg" +msgstr "Бутлег" + +#: DB:label_type/name:5 +msgctxt "label_type" +msgid "Bootleg Production" +msgstr "" + +#: DB:release_group_primary_type/name:12 +msgctxt "release_group_primary_type" +msgid "Broadcast" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:62 +msgctxt "work_attribute_type_allowed_value" +msgid "Budamanōhari" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:46 +msgctxt "work_attribute_type_allowed_value" +msgid "Bāgēśrī" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:50 +msgctxt "work_attribute_type_allowed_value" +msgid "Bēgaḍa" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:60 +msgctxt "work_attribute_type_allowed_value" +msgid "Bṛndāvana sāranga" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:61 +msgctxt "work_attribute_type_allowed_value" +msgid "Bṛndāvani" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:2 +msgctxt "work_attribute_type_allowed_value" +msgid "C major" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:3 +msgctxt "work_attribute_type_allowed_value" +msgid "C minor" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:1 +msgctxt "work_attribute_type_allowed_value" +msgid "C-flat major" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:4 +msgctxt "work_attribute_type_allowed_value" +msgid "C-sharp major" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:5 +msgctxt "work_attribute_type_allowed_value" +msgid "C-sharp minor" +msgstr "" + +#: DB:medium_format/name:1 +msgctxt "medium_format" +msgid "CD" +msgstr "CD" + +#: DB:medium_format/name:39 +msgctxt "medium_format" +msgid "CD+G" +msgstr "CD+G" + +#: DB:medium_format/name:33 +msgctxt "medium_format" +msgid "CD-R" +msgstr "CD-R" + +#: DB:work_attribute_type_allowed_value/value:63 +msgctxt "work_attribute_type_allowed_value" +msgid "Cakravākaṁ" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:64 +msgctxt "work_attribute_type_allowed_value" +msgid "Candrajyōti" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:65 +msgctxt "work_attribute_type_allowed_value" +msgid "Candrakauns" +msgstr "" + +#: DB:work_type/name:3 +msgctxt "work_type" +msgid "Cantata" +msgstr "" + +#: DB:release_packaging/name:4 +msgctxt "release_packaging" +msgid "Cardboard/Paper Sleeve" +msgstr "" + +#: DB:medium_format/name:9 +msgctxt "medium_format" +msgid "Cartridge" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:66 +msgctxt "work_attribute_type_allowed_value" +msgid "Carturdaśa rāgamālika" +msgstr "" + +#: DB:medium_format/name:8 +msgctxt "medium_format" +msgid "Cassette" +msgstr "" + +#: DB:release_packaging/name:8 +msgctxt "release_packaging" +msgid "Cassette Case" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:291 +msgctxt "work_attribute_type_allowed_value" +msgid "Caturaśra-jāti jhaṁpe" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:70 +msgctxt "work_attribute_type_allowed_value" +msgid "Cencu kāmbhōji" +msgstr "" + +#: DB:artist_type/name:4 +msgctxt "artist_type" +msgid "Character" +msgstr "" + +#: DB:artist_type/name:6 +msgctxt "artist_type" +msgid "Choir" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:71 +msgctxt "work_attribute_type_allowed_value" +msgid "Cintāmaṇi" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:72 +msgctxt "work_attribute_type_allowed_value" +msgid "Cittaranjani" +msgstr "" + +#: DB:area_type/name:3 +msgctxt "area_type" +msgid "City" +msgstr "" + +#: DB:release_group_secondary_type/name:1 +msgctxt "release_group_secondary_type" +msgid "Compilation" +msgstr "" + +#: DB:work_type/name:4 +msgctxt "work_type" +msgid "Concerto" +msgstr "" + +#: DB:area_type/name:1 +msgctxt "area_type" +msgid "Country" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:67 +msgctxt "work_attribute_type_allowed_value" +msgid "Cārukēśi" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:68 +msgctxt "work_attribute_type_allowed_value" +msgid "Cāyānāṭa" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:69 +msgctxt "work_attribute_type_allowed_value" +msgid "Cāyātarangiṇi" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:8 +msgctxt "work_attribute_type_allowed_value" +msgid "D major" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:9 +msgctxt "work_attribute_type_allowed_value" +msgid "D minor" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:6 +msgctxt "work_attribute_type_allowed_value" +msgid "D-flat major" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:7 +msgctxt "work_attribute_type_allowed_value" +msgid "D-flat minor" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:10 +msgctxt "work_attribute_type_allowed_value" +msgid "D-sharp minor" +msgstr "" + +#: DB:medium_format/name:11 +msgctxt "medium_format" +msgid "DAT" +msgstr "" + +#: DB:medium_format/name:16 +msgctxt "medium_format" +msgid "DCC" +msgstr "" + +#: DB:release_group_secondary_type/name:8 +msgctxt "release_group_secondary_type" +msgid "DJ-mix" +msgstr "" + +#: DB:medium_format/name:2 +msgctxt "medium_format" +msgid "DVD" +msgstr "DVD" + +#: DB:medium_format/name:18 +msgctxt "medium_format" +msgid "DVD-Audio" +msgstr "" + +#: DB:medium_format/name:19 +msgctxt "medium_format" +msgid "DVD-Video" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:73 +msgctxt "work_attribute_type_allowed_value" +msgid "Darbār" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:74 +msgctxt "work_attribute_type_allowed_value" +msgid "Darbārī kānaḍa" +msgstr "" + +#: DB:release_group_secondary_type/name:10 +msgctxt "release_group_secondary_type" +msgid "Demo" +msgstr "Демо" + +#: DB:work_attribute_type_allowed_value/value:79 +msgctxt "work_attribute_type_allowed_value" +msgid "Devāmṛtavarṣiṇi" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:80 +msgctxt "work_attribute_type_allowed_value" +msgid "Dhanaśrī" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:81 +msgctxt "work_attribute_type_allowed_value" +msgid "Dhanyāsi" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:82 +msgctxt "work_attribute_type_allowed_value" +msgid "Dharmāvati" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:285 +msgctxt "work_attribute_type_allowed_value" +msgid "Dhr̥va" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:83 +msgctxt "work_attribute_type_allowed_value" +msgid "Dhēnuka" +msgstr "" + +#: DB:release_packaging/name:3 +msgctxt "release_packaging" +msgid "Digipak" +msgstr "" + +#: DB:medium_format/name:12 +msgctxt "medium_format" +msgid "Digital Media" +msgstr "" + +#: DB:release_packaging/name:13 +msgctxt "release_packaging" +msgid "Discbox Slider" +msgstr "" + +#: DB:label_type/name:1 +msgctxt "label_type" +msgid "Distributor" +msgstr "" + +#: DB:area_type/name:5 +msgctxt "area_type" +msgid "District" +msgstr "" + +#: DB:medium_format/name:4 +msgctxt "medium_format" +msgid "DualDisc" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:86 +msgctxt "work_attribute_type_allowed_value" +msgid "Durga" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:87 +msgctxt "work_attribute_type_allowed_value" +msgid "Dvijāvanti" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:76 +msgctxt "work_attribute_type_allowed_value" +msgid "Dēvagāndhāri" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:77 +msgctxt "work_attribute_type_allowed_value" +msgid "Dēvakriya" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:78 +msgctxt "work_attribute_type_allowed_value" +msgid "Dēvamanōhari" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:75 +msgctxt "work_attribute_type_allowed_value" +msgid "Dēś" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:292 +msgctxt "work_attribute_type_allowed_value" +msgid "Dēśādi" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:84 +msgctxt "work_attribute_type_allowed_value" +msgid "Dīpakaṁ" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:85 +msgctxt "work_attribute_type_allowed_value" +msgid "Dīpāḷi" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:13 +msgctxt "work_attribute_type_allowed_value" +msgid "E major" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:14 +msgctxt "work_attribute_type_allowed_value" +msgid "E minor" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:11 +msgctxt "work_attribute_type_allowed_value" +msgid "E-flat major" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:12 +msgctxt "work_attribute_type_allowed_value" +msgid "E-flat minor" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:15 +msgctxt "work_attribute_type_allowed_value" +msgid "E-sharp minor" +msgstr "" + +#: DB:release_group_primary_type/name:3 +msgctxt "release_group_primary_type" +msgid "EP" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:17 +msgctxt "work_attribute_type_allowed_value" +msgid "F major" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:18 +msgctxt "work_attribute_type_allowed_value" +msgid "F minor" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:16 +msgctxt "work_attribute_type_allowed_value" +msgid "F-flat major" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:19 +msgctxt "work_attribute_type_allowed_value" +msgid "F-sharp major" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:20 +msgctxt "work_attribute_type_allowed_value" +msgid "F-sharp minor" +msgstr "" + +#: DB:release_packaging/name:10 +msgctxt "release_packaging" +msgid "Fatbox" +msgstr "" + +#: DB:gender/name:2 +msgctxt "gender" +msgid "Female" +msgstr "" + +#: DB:area_alias_type/name:2 +msgctxt "alias_type" +msgid "Formal name" +msgstr "" + +#: DB:cover_art_archive.art_type/name:1 +msgctxt "cover_art_type" +msgid "Front" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:22 +msgctxt "work_attribute_type_allowed_value" +msgid "G major" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:23 +msgctxt "work_attribute_type_allowed_value" +msgid "G minor" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:21 +msgctxt "work_attribute_type_allowed_value" +msgid "G-flat major" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:24 +msgctxt "work_attribute_type_allowed_value" +msgid "G-sharp major" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:25 +msgctxt "work_attribute_type_allowed_value" +msgid "G-sharp minor" +msgstr "" + +#: DB:work_attribute_type/name:9 +msgctxt "work_attribute_type" +msgid "GEMA ID" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:88 +msgctxt "work_attribute_type_allowed_value" +msgid "Gamakakriya" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:89 +msgctxt "work_attribute_type_allowed_value" +msgid "Gamakakriya/Pūrvīkaḷyāṇi" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:95 +msgctxt "work_attribute_type_allowed_value" +msgid "Garuḍadhvani" +msgstr "" + +#: DB:release_packaging/name:12 +msgctxt "release_packaging" +msgid "Gatefold Cover" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:99 +msgctxt "work_attribute_type_allowed_value" +msgid "Gaurīmanōhari" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:96 +msgctxt "work_attribute_type_allowed_value" +msgid "Gauḍa malhār" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:97 +msgctxt "work_attribute_type_allowed_value" +msgid "Gauḷa" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:98 +msgctxt "work_attribute_type_allowed_value" +msgid "Gauḷipantu" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:90 +msgctxt "work_attribute_type_allowed_value" +msgid "Gaṁbhīra nāṭa" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:91 +msgctxt "work_attribute_type_allowed_value" +msgid "Gaṁbhīra vāṇi" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:100 +msgctxt "work_attribute_type_allowed_value" +msgid "Ghanṭa" +msgstr "" + +#: DB:artist_type/name:2 +msgctxt "artist_type" +msgid "Group" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:102 +msgctxt "work_attribute_type_allowed_value" +msgid "Gurjāri" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:92 +msgctxt "work_attribute_type_allowed_value" +msgid "Gānamūrti" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:93 +msgctxt "work_attribute_type_allowed_value" +msgid "Gānavāridhi" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:94 +msgctxt "work_attribute_type_allowed_value" +msgid "Gāngēyabhūṣaṇi" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:101 +msgctxt "work_attribute_type_allowed_value" +msgid "Gōpikāvasantaṁ" +msgstr "" + +#: DB:medium_format/name:17 +msgctxt "medium_format" +msgid "HD-DVD" +msgstr "HD-DVD" + +#: DB:medium_format/name:25 +msgctxt "medium_format" +msgid "HDCD" +msgstr "HDCD" + +#: DB:medium_format/name:37 +msgctxt "medium_format" +msgid "HQCD" +msgstr "HQCD" + +#: DB:work_attribute_type_allowed_value/value:104 +msgctxt "work_attribute_type_allowed_value" +msgid "Hamsadhvani" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:107 +msgctxt "work_attribute_type_allowed_value" +msgid "Hamsavinōdini" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:103 +msgctxt "work_attribute_type_allowed_value" +msgid "Hamīr kaḷyaṇi" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:108 +msgctxt "work_attribute_type_allowed_value" +msgid "Harikāmbhōji" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:105 +msgctxt "work_attribute_type_allowed_value" +msgid "Haṁsanādaṁ" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:106 +msgctxt "work_attribute_type_allowed_value" +msgid "Haṁsānandi" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:112 +msgctxt "work_attribute_type_allowed_value" +msgid "Hindustān gāndhāri" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:110 +msgctxt "work_attribute_type_allowed_value" +msgid "Hindōḷa vasantaṁ" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:111 +msgctxt "work_attribute_type_allowed_value" +msgid "Hindōḷaṁ" +msgstr "" + +#: DB:label_type/name:2 +msgctxt "label_type" +msgid "Holding" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:113 +msgctxt "work_attribute_type_allowed_value" +msgid "Hussēnī" +msgstr "" + +#: DB:medium_format/name:38 +msgctxt "medium_format" +msgid "Hybrid SACD" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:109 +msgctxt "work_attribute_type_allowed_value" +msgid "Hēmavati" +msgstr "" + +#: DB:label_type/name:9 +msgctxt "label_type" +msgid "Imprint" +msgstr "" + +#: DB:place_type/name:5 +msgctxt "place_type" +msgid "Indoor arena" +msgstr "" + +#: DB:release_group_secondary_type/name:4 +msgctxt "release_group_secondary_type" +msgid "Interview" +msgstr "" + +#: DB:work_attribute_type/name:3 +msgctxt "work_attribute_type" +msgid "JASRAC ID" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:114 +msgctxt "work_attribute_type_allowed_value" +msgid "Jaganmōhini" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:115 +msgctxt "work_attribute_type_allowed_value" +msgid "Janaranjani" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:116 +msgctxt "work_attribute_type_allowed_value" +msgid "Jaya manōhari" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:117 +msgctxt "work_attribute_type_allowed_value" +msgid "Jayantasēna" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:118 +msgctxt "work_attribute_type_allowed_value" +msgid "Jayantaśrī" +msgstr "" + +#: DB:release_packaging/name:1 +msgctxt "release_packaging" +msgid "Jewel Case" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:119 +msgctxt "work_attribute_type_allowed_value" +msgid "Jhankāradhvani" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:120 +msgctxt "work_attribute_type_allowed_value" +msgid "Jingala" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:124 +msgctxt "work_attribute_type_allowed_value" +msgid "Jyōti svarūpiṇi" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:121 +msgctxt "work_attribute_type_allowed_value" +msgid "Jōg" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:122 +msgctxt "work_attribute_type_allowed_value" +msgid "Jōgiya" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:123 +msgctxt "work_attribute_type_allowed_value" +msgid "Jōnpuri" +msgstr "" + +#: DB:work_attribute_type/name:11 +msgctxt "work_attribute_type" +msgid "KOMCA ID" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:128 +msgctxt "work_attribute_type_allowed_value" +msgid "Kalgaḍa" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:130 +msgctxt "work_attribute_type_allowed_value" +msgid "Kalyāṇi" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:127 +msgctxt "work_attribute_type_allowed_value" +msgid "Kalāvati" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:131 +msgctxt "work_attribute_type_allowed_value" +msgid "Kamalāmanōhari" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:133 +msgctxt "work_attribute_type_allowed_value" +msgid "Kamās" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:137 +msgctxt "work_attribute_type_allowed_value" +msgid "Kannaḍa gaula" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:141 +msgctxt "work_attribute_type_allowed_value" +msgid "Karaharapriya" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:142 +msgctxt "work_attribute_type_allowed_value" +msgid "Karṇaranjani" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:143 +msgctxt "work_attribute_type_allowed_value" +msgid "Karṇāṭaka behāg" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:144 +msgctxt "work_attribute_type_allowed_value" +msgid "Karṇāṭaka dēvagāndhāri" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:145 +msgctxt "work_attribute_type_allowed_value" +msgid "Karṇāṭaka kāpi" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:146 +msgctxt "work_attribute_type_allowed_value" +msgid "Karṇāṭaka śudda sāvēri" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:147 +msgctxt "work_attribute_type_allowed_value" +msgid "Kathanakutūhalaṁ" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:129 +msgctxt "work_attribute_type_allowed_value" +msgid "Kaḷyāṇa vasantaṁ" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:125 +msgctxt "work_attribute_type_allowed_value" +msgid "Kaḷā sāvēri" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:126 +msgctxt "work_attribute_type_allowed_value" +msgid "Kaḷānidhi" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:150 +msgctxt "work_attribute_type_allowed_value" +msgid "Kedāraṁ" +msgstr "" + +#: DB:release_packaging/name:6 +msgctxt "release_packaging" +msgid "Keep Case" +msgstr "" + +#: DB:work_attribute_type/name:1 +msgctxt "work_attribute_type" +msgid "Key" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:282 +msgctxt "work_attribute_type_allowed_value" +msgid "Khaṇḍa chāpu" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:293 +msgctxt "work_attribute_type_allowed_value" +msgid "Khaṇḍa-jāti tripuṭa" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:294 +msgctxt "work_attribute_type_allowed_value" +msgid "Khaṇḍa-jāti ēka" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:155 +msgctxt "work_attribute_type_allowed_value" +msgid "Kuntalavarāḷi" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:156 +msgctxt "work_attribute_type_allowed_value" +msgid "Kurinji" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:132 +msgctxt "work_attribute_type_allowed_value" +msgid "Kāmaranjani" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:134 +msgctxt "work_attribute_type_allowed_value" +msgid "Kāmavardani/Pantuvarāḷi" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:136 +msgctxt "work_attribute_type_allowed_value" +msgid "Kānaḍa" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:138 +msgctxt "work_attribute_type_allowed_value" +msgid "Kāntāmaṇi" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:139 +msgctxt "work_attribute_type_allowed_value" +msgid "Kāpi" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:140 +msgctxt "work_attribute_type_allowed_value" +msgid "Kāpi nārāyaṇi" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:148 +msgctxt "work_attribute_type_allowed_value" +msgid "Kāvaḍicindu" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:135 +msgctxt "work_attribute_type_allowed_value" +msgid "Kāṁbhōji" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:149 +msgctxt "work_attribute_type_allowed_value" +msgid "Kēdāragauḷa" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:152 +msgctxt "work_attribute_type_allowed_value" +msgid "Kīravāṇi" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:151 +msgctxt "work_attribute_type_allowed_value" +msgid "Kīraṇāvaḷi" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:153 +msgctxt "work_attribute_type_allowed_value" +msgid "Kōkiladhvani" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:154 +msgctxt "work_attribute_type_allowed_value" +msgid "Kōkilapriya" +msgstr "" + +#: DB:label_alias_type/name:1 +msgctxt "alias_type" +msgid "Label name" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:157 +msgctxt "work_attribute_type_allowed_value" +msgid "Lalita" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:158 +msgctxt "work_attribute_type_allowed_value" +msgid "Lalita pancamaṁ" +msgstr "" + +#: DB:medium_format/name:5 +msgctxt "medium_format" +msgid "LaserDisc" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:159 +msgctxt "work_attribute_type_allowed_value" +msgid "Latāngi" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:160 +msgctxt "work_attribute_type_allowed_value" +msgid "Lavāngi" +msgstr "" + +#: DB:artist_alias_type/name:2 +msgctxt "alias_type" +msgid "Legal name" +msgstr "" + +#: DB:cover_art_archive.art_type/name:12 +msgctxt "cover_art_type" +msgid "Liner" +msgstr "" + +#: DB:release_group_secondary_type/name:6 +msgctxt "release_group_secondary_type" +msgid "Live" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:161 +msgctxt "work_attribute_type_allowed_value" +msgid "Madhyamā varāḷi" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:162 +msgctxt "work_attribute_type_allowed_value" +msgid "Madhyamāvati" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:295 +msgctxt "work_attribute_type_allowed_value" +msgid "Madhyādi" +msgstr "" + +#: DB:work_type/name:7 +msgctxt "work_type" +msgid "Madrigal" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:163 +msgctxt "work_attribute_type_allowed_value" +msgid "Maduvanti" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:296 +msgctxt "work_attribute_type_allowed_value" +msgid "Mahālakṣmi" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:164 +msgctxt "work_attribute_type_allowed_value" +msgid "Malahari" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:166 +msgctxt "work_attribute_type_allowed_value" +msgid "Malayamārutaṁ" +msgstr "" + +#: DB:gender/name:1 +msgctxt "gender" +msgid "Male" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:168 +msgctxt "work_attribute_type_allowed_value" +msgid "Mandāri" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:172 +msgctxt "work_attribute_type_allowed_value" +msgid "Manōranjani" +msgstr "" + +#: DB:work_type/name:8 +msgctxt "work_type" +msgid "Mass" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:175 +msgctxt "work_attribute_type_allowed_value" +msgid "Mayūra sāvēri" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:170 +msgctxt "work_attribute_type_allowed_value" +msgid "Maṇirangu" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:286 +msgctxt "work_attribute_type_allowed_value" +msgid "Maṭhya" +msgstr "" + +#: DB:cover_art_archive.art_type/name:4 +msgctxt "cover_art_type" +msgid "Medium" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:176 +msgctxt "work_attribute_type_allowed_value" +msgid "Meghamalhar" +msgstr "" + +#: DB:medium_format/name:6 +msgctxt "medium_format" +msgid "MiniDisc" +msgstr "" + +#: DB:release_group_secondary_type/name:9 +msgctxt "release_group_secondary_type" +msgid "Mixtape/Street" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:281 +msgctxt "work_attribute_type_allowed_value" +msgid "Miśra chāpu" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:177 +msgctxt "work_attribute_type_allowed_value" +msgid "Miśra khamāj" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:178 +msgctxt "work_attribute_type_allowed_value" +msgid "Miśra pahāḍi" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:180 +msgctxt "work_attribute_type_allowed_value" +msgid "Miśra yaman" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:179 +msgctxt "work_attribute_type_allowed_value" +msgid "Miśra śivaranjani" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:287 +msgctxt "work_attribute_type_allowed_value" +msgid "Miśra-jāti jhaṁpe" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:297 +msgctxt "work_attribute_type_allowed_value" +msgid "Miśra-jāti rūpaka" +msgstr "" + +#: DB:work_type/name:9 +msgctxt "work_type" +msgid "Motet" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:183 +msgctxt "work_attribute_type_allowed_value" +msgid "Mukhāri" +msgstr "" + +#: DB:area_type/name:4 +msgctxt "area_type" +msgid "Municipality" +msgstr "" + +#: DB:work_attribute_type/name:12 +msgctxt "work_attribute_type" +msgid "MÜST ID" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:167 +msgctxt "work_attribute_type_allowed_value" +msgid "Mānavati" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:171 +msgctxt "work_attribute_type_allowed_value" +msgid "Mānji" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:169 +msgctxt "work_attribute_type_allowed_value" +msgid "Mānḍu" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:173 +msgctxt "work_attribute_type_allowed_value" +msgid "Mārgahindōḷaṁ" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:174 +msgctxt "work_attribute_type_allowed_value" +msgid "Māyāmāḷavagauḷa" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:165 +msgctxt "work_attribute_type_allowed_value" +msgid "Māḷavi" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:181 +msgctxt "work_attribute_type_allowed_value" +msgid "Mōhan kaḷyāṇi" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:182 +msgctxt "work_attribute_type_allowed_value" +msgid "Mōhanaṁ" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:196 +msgctxt "work_attribute_type_allowed_value" +msgid "Navarasa kannaḍa" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:195 +msgctxt "work_attribute_type_allowed_value" +msgid "Navarāgamālika" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:197 +msgctxt "work_attribute_type_allowed_value" +msgid "Navrōj" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:187 +msgctxt "work_attribute_type_allowed_value" +msgid "Naḷinakānti" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:191 +msgctxt "work_attribute_type_allowed_value" +msgid "Naṭabhairavi" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:194 +msgctxt "work_attribute_type_allowed_value" +msgid "Naṭanārāyaṇi" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:200 +msgctxt "work_attribute_type_allowed_value" +msgid "Nirōṣita" +msgstr "" + +#: DB:release_packaging/name:7 +msgctxt "release_packaging" +msgid "None" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:184 +msgctxt "work_attribute_type_allowed_value" +msgid "Nādanāmakriya" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:185 +msgctxt "work_attribute_type_allowed_value" +msgid "Nāga gāndhāri" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:186 +msgctxt "work_attribute_type_allowed_value" +msgid "Nāgasvarāvaḷi" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:188 +msgctxt "work_attribute_type_allowed_value" +msgid "Nārāyaṇi" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:189 +msgctxt "work_attribute_type_allowed_value" +msgid "Nāsikabhūṣaṇi" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:198 +msgctxt "work_attribute_type_allowed_value" +msgid "Nāyaki" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:190 +msgctxt "work_attribute_type_allowed_value" +msgid "Nāṭa" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:192 +msgctxt "work_attribute_type_allowed_value" +msgid "Nāṭakapriya" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:193 +msgctxt "work_attribute_type_allowed_value" +msgid "Nāṭakurinji" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:199 +msgctxt "work_attribute_type_allowed_value" +msgid "Nīlāṁbari" +msgstr "" + +#: DB:cover_art_archive.art_type/name:5 +msgctxt "cover_art_type" +msgid "Obi" +msgstr "" + +#: DB:release_status/name:1 +msgctxt "release_status" +msgid "Official" +msgstr "" + +#: DB:work_type/name:10 +msgctxt "work_type" +msgid "Opera" +msgstr "" + +#: DB:work_type/name:24 +msgctxt "work_type" +msgid "Operetta" +msgstr "" + +#: DB:work_type/name:11 +msgctxt "work_type" +msgid "Oratorio" +msgstr "" + +#: DB:artist_type/name:5 +msgctxt "artist_type" +msgid "Orchestra" +msgstr "" + +#: DB:label_type/name:4 +msgctxt "label_type" +msgid "Original Production" +msgstr "" + +#: DB:artist_type/name:3 +msgctxt "artist_type" +msgid "Other" +msgstr "" + +#: DB:place_type/name:3 +msgctxt "place_type" +msgid "Other" +msgstr "" + +#: DB:release_group_primary_type/name:11 +msgctxt "release_group_primary_type" +msgid "Other" +msgstr "" + +#: DB:medium_format/name:13 +msgctxt "medium_format" +msgid "Other" +msgstr "" + +#: DB:release_packaging/name:5 +msgctxt "release_packaging" +msgid "Other" +msgstr "" + +#: DB:gender/name:3 +msgctxt "gender" +msgid "Other" +msgstr "" + +#: DB:cover_art_archive.art_type/name:8 +msgctxt "cover_art_type" +msgid "Other" +msgstr "" + +#: DB:work_type/name:12 +msgctxt "work_type" +msgid "Overture" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:203 +msgctxt "work_attribute_type_allowed_value" +msgid "Paras" +msgstr "" + +#: DB:work_type/name:13 +msgctxt "work_type" +msgid "Partita" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:204 +msgctxt "work_attribute_type_allowed_value" +msgid "Paṭdīp" +msgstr "" + +#: DB:artist_type/name:1 +msgctxt "artist_type" +msgid "Person" +msgstr "" + +#: DB:medium_format/name:15 +msgctxt "medium_format" +msgid "Piano Roll" +msgstr "" + +#: DB:place_alias_type/name:1 +msgctxt "alias_type" +msgid "Place name" +msgstr "" + +#: DB:work_type/name:21 +msgctxt "work_type" +msgid "Poem" +msgstr "" + +#: DB:cover_art_archive.art_type/name:11 +msgctxt "cover_art_type" +msgid "Poster" +msgstr "Плакат" + +#: DB:label_type/name:3 +msgctxt "label_type" +msgid "Production" +msgstr "" + +#: DB:release_status/name:2 +msgctxt "release_status" +msgid "Promotion" +msgstr "" + +#: DB:work_type/name:23 +msgctxt "work_type" +msgid "Prose" +msgstr "Проза" + +#: DB:release_status/name:4 +msgctxt "release_status" +msgid "Pseudo-Release" +msgstr "" + +#: DB:label_type/name:7 +msgctxt "label_type" +msgid "Publisher" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:205 +msgctxt "work_attribute_type_allowed_value" +msgid "Puṇṇāgavarāḷi" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:209 +msgctxt "work_attribute_type_allowed_value" +msgid "Puṣpalatika" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:202 +msgctxt "work_attribute_type_allowed_value" +msgid "Pālamanjari" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:201 +msgctxt "work_attribute_type_allowed_value" +msgid "Pāḍi" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:208 +msgctxt "work_attribute_type_allowed_value" +msgid "Pūrvi" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:206 +msgctxt "work_attribute_type_allowed_value" +msgid "Pūrṇa ṣaḍjaṁ" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:207 +msgctxt "work_attribute_type_allowed_value" +msgid "Pūrṇacandrika" +msgstr "" + +#: DB:work_type/name:14 +msgctxt "work_type" +msgid "Quartet" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:215 +msgctxt "work_attribute_type_allowed_value" +msgid "Ranjani" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:216 +msgctxt "work_attribute_type_allowed_value" +msgid "Rasikapriya" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:217 +msgctxt "work_attribute_type_allowed_value" +msgid "Ratipati priya" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:218 +msgctxt "work_attribute_type_allowed_value" +msgid "Ravicandrika" +msgstr "" + +#: DB:medium_format/name:10 +msgctxt "medium_format" +msgid "Reel-to-reel" +msgstr "" + +#: DB:label_type/name:6 +msgctxt "label_type" +msgid "Reissue Production" +msgstr "" + +#: DB:release_group_secondary_type/name:7 +msgctxt "release_group_secondary_type" +msgid "Remix" +msgstr "" + +#: DB:label_type/name:8 +msgctxt "label_type" +msgid "Rights Society" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:222 +msgctxt "work_attribute_type_allowed_value" +msgid "Rudrapriya" +msgstr "" + +#: DB:work_attribute_type/name:4 +msgctxt "work_attribute_type" +msgid "Rāga (Carnatic)" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:210 +msgctxt "work_attribute_type_allowed_value" +msgid "Rāgamālika" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:211 +msgctxt "work_attribute_type_allowed_value" +msgid "Rāgavinōdini" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:212 +msgctxt "work_attribute_type_allowed_value" +msgid "Rāgēśrī" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:213 +msgctxt "work_attribute_type_allowed_value" +msgid "Rāma manōhari" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:214 +msgctxt "work_attribute_type_allowed_value" +msgid "Rāmapriya" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:219 +msgctxt "work_attribute_type_allowed_value" +msgid "Rēvagupti" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:220 +msgctxt "work_attribute_type_allowed_value" +msgid "Rēvati" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:221 +msgctxt "work_attribute_type_allowed_value" +msgid "Rītigauḷa" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:280 +msgctxt "work_attribute_type_allowed_value" +msgid "Rūpaka" +msgstr "" + +#: DB:medium_format/name:3 +msgctxt "medium_format" +msgid "SACD" +msgstr "" + +#: DB:work_attribute_type/name:8 +msgctxt "work_attribute_type" +msgid "SESAC ID" +msgstr "" + +#: DB:medium_format/name:36 +msgctxt "medium_format" +msgid "SHM-CD" +msgstr "SHM-CD" + +#: DB:work_attribute_type/name:10 +msgctxt "work_attribute_type" +msgid "SOCAN ID" +msgstr "" + +#: DB:medium_format/name:23 +msgctxt "medium_format" +msgid "SVCD" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:223 +msgctxt "work_attribute_type_allowed_value" +msgid "Sahānā" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:231 +msgctxt "work_attribute_type_allowed_value" +msgid "Sarasvati" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:232 +msgctxt "work_attribute_type_allowed_value" +msgid "Sarasvatī manōhari" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:230 +msgctxt "work_attribute_type_allowed_value" +msgid "Sarasāngi" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:233 +msgctxt "work_attribute_type_allowed_value" +msgid "Saurāṣtraṁ" +msgstr "" + +#: DB:artist_alias_type/name:3 DB:label_alias_type/name:2 +#: DB:place_alias_type/name:2 DB:work_alias_type/name:2 +#: DB:area_alias_type/name:3 +msgctxt "alias_type" +msgid "Search hint" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:235 +msgctxt "work_attribute_type_allowed_value" +msgid "Sencuruṭṭi" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:236 +msgctxt "work_attribute_type_allowed_value" +msgid "Simhavāhini" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:237 +msgctxt "work_attribute_type_allowed_value" +msgid "Simhēndra madhyamaṁ" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:238 +msgctxt "work_attribute_type_allowed_value" +msgid "Sindhubhairavi" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:239 +msgctxt "work_attribute_type_allowed_value" +msgid "Sindhumandāri" +msgstr "" + +#: DB:release_group_primary_type/name:2 +msgctxt "release_group_primary_type" +msgid "Single" +msgstr "" + +#: DB:release_packaging/name:2 +msgctxt "release_packaging" +msgid "Slim Jewel Case" +msgstr "" + +#: DB:release_packaging/name:11 +msgctxt "release_packaging" +msgid "Snap Case" +msgstr "" + +#: DB:work_type/name:5 +msgctxt "work_type" +msgid "Sonata" +msgstr "Соната" + +#: DB:work_type/name:17 +msgctxt "work_type" +msgid "Song" +msgstr "" + +#: DB:work_type/name:15 +msgctxt "work_type" +msgid "Song-cycle" +msgstr "" + +#: DB:work_type/name:22 +msgctxt "work_type" +msgid "Soundtrack" +msgstr "Саундтрек" + +#: DB:release_group_secondary_type/name:2 +msgctxt "release_group_secondary_type" +msgid "Soundtrack" +msgstr "Саундтрек" + +#: DB:cover_art_archive.art_type/name:6 +msgctxt "cover_art_type" +msgid "Spine" +msgstr "" + +#: DB:release_group_secondary_type/name:3 +msgctxt "release_group_secondary_type" +msgid "Spokenword" +msgstr "" + +#: DB:place_type/name:4 +msgctxt "place_type" +msgid "Stadium" +msgstr "" + +#: DB:cover_art_archive.art_type/name:10 +msgctxt "cover_art_type" +msgid "Sticker" +msgstr "" + +#: DB:place_type/name:1 +msgctxt "place_type" +msgid "Studio" +msgstr "" + +#: DB:area_type/name:2 +msgctxt "area_type" +msgid "Subdivision" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:244 +msgctxt "work_attribute_type_allowed_value" +msgid "Sucaritra" +msgstr "" + +#: DB:work_type/name:6 +msgctxt "work_type" +msgid "Suite" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:250 +msgctxt "work_attribute_type_allowed_value" +msgid "Sumanēśaranjani" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:251 +msgctxt "work_attribute_type_allowed_value" +msgid "Sunādavinōdini" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:252 +msgctxt "work_attribute_type_allowed_value" +msgid "Suraṭi" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:253 +msgctxt "work_attribute_type_allowed_value" +msgid "Svararanjani" +msgstr "" + +#: DB:work_type/name:18 +msgctxt "work_type" +msgid "Symphonic poem" +msgstr "" + +#: DB:work_type/name:16 +msgctxt "work_type" +msgid "Symphony" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:224 +msgctxt "work_attribute_type_allowed_value" +msgid "Sālaga bhairavi" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:225 +msgctxt "work_attribute_type_allowed_value" +msgid "Sāma" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:229 +msgctxt "work_attribute_type_allowed_value" +msgid "Sāranga" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:228 +msgctxt "work_attribute_type_allowed_value" +msgid "Sārāmati" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:234 +msgctxt "work_attribute_type_allowed_value" +msgid "Sāvēri" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:255 +msgctxt "work_attribute_type_allowed_value" +msgid "Tanarūpi" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:256 +msgctxt "work_attribute_type_allowed_value" +msgid "Tillāng" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:288 +msgctxt "work_attribute_type_allowed_value" +msgid "Tiśra-jāti tripuṭa" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:284 +msgctxt "work_attribute_type_allowed_value" +msgid "Tiśra-jāti ēka" +msgstr "" + +#: DB:cover_art_archive.art_type/name:7 +msgctxt "cover_art_type" +msgid "Track" +msgstr "Трек" + +#: DB:cover_art_archive.art_type/name:9 +msgctxt "cover_art_type" +msgid "Tray" +msgstr "" + +#: DB:work_attribute_type/name:5 +msgctxt "work_attribute_type" +msgid "Tāla (Carnatic)" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:257 +msgctxt "work_attribute_type_allowed_value" +msgid "Tōḍi" +msgstr "" + +#: DB:medium_format/name:28 +msgctxt "medium_format" +msgid "UMD" +msgstr "" + +#: DB:medium_format/name:26 +msgctxt "medium_format" +msgid "USB Flash Drive" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:258 +msgctxt "work_attribute_type_allowed_value" +msgid "Udaya ravicandrika" +msgstr "" + +#: DB:medium_format/name:22 +msgctxt "medium_format" +msgid "VCD" +msgstr "VCD" + +#: DB:medium_format/name:21 +msgctxt "medium_format" +msgid "VHS" +msgstr "VHS" + +#: DB:work_attribute_type_allowed_value/value:261 +msgctxt "work_attribute_type_allowed_value" +msgid "Vakuḷābharaṇaṁ" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:262 +msgctxt "work_attribute_type_allowed_value" +msgid "Valaji" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:263 +msgctxt "work_attribute_type_allowed_value" +msgid "Vandanadhāriṇi" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:265 +msgctxt "work_attribute_type_allowed_value" +msgid "Varamu" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:264 +msgctxt "work_attribute_type_allowed_value" +msgid "Varāḷi" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:266 +msgctxt "work_attribute_type_allowed_value" +msgid "Varṇarūpini" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:267 +msgctxt "work_attribute_type_allowed_value" +msgid "Vasanta" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:268 +msgctxt "work_attribute_type_allowed_value" +msgid "Vasanta varāḷi" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:269 +msgctxt "work_attribute_type_allowed_value" +msgid "Vasantabhairavi" +msgstr "" + +#: DB:place_type/name:2 +msgctxt "place_type" +msgid "Venue" +msgstr "" + +#: DB:medium_format/name:32 +msgctxt "medium_format" +msgid "Videotape" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:273 +msgctxt "work_attribute_type_allowed_value" +msgid "Vijayanagari" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:274 +msgctxt "work_attribute_type_allowed_value" +msgid "Vijayasarasvati" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:275 +msgctxt "work_attribute_type_allowed_value" +msgid "Vijayaśrī" +msgstr "" + +#: DB:medium_format/name:7 +msgctxt "medium_format" +msgid "Vinyl" +msgstr "Винил" + +#: DB:work_attribute_type_allowed_value/value:259 +msgctxt "work_attribute_type_allowed_value" +msgid "Vācaspati" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:260 +msgctxt "work_attribute_type_allowed_value" +msgid "Vāgadīśvari" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:270 +msgctxt "work_attribute_type_allowed_value" +msgid "Vāsanti" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:271 +msgctxt "work_attribute_type_allowed_value" +msgid "Vēgavāhiṇi" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:272 +msgctxt "work_attribute_type_allowed_value" +msgid "Vēlāvali" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:276 +msgctxt "work_attribute_type_allowed_value" +msgid "Vīra vasantaṁ" +msgstr "" + +#: DB:cover_art_archive.art_type/name:13 +msgctxt "cover_art_type" +msgid "Watermark" +msgstr "" + +#: DB:medium_format/name:14 +msgctxt "medium_format" +msgid "Wax Cylinder" +msgstr "" + +#: DB:work_alias_type/name:1 +msgctxt "alias_type" +msgid "Work name" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:277 +msgctxt "work_attribute_type_allowed_value" +msgid "Yadukula kāṁbōji" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:278 +msgctxt "work_attribute_type_allowed_value" +msgid "Yamuna kalyāṇi" +msgstr "" + +#: DB:work_type/name:19 +msgctxt "work_type" +msgid "Zarzuela" +msgstr "" + +#: DB:medium_format/name:27 +msgctxt "medium_format" +msgid "slotMusic" +msgstr "" + +#: DB:work_type/name:20 +msgctxt "work_type" +msgid "Étude" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:35 +msgctxt "work_attribute_type_allowed_value" +msgid "Ābhēri" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:36 +msgctxt "work_attribute_type_allowed_value" +msgid "Ābhōgi" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:279 +msgctxt "work_attribute_type_allowed_value" +msgid "Ādi" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:290 +msgctxt "work_attribute_type_allowed_value" +msgid "Ādi (Tiśra naḍe)" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:37 +msgctxt "work_attribute_type_allowed_value" +msgid "Āhir bhairav" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:38 +msgctxt "work_attribute_type_allowed_value" +msgid "Āhiri" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:41 +msgctxt "work_attribute_type_allowed_value" +msgid "Ānandabhairavi" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:42 +msgctxt "work_attribute_type_allowed_value" +msgid "Āndōḷika" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:43 +msgctxt "work_attribute_type_allowed_value" +msgid "Ārabhi" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:283 +msgctxt "work_attribute_type_allowed_value" +msgid "Ēka" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:226 +msgctxt "work_attribute_type_allowed_value" +msgid "Śankarābharaṇaṁ" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:240 +msgctxt "work_attribute_type_allowed_value" +msgid "Śivaranjani" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:241 +msgctxt "work_attribute_type_allowed_value" +msgid "Śrī" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:242 +msgctxt "work_attribute_type_allowed_value" +msgid "Śrīranjani" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:243 +msgctxt "work_attribute_type_allowed_value" +msgid "Śubhapantuvarāḷi" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:245 +msgctxt "work_attribute_type_allowed_value" +msgid "Śudda sārang" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:246 +msgctxt "work_attribute_type_allowed_value" +msgid "Śudda sāvēri" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:247 +msgctxt "work_attribute_type_allowed_value" +msgid "Śuddadhanyāsi" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:248 +msgctxt "work_attribute_type_allowed_value" +msgid "Śuddasīmantini" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:254 +msgctxt "work_attribute_type_allowed_value" +msgid "Śyāṁ kaḷyāṇ" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:249 +msgctxt "work_attribute_type_allowed_value" +msgid "Śūḷiṇi" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:227 +msgctxt "work_attribute_type_allowed_value" +msgid "Ṣanmukhapriya" +msgstr "" diff --git a/po/attributes/sk.po b/po/attributes/sk.po index 3bdd4da9f..059c9d47f 100644 --- a/po/attributes/sk.po +++ b/po/attributes/sk.po @@ -5,7 +5,7 @@ msgid "" msgstr "" "Project-Id-Version: MusicBrainz\n" -"PO-Revision-Date: 2014-03-31 21:30+0000\n" +"PO-Revision-Date: 2014-04-17 03:31+0000\n" "Last-Translator: Ian McEwen \n" "Language-Team: Slovak (http://www.transifex.com/projects/p/musicbrainz/language/sk/)\n" "MIME-Version: 1.0\n" @@ -64,6 +64,16 @@ msgctxt "work_attribute_type_allowed_value" msgid "A-sharp minor" msgstr "" +#: DB:work_attribute_type/name:13 +msgctxt "work_attribute_type" +msgid "APRA ID" +msgstr "" + +#: DB:work_attribute_type/name:6 +msgctxt "work_attribute_type" +msgid "ASCAP ID" +msgstr "" + #: DB:release_group_primary_type/name:1 msgctxt "release_group_primary_type" msgid "Album" @@ -139,6 +149,11 @@ msgctxt "work_attribute_type_allowed_value" msgid "B-flat minor" msgstr "" +#: DB:work_attribute_type/name:7 +msgctxt "work_attribute_type" +msgid "BMI ID" +msgstr "" + #: DB:cover_art_archive.art_type/name:2 msgctxt "cover_art_type" msgid "Back" @@ -494,6 +509,11 @@ msgctxt "work_attribute_type_allowed_value" msgid "Darbārī kānaḍa" msgstr "" +#: DB:release_group_secondary_type/name:10 +msgctxt "release_group_secondary_type" +msgid "Demo" +msgstr "" + #: DB:work_attribute_type_allowed_value/value:79 msgctxt "work_attribute_type_allowed_value" msgid "Devāmṛtavarṣiṇi" @@ -699,6 +719,11 @@ msgctxt "work_attribute_type_allowed_value" msgid "G-sharp minor" msgstr "" +#: DB:work_attribute_type/name:9 +msgctxt "work_attribute_type" +msgid "GEMA ID" +msgstr "" + #: DB:work_attribute_type_allowed_value/value:88 msgctxt "work_attribute_type_allowed_value" msgid "Gamakakriya" @@ -944,6 +969,11 @@ msgctxt "work_attribute_type_allowed_value" msgid "Jōnpuri" msgstr "" +#: DB:work_attribute_type/name:11 +msgctxt "work_attribute_type" +msgid "KOMCA ID" +msgstr "" + #: DB:work_attribute_type_allowed_value/value:128 msgctxt "work_attribute_type_allowed_value" msgid "Kalgaḍa" @@ -1319,6 +1349,11 @@ msgctxt "area_type" msgid "Municipality" msgstr "" +#: DB:work_attribute_type/name:12 +msgctxt "work_attribute_type" +msgid "MÜST ID" +msgstr "" + #: DB:work_attribute_type_allowed_value/value:167 msgctxt "work_attribute_type_allowed_value" msgid "Mānavati" @@ -1729,11 +1764,21 @@ msgctxt "medium_format" msgid "SACD" msgstr "SACD" +#: DB:work_attribute_type/name:8 +msgctxt "work_attribute_type" +msgid "SESAC ID" +msgstr "" + #: DB:medium_format/name:36 msgctxt "medium_format" msgid "SHM-CD" msgstr "" +#: DB:work_attribute_type/name:10 +msgctxt "work_attribute_type" +msgid "SOCAN ID" +msgstr "" + #: DB:medium_format/name:23 msgctxt "medium_format" msgid "SVCD" diff --git a/po/attributes/sv.po b/po/attributes/sv.po index e8b5ba820..dd0f11406 100644 --- a/po/attributes/sv.po +++ b/po/attributes/sv.po @@ -4,7 +4,7 @@ msgid "" msgstr "" "Project-Id-Version: MusicBrainz\n" -"PO-Revision-Date: 2014-03-31 21:30+0000\n" +"PO-Revision-Date: 2014-04-17 03:31+0000\n" "Last-Translator: Ian McEwen \n" "Language-Team: Swedish (http://www.transifex.com/projects/p/musicbrainz/language/sv/)\n" "MIME-Version: 1.0\n" @@ -63,6 +63,16 @@ msgctxt "work_attribute_type_allowed_value" msgid "A-sharp minor" msgstr "" +#: DB:work_attribute_type/name:13 +msgctxt "work_attribute_type" +msgid "APRA ID" +msgstr "" + +#: DB:work_attribute_type/name:6 +msgctxt "work_attribute_type" +msgid "ASCAP ID" +msgstr "" + #: DB:release_group_primary_type/name:1 msgctxt "release_group_primary_type" msgid "Album" @@ -138,6 +148,11 @@ msgctxt "work_attribute_type_allowed_value" msgid "B-flat minor" msgstr "" +#: DB:work_attribute_type/name:7 +msgctxt "work_attribute_type" +msgid "BMI ID" +msgstr "" + #: DB:cover_art_archive.art_type/name:2 msgctxt "cover_art_type" msgid "Back" @@ -493,6 +508,11 @@ msgctxt "work_attribute_type_allowed_value" msgid "Darbārī kānaḍa" msgstr "" +#: DB:release_group_secondary_type/name:10 +msgctxt "release_group_secondary_type" +msgid "Demo" +msgstr "" + #: DB:work_attribute_type_allowed_value/value:79 msgctxt "work_attribute_type_allowed_value" msgid "Devāmṛtavarṣiṇi" @@ -698,6 +718,11 @@ msgctxt "work_attribute_type_allowed_value" msgid "G-sharp minor" msgstr "" +#: DB:work_attribute_type/name:9 +msgctxt "work_attribute_type" +msgid "GEMA ID" +msgstr "" + #: DB:work_attribute_type_allowed_value/value:88 msgctxt "work_attribute_type_allowed_value" msgid "Gamakakriya" @@ -943,6 +968,11 @@ msgctxt "work_attribute_type_allowed_value" msgid "Jōnpuri" msgstr "" +#: DB:work_attribute_type/name:11 +msgctxt "work_attribute_type" +msgid "KOMCA ID" +msgstr "" + #: DB:work_attribute_type_allowed_value/value:128 msgctxt "work_attribute_type_allowed_value" msgid "Kalgaḍa" @@ -1318,6 +1348,11 @@ msgctxt "area_type" msgid "Municipality" msgstr "" +#: DB:work_attribute_type/name:12 +msgctxt "work_attribute_type" +msgid "MÜST ID" +msgstr "" + #: DB:work_attribute_type_allowed_value/value:167 msgctxt "work_attribute_type_allowed_value" msgid "Mānavati" @@ -1728,11 +1763,21 @@ msgctxt "medium_format" msgid "SACD" msgstr "SACD" +#: DB:work_attribute_type/name:8 +msgctxt "work_attribute_type" +msgid "SESAC ID" +msgstr "" + #: DB:medium_format/name:36 msgctxt "medium_format" msgid "SHM-CD" msgstr "" +#: DB:work_attribute_type/name:10 +msgctxt "work_attribute_type" +msgid "SOCAN ID" +msgstr "" + #: DB:medium_format/name:23 msgctxt "medium_format" msgid "SVCD" diff --git a/po/attributes/tr.po b/po/attributes/tr.po index 2717054b0..c032ba35f 100644 --- a/po/attributes/tr.po +++ b/po/attributes/tr.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: MusicBrainz\n" -"PO-Revision-Date: 2014-03-31 21:30+0000\n" +"PO-Revision-Date: 2014-04-17 03:31+0000\n" "Last-Translator: Ian McEwen \n" "Language-Team: Turkish (http://www.transifex.com/projects/p/musicbrainz/language/tr/)\n" "MIME-Version: 1.0\n" @@ -66,6 +66,16 @@ msgctxt "work_attribute_type_allowed_value" msgid "A-sharp minor" msgstr "" +#: DB:work_attribute_type/name:13 +msgctxt "work_attribute_type" +msgid "APRA ID" +msgstr "" + +#: DB:work_attribute_type/name:6 +msgctxt "work_attribute_type" +msgid "ASCAP ID" +msgstr "" + #: DB:release_group_primary_type/name:1 msgctxt "release_group_primary_type" msgid "Album" @@ -141,6 +151,11 @@ msgctxt "work_attribute_type_allowed_value" msgid "B-flat minor" msgstr "" +#: DB:work_attribute_type/name:7 +msgctxt "work_attribute_type" +msgid "BMI ID" +msgstr "" + #: DB:cover_art_archive.art_type/name:2 msgctxt "cover_art_type" msgid "Back" @@ -496,6 +511,11 @@ msgctxt "work_attribute_type_allowed_value" msgid "Darbārī kānaḍa" msgstr "" +#: DB:release_group_secondary_type/name:10 +msgctxt "release_group_secondary_type" +msgid "Demo" +msgstr "" + #: DB:work_attribute_type_allowed_value/value:79 msgctxt "work_attribute_type_allowed_value" msgid "Devāmṛtavarṣiṇi" @@ -701,6 +721,11 @@ msgctxt "work_attribute_type_allowed_value" msgid "G-sharp minor" msgstr "" +#: DB:work_attribute_type/name:9 +msgctxt "work_attribute_type" +msgid "GEMA ID" +msgstr "" + #: DB:work_attribute_type_allowed_value/value:88 msgctxt "work_attribute_type_allowed_value" msgid "Gamakakriya" @@ -946,6 +971,11 @@ msgctxt "work_attribute_type_allowed_value" msgid "Jōnpuri" msgstr "" +#: DB:work_attribute_type/name:11 +msgctxt "work_attribute_type" +msgid "KOMCA ID" +msgstr "" + #: DB:work_attribute_type_allowed_value/value:128 msgctxt "work_attribute_type_allowed_value" msgid "Kalgaḍa" @@ -1321,6 +1351,11 @@ msgctxt "area_type" msgid "Municipality" msgstr "" +#: DB:work_attribute_type/name:12 +msgctxt "work_attribute_type" +msgid "MÜST ID" +msgstr "" + #: DB:work_attribute_type_allowed_value/value:167 msgctxt "work_attribute_type_allowed_value" msgid "Mānavati" @@ -1731,11 +1766,21 @@ msgctxt "medium_format" msgid "SACD" msgstr "SACD" +#: DB:work_attribute_type/name:8 +msgctxt "work_attribute_type" +msgid "SESAC ID" +msgstr "" + #: DB:medium_format/name:36 msgctxt "medium_format" msgid "SHM-CD" msgstr "" +#: DB:work_attribute_type/name:10 +msgctxt "work_attribute_type" +msgid "SOCAN ID" +msgstr "" + #: DB:medium_format/name:23 msgctxt "medium_format" msgid "SVCD" diff --git a/po/attributes/zh_CN.po b/po/attributes/zh_CN.po index 5262788fb..dace5a04e 100644 --- a/po/attributes/zh_CN.po +++ b/po/attributes/zh_CN.po @@ -16,7 +16,7 @@ msgid "" msgstr "" "Project-Id-Version: MusicBrainz\n" -"PO-Revision-Date: 2014-03-31 21:30+0000\n" +"PO-Revision-Date: 2014-04-17 03:31+0000\n" "Last-Translator: Ian McEwen \n" "Language-Team: Chinese (China) (http://www.transifex.com/projects/p/musicbrainz/language/zh_CN/)\n" "MIME-Version: 1.0\n" @@ -75,6 +75,16 @@ msgctxt "work_attribute_type_allowed_value" msgid "A-sharp minor" msgstr "" +#: DB:work_attribute_type/name:13 +msgctxt "work_attribute_type" +msgid "APRA ID" +msgstr "" + +#: DB:work_attribute_type/name:6 +msgctxt "work_attribute_type" +msgid "ASCAP ID" +msgstr "" + #: DB:release_group_primary_type/name:1 msgctxt "release_group_primary_type" msgid "Album" @@ -150,6 +160,11 @@ msgctxt "work_attribute_type_allowed_value" msgid "B-flat minor" msgstr "" +#: DB:work_attribute_type/name:7 +msgctxt "work_attribute_type" +msgid "BMI ID" +msgstr "" + #: DB:cover_art_archive.art_type/name:2 msgctxt "cover_art_type" msgid "Back" @@ -505,6 +520,11 @@ msgctxt "work_attribute_type_allowed_value" msgid "Darbārī kānaḍa" msgstr "" +#: DB:release_group_secondary_type/name:10 +msgctxt "release_group_secondary_type" +msgid "Demo" +msgstr "" + #: DB:work_attribute_type_allowed_value/value:79 msgctxt "work_attribute_type_allowed_value" msgid "Devāmṛtavarṣiṇi" @@ -710,6 +730,11 @@ msgctxt "work_attribute_type_allowed_value" msgid "G-sharp minor" msgstr "" +#: DB:work_attribute_type/name:9 +msgctxt "work_attribute_type" +msgid "GEMA ID" +msgstr "" + #: DB:work_attribute_type_allowed_value/value:88 msgctxt "work_attribute_type_allowed_value" msgid "Gamakakriya" @@ -955,6 +980,11 @@ msgctxt "work_attribute_type_allowed_value" msgid "Jōnpuri" msgstr "" +#: DB:work_attribute_type/name:11 +msgctxt "work_attribute_type" +msgid "KOMCA ID" +msgstr "" + #: DB:work_attribute_type_allowed_value/value:128 msgctxt "work_attribute_type_allowed_value" msgid "Kalgaḍa" @@ -1330,6 +1360,11 @@ msgctxt "area_type" msgid "Municipality" msgstr "自治区" +#: DB:work_attribute_type/name:12 +msgctxt "work_attribute_type" +msgid "MÜST ID" +msgstr "" + #: DB:work_attribute_type_allowed_value/value:167 msgctxt "work_attribute_type_allowed_value" msgid "Mānavati" @@ -1740,11 +1775,21 @@ msgctxt "medium_format" msgid "SACD" msgstr "超级音频CD" +#: DB:work_attribute_type/name:8 +msgctxt "work_attribute_type" +msgid "SESAC ID" +msgstr "" + #: DB:medium_format/name:36 msgctxt "medium_format" msgid "SHM-CD" msgstr "" +#: DB:work_attribute_type/name:10 +msgctxt "work_attribute_type" +msgid "SOCAN ID" +msgstr "" + #: DB:medium_format/name:23 msgctxt "medium_format" msgid "SVCD" diff --git a/po/bg.po b/po/bg.po index 1e2ffa11a..066e69e6b 100644 --- a/po/bg.po +++ b/po/bg.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: MusicBrainz\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2014-03-20 11:12+0100\n" -"PO-Revision-Date: 2014-03-21 08:44+0000\n" +"POT-Creation-Date: 2014-05-03 17:28+0200\n" +"PO-Revision-Date: 2014-05-04 08:44+0000\n" "Last-Translator: nikki\n" "Language-Team: Bulgarian (http://www.transifex.com/projects/p/musicbrainz/language/bg/)\n" "MIME-Version: 1.0\n" @@ -19,6 +19,10 @@ msgstr "" "Language: bg\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" +#: contrib/plugins/albumartist_website.py:3 +msgid "Album Artist Website" +msgstr "" + #: contrib/plugins/no_release.py:50 msgid "Enable plugin for all releases by default" msgstr "" @@ -31,63 +35,55 @@ msgstr "" msgid "Remove specific release information..." msgstr "" -#: contrib/plugins/open_in_gui.py:32 -msgid "Open Error" +#: contrib/plugins/standardise_performers.py:3 +msgid "Standardise Performers" msgstr "" -#: contrib/plugins/open_in_gui.py:32 -#, python-format -msgid "" -"Error while opening file:\n" -"\n" -"%s" -msgstr "" - -#: contrib/plugins/lastfm/ui_options_lastfm.py:117 +#: contrib/plugins/lastfm/ui_options_lastfm.py:99 msgid "Last.fm" msgstr "" -#: contrib/plugins/lastfm/ui_options_lastfm.py:118 +#: contrib/plugins/lastfm/ui_options_lastfm.py:100 msgid "Use track tags" msgstr "" -#: contrib/plugins/lastfm/ui_options_lastfm.py:119 +#: contrib/plugins/lastfm/ui_options_lastfm.py:101 msgid "Use artist tags" msgstr "" -#: contrib/plugins/lastfm/ui_options_lastfm.py:120 +#: contrib/plugins/lastfm/ui_options_lastfm.py:102 #: picard/ui/options/tags.py:30 msgid "Tags" msgstr "Етикети" -#: contrib/plugins/lastfm/ui_options_lastfm.py:121 -#: picard/ui/ui_options_folksonomy.py:116 +#: contrib/plugins/lastfm/ui_options_lastfm.py:103 +#: picard/ui/ui_options_folksonomy.py:103 msgid "Ignore tags:" msgstr "Игнорирани етикети:" -#: contrib/plugins/lastfm/ui_options_lastfm.py:122 -#: picard/ui/ui_options_folksonomy.py:121 +#: contrib/plugins/lastfm/ui_options_lastfm.py:104 +#: picard/ui/ui_options_folksonomy.py:108 msgid "Join multiple tags with:" msgstr "" -#: contrib/plugins/lastfm/ui_options_lastfm.py:123 -#: picard/ui/ui_options_folksonomy.py:122 +#: contrib/plugins/lastfm/ui_options_lastfm.py:105 +#: picard/ui/ui_options_folksonomy.py:109 msgid " / " msgstr " / " -#: contrib/plugins/lastfm/ui_options_lastfm.py:124 -#: picard/ui/ui_options_folksonomy.py:123 +#: contrib/plugins/lastfm/ui_options_lastfm.py:106 +#: picard/ui/ui_options_folksonomy.py:110 msgid ", " msgstr ", " -#: contrib/plugins/lastfm/ui_options_lastfm.py:125 -#: picard/ui/ui_options_folksonomy.py:118 +#: contrib/plugins/lastfm/ui_options_lastfm.py:107 +#: picard/ui/ui_options_folksonomy.py:105 msgid "Minimal tag usage:" msgstr "Минимално използване на етикети:" -#: contrib/plugins/lastfm/ui_options_lastfm.py:126 -#: picard/ui/ui_options_folksonomy.py:119 picard/ui/ui_options_matching.py:88 -#: picard/ui/ui_options_matching.py:89 picard/ui/ui_options_matching.py:90 +#: contrib/plugins/lastfm/ui_options_lastfm.py:108 +#: picard/ui/ui_options_folksonomy.py:106 picard/ui/ui_options_matching.py:75 +#: picard/ui/ui_options_matching.py:76 picard/ui/ui_options_matching.py:77 msgid " %" msgstr " %" @@ -95,419 +91,306 @@ msgstr " %" msgid "Calculate replay &gain..." msgstr "" -#: contrib/plugins/replaygain/__init__.py:66 +#: contrib/plugins/replaygain/__init__.py:67 #, python-format -msgid "Calculating replay gain for \"%s\"..." +msgid "Calculating replay gain for \"%(filename)s\"..." msgstr "" -#: contrib/plugins/replaygain/__init__.py:71 +#: contrib/plugins/replaygain/__init__.py:75 #, python-format -msgid "Replay gain for \"%s\" successfully calculated." +msgid "Replay gain for \"%(filename)s\" successfully calculated." msgstr "" -#: contrib/plugins/replaygain/__init__.py:73 +#: contrib/plugins/replaygain/__init__.py:80 #, python-format -msgid "Could not calculate replay gain for \"%s\"." +msgid "Could not calculate replay gain for \"%(filename)s\"." msgstr "" -#: contrib/plugins/replaygain/__init__.py:76 +#: contrib/plugins/replaygain/__init__.py:85 msgid "Calculate album &gain..." msgstr "" -#: contrib/plugins/replaygain/__init__.py:103 -#: contrib/plugins/replaygain/__init__.py:111 +#: contrib/plugins/replaygain/__init__.py:113 +#: contrib/plugins/replaygain/__init__.py:124 #, python-format -msgid "Calculating album gain for \"%s\"..." +msgid "Calculating album gain for \"%(album)s\"..." msgstr "" -#: contrib/plugins/replaygain/__init__.py:119 +#: contrib/plugins/replaygain/__init__.py:135 #, python-format -msgid "Album gain for \"%s\" successfully calculated." +msgid "Album gain for \"%(album)s\" successfully calculated." msgstr "" -#: contrib/plugins/replaygain/__init__.py:121 +#: contrib/plugins/replaygain/__init__.py:140 #, python-format -msgid "Could not calculate album gain for \"%s\"." +msgid "Could not calculate album gain for \"%(album)s\"." msgstr "" -#: picard/acoustid.py:102 +#: contrib/plugins/replaygain/ui_options_replaygain.py:59 +msgid "Replay Gain" +msgstr "" + +#: contrib/plugins/replaygain/ui_options_replaygain.py:60 +msgid "Path to VorbisGain:" +msgstr "" + +#: contrib/plugins/replaygain/ui_options_replaygain.py:61 +msgid "Path to MP3Gain:" +msgstr "" + +#: contrib/plugins/replaygain/ui_options_replaygain.py:62 +msgid "Path to metaflac:" +msgstr "" + +#: contrib/plugins/replaygain/ui_options_replaygain.py:63 +msgid "Path to wvgain:" +msgstr "" + +#: contrib/plugins/viewvariables/__init__.py:42 #, python-format -msgid "AcoustID lookup network error for '%s'!" +msgid "File: %s" msgstr "" -#: picard/acoustid.py:117 +#: contrib/plugins/viewvariables/__init__.py:47 #, python-format -msgid "AcoustID lookup failed for '%s'!" +msgid "Track: %s %s " msgstr "" -#: picard/acoustid.py:128 +#: contrib/plugins/viewvariables/__init__.py:49 +msgid "Variables" +msgstr "" + +#: contrib/plugins/viewvariables/__init__.py:69 +msgid "File variables" +msgstr "" + +#: contrib/plugins/viewvariables/__init__.py:74 +msgid "Hidden variables" +msgstr "" + +#: contrib/plugins/viewvariables/__init__.py:79 +msgid "Tag variables" +msgstr "" + +#: contrib/plugins/viewvariables/ui_variables_dialog.py:73 +msgid "Variable" +msgstr "" + +#: contrib/plugins/viewvariables/ui_variables_dialog.py:75 +msgid "Value" +msgstr "" + +#: picard/acoustid.py:109 #, python-format -msgid "Acoustid lookup returned no result for file '%s'" +msgid "AcoustID lookup network error for '%(filename)s'!" msgstr "" -#: picard/acoustid.py:132 +#: picard/acoustid.py:133 #, python-format -msgid "Looking up the fingerprint for file %s..." +msgid "AcoustID lookup failed for '%(filename)s'!" msgstr "" -#: picard/acoustidmanager.py:78 -msgid "Submitting AcoustIDs..." -msgstr "" - -#: picard/acoustidmanager.py:83 +#: picard/acoustid.py:155 #, python-format -msgid "AcoustID submission failed with error '%s'" +msgid "AcoustID lookup returned no result for file '%(filename)s'" msgstr "" -#: picard/acoustidmanager.py:85 +#: picard/acoustid.py:166 +#, python-format +msgid "Looking up the fingerprint for file '%(filename)s' ..." +msgstr "" + +#: picard/acoustidmanager.py:80 +msgid "Submitting AcoustIDs ..." +msgstr "" + +#: picard/acoustidmanager.py:94 +#, python-format +msgid "AcoustID submission failed with error '%(error)s'" +msgstr "" + +#: picard/acoustidmanager.py:102 msgid "AcoustIDs successfully submitted." msgstr "" -#: picard/album.py:64 picard/cluster.py:234 +#: picard/album.py:65 picard/cluster.py:255 msgid "Unmatched Files" msgstr "" -#: picard/album.py:187 +#: picard/album.py:188 #, python-format msgid "[could not load album %s]" msgstr "[неуспешно зареждане на албума %s]" -#: picard/album.py:272 +#: picard/album.py:277 #, python-format -msgid "Album %s loaded" +msgid "Album %(id)s loaded: %(artist)s - %(album)s" msgstr "" -#: picard/album.py:288 +#: picard/album.py:294 +#, python-format +msgid "Loading album %(id)s ..." +msgstr "" + +#: picard/album.py:303 msgid "[loading album information]" msgstr "[зареждане на информация за албума]" -#: picard/album.py:463 +#: picard/album.py:478 #, python-format msgid "; %i image" msgid_plural "; %i images" msgstr[0] "" msgstr[1] "" -#: picard/cluster.py:150 picard/cluster.py:159 +#: picard/cluster.py:155 picard/cluster.py:168 #, python-format -msgid "No matching releases for cluster %s" +msgid "No matching releases for cluster %(album)s" msgstr "" -#: picard/cluster.py:161 +#: picard/cluster.py:174 #, python-format -msgid "Cluster %s identified!" -msgstr "Клъстер %s идентифициран!" - -#: picard/cluster.py:168 -#, python-format -msgid "Looking up the metadata for cluster %s..." +msgid "Cluster %(album)s identified!" msgstr "" -#: picard/collection.py:60 +#: picard/cluster.py:185 #, python-format -msgid "Added %i release to collection \"%s\"" -msgid_plural "Added %i releases to collection \"%s\"" +msgid "Looking up the metadata for cluster %(album)s..." +msgstr "" + +#: picard/collection.py:64 +#, python-format +msgid "Added %(count)i release to collection \"%(name)s\"" +msgid_plural "Added %(count)i releases to collection \"%(name)s\"" msgstr[0] "" msgstr[1] "" -#: picard/collection.py:72 +#: picard/collection.py:86 #, python-format -msgid "Removed %i release from collection \"%s\"" -msgid_plural "Removed %i releases from collection \"%s\"" +msgid "Removed %(count)i release from collection \"%(name)s\"" +msgid_plural "Removed %(count)i releases from collection \"%(name)s\"" msgstr[0] "" msgstr[1] "" -#: picard/collection.py:81 +#: picard/collection.py:100 #, python-format -msgid "Error loading collections: %s" +msgid "Error loading collections: %(error)s" msgstr "" -#: picard/config_upgrade.py:57 picard/config_upgrade.py:70 +#: picard/config_upgrade.py:58 picard/config_upgrade.py:71 msgid "Various Artists file naming scheme removal" msgstr "" -#: picard/config_upgrade.py:58 +#: picard/config_upgrade.py:59 msgid "" "The separate file naming scheme for various artists albums has been removed in this version of Picard.\n" "Your file naming scheme has automatically been merged with that of single artist albums." msgstr "" -#: picard/config_upgrade.py:71 +#: picard/config_upgrade.py:72 msgid "" "The separate file naming scheme for various artists albums has been removed in this version of Picard.\n" "You currently do not use this option, but have a separate file naming scheme defined.\n" "Do you want to remove it or merge it with your file naming scheme for single artist albums?" msgstr "" -#: picard/config_upgrade.py:77 +#: picard/config_upgrade.py:78 msgid "Merge" msgstr "" -#: picard/config_upgrade.py:77 picard/ui/metadatabox.py:254 +#: picard/config_upgrade.py:78 picard/ui/metadatabox.py:254 msgid "Remove" msgstr "" -#: picard/const.py:67 -msgid "CD" -msgstr "CD" - -#: picard/const.py:68 -msgid "CD-R" -msgstr "" - -#: picard/const.py:69 -msgid "HDCD" -msgstr "" - -#: picard/const.py:70 -msgid "8cm CD" -msgstr "" - -#: picard/const.py:71 -msgid "Vinyl" -msgstr "Vinyl" - -#: picard/const.py:72 -msgid "7\" Vinyl" -msgstr "" - -#: picard/const.py:73 -msgid "10\" Vinyl" -msgstr "" - -#: picard/const.py:74 -msgid "12\" Vinyl" -msgstr "" - -#: picard/const.py:75 -msgid "Digital Media" -msgstr "Digital Media" - -#: picard/const.py:76 -msgid "USB Flash Drive" -msgstr "" - -#: picard/const.py:77 -msgid "slotMusic" -msgstr "" - -#: picard/const.py:78 -msgid "Cassette" -msgstr "Cassette" - -#: picard/const.py:79 -msgid "DVD" -msgstr "DVD" - -#: picard/const.py:80 -msgid "DVD-Audio" -msgstr "" - -#: picard/const.py:81 -msgid "DVD-Video" -msgstr "" - -#: picard/const.py:82 -msgid "SACD" -msgstr "SACD" - -#: picard/const.py:83 -msgid "DualDisc" -msgstr "" - -#: picard/const.py:84 -msgid "MiniDisc" -msgstr "MiniDisc" - -#: picard/const.py:85 -msgid "Blu-ray" -msgstr "" - -#: picard/const.py:86 -msgid "HD-DVD" -msgstr "" - -#: picard/const.py:87 -msgid "Videotape" -msgstr "" - -#: picard/const.py:88 -msgid "VHS" -msgstr "" - -#: picard/const.py:89 -msgid "Betamax" -msgstr "" - #: picard/const.py:90 -msgid "VCD" -msgstr "" - -#: picard/const.py:91 -msgid "SVCD" -msgstr "" - -#: picard/const.py:92 -msgid "UMD" -msgstr "" - -#: picard/const.py:93 picard/coverartarchive.py:33 -#: picard/ui/ui_options_releases.py:226 -msgid "Other" -msgstr "Друг" - -#: picard/const.py:94 -msgid "LaserDisc" -msgstr "LaserDisc" - -#: picard/const.py:95 -msgid "Cartridge" -msgstr "" - -#: picard/const.py:96 -msgid "Reel-to-reel" -msgstr "" - -#: picard/const.py:97 -msgid "DAT" -msgstr "DAT" - -#: picard/const.py:98 -msgid "Wax Cylinder" -msgstr "Wax Cylinder" - -#: picard/const.py:99 -msgid "Piano Roll" -msgstr "Piano Roll" - -#: picard/const.py:100 -msgid "DCC" -msgstr "" - -#: picard/const.py:115 msgid "Danish" msgstr "" -#: picard/const.py:116 +#: picard/const.py:91 msgid "German" msgstr "Немски" -#: picard/const.py:118 +#: picard/const.py:93 msgid "English" msgstr "Английски" -#: picard/const.py:119 +#: picard/const.py:94 msgid "English (Canada)" msgstr "Английски (Канада)" -#: picard/const.py:120 +#: picard/const.py:95 msgid "English (UK)" msgstr "Английски (Великобритания)" -#: picard/const.py:122 +#: picard/const.py:97 msgid "Spanish" msgstr "Испански" -#: picard/const.py:123 +#: picard/const.py:98 msgid "Estonian" msgstr "Естонски" -#: picard/const.py:125 +#: picard/const.py:100 msgid "Finnish" msgstr "Финландски" -#: picard/const.py:127 +#: picard/const.py:102 msgid "French" msgstr "Френски" -#: picard/const.py:136 +#: picard/const.py:111 msgid "Italian" msgstr "Италиански" -#: picard/const.py:143 +#: picard/const.py:118 msgid "Dutch" msgstr "Холандски" -#: picard/const.py:145 +#: picard/const.py:120 msgid "Polish" msgstr "Полски" -#: picard/const.py:147 +#: picard/const.py:122 msgid "Brazilian Portuguese" msgstr "Бразилски португалски" -#: picard/const.py:154 +#: picard/const.py:129 msgid "Swedish" msgstr "Шведски" -#: picard/coverart.py:84 +#: picard/coverart.py:85 #, python-format -msgid "Coverart %s downloaded" +msgid "Cover art of type '%(type)s' downloaded for %(albumid)s from %(host)s" msgstr "" -#: picard/coverart.py:240 +#: picard/coverart.py:256 #, python-format -msgid "Downloading http://%s:%i%s" -msgstr "" - -#: picard/coverartarchive.py:24 -msgid "Front" -msgstr "" - -#: picard/coverartarchive.py:25 -msgid "Back" -msgstr "" - -#: picard/coverartarchive.py:26 -msgid "Booklet" -msgstr "" - -#: picard/coverartarchive.py:27 -msgid "Medium" -msgstr "" - -#: picard/coverartarchive.py:28 -msgid "Tray" -msgstr "" - -#: picard/coverartarchive.py:29 -msgid "Obi" +msgid "" +"Downloading cover art of type '%(type)s' for %(albumid)s from %(host)s .." msgstr "" #: picard/coverartarchive.py:30 -msgid "Spine" -msgstr "" - -#: picard/coverartarchive.py:31 picard/ui/mainwindow.py:546 -msgid "Track" -msgstr "Песен" - -#: picard/coverartarchive.py:32 -msgid "Sticker" -msgstr "" - -#: picard/coverartarchive.py:34 msgid "Unknown" msgstr "" -#: picard/file.py:536 +#: picard/file.py:494 #, python-format -msgid "No matching tracks for file %s" +msgid "No matching tracks for file '%(filename)s'" msgstr "" -#: picard/file.py:548 +#: picard/file.py:510 #, python-format -msgid "No matching tracks above the threshold for file %s" +msgid "No matching tracks above the threshold for file '%(filename)s'" msgstr "" -#: picard/file.py:551 +#: picard/file.py:517 #, python-format -msgid "File %s identified!" +msgid "File '%(filename)s' identified!" msgstr "" -#: picard/file.py:567 +#: picard/file.py:537 #, python-format -msgid "Looking up the metadata for file %s..." +msgid "Looking up the metadata for file %(filename)s ..." msgstr "" #: picard/releasegroup.py:53 @@ -518,11 +401,11 @@ msgstr "" msgid "Year" msgstr "" -#: picard/releasegroup.py:55 picard/ui/cdlookup.py:34 +#: picard/releasegroup.py:55 picard/ui/cdlookup.py:35 msgid "Country" msgstr "" -#: picard/releasegroup.py:56 picard/util/tags.py:81 +#: picard/releasegroup.py:56 msgid "Format" msgstr "Формат" @@ -542,16 +425,23 @@ msgstr "" msgid "[no release info]" msgstr "" -#: picard/tagger.py:316 +#: picard/tagger.py:370 #, python-format -msgid "Loading directory %s" +msgid "Adding %(count)d file from '%(directory)s' ..." +msgid_plural "Adding %(count)d files from '%(directory)s' ..." +msgstr[0] "" +msgstr[1] "" + +#: picard/tagger.py:512 +#, python-format +msgid "Removing album %(id)s: %(artist)s - %(album)s" msgstr "" -#: picard/tagger.py:452 +#: picard/tagger.py:528 msgid "CD Lookup Error" msgstr "" -#: picard/tagger.py:453 +#: picard/tagger.py:529 #, python-format msgid "" "Error while reading CD:\n" @@ -559,44 +449,43 @@ msgid "" "%s" msgstr "" -#: picard/ui/cdlookup.py:34 picard/ui/mainwindow.py:544 -#: picard/ui/ui_options_releases.py:216 picard/util/tags.py:21 +#: picard/ui/cdlookup.py:35 picard/ui/mainwindow.py:597 picard/util/tags.py:21 msgid "Album" msgstr "Албум" -#: picard/ui/cdlookup.py:34 picard/ui/itemviews.py:96 -#: picard/ui/mainwindow.py:545 picard/util/tags.py:22 +#: picard/ui/cdlookup.py:35 picard/ui/itemviews.py:96 +#: picard/ui/mainwindow.py:598 picard/util/tags.py:22 msgid "Artist" msgstr "Изпълнител" -#: picard/ui/cdlookup.py:34 picard/util/tags.py:24 +#: picard/ui/cdlookup.py:35 picard/util/tags.py:24 msgid "Date" msgstr "Дата" -#: picard/ui/cdlookup.py:35 +#: picard/ui/cdlookup.py:36 msgid "Labels" msgstr "" -#: picard/ui/cdlookup.py:35 +#: picard/ui/cdlookup.py:36 msgid "Catalog #s" msgstr "" -#: picard/ui/cdlookup.py:35 picard/util/tags.py:79 +#: picard/ui/cdlookup.py:36 picard/util/tags.py:78 msgid "Barcode" msgstr "Баркод" -#: picard/ui/collectionmenu.py:31 +#: picard/ui/collectionmenu.py:42 msgid "Refresh List" msgstr "" -#: picard/ui/collectionmenu.py:92 +#: picard/ui/collectionmenu.py:86 #, python-format msgid "%s (%i release)" msgid_plural "%s (%i releases)" msgstr[0] "" msgstr[1] "" -#: picard/ui/coverartbox.py:142 +#: picard/ui/coverartbox.py:141 msgid "View release on MusicBrainz" msgstr "" @@ -612,59 +501,59 @@ msgstr "Показване на &скритите файлове" msgid "&Set as starting directory" msgstr "" -#: picard/ui/infodialog.py:36 picard/ui/infodialog.py:75 +#: picard/ui/infodialog.py:37 picard/ui/infodialog.py:80 msgid "Info" msgstr "" -#: picard/ui/infodialog.py:80 +#: picard/ui/infodialog.py:85 msgid "Filename:" msgstr "Име на файла:" -#: picard/ui/infodialog.py:82 +#: picard/ui/infodialog.py:87 msgid "Format:" msgstr "Формат:" -#: picard/ui/infodialog.py:86 +#: picard/ui/infodialog.py:91 msgid "Size:" msgstr "Размер:" -#: picard/ui/infodialog.py:90 +#: picard/ui/infodialog.py:95 msgid "Length:" msgstr "Времетраене:" -#: picard/ui/infodialog.py:92 +#: picard/ui/infodialog.py:97 msgid "Bitrate:" msgstr "Бит./сек:" -#: picard/ui/infodialog.py:94 +#: picard/ui/infodialog.py:99 msgid "Sample rate:" msgstr "" -#: picard/ui/infodialog.py:96 +#: picard/ui/infodialog.py:101 msgid "Bits per sample:" msgstr "" -#: picard/ui/infodialog.py:100 +#: picard/ui/infodialog.py:105 msgid "Mono" msgstr "Моно" -#: picard/ui/infodialog.py:102 +#: picard/ui/infodialog.py:107 msgid "Stereo" msgstr "Стерео" -#: picard/ui/infodialog.py:105 +#: picard/ui/infodialog.py:110 msgid "Channels:" msgstr "Канали:" -#: picard/ui/infodialog.py:116 +#: picard/ui/infodialog.py:121 msgid "Album Info" msgstr "" -#: picard/ui/infodialog.py:124 +#: picard/ui/infodialog.py:129 msgid "&Errors" msgstr "" -#: picard/ui/infodialog.py:134 picard/ui/ui_infodialog.py:77 +#: picard/ui/infodialog.py:139 picard/ui/ui_infodialog.py:73 msgid "&Info" msgstr "&Информация" @@ -688,7 +577,7 @@ msgstr "" msgid "Title" msgstr "Заглавие" -#: picard/ui/itemviews.py:95 picard/util/tags.py:88 +#: picard/ui/itemviews.py:95 picard/util/tags.py:86 msgid "Length" msgstr "Времетраене" @@ -713,8 +602,8 @@ msgid "Collections" msgstr "" #: picard/ui/itemviews.py:365 -msgid "&Plugins" -msgstr "&Приставки" +msgid "P&lugins" +msgstr "" #: picard/ui/itemviews.py:541 msgid "file view" @@ -736,12 +625,16 @@ msgstr "" msgid "Contains albums and matched files" msgstr "" -#: picard/ui/logview.py:91 +#: picard/ui/logview.py:109 msgid "Log" msgstr "" -#: picard/ui/logview.py:99 -msgid "Status History" +#: picard/ui/logview.py:113 +msgid "Debug mode" +msgstr "" + +#: picard/ui/logview.py:134 +msgid "Activity History" msgstr "" #: picard/ui/mainwindow.py:74 @@ -775,276 +668,309 @@ msgstr "" #: picard/ui/mainwindow.py:220 msgid "" -"Picard listens on a port to integrate with your browser and downloads " -"release information when you click the \"Tagger\" buttons on the MusicBrainz" -" website" +"Picard listens on this port to integrate with your browser. When you " +"\"Search\" or \"Open in Browser\" from Picard, clicking the \"Tagger\" " +"button on the web page loads the release into Picard." msgstr "" -#: picard/ui/mainwindow.py:240 +#: picard/ui/mainwindow.py:243 #, python-format msgid " Listening on port %(port)d " msgstr "" -#: picard/ui/mainwindow.py:263 +#: picard/ui/mainwindow.py:299 msgid "Submission Error" msgstr "" -#: picard/ui/mainwindow.py:264 +#: picard/ui/mainwindow.py:300 msgid "" "You need to configure your AcoustID API key before you can submit " "fingerprints." msgstr "" -#: picard/ui/mainwindow.py:269 +#: picard/ui/mainwindow.py:305 msgid "&Options..." msgstr "&Опции..." -#: picard/ui/mainwindow.py:273 +#: picard/ui/mainwindow.py:309 msgid "&Cut" msgstr "&Изрязване" -#: picard/ui/mainwindow.py:278 +#: picard/ui/mainwindow.py:314 msgid "&Paste" msgstr "&Поставяне" -#: picard/ui/mainwindow.py:283 +#: picard/ui/mainwindow.py:319 msgid "&Help..." msgstr "&Помощ..." -#: picard/ui/mainwindow.py:288 +#: picard/ui/mainwindow.py:323 msgid "&About..." msgstr "&Относно..." -#: picard/ui/mainwindow.py:292 +#: picard/ui/mainwindow.py:327 msgid "&Donate..." msgstr "&Дарение..." -#: picard/ui/mainwindow.py:295 +#: picard/ui/mainwindow.py:330 msgid "&Report a Bug..." msgstr "" -#: picard/ui/mainwindow.py:298 +#: picard/ui/mainwindow.py:333 msgid "&Support Forum..." msgstr "" -#: picard/ui/mainwindow.py:301 +#: picard/ui/mainwindow.py:336 msgid "&Add Files..." msgstr "&Добавяне на файлове..." -#: picard/ui/mainwindow.py:302 +#: picard/ui/mainwindow.py:337 msgid "Add files to the tagger" msgstr "" -#: picard/ui/mainwindow.py:307 +#: picard/ui/mainwindow.py:342 msgid "A&dd Folder..." msgstr "До&бавяне на директория..." -#: picard/ui/mainwindow.py:308 +#: picard/ui/mainwindow.py:343 msgid "Add a folder to the tagger" msgstr "" -#: picard/ui/mainwindow.py:310 +#: picard/ui/mainwindow.py:345 msgid "Ctrl+D" msgstr "Ctrl+D" -#: picard/ui/mainwindow.py:313 +#: picard/ui/mainwindow.py:348 msgid "&Save" msgstr "&Запис" -#: picard/ui/mainwindow.py:314 +#: picard/ui/mainwindow.py:349 msgid "Save selected files" msgstr "Записване на избраните файлове" -#: picard/ui/mainwindow.py:320 +#: picard/ui/mainwindow.py:355 msgid "S&ubmit" msgstr "" -#: picard/ui/mainwindow.py:321 -msgid "Submit fingerprints" +#: picard/ui/mainwindow.py:356 +msgid "Submit acoustic fingerprints" msgstr "" -#: picard/ui/mainwindow.py:325 +#: picard/ui/mainwindow.py:360 msgid "E&xit" msgstr "Из&ход" -#: picard/ui/mainwindow.py:328 +#: picard/ui/mainwindow.py:363 msgid "Ctrl+Q" msgstr "Ctrl+Q" -#: picard/ui/mainwindow.py:331 +#: picard/ui/mainwindow.py:366 msgid "&Remove" msgstr "&Премахване" -#: picard/ui/mainwindow.py:332 +#: picard/ui/mainwindow.py:367 msgid "Remove selected files/albums" msgstr "Премахване на избраните файлове / албуми" -#: picard/ui/mainwindow.py:336 +#: picard/ui/mainwindow.py:371 msgid "Lookup in &Browser" msgstr "" -#: picard/ui/mainwindow.py:337 +#: picard/ui/mainwindow.py:372 msgid "Lookup selected item on MusicBrainz website" msgstr "" -#: picard/ui/mainwindow.py:341 +#: picard/ui/mainwindow.py:376 msgid "File &Browser" msgstr "" -#: picard/ui/mainwindow.py:345 +#: picard/ui/mainwindow.py:380 msgid "Ctrl+B" msgstr "Ctrl+B" -#: picard/ui/mainwindow.py:348 +#: picard/ui/mainwindow.py:383 msgid "&Cover Art" msgstr "" -#: picard/ui/mainwindow.py:354 picard/ui/mainwindow.py:539 +#: picard/ui/mainwindow.py:389 picard/ui/mainwindow.py:591 msgid "Search" msgstr "Търсене" -#: picard/ui/mainwindow.py:357 -msgid "&CD Lookup..." +#: picard/ui/mainwindow.py:392 +msgid "Lookup &CD..." msgstr "" -#: picard/ui/mainwindow.py:358 picard/ui/mainwindow.py:359 -msgid "Lookup CD" +#: picard/ui/mainwindow.py:393 +msgid "Lookup the details of the CD in your drive" msgstr "" -#: picard/ui/mainwindow.py:361 +#: picard/ui/mainwindow.py:395 msgid "Ctrl+K" msgstr "Ctrl+K" -#: picard/ui/mainwindow.py:364 +#: picard/ui/mainwindow.py:398 msgid "&Scan" msgstr "" -#: picard/ui/mainwindow.py:367 +#: picard/ui/mainwindow.py:401 msgid "Ctrl+Y" msgstr "Ctrl+Y" -#: picard/ui/mainwindow.py:370 +#: picard/ui/mainwindow.py:404 msgid "Cl&uster" msgstr "" -#: picard/ui/mainwindow.py:373 +#: picard/ui/mainwindow.py:407 msgid "Ctrl+U" msgstr "Ctrl+U" -#: picard/ui/mainwindow.py:376 +#: picard/ui/mainwindow.py:410 msgid "&Lookup" msgstr "&Търсене" -#: picard/ui/mainwindow.py:377 picard/ui/mainwindow.py:378 -msgid "Lookup metadata" -msgstr "Търсене на метаданни" +#: picard/ui/mainwindow.py:411 +msgid "Lookup selected items in MusicBrainz" +msgstr "" -#: picard/ui/mainwindow.py:381 +#: picard/ui/mainwindow.py:416 msgid "Ctrl+L" msgstr "Ctrl+L" -#: picard/ui/mainwindow.py:384 +#: picard/ui/mainwindow.py:419 msgid "&Info..." msgstr "" -#: picard/ui/mainwindow.py:387 +#: picard/ui/mainwindow.py:422 msgid "Ctrl+I" msgstr "" -#: picard/ui/mainwindow.py:390 +#: picard/ui/mainwindow.py:425 msgid "&Refresh" msgstr "&Опресняване" -#: picard/ui/mainwindow.py:391 +#: picard/ui/mainwindow.py:426 msgid "Ctrl+R" msgstr "" -#: picard/ui/mainwindow.py:394 +#: picard/ui/mainwindow.py:429 msgid "&Rename Files" msgstr "" -#: picard/ui/mainwindow.py:399 +#: picard/ui/mainwindow.py:434 msgid "&Move Files" msgstr "" -#: picard/ui/mainwindow.py:404 +#: picard/ui/mainwindow.py:439 msgid "Save &Tags" msgstr "" -#: picard/ui/mainwindow.py:409 +#: picard/ui/mainwindow.py:444 msgid "Tags From &File Names..." msgstr "" -#: picard/ui/mainwindow.py:412 -msgid "View &Log..." +#: picard/ui/mainwindow.py:447 +msgid "&Open My Collections in Browser" msgstr "" -#: picard/ui/mainwindow.py:415 -msgid "View Status &History..." +#: picard/ui/mainwindow.py:451 +msgid "View Error/Debug &Log" msgstr "" -#: picard/ui/mainwindow.py:422 -msgid "&Open..." +#: picard/ui/mainwindow.py:454 +msgid "View Activity &History" msgstr "" -#: picard/ui/mainwindow.py:423 -msgid "Open the file" +#: picard/ui/mainwindow.py:461 +msgid "&Play file" msgstr "" -#: picard/ui/mainwindow.py:426 -msgid "Open &Folder..." +#: picard/ui/mainwindow.py:462 +msgid "Play the file in your default media player" msgstr "" -#: picard/ui/mainwindow.py:427 -msgid "Open the containing folder" +#: picard/ui/mainwindow.py:466 +msgid "Open Containing &Folder" msgstr "" -#: picard/ui/mainwindow.py:448 +#: picard/ui/mainwindow.py:467 +msgid "Open the containing folder in your file explorer" +msgstr "" + +#: picard/ui/mainwindow.py:492 msgid "&File" msgstr "&Файл" -#: picard/ui/mainwindow.py:456 +#: picard/ui/mainwindow.py:503 msgid "&Edit" msgstr "&Редакция" -#: picard/ui/mainwindow.py:462 +#: picard/ui/mainwindow.py:509 msgid "&View" msgstr "" -#: picard/ui/mainwindow.py:470 +#: picard/ui/mainwindow.py:515 msgid "&Options" msgstr "&Настройки" -#: picard/ui/mainwindow.py:476 +#: picard/ui/mainwindow.py:521 msgid "&Tools" msgstr "&Инструменти" -#: picard/ui/mainwindow.py:485 picard/ui/util.py:35 +#: picard/ui/mainwindow.py:532 picard/ui/util.py:35 msgid "&Help" msgstr "Помо&щ" -#: picard/ui/mainwindow.py:505 +#: picard/ui/mainwindow.py:553 msgid "Actions" msgstr "" -#: picard/ui/mainwindow.py:608 +#: picard/ui/mainwindow.py:599 +msgid "Track" +msgstr "Песен" + +#: picard/ui/mainwindow.py:662 msgid "All Supported Formats" msgstr "Всички поддържани формати" -#: picard/ui/mainwindow.py:705 +#: picard/ui/mainwindow.py:695 +#, python-format +msgid "Adding directory: '%(directory)s' ..." +msgstr "" + +#: picard/ui/mainwindow.py:702 +#, python-format +msgid "Adding multiple directories from '%(directory)s' ..." +msgstr "" + +#: picard/ui/mainwindow.py:767 msgid "Configuration Required" msgstr "" -#: picard/ui/mainwindow.py:706 +#: picard/ui/mainwindow.py:768 msgid "" "Audio fingerprinting is not yet configured. Would you like to configure it " "now?" msgstr "" -#: picard/ui/mainwindow.py:784 picard/ui/mainwindow.py:791 +#: picard/ui/mainwindow.py:848 #, python-format -msgid " (Error: %s)" -msgstr " (Грешка: %s)" +msgid "%(filename)s (error: %(error)s)" +msgstr "" + +#: picard/ui/mainwindow.py:854 +#, python-format +msgid "%(filename)s" +msgstr "" + +#: picard/ui/mainwindow.py:864 +#, python-format +msgid "%(filename)s (%(similarity)d%%) (error: %(error)s)" +msgstr "" + +#: picard/ui/mainwindow.py:871 +#, python-format +msgid "%(filename)s (%(similarity)d%%)" +msgstr "" #: picard/ui/metadatabox.py:82 #, python-format @@ -1098,387 +1024,387 @@ msgid_plural "Use Original Values" msgstr[0] "" msgstr[1] "" -#: picard/ui/passworddialog.py:37 +#: picard/ui/passworddialog.py:40 #, python-format msgid "" "The server %s requires you to login. Please enter your username and " "password." msgstr "Сървърът %s изисква автентикация. Моля, въведете вашето потребителско име и парола." -#: picard/ui/passworddialog.py:75 +#: picard/ui/passworddialog.py:79 #, python-format msgid "" "The proxy %s requires you to login. Please enter your username and password." msgstr "" -#: picard/ui/tagsfromfilenames.py:55 picard/ui/tagsfromfilenames.py:100 +#: picard/ui/tagsfromfilenames.py:56 picard/ui/tagsfromfilenames.py:101 msgid "File Name" msgstr "Име на файл" -#: picard/ui/ui_cdlookup.py:66 picard/ui/ui_options_cdlookup.py:55 -#: picard/ui/ui_options_cdlookup_select.py:62 picard/ui/options/cdlookup.py:38 +#: picard/ui/ui_cdlookup.py:53 picard/ui/ui_options_cdlookup.py:42 +#: picard/ui/ui_options_cdlookup_select.py:49 picard/ui/options/cdlookup.py:38 msgid "CD Lookup" msgstr "" -#: picard/ui/ui_cdlookup.py:67 +#: picard/ui/ui_cdlookup.py:54 msgid "The following releases on MusicBrainz match the CD:" msgstr "" -#: picard/ui/ui_cdlookup.py:68 +#: picard/ui/ui_cdlookup.py:55 msgid "OK" msgstr "OK" -#: picard/ui/ui_cdlookup.py:69 +#: picard/ui/ui_cdlookup.py:56 msgid "Lookup manually" msgstr "" -#: picard/ui/ui_cdlookup.py:70 +#: picard/ui/ui_cdlookup.py:57 msgid "Cancel" msgstr "Отказване" -#: picard/ui/ui_edittagdialog.py:101 +#: picard/ui/ui_edittagdialog.py:88 msgid "Edit Tag" msgstr "" -#: picard/ui/ui_edittagdialog.py:102 +#: picard/ui/ui_edittagdialog.py:89 msgid "Edit value" msgstr "" -#: picard/ui/ui_edittagdialog.py:103 +#: picard/ui/ui_edittagdialog.py:90 msgid "Add value" msgstr "" -#: picard/ui/ui_edittagdialog.py:104 +#: picard/ui/ui_edittagdialog.py:91 msgid "Remove value" msgstr "" -#: picard/ui/ui_infodialog.py:78 +#: picard/ui/ui_infodialog.py:74 msgid "A&rtwork" msgstr "" -#: picard/ui/ui_infostatus.py:100 +#: picard/ui/ui_infostatus.py:96 msgid "Form" msgstr "" -#: picard/ui/ui_options.py:51 +#: picard/ui/ui_options.py:38 msgid "Options" msgstr "" -#: picard/ui/ui_options_advanced.py:46 +#: picard/ui/ui_options_advanced.py:42 msgid "Advanced options" msgstr "" -#: picard/ui/ui_options_advanced.py:47 +#: picard/ui/ui_options_advanced.py:43 msgid "Ignore file paths matching the following regular expression:" msgstr "" -#: picard/ui/ui_options_cdlookup.py:56 +#: picard/ui/ui_options_cdlookup.py:43 msgid "CD-ROM device to use for lookups:" msgstr "" -#: picard/ui/ui_options_cdlookup_select.py:63 +#: picard/ui/ui_options_cdlookup_select.py:50 msgid "Default CD-ROM drive to use for lookups:" msgstr "" -#: picard/ui/ui_options_cover.py:145 +#: picard/ui/ui_options_cover.py:131 msgid "Location" msgstr "Местоположение" -#: picard/ui/ui_options_cover.py:146 +#: picard/ui/ui_options_cover.py:132 msgid "Embed cover images into tags" msgstr "" -#: picard/ui/ui_options_cover.py:147 +#: picard/ui/ui_options_cover.py:133 msgid "Only embed a front image" msgstr "" -#: picard/ui/ui_options_cover.py:148 +#: picard/ui/ui_options_cover.py:134 msgid "Save cover images as separate files" msgstr "" -#: picard/ui/ui_options_cover.py:149 +#: picard/ui/ui_options_cover.py:135 msgid "Use the following file name for images:" msgstr "" -#: picard/ui/ui_options_cover.py:150 +#: picard/ui/ui_options_cover.py:136 msgid "Overwrite the file if it already exists" msgstr "Презаписване на файл, ако вече съществува" -#: picard/ui/ui_options_cover.py:151 +#: picard/ui/ui_options_cover.py:137 msgid "Coverart Providers" msgstr "" -#: picard/ui/ui_options_cover.py:152 +#: picard/ui/ui_options_cover.py:138 msgid "Amazon" msgstr "" -#: picard/ui/ui_options_cover.py:153 picard/ui/ui_options_cover.py:155 +#: picard/ui/ui_options_cover.py:139 picard/ui/ui_options_cover.py:141 msgid "Cover Art Archive" msgstr "" -#: picard/ui/ui_options_cover.py:154 +#: picard/ui/ui_options_cover.py:140 msgid "Sites on the whitelist" msgstr "" -#: picard/ui/ui_options_cover.py:156 +#: picard/ui/ui_options_cover.py:142 msgid "Only use images of the following size:" msgstr "" -#: picard/ui/ui_options_cover.py:157 +#: picard/ui/ui_options_cover.py:143 msgid "250 px" msgstr "" -#: picard/ui/ui_options_cover.py:158 +#: picard/ui/ui_options_cover.py:144 msgid "500 px" msgstr "" -#: picard/ui/ui_options_cover.py:159 +#: picard/ui/ui_options_cover.py:145 msgid "Full size" msgstr "" -#: picard/ui/ui_options_cover.py:160 +#: picard/ui/ui_options_cover.py:146 msgid "Download only images of the following types:" msgstr "" -#: picard/ui/ui_options_cover.py:161 +#: picard/ui/ui_options_cover.py:147 msgid "Download only approved images" msgstr "" -#: picard/ui/ui_options_cover.py:162 +#: picard/ui/ui_options_cover.py:148 msgid "" "Use the first image type as the filename. This will not change the filename " "of front images." msgstr "" -#: picard/ui/ui_options_fingerprinting.py:83 +#: picard/ui/ui_options_fingerprinting.py:70 msgid "Audio Fingerprinting" msgstr "" -#: picard/ui/ui_options_fingerprinting.py:84 +#: picard/ui/ui_options_fingerprinting.py:71 msgid "Do not use audio fingerprinting" msgstr "" -#: picard/ui/ui_options_fingerprinting.py:85 +#: picard/ui/ui_options_fingerprinting.py:72 msgid "Use AcoustID" msgstr "" -#: picard/ui/ui_options_fingerprinting.py:86 +#: picard/ui/ui_options_fingerprinting.py:73 msgid "AcoustID Settings" msgstr "" -#: picard/ui/ui_options_fingerprinting.py:87 +#: picard/ui/ui_options_fingerprinting.py:74 msgid "Fingerprint calculator:" msgstr "" -#: picard/ui/ui_options_fingerprinting.py:88 -#: picard/ui/ui_options_interface.py:88 picard/ui/ui_options_renaming.py:138 +#: picard/ui/ui_options_fingerprinting.py:75 +#: picard/ui/ui_options_interface.py:75 picard/ui/ui_options_renaming.py:134 msgid "Browse..." msgstr "Избор…" -#: picard/ui/ui_options_fingerprinting.py:89 +#: picard/ui/ui_options_fingerprinting.py:76 msgid "Download..." msgstr "" -#: picard/ui/ui_options_fingerprinting.py:90 +#: picard/ui/ui_options_fingerprinting.py:77 msgid "API key:" msgstr "" -#: picard/ui/ui_options_fingerprinting.py:91 +#: picard/ui/ui_options_fingerprinting.py:78 msgid "Get API key..." msgstr "" -#: picard/ui/ui_options_folksonomy.py:115 picard/ui/options/folksonomy.py:28 +#: picard/ui/ui_options_folksonomy.py:102 picard/ui/options/folksonomy.py:28 msgid "Folksonomy Tags" msgstr "" -#: picard/ui/ui_options_folksonomy.py:117 +#: picard/ui/ui_options_folksonomy.py:104 msgid "Only use my tags" msgstr "" -#: picard/ui/ui_options_folksonomy.py:120 +#: picard/ui/ui_options_folksonomy.py:107 msgid "Maximum number of tags:" msgstr "Максимален брой етикети:" -#: picard/ui/ui_options_general.py:92 +#: picard/ui/ui_options_general.py:88 msgid "MusicBrainz Server" msgstr "" -#: picard/ui/ui_options_general.py:93 picard/ui/ui_options_network.py:123 +#: picard/ui/ui_options_general.py:89 picard/ui/ui_options_network.py:110 msgid "Port:" msgstr "Порт:" -#: picard/ui/ui_options_general.py:94 picard/ui/ui_options_network.py:124 +#: picard/ui/ui_options_general.py:90 picard/ui/ui_options_network.py:111 msgid "Server address:" msgstr "Адрес на сървър:" -#: picard/ui/ui_options_general.py:95 +#: picard/ui/ui_options_general.py:91 msgid "Account Information" msgstr "Информация за потребителя" -#: picard/ui/ui_options_general.py:96 picard/ui/ui_options_network.py:121 -#: picard/ui/ui_passworddialog.py:74 +#: picard/ui/ui_options_general.py:92 picard/ui/ui_options_network.py:108 +#: picard/ui/ui_passworddialog.py:70 msgid "Password:" msgstr "Парола:" -#: picard/ui/ui_options_general.py:97 picard/ui/ui_options_network.py:122 -#: picard/ui/ui_passworddialog.py:73 +#: picard/ui/ui_options_general.py:93 picard/ui/ui_options_network.py:109 +#: picard/ui/ui_passworddialog.py:69 msgid "Username:" msgstr "Потребителско име:" -#: picard/ui/ui_options_general.py:98 picard/ui/options/general.py:31 +#: picard/ui/ui_options_general.py:94 picard/ui/options/general.py:31 msgid "General" msgstr "Общи" -#: picard/ui/ui_options_general.py:99 +#: picard/ui/ui_options_general.py:95 msgid "Automatically scan all new files" msgstr "Автоматично сканиране на всички нови файлове" -#: picard/ui/ui_options_general.py:100 +#: picard/ui/ui_options_general.py:96 msgid "Ignore MBIDs when loading new files" msgstr "" -#: picard/ui/ui_options_interface.py:82 +#: picard/ui/ui_options_interface.py:69 msgid "Miscellaneous" msgstr "Разни" -#: picard/ui/ui_options_interface.py:83 +#: picard/ui/ui_options_interface.py:70 msgid "Show text labels under icons" msgstr "Показване на текстови етикети под иконите" -#: picard/ui/ui_options_interface.py:84 +#: picard/ui/ui_options_interface.py:71 msgid "Allow selection of multiple directories" msgstr "Избор на множество папки" -#: picard/ui/ui_options_interface.py:85 +#: picard/ui/ui_options_interface.py:72 msgid "Use advanced query syntax" msgstr "" -#: picard/ui/ui_options_interface.py:86 +#: picard/ui/ui_options_interface.py:73 msgid "Show a quit confirmation dialog for unsaved changes" msgstr "" -#: picard/ui/ui_options_interface.py:87 +#: picard/ui/ui_options_interface.py:74 msgid "Begin browsing in the following directory:" msgstr "" -#: picard/ui/ui_options_interface.py:89 +#: picard/ui/ui_options_interface.py:76 msgid "User interface language:" msgstr "Език на потребителския интерфейс:" -#: picard/ui/ui_options_matching.py:86 +#: picard/ui/ui_options_matching.py:73 msgid "Thresholds" msgstr "" -#: picard/ui/ui_options_matching.py:87 +#: picard/ui/ui_options_matching.py:74 msgid "Minimal similarity for matching files to tracks:" msgstr "" -#: picard/ui/ui_options_matching.py:91 +#: picard/ui/ui_options_matching.py:78 msgid "Minimal similarity for file lookups:" msgstr "Минимална прилика при файлово търсене:" -#: picard/ui/ui_options_matching.py:92 +#: picard/ui/ui_options_matching.py:79 msgid "Minimal similarity for cluster lookups:" msgstr "" -#: picard/ui/ui_options_metadata.py:114 picard/ui/options/metadata.py:29 +#: picard/ui/ui_options_metadata.py:101 picard/ui/options/metadata.py:29 msgid "Metadata" msgstr "Метаданни" -#: picard/ui/ui_options_metadata.py:115 +#: picard/ui/ui_options_metadata.py:102 msgid "Translate artist names to this locale where possible:" msgstr "" -#: picard/ui/ui_options_metadata.py:116 +#: picard/ui/ui_options_metadata.py:103 msgid "Use standardized artist names" msgstr "" -#: picard/ui/ui_options_metadata.py:117 +#: picard/ui/ui_options_metadata.py:104 msgid "Convert Unicode punctuation characters to ASCII" msgstr "" -#: picard/ui/ui_options_metadata.py:118 +#: picard/ui/ui_options_metadata.py:105 msgid "Use release relationships" msgstr "" -#: picard/ui/ui_options_metadata.py:119 +#: picard/ui/ui_options_metadata.py:106 msgid "Use track relationships" msgstr "" -#: picard/ui/ui_options_metadata.py:120 +#: picard/ui/ui_options_metadata.py:107 msgid "Use folksonomy tags as genre" msgstr "" -#: picard/ui/ui_options_metadata.py:121 +#: picard/ui/ui_options_metadata.py:108 msgid "Custom Fields" msgstr "Потребителски полета" -#: picard/ui/ui_options_metadata.py:122 +#: picard/ui/ui_options_metadata.py:109 msgid "Various artists:" msgstr "Различни изпълнители:" -#: picard/ui/ui_options_metadata.py:123 +#: picard/ui/ui_options_metadata.py:110 msgid "Non-album tracks:" msgstr "Песни без албум:" -#: picard/ui/ui_options_metadata.py:124 picard/ui/ui_options_metadata.py:125 -#: picard/ui/ui_options_renaming.py:147 +#: picard/ui/ui_options_metadata.py:111 picard/ui/ui_options_metadata.py:112 +#: picard/ui/ui_options_renaming.py:143 msgid "Default" msgstr "По подразбиране" -#: picard/ui/ui_options_network.py:120 +#: picard/ui/ui_options_network.py:107 msgid "Web Proxy" msgstr "" -#: picard/ui/ui_options_network.py:125 +#: picard/ui/ui_options_network.py:112 msgid "Browser Integration" msgstr "" -#: picard/ui/ui_options_network.py:126 +#: picard/ui/ui_options_network.py:113 msgid "Default listening port:" msgstr "" -#: picard/ui/ui_options_network.py:127 +#: picard/ui/ui_options_network.py:114 msgid "Listen only on localhost" msgstr "" -#: picard/ui/ui_options_plugins.py:131 picard/ui/options/plugins.py:38 +#: picard/ui/ui_options_plugins.py:127 picard/ui/options/plugins.py:38 msgid "Plugins" msgstr "Приставки" -#: picard/ui/ui_options_plugins.py:132 picard/ui/options/plugins.py:122 +#: picard/ui/ui_options_plugins.py:128 picard/ui/options/plugins.py:122 msgid "Name" msgstr "Име" -#: picard/ui/ui_options_plugins.py:133 picard/util/tags.py:39 +#: picard/ui/ui_options_plugins.py:129 msgid "Version" msgstr "Версия" -#: picard/ui/ui_options_plugins.py:134 picard/ui/options/plugins.py:125 +#: picard/ui/ui_options_plugins.py:130 picard/ui/options/plugins.py:125 msgid "Author" msgstr "Автор" -#: picard/ui/ui_options_plugins.py:135 +#: picard/ui/ui_options_plugins.py:131 msgid "Install plugin..." msgstr "" -#: picard/ui/ui_options_plugins.py:136 +#: picard/ui/ui_options_plugins.py:132 msgid "Open plugin folder" msgstr "" -#: picard/ui/ui_options_plugins.py:137 +#: picard/ui/ui_options_plugins.py:133 msgid "Download plugins" msgstr "" -#: picard/ui/ui_options_plugins.py:138 +#: picard/ui/ui_options_plugins.py:134 msgid "Details" msgstr "Подробности" -#: picard/ui/ui_options_ratings.py:53 +#: picard/ui/ui_options_ratings.py:49 msgid "Enable track ratings" msgstr "" -#: picard/ui/ui_options_ratings.py:54 +#: picard/ui/ui_options_ratings.py:50 msgid "" "Picard saves the ratings together with an e-mail address identifying the " "user who did the rating. That way different ratings for different users can " @@ -1486,207 +1412,167 @@ msgid "" "your ratings." msgstr "" -#: picard/ui/ui_options_ratings.py:55 +#: picard/ui/ui_options_ratings.py:51 msgid "E-mail:" msgstr "Имейл:" -#: picard/ui/ui_options_ratings.py:56 +#: picard/ui/ui_options_ratings.py:52 msgid "Submit ratings to MusicBrainz" msgstr "" -#: picard/ui/ui_options_releases.py:215 +#: picard/ui/ui_options_releases.py:104 msgid "Preferred release types" msgstr "" -#: picard/ui/ui_options_releases.py:217 -msgid "Single" -msgstr "" - -#: picard/ui/ui_options_releases.py:218 -msgid "EP" -msgstr "" - -#: picard/ui/ui_options_releases.py:219 -msgid "Compilation" -msgstr "Компилация" - -#: picard/ui/ui_options_releases.py:220 -msgid "Soundtrack" -msgstr "" - -#: picard/ui/ui_options_releases.py:221 -msgid "Spokenword" -msgstr "" - -#: picard/ui/ui_options_releases.py:222 -msgid "Interview" -msgstr "" - -#: picard/ui/ui_options_releases.py:223 -msgid "Audiobook" -msgstr "" - -#: picard/ui/ui_options_releases.py:224 -msgid "Live" -msgstr "" - -#: picard/ui/ui_options_releases.py:225 -msgid "Remix" -msgstr "" - -#: picard/ui/ui_options_releases.py:227 -msgid "Reset all" -msgstr "" - -#: picard/ui/ui_options_releases.py:228 +#: picard/ui/ui_options_releases.py:105 msgid "Preferred release countries" msgstr "" -#: picard/ui/ui_options_releases.py:229 picard/ui/ui_options_releases.py:232 +#: picard/ui/ui_options_releases.py:106 picard/ui/ui_options_releases.py:109 msgid ">" msgstr "" -#: picard/ui/ui_options_releases.py:230 picard/ui/ui_options_releases.py:233 +#: picard/ui/ui_options_releases.py:107 picard/ui/ui_options_releases.py:110 msgid "<" msgstr "" -#: picard/ui/ui_options_releases.py:231 +#: picard/ui/ui_options_releases.py:108 msgid "Preferred release formats" msgstr "" -#: picard/ui/ui_options_renaming.py:134 +#: picard/ui/ui_options_renaming.py:130 msgid "Rename files when saving" msgstr "" -#: picard/ui/ui_options_renaming.py:135 +#: picard/ui/ui_options_renaming.py:131 msgid "Replace non-ASCII characters" msgstr "" -#: picard/ui/ui_options_renaming.py:136 +#: picard/ui/ui_options_renaming.py:132 msgid "Windows compatibility" msgstr "" -#: picard/ui/ui_options_renaming.py:137 +#: picard/ui/ui_options_renaming.py:133 msgid "Move files to this directory when saving:" msgstr "Преместване на файлове в тази папка при запис:" -#: picard/ui/ui_options_renaming.py:139 +#: picard/ui/ui_options_renaming.py:135 msgid "Delete empty directories" msgstr "Изтриване на празни папки" -#: picard/ui/ui_options_renaming.py:140 +#: picard/ui/ui_options_renaming.py:136 msgid "Move additional files:" msgstr "Още допълнителни файлове:" -#: picard/ui/ui_options_renaming.py:141 +#: picard/ui/ui_options_renaming.py:137 msgid "Name files like this" msgstr "" -#: picard/ui/ui_options_renaming.py:148 +#: picard/ui/ui_options_renaming.py:144 msgid "Examples" msgstr "Примери" -#: picard/ui/ui_options_script.py:49 +#: picard/ui/ui_options_script.py:45 msgid "Tagger Script" msgstr "" -#: picard/ui/ui_options_tags.py:165 +#: picard/ui/ui_options_tags.py:152 msgid "Write tags to files" msgstr "Записване на етикети във файловете" -#: picard/ui/ui_options_tags.py:166 +#: picard/ui/ui_options_tags.py:153 msgid "Preserve timestamps of tagged files" msgstr "" -#: picard/ui/ui_options_tags.py:167 +#: picard/ui/ui_options_tags.py:154 msgid "Before Tagging" msgstr "" -#: picard/ui/ui_options_tags.py:168 +#: picard/ui/ui_options_tags.py:155 msgid "Clear existing tags" msgstr "Изчистване на съществуващите етикети" -#: picard/ui/ui_options_tags.py:169 +#: picard/ui/ui_options_tags.py:156 msgid "Remove ID3 tags from FLAC files" msgstr "" -#: picard/ui/ui_options_tags.py:170 +#: picard/ui/ui_options_tags.py:157 msgid "Remove APEv2 tags from MP3 files" msgstr "" -#: picard/ui/ui_options_tags.py:171 +#: picard/ui/ui_options_tags.py:158 msgid "" "Preserve these tags from being cleared or overwritten with MusicBrainz data:" msgstr "" -#: picard/ui/ui_options_tags.py:172 +#: picard/ui/ui_options_tags.py:159 msgid "Tags are separated by commas, and are case-sensitive." msgstr "" -#: picard/ui/ui_options_tags.py:173 +#: picard/ui/ui_options_tags.py:160 msgid "Tag Compatibility" msgstr "" -#: picard/ui/ui_options_tags.py:174 +#: picard/ui/ui_options_tags.py:161 msgid "ID3v2 Version" msgstr "" -#: picard/ui/ui_options_tags.py:175 +#: picard/ui/ui_options_tags.py:162 msgid "2.4" msgstr "2.4" -#: picard/ui/ui_options_tags.py:176 +#: picard/ui/ui_options_tags.py:163 msgid "2.3" msgstr "2.3" -#: picard/ui/ui_options_tags.py:177 +#: picard/ui/ui_options_tags.py:164 msgid "ID3v2 Text Encoding" msgstr "" -#: picard/ui/ui_options_tags.py:178 +#: picard/ui/ui_options_tags.py:165 msgid "UTF-8" msgstr "UTF-8" -#: picard/ui/ui_options_tags.py:179 +#: picard/ui/ui_options_tags.py:166 msgid "UTF-16" msgstr "UTF-16" -#: picard/ui/ui_options_tags.py:180 +#: picard/ui/ui_options_tags.py:167 msgid "ISO-8859-1" msgstr "ISO-8859-1" -#: picard/ui/ui_options_tags.py:181 +#: picard/ui/ui_options_tags.py:168 msgid "Join multiple ID3v2.3 tags with:" msgstr "" -#: picard/ui/ui_options_tags.py:182 +#: picard/ui/ui_options_tags.py:169 msgid "" "

Default is '/' to maintain compatibility with previous" " Picard releases.

New alternatives are ';_' or '_/_' or type your own." "

" msgstr "" -#: picard/ui/ui_options_tags.py:183 +#: picard/ui/ui_options_tags.py:170 msgid "Also include ID3v1 tags in the files" msgstr "" -#: picard/ui/ui_passworddialog.py:72 +#: picard/ui/ui_passworddialog.py:68 msgid "Authentication required" msgstr "Изисква се идентификация" -#: picard/ui/ui_passworddialog.py:75 +#: picard/ui/ui_passworddialog.py:71 msgid "Save username and password" msgstr "" -#: picard/ui/ui_tagsfromfilenames.py:54 +#: picard/ui/ui_tagsfromfilenames.py:50 msgid "Convert File Names to Tags" msgstr "" -#: picard/ui/ui_tagsfromfilenames.py:55 +#: picard/ui/ui_tagsfromfilenames.py:51 msgid "Replace underscores with spaces" msgstr "" -#: picard/ui/ui_tagsfromfilenames.py:56 +#: picard/ui/ui_tagsfromfilenames.py:52 msgid "&Preview" msgstr "&Преглед" @@ -1742,7 +1628,11 @@ msgstr "За напреднали" msgid "Regex Error" msgstr "" -#: picard/ui/options/cover.py:63 +#: picard/ui/options/cover.py:44 +msgid "title" +msgstr "" + +#: picard/ui/options/cover.py:68 msgid "Cover Art" msgstr "" @@ -1758,11 +1648,11 @@ msgstr "Потребителски интерфейс" msgid "System default" msgstr "Системни настройки по подразбиране" -#: picard/ui/options/interface.py:96 +#: picard/ui/options/interface.py:98 msgid "Language changed" msgstr "Езикът променен" -#: picard/ui/options/interface.py:96 +#: picard/ui/options/interface.py:99 msgid "" "You have changed the interface language. You have to restart Picard in order" " for the change to take effect." @@ -1784,31 +1674,35 @@ msgstr "Файл" msgid "Ratings" msgstr "" -#: picard/ui/options/releases.py:33 +#: picard/ui/options/releases.py:87 msgid "Preferred Releases" msgstr "" +#: picard/ui/options/releases.py:121 +msgid "Reset all" +msgstr "" + #: picard/ui/options/renaming.py:37 msgid "File Naming" msgstr "" -#: picard/ui/options/renaming.py:184 +#: picard/ui/options/renaming.py:187 msgid "Error" msgstr "Грешка" -#: picard/ui/options/renaming.py:184 +#: picard/ui/options/renaming.py:187 msgid "The location to move files to must not be empty." msgstr "" -#: picard/ui/options/renaming.py:194 +#: picard/ui/options/renaming.py:197 msgid "The file naming format must not be empty." msgstr "Форматът на именуване на файлове не може да е празен" -#: picard/ui/options/scripting.py:63 +#: picard/ui/options/scripting.py:99 msgid "Scripting" msgstr "Скриптове" -#: picard/ui/options/scripting.py:95 +#: picard/ui/options/scripting.py:131 msgid "Script Error" msgstr "Грешка в скрипта" @@ -1928,199 +1822,199 @@ msgstr "ASIN" msgid "Grouping" msgstr "Групиране" -#: picard/util/tags.py:40 +#: picard/util/tags.py:39 msgid "ISRC" msgstr "ISRC" -#: picard/util/tags.py:41 +#: picard/util/tags.py:40 msgid "Mood" msgstr "Настроение" -#: picard/util/tags.py:42 +#: picard/util/tags.py:41 msgid "BPM" msgstr "Уд/мин" -#: picard/util/tags.py:43 +#: picard/util/tags.py:42 msgid "Copyright" msgstr "Авторски права" -#: picard/util/tags.py:44 +#: picard/util/tags.py:43 msgid "License" msgstr "" -#: picard/util/tags.py:45 +#: picard/util/tags.py:44 msgid "Composer" msgstr "Композитор" -#: picard/util/tags.py:46 +#: picard/util/tags.py:45 msgid "Writer" msgstr "" -#: picard/util/tags.py:47 +#: picard/util/tags.py:46 msgid "Conductor" msgstr "Диригент" -#: picard/util/tags.py:48 +#: picard/util/tags.py:47 msgid "Lyricist" msgstr "Текстописец" -#: picard/util/tags.py:49 +#: picard/util/tags.py:48 msgid "Arranger" msgstr "Аранжор" -#: picard/util/tags.py:50 +#: picard/util/tags.py:49 msgid "Producer" msgstr "Продуцент" -#: picard/util/tags.py:51 +#: picard/util/tags.py:50 msgid "Engineer" msgstr "" -#: picard/util/tags.py:52 +#: picard/util/tags.py:51 msgid "Subtitle" msgstr "Подзаглавие" -#: picard/util/tags.py:53 +#: picard/util/tags.py:52 msgid "Disc Subtitle" msgstr "" -#: picard/util/tags.py:54 +#: picard/util/tags.py:53 msgid "Remixer" msgstr "" -#: picard/util/tags.py:55 +#: picard/util/tags.py:54 msgid "MusicBrainz Recording Id" msgstr "" -#: picard/util/tags.py:56 +#: picard/util/tags.py:55 msgid "MusicBrainz Track Id" msgstr "" -#: picard/util/tags.py:57 +#: picard/util/tags.py:56 msgid "MusicBrainz Release Id" msgstr "" -#: picard/util/tags.py:58 +#: picard/util/tags.py:57 msgid "MusicBrainz Artist Id" msgstr "" -#: picard/util/tags.py:59 +#: picard/util/tags.py:58 msgid "MusicBrainz Release Artist Id" msgstr "" -#: picard/util/tags.py:60 +#: picard/util/tags.py:59 msgid "MusicBrainz Work Id" msgstr "" -#: picard/util/tags.py:61 +#: picard/util/tags.py:60 msgid "MusicBrainz Release Group Id" msgstr "" -#: picard/util/tags.py:62 +#: picard/util/tags.py:61 msgid "MusicBrainz Disc Id" msgstr "" -#: picard/util/tags.py:63 -msgid "MusicBrainz Sort Name" -msgstr "" - -#: picard/util/tags.py:64 +#: picard/util/tags.py:62 msgid "MusicIP PUID" msgstr "" -#: picard/util/tags.py:65 +#: picard/util/tags.py:63 msgid "MusicIP Fingerprint" msgstr "" -#: picard/util/tags.py:66 +#: picard/util/tags.py:64 msgid "AcoustID" msgstr "" -#: picard/util/tags.py:67 +#: picard/util/tags.py:65 msgid "AcoustID Fingerprint" msgstr "" -#: picard/util/tags.py:68 +#: picard/util/tags.py:66 msgid "Disc Id" msgstr "" -#: picard/util/tags.py:69 -msgid "Website" -msgstr "Уебсайт" +#: picard/util/tags.py:67 +msgid "Artist Website" +msgstr "" -#: picard/util/tags.py:70 +#: picard/util/tags.py:68 msgid "Compilation (iTunes)" msgstr "" -#: picard/util/tags.py:71 +#: picard/util/tags.py:69 msgid "Comment" msgstr "Коментар" -#: picard/util/tags.py:72 +#: picard/util/tags.py:70 msgid "Genre" msgstr "Жанр" -#: picard/util/tags.py:73 +#: picard/util/tags.py:71 msgid "Encoded By" msgstr "" -#: picard/util/tags.py:74 +#: picard/util/tags.py:72 +msgid "Encoder Settings" +msgstr "" + +#: picard/util/tags.py:73 msgid "Performer" msgstr "Изпълнител" -#: picard/util/tags.py:75 +#: picard/util/tags.py:74 msgid "Release Type" msgstr "" -#: picard/util/tags.py:76 +#: picard/util/tags.py:75 msgid "Release Status" msgstr "" -#: picard/util/tags.py:77 +#: picard/util/tags.py:76 msgid "Release Country" msgstr "" -#: picard/util/tags.py:78 +#: picard/util/tags.py:77 msgid "Record Label" msgstr "" -#: picard/util/tags.py:80 +#: picard/util/tags.py:79 msgid "Catalog Number" msgstr "Каталожен номер" -#: picard/util/tags.py:82 +#: picard/util/tags.py:80 msgid "DJ-Mixer" msgstr "DJ Миксер" -#: picard/util/tags.py:83 +#: picard/util/tags.py:81 msgid "Media" msgstr "Носител" -#: picard/util/tags.py:84 +#: picard/util/tags.py:82 msgid "Lyrics" msgstr "Текст на песен" -#: picard/util/tags.py:85 +#: picard/util/tags.py:83 msgid "Mixer" msgstr "Миксер" -#: picard/util/tags.py:86 +#: picard/util/tags.py:84 msgid "Language" msgstr "Език" -#: picard/util/tags.py:87 +#: picard/util/tags.py:85 msgid "Script" msgstr "Скрипт" -#: picard/util/tags.py:89 +#: picard/util/tags.py:87 msgid "Rating" msgstr "" -#: picard/util/tags.py:90 +#: picard/util/tags.py:88 msgid "Artists" msgstr "" -#: picard/util/tags.py:91 +#: picard/util/tags.py:89 msgid "Work" msgstr "" diff --git a/po/ca.po b/po/ca.po index 463a9b41e..cbc53bccd 100644 --- a/po/ca.po +++ b/po/ca.po @@ -10,8 +10,8 @@ msgid "" msgstr "" "Project-Id-Version: MusicBrainz\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2014-03-20 11:12+0100\n" -"PO-Revision-Date: 2014-03-21 08:44+0000\n" +"POT-Creation-Date: 2014-05-03 17:28+0200\n" +"PO-Revision-Date: 2014-05-04 08:44+0000\n" "Last-Translator: nikki\n" "Language-Team: Catalan (http://www.transifex.com/projects/p/musicbrainz/language/ca/)\n" "MIME-Version: 1.0\n" @@ -21,6 +21,10 @@ msgstr "" "Language: ca\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" +#: contrib/plugins/albumartist_website.py:3 +msgid "Album Artist Website" +msgstr "" + #: contrib/plugins/no_release.py:50 msgid "Enable plugin for all releases by default" msgstr "" @@ -33,63 +37,55 @@ msgstr "Etiquetes a eliminar (separades per comes)" msgid "Remove specific release information..." msgstr "" -#: contrib/plugins/open_in_gui.py:32 -msgid "Open Error" +#: contrib/plugins/standardise_performers.py:3 +msgid "Standardise Performers" msgstr "" -#: contrib/plugins/open_in_gui.py:32 -#, python-format -msgid "" -"Error while opening file:\n" -"\n" -"%s" -msgstr "" - -#: contrib/plugins/lastfm/ui_options_lastfm.py:117 +#: contrib/plugins/lastfm/ui_options_lastfm.py:99 msgid "Last.fm" msgstr "" -#: contrib/plugins/lastfm/ui_options_lastfm.py:118 +#: contrib/plugins/lastfm/ui_options_lastfm.py:100 msgid "Use track tags" msgstr "Utilitza etiquetes de les pistes" -#: contrib/plugins/lastfm/ui_options_lastfm.py:119 +#: contrib/plugins/lastfm/ui_options_lastfm.py:101 msgid "Use artist tags" msgstr "Utilitza etiquetes dels artistes" -#: contrib/plugins/lastfm/ui_options_lastfm.py:120 +#: contrib/plugins/lastfm/ui_options_lastfm.py:102 #: picard/ui/options/tags.py:30 msgid "Tags" msgstr "Etiquetes" -#: contrib/plugins/lastfm/ui_options_lastfm.py:121 -#: picard/ui/ui_options_folksonomy.py:116 +#: contrib/plugins/lastfm/ui_options_lastfm.py:103 +#: picard/ui/ui_options_folksonomy.py:103 msgid "Ignore tags:" msgstr "Ignorar etiquetes:" -#: contrib/plugins/lastfm/ui_options_lastfm.py:122 -#: picard/ui/ui_options_folksonomy.py:121 +#: contrib/plugins/lastfm/ui_options_lastfm.py:104 +#: picard/ui/ui_options_folksonomy.py:108 msgid "Join multiple tags with:" msgstr "Agrupa les etiquetes múltiples amb:" -#: contrib/plugins/lastfm/ui_options_lastfm.py:123 -#: picard/ui/ui_options_folksonomy.py:122 +#: contrib/plugins/lastfm/ui_options_lastfm.py:105 +#: picard/ui/ui_options_folksonomy.py:109 msgid " / " msgstr " / " -#: contrib/plugins/lastfm/ui_options_lastfm.py:124 -#: picard/ui/ui_options_folksonomy.py:123 +#: contrib/plugins/lastfm/ui_options_lastfm.py:106 +#: picard/ui/ui_options_folksonomy.py:110 msgid ", " msgstr ", " -#: contrib/plugins/lastfm/ui_options_lastfm.py:125 -#: picard/ui/ui_options_folksonomy.py:118 +#: contrib/plugins/lastfm/ui_options_lastfm.py:107 +#: picard/ui/ui_options_folksonomy.py:105 msgid "Minimal tag usage:" msgstr "Utilització mínima d'etiquetes:" -#: contrib/plugins/lastfm/ui_options_lastfm.py:126 -#: picard/ui/ui_options_folksonomy.py:119 picard/ui/ui_options_matching.py:88 -#: picard/ui/ui_options_matching.py:89 picard/ui/ui_options_matching.py:90 +#: contrib/plugins/lastfm/ui_options_lastfm.py:108 +#: picard/ui/ui_options_folksonomy.py:106 picard/ui/ui_options_matching.py:75 +#: picard/ui/ui_options_matching.py:76 picard/ui/ui_options_matching.py:77 msgid " %" msgstr " %" @@ -97,420 +93,307 @@ msgstr " %" msgid "Calculate replay &gain..." msgstr "" -#: contrib/plugins/replaygain/__init__.py:66 +#: contrib/plugins/replaygain/__init__.py:67 #, python-format -msgid "Calculating replay gain for \"%s\"..." +msgid "Calculating replay gain for \"%(filename)s\"..." msgstr "" -#: contrib/plugins/replaygain/__init__.py:71 +#: contrib/plugins/replaygain/__init__.py:75 #, python-format -msgid "Replay gain for \"%s\" successfully calculated." +msgid "Replay gain for \"%(filename)s\" successfully calculated." msgstr "" -#: contrib/plugins/replaygain/__init__.py:73 +#: contrib/plugins/replaygain/__init__.py:80 #, python-format -msgid "Could not calculate replay gain for \"%s\"." +msgid "Could not calculate replay gain for \"%(filename)s\"." msgstr "" -#: contrib/plugins/replaygain/__init__.py:76 +#: contrib/plugins/replaygain/__init__.py:85 msgid "Calculate album &gain..." msgstr "" -#: contrib/plugins/replaygain/__init__.py:103 -#: contrib/plugins/replaygain/__init__.py:111 +#: contrib/plugins/replaygain/__init__.py:113 +#: contrib/plugins/replaygain/__init__.py:124 #, python-format -msgid "Calculating album gain for \"%s\"..." +msgid "Calculating album gain for \"%(album)s\"..." msgstr "" -#: contrib/plugins/replaygain/__init__.py:119 +#: contrib/plugins/replaygain/__init__.py:135 #, python-format -msgid "Album gain for \"%s\" successfully calculated." +msgid "Album gain for \"%(album)s\" successfully calculated." msgstr "" -#: contrib/plugins/replaygain/__init__.py:121 +#: contrib/plugins/replaygain/__init__.py:140 #, python-format -msgid "Could not calculate album gain for \"%s\"." +msgid "Could not calculate album gain for \"%(album)s\"." msgstr "" -#: picard/acoustid.py:102 -#, python-format -msgid "AcoustID lookup network error for '%s'!" +#: contrib/plugins/replaygain/ui_options_replaygain.py:59 +msgid "Replay Gain" msgstr "" -#: picard/acoustid.py:117 -#, python-format -msgid "AcoustID lookup failed for '%s'!" +#: contrib/plugins/replaygain/ui_options_replaygain.py:60 +msgid "Path to VorbisGain:" msgstr "" -#: picard/acoustid.py:128 -#, python-format -msgid "Acoustid lookup returned no result for file '%s'" +#: contrib/plugins/replaygain/ui_options_replaygain.py:61 +msgid "Path to MP3Gain:" msgstr "" -#: picard/acoustid.py:132 -#, python-format -msgid "Looking up the fingerprint for file %s..." -msgstr "Cercant l'empremta per al fitxer %s..." - -#: picard/acoustidmanager.py:78 -msgid "Submitting AcoustIDs..." -msgstr "Enviant AcoustIDs..." - -#: picard/acoustidmanager.py:83 -#, python-format -msgid "AcoustID submission failed with error '%s'" +#: contrib/plugins/replaygain/ui_options_replaygain.py:62 +msgid "Path to metaflac:" msgstr "" -#: picard/acoustidmanager.py:85 +#: contrib/plugins/replaygain/ui_options_replaygain.py:63 +msgid "Path to wvgain:" +msgstr "" + +#: contrib/plugins/viewvariables/__init__.py:42 +#, python-format +msgid "File: %s" +msgstr "" + +#: contrib/plugins/viewvariables/__init__.py:47 +#, python-format +msgid "Track: %s %s " +msgstr "" + +#: contrib/plugins/viewvariables/__init__.py:49 +msgid "Variables" +msgstr "" + +#: contrib/plugins/viewvariables/__init__.py:69 +msgid "File variables" +msgstr "" + +#: contrib/plugins/viewvariables/__init__.py:74 +msgid "Hidden variables" +msgstr "" + +#: contrib/plugins/viewvariables/__init__.py:79 +msgid "Tag variables" +msgstr "" + +#: contrib/plugins/viewvariables/ui_variables_dialog.py:73 +msgid "Variable" +msgstr "" + +#: contrib/plugins/viewvariables/ui_variables_dialog.py:75 +msgid "Value" +msgstr "" + +#: picard/acoustid.py:109 +#, python-format +msgid "AcoustID lookup network error for '%(filename)s'!" +msgstr "" + +#: picard/acoustid.py:133 +#, python-format +msgid "AcoustID lookup failed for '%(filename)s'!" +msgstr "" + +#: picard/acoustid.py:155 +#, python-format +msgid "AcoustID lookup returned no result for file '%(filename)s'" +msgstr "" + +#: picard/acoustid.py:166 +#, python-format +msgid "Looking up the fingerprint for file '%(filename)s' ..." +msgstr "" + +#: picard/acoustidmanager.py:80 +msgid "Submitting AcoustIDs ..." +msgstr "" + +#: picard/acoustidmanager.py:94 +#, python-format +msgid "AcoustID submission failed with error '%(error)s'" +msgstr "" + +#: picard/acoustidmanager.py:102 msgid "AcoustIDs successfully submitted." msgstr "" -#: picard/album.py:64 picard/cluster.py:234 +#: picard/album.py:65 picard/cluster.py:255 msgid "Unmatched Files" msgstr "Fitxers sense coincidències" -#: picard/album.py:187 +#: picard/album.py:188 #, python-format msgid "[could not load album %s]" msgstr "[no s'ha pogut carregar l'àlbum %s]" -#: picard/album.py:272 +#: picard/album.py:277 #, python-format -msgid "Album %s loaded" -msgstr "Àlbum %s carregat" +msgid "Album %(id)s loaded: %(artist)s - %(album)s" +msgstr "" -#: picard/album.py:288 +#: picard/album.py:294 +#, python-format +msgid "Loading album %(id)s ..." +msgstr "" + +#: picard/album.py:303 msgid "[loading album information]" msgstr "[carregant informació de l'àlbum]" -#: picard/album.py:463 +#: picard/album.py:478 #, python-format msgid "; %i image" msgid_plural "; %i images" msgstr[0] "" msgstr[1] "" -#: picard/cluster.py:150 picard/cluster.py:159 +#: picard/cluster.py:155 picard/cluster.py:168 #, python-format -msgid "No matching releases for cluster %s" -msgstr "No hi han coincidències pel clúster %s" - -#: picard/cluster.py:161 -#, python-format -msgid "Cluster %s identified!" -msgstr "Clúster %s identificat!" - -#: picard/cluster.py:168 -#, python-format -msgid "Looking up the metadata for cluster %s..." -msgstr "Cercant les metadades pel clúster %s..." - -#: picard/collection.py:60 -#, python-format -msgid "Added %i release to collection \"%s\"" -msgid_plural "Added %i releases to collection \"%s\"" -msgstr[0] "" -msgstr[1] "" - -#: picard/collection.py:72 -#, python-format -msgid "Removed %i release from collection \"%s\"" -msgid_plural "Removed %i releases from collection \"%s\"" -msgstr[0] "" -msgstr[1] "" - -#: picard/collection.py:81 -#, python-format -msgid "Error loading collections: %s" +msgid "No matching releases for cluster %(album)s" msgstr "" -#: picard/config_upgrade.py:57 picard/config_upgrade.py:70 +#: picard/cluster.py:174 +#, python-format +msgid "Cluster %(album)s identified!" +msgstr "" + +#: picard/cluster.py:185 +#, python-format +msgid "Looking up the metadata for cluster %(album)s..." +msgstr "" + +#: picard/collection.py:64 +#, python-format +msgid "Added %(count)i release to collection \"%(name)s\"" +msgid_plural "Added %(count)i releases to collection \"%(name)s\"" +msgstr[0] "" +msgstr[1] "" + +#: picard/collection.py:86 +#, python-format +msgid "Removed %(count)i release from collection \"%(name)s\"" +msgid_plural "Removed %(count)i releases from collection \"%(name)s\"" +msgstr[0] "" +msgstr[1] "" + +#: picard/collection.py:100 +#, python-format +msgid "Error loading collections: %(error)s" +msgstr "" + +#: picard/config_upgrade.py:58 picard/config_upgrade.py:71 msgid "Various Artists file naming scheme removal" msgstr "" -#: picard/config_upgrade.py:58 +#: picard/config_upgrade.py:59 msgid "" "The separate file naming scheme for various artists albums has been removed in this version of Picard.\n" "Your file naming scheme has automatically been merged with that of single artist albums." msgstr "" -#: picard/config_upgrade.py:71 +#: picard/config_upgrade.py:72 msgid "" "The separate file naming scheme for various artists albums has been removed in this version of Picard.\n" "You currently do not use this option, but have a separate file naming scheme defined.\n" "Do you want to remove it or merge it with your file naming scheme for single artist albums?" msgstr "" -#: picard/config_upgrade.py:77 +#: picard/config_upgrade.py:78 msgid "Merge" msgstr "Fusiona" -#: picard/config_upgrade.py:77 picard/ui/metadatabox.py:254 +#: picard/config_upgrade.py:78 picard/ui/metadatabox.py:254 msgid "Remove" msgstr "Elimina" -#: picard/const.py:67 -msgid "CD" -msgstr "CD" - -#: picard/const.py:68 -msgid "CD-R" -msgstr "CD-R" - -#: picard/const.py:69 -msgid "HDCD" -msgstr "HDCD" - -#: picard/const.py:70 -msgid "8cm CD" -msgstr "CD 8cm" - -#: picard/const.py:71 -msgid "Vinyl" -msgstr "Vinil" - -#: picard/const.py:72 -msgid "7\" Vinyl" -msgstr "Vinil de 7\"" - -#: picard/const.py:73 -msgid "10\" Vinyl" -msgstr "Vinil de 10\"" - -#: picard/const.py:74 -msgid "12\" Vinyl" -msgstr "Vinil de 12\"" - -#: picard/const.py:75 -msgid "Digital Media" -msgstr "Mitjà digital" - -#: picard/const.py:76 -msgid "USB Flash Drive" -msgstr "Unitat flaix USB" - -#: picard/const.py:77 -msgid "slotMusic" -msgstr "slotMusic" - -#: picard/const.py:78 -msgid "Cassette" -msgstr "Casset" - -#: picard/const.py:79 -msgid "DVD" -msgstr "DVD" - -#: picard/const.py:80 -msgid "DVD-Audio" -msgstr "DVD àudio" - -#: picard/const.py:81 -msgid "DVD-Video" -msgstr "DVD vídeo" - -#: picard/const.py:82 -msgid "SACD" -msgstr "SACD" - -#: picard/const.py:83 -msgid "DualDisc" -msgstr "DualDisc" - -#: picard/const.py:84 -msgid "MiniDisc" -msgstr "MiniDisc" - -#: picard/const.py:85 -msgid "Blu-ray" -msgstr "Blu-Ray" - -#: picard/const.py:86 -msgid "HD-DVD" -msgstr "HD-DVD" - -#: picard/const.py:87 -msgid "Videotape" -msgstr "Casset vídeo" - -#: picard/const.py:88 -msgid "VHS" -msgstr "VHS" - -#: picard/const.py:89 -msgid "Betamax" -msgstr "Betamax" - #: picard/const.py:90 -msgid "VCD" -msgstr "VCD" - -#: picard/const.py:91 -msgid "SVCD" -msgstr "SVCD" - -#: picard/const.py:92 -msgid "UMD" -msgstr "UMD" - -#: picard/const.py:93 picard/coverartarchive.py:33 -#: picard/ui/ui_options_releases.py:226 -msgid "Other" -msgstr "Altres" - -#: picard/const.py:94 -msgid "LaserDisc" -msgstr "LaserDisc" - -#: picard/const.py:95 -msgid "Cartridge" -msgstr "Cartutx" - -#: picard/const.py:96 -msgid "Reel-to-reel" -msgstr "Cinta oberta" - -#: picard/const.py:97 -msgid "DAT" -msgstr "DAT" - -#: picard/const.py:98 -msgid "Wax Cylinder" -msgstr "Cilindre de fonògraf" - -#: picard/const.py:99 -msgid "Piano Roll" -msgstr "Cilindre de piano" - -#: picard/const.py:100 -msgid "DCC" -msgstr "DCC" - -#: picard/const.py:115 msgid "Danish" msgstr "" -#: picard/const.py:116 +#: picard/const.py:91 msgid "German" msgstr "Alemany" -#: picard/const.py:118 +#: picard/const.py:93 msgid "English" msgstr "Anglès" -#: picard/const.py:119 +#: picard/const.py:94 msgid "English (Canada)" msgstr "Anglès (Canadà)" -#: picard/const.py:120 +#: picard/const.py:95 msgid "English (UK)" msgstr "Anglès (Regne Unit)" -#: picard/const.py:122 +#: picard/const.py:97 msgid "Spanish" msgstr "Espanyol" -#: picard/const.py:123 +#: picard/const.py:98 msgid "Estonian" msgstr "Estonià" -#: picard/const.py:125 +#: picard/const.py:100 msgid "Finnish" msgstr "Finès" -#: picard/const.py:127 +#: picard/const.py:102 msgid "French" msgstr "Francès" -#: picard/const.py:136 +#: picard/const.py:111 msgid "Italian" msgstr "Italià" -#: picard/const.py:143 +#: picard/const.py:118 msgid "Dutch" msgstr "Neerlandès" -#: picard/const.py:145 +#: picard/const.py:120 msgid "Polish" msgstr "Polonès" -#: picard/const.py:147 +#: picard/const.py:122 msgid "Brazilian Portuguese" msgstr "Portuguès brasiler" -#: picard/const.py:154 +#: picard/const.py:129 msgid "Swedish" msgstr "Suec" -#: picard/coverart.py:84 +#: picard/coverart.py:85 #, python-format -msgid "Coverart %s downloaded" +msgid "Cover art of type '%(type)s' downloaded for %(albumid)s from %(host)s" msgstr "" -#: picard/coverart.py:240 +#: picard/coverart.py:256 #, python-format -msgid "Downloading http://%s:%i%s" -msgstr "" - -#: picard/coverartarchive.py:24 -msgid "Front" -msgstr "" - -#: picard/coverartarchive.py:25 -msgid "Back" -msgstr "" - -#: picard/coverartarchive.py:26 -msgid "Booklet" -msgstr "" - -#: picard/coverartarchive.py:27 -msgid "Medium" -msgstr "" - -#: picard/coverartarchive.py:28 -msgid "Tray" -msgstr "" - -#: picard/coverartarchive.py:29 -msgid "Obi" +msgid "" +"Downloading cover art of type '%(type)s' for %(albumid)s from %(host)s .." msgstr "" #: picard/coverartarchive.py:30 -msgid "Spine" -msgstr "" - -#: picard/coverartarchive.py:31 picard/ui/mainwindow.py:546 -msgid "Track" -msgstr "Pista" - -#: picard/coverartarchive.py:32 -msgid "Sticker" -msgstr "" - -#: picard/coverartarchive.py:34 msgid "Unknown" msgstr "" -#: picard/file.py:536 +#: picard/file.py:494 #, python-format -msgid "No matching tracks for file %s" -msgstr "No s'han trobat pistes per al fitxer %s" +msgid "No matching tracks for file '%(filename)s'" +msgstr "" -#: picard/file.py:548 +#: picard/file.py:510 #, python-format -msgid "No matching tracks above the threshold for file %s" -msgstr "No hi han pistes coincidents per sobre del llindar per al fitxer %s" +msgid "No matching tracks above the threshold for file '%(filename)s'" +msgstr "" -#: picard/file.py:551 +#: picard/file.py:517 #, python-format -msgid "File %s identified!" -msgstr "Fitxer %s identificat!" +msgid "File '%(filename)s' identified!" +msgstr "" -#: picard/file.py:567 +#: picard/file.py:537 #, python-format -msgid "Looking up the metadata for file %s..." -msgstr "Cercant les metadades per al fitxer %s..." +msgid "Looking up the metadata for file %(filename)s ..." +msgstr "" #: picard/releasegroup.py:53 msgid "Tracks" @@ -520,11 +403,11 @@ msgstr "" msgid "Year" msgstr "" -#: picard/releasegroup.py:55 picard/ui/cdlookup.py:34 +#: picard/releasegroup.py:55 picard/ui/cdlookup.py:35 msgid "Country" msgstr "País" -#: picard/releasegroup.py:56 picard/util/tags.py:81 +#: picard/releasegroup.py:56 msgid "Format" msgstr "Format" @@ -544,16 +427,23 @@ msgstr "" msgid "[no release info]" msgstr "" -#: picard/tagger.py:316 +#: picard/tagger.py:370 #, python-format -msgid "Loading directory %s" +msgid "Adding %(count)d file from '%(directory)s' ..." +msgid_plural "Adding %(count)d files from '%(directory)s' ..." +msgstr[0] "" +msgstr[1] "" + +#: picard/tagger.py:512 +#, python-format +msgid "Removing album %(id)s: %(artist)s - %(album)s" msgstr "" -#: picard/tagger.py:452 +#: picard/tagger.py:528 msgid "CD Lookup Error" msgstr "Error al cercar el CD" -#: picard/tagger.py:453 +#: picard/tagger.py:529 #, python-format msgid "" "Error while reading CD:\n" @@ -561,44 +451,43 @@ msgid "" "%s" msgstr "Error llegint el CD:\n\n%s" -#: picard/ui/cdlookup.py:34 picard/ui/mainwindow.py:544 -#: picard/ui/ui_options_releases.py:216 picard/util/tags.py:21 +#: picard/ui/cdlookup.py:35 picard/ui/mainwindow.py:597 picard/util/tags.py:21 msgid "Album" msgstr "Àlbum" -#: picard/ui/cdlookup.py:34 picard/ui/itemviews.py:96 -#: picard/ui/mainwindow.py:545 picard/util/tags.py:22 +#: picard/ui/cdlookup.py:35 picard/ui/itemviews.py:96 +#: picard/ui/mainwindow.py:598 picard/util/tags.py:22 msgid "Artist" msgstr "Artista" -#: picard/ui/cdlookup.py:34 picard/util/tags.py:24 +#: picard/ui/cdlookup.py:35 picard/util/tags.py:24 msgid "Date" msgstr "Data" -#: picard/ui/cdlookup.py:35 +#: picard/ui/cdlookup.py:36 msgid "Labels" msgstr "Segells" -#: picard/ui/cdlookup.py:35 +#: picard/ui/cdlookup.py:36 msgid "Catalog #s" msgstr "Catàleg #s" -#: picard/ui/cdlookup.py:35 picard/util/tags.py:79 +#: picard/ui/cdlookup.py:36 picard/util/tags.py:78 msgid "Barcode" msgstr "Codi de barres" -#: picard/ui/collectionmenu.py:31 +#: picard/ui/collectionmenu.py:42 msgid "Refresh List" msgstr "" -#: picard/ui/collectionmenu.py:92 +#: picard/ui/collectionmenu.py:86 #, python-format msgid "%s (%i release)" msgid_plural "%s (%i releases)" msgstr[0] "" msgstr[1] "" -#: picard/ui/coverartbox.py:142 +#: picard/ui/coverartbox.py:141 msgid "View release on MusicBrainz" msgstr "" @@ -614,59 +503,59 @@ msgstr "Mostra fitxers &ocults" msgid "&Set as starting directory" msgstr "" -#: picard/ui/infodialog.py:36 picard/ui/infodialog.py:75 +#: picard/ui/infodialog.py:37 picard/ui/infodialog.py:80 msgid "Info" msgstr "Informació" -#: picard/ui/infodialog.py:80 +#: picard/ui/infodialog.py:85 msgid "Filename:" msgstr "Nom de fitxer:" -#: picard/ui/infodialog.py:82 +#: picard/ui/infodialog.py:87 msgid "Format:" msgstr "Format:" -#: picard/ui/infodialog.py:86 +#: picard/ui/infodialog.py:91 msgid "Size:" msgstr "Mida:" -#: picard/ui/infodialog.py:90 +#: picard/ui/infodialog.py:95 msgid "Length:" msgstr "Durada:" -#: picard/ui/infodialog.py:92 +#: picard/ui/infodialog.py:97 msgid "Bitrate:" msgstr "Bitrate:" -#: picard/ui/infodialog.py:94 +#: picard/ui/infodialog.py:99 msgid "Sample rate:" msgstr "Freqüència de mostreig:" -#: picard/ui/infodialog.py:96 +#: picard/ui/infodialog.py:101 msgid "Bits per sample:" msgstr "Bits per mostra:" -#: picard/ui/infodialog.py:100 +#: picard/ui/infodialog.py:105 msgid "Mono" msgstr "Mono" -#: picard/ui/infodialog.py:102 +#: picard/ui/infodialog.py:107 msgid "Stereo" msgstr "Stereo" -#: picard/ui/infodialog.py:105 +#: picard/ui/infodialog.py:110 msgid "Channels:" msgstr "Canals:" -#: picard/ui/infodialog.py:116 +#: picard/ui/infodialog.py:121 msgid "Album Info" msgstr "" -#: picard/ui/infodialog.py:124 +#: picard/ui/infodialog.py:129 msgid "&Errors" msgstr "" -#: picard/ui/infodialog.py:134 picard/ui/ui_infodialog.py:77 +#: picard/ui/infodialog.py:139 picard/ui/ui_infodialog.py:73 msgid "&Info" msgstr "&Informació" @@ -690,7 +579,7 @@ msgstr "" msgid "Title" msgstr "Títol" -#: picard/ui/itemviews.py:95 picard/util/tags.py:88 +#: picard/ui/itemviews.py:95 picard/util/tags.py:86 msgid "Length" msgstr "Durada" @@ -715,8 +604,8 @@ msgid "Collections" msgstr "" #: picard/ui/itemviews.py:365 -msgid "&Plugins" -msgstr "&Extensions" +msgid "P&lugins" +msgstr "" #: picard/ui/itemviews.py:541 msgid "file view" @@ -738,12 +627,16 @@ msgstr "" msgid "Contains albums and matched files" msgstr "" -#: picard/ui/logview.py:91 +#: picard/ui/logview.py:109 msgid "Log" msgstr "Registre" -#: picard/ui/logview.py:99 -msgid "Status History" +#: picard/ui/logview.py:113 +msgid "Debug mode" +msgstr "" + +#: picard/ui/logview.py:134 +msgid "Activity History" msgstr "" #: picard/ui/mainwindow.py:74 @@ -777,276 +670,309 @@ msgstr "Llest" #: picard/ui/mainwindow.py:220 msgid "" -"Picard listens on a port to integrate with your browser and downloads " -"release information when you click the \"Tagger\" buttons on the MusicBrainz" -" website" -msgstr "Picard escolta un port per integrar-se amb el vostre navegador i així descarregar la informació quan pitgeu el botó \"Tagger\" al lloc web de MusicBrainz" +"Picard listens on this port to integrate with your browser. When you " +"\"Search\" or \"Open in Browser\" from Picard, clicking the \"Tagger\" " +"button on the web page loads the release into Picard." +msgstr "" -#: picard/ui/mainwindow.py:240 +#: picard/ui/mainwindow.py:243 #, python-format msgid " Listening on port %(port)d " msgstr " Escoltant el port %(port)d " -#: picard/ui/mainwindow.py:263 +#: picard/ui/mainwindow.py:299 msgid "Submission Error" msgstr "Error d'enviament" -#: picard/ui/mainwindow.py:264 +#: picard/ui/mainwindow.py:300 msgid "" "You need to configure your AcoustID API key before you can submit " "fingerprints." msgstr "Necessiteu configurar la vostra clau API de l'AcoustID abans de poder enviar empremtes." -#: picard/ui/mainwindow.py:269 +#: picard/ui/mainwindow.py:305 msgid "&Options..." msgstr "&Opcions..." -#: picard/ui/mainwindow.py:273 +#: picard/ui/mainwindow.py:309 msgid "&Cut" msgstr "&Talla" -#: picard/ui/mainwindow.py:278 +#: picard/ui/mainwindow.py:314 msgid "&Paste" msgstr "&Enganxa" -#: picard/ui/mainwindow.py:283 +#: picard/ui/mainwindow.py:319 msgid "&Help..." msgstr "&Ajuda..." -#: picard/ui/mainwindow.py:288 +#: picard/ui/mainwindow.py:323 msgid "&About..." msgstr "&Quant a..." -#: picard/ui/mainwindow.py:292 +#: picard/ui/mainwindow.py:327 msgid "&Donate..." msgstr "&Donacions..." -#: picard/ui/mainwindow.py:295 +#: picard/ui/mainwindow.py:330 msgid "&Report a Bug..." msgstr "&Informar d'un error..." -#: picard/ui/mainwindow.py:298 +#: picard/ui/mainwindow.py:333 msgid "&Support Forum..." msgstr "&Fòrum d'ajuda..." -#: picard/ui/mainwindow.py:301 +#: picard/ui/mainwindow.py:336 msgid "&Add Files..." msgstr "&Afegeix fitxers..." -#: picard/ui/mainwindow.py:302 +#: picard/ui/mainwindow.py:337 msgid "Add files to the tagger" msgstr "Afegir fitxers a l'etiquetador" -#: picard/ui/mainwindow.py:307 +#: picard/ui/mainwindow.py:342 msgid "A&dd Folder..." msgstr "A&fegeix carpeta..." -#: picard/ui/mainwindow.py:308 +#: picard/ui/mainwindow.py:343 msgid "Add a folder to the tagger" msgstr "Afegir carpeta a l'etiquetador" -#: picard/ui/mainwindow.py:310 +#: picard/ui/mainwindow.py:345 msgid "Ctrl+D" msgstr "Ctrl+D" -#: picard/ui/mainwindow.py:313 +#: picard/ui/mainwindow.py:348 msgid "&Save" msgstr "&Desar" -#: picard/ui/mainwindow.py:314 +#: picard/ui/mainwindow.py:349 msgid "Save selected files" msgstr "Desar fitxers seleccionats" -#: picard/ui/mainwindow.py:320 +#: picard/ui/mainwindow.py:355 msgid "S&ubmit" msgstr "E&nviar" -#: picard/ui/mainwindow.py:321 -msgid "Submit fingerprints" -msgstr "Enviar empremtes" +#: picard/ui/mainwindow.py:356 +msgid "Submit acoustic fingerprints" +msgstr "" -#: picard/ui/mainwindow.py:325 +#: picard/ui/mainwindow.py:360 msgid "E&xit" msgstr "S&ortir" -#: picard/ui/mainwindow.py:328 +#: picard/ui/mainwindow.py:363 msgid "Ctrl+Q" msgstr "Ctrl+Q" -#: picard/ui/mainwindow.py:331 +#: picard/ui/mainwindow.py:366 msgid "&Remove" msgstr "&Elimina" -#: picard/ui/mainwindow.py:332 +#: picard/ui/mainwindow.py:367 msgid "Remove selected files/albums" msgstr "Elimina els fitxers/àlbums seleccionats" -#: picard/ui/mainwindow.py:336 +#: picard/ui/mainwindow.py:371 msgid "Lookup in &Browser" msgstr "Cerca a &navegador" -#: picard/ui/mainwindow.py:337 +#: picard/ui/mainwindow.py:372 msgid "Lookup selected item on MusicBrainz website" msgstr "Cercar l'element seleccionat al lloc web de MusicBrainz" -#: picard/ui/mainwindow.py:341 +#: picard/ui/mainwindow.py:376 msgid "File &Browser" msgstr "&Explorador d'arxius" -#: picard/ui/mainwindow.py:345 +#: picard/ui/mainwindow.py:380 msgid "Ctrl+B" msgstr "Ctrl+B" -#: picard/ui/mainwindow.py:348 +#: picard/ui/mainwindow.py:383 msgid "&Cover Art" msgstr "&Caràtules" -#: picard/ui/mainwindow.py:354 picard/ui/mainwindow.py:539 +#: picard/ui/mainwindow.py:389 picard/ui/mainwindow.py:591 msgid "Search" msgstr "Cerca" -#: picard/ui/mainwindow.py:357 -msgid "&CD Lookup..." -msgstr "&Cerca CD..." +#: picard/ui/mainwindow.py:392 +msgid "Lookup &CD..." +msgstr "" -#: picard/ui/mainwindow.py:358 picard/ui/mainwindow.py:359 -msgid "Lookup CD" -msgstr "Cercar CD" +#: picard/ui/mainwindow.py:393 +msgid "Lookup the details of the CD in your drive" +msgstr "" -#: picard/ui/mainwindow.py:361 +#: picard/ui/mainwindow.py:395 msgid "Ctrl+K" msgstr "Ctrl+K" -#: picard/ui/mainwindow.py:364 +#: picard/ui/mainwindow.py:398 msgid "&Scan" msgstr "&Escanejar" -#: picard/ui/mainwindow.py:367 +#: picard/ui/mainwindow.py:401 msgid "Ctrl+Y" msgstr "Ctrl+Y" -#: picard/ui/mainwindow.py:370 +#: picard/ui/mainwindow.py:404 msgid "Cl&uster" msgstr "Cl&úster" -#: picard/ui/mainwindow.py:373 +#: picard/ui/mainwindow.py:407 msgid "Ctrl+U" msgstr "Ctrl+U" -#: picard/ui/mainwindow.py:376 +#: picard/ui/mainwindow.py:410 msgid "&Lookup" msgstr "&Cerca" -#: picard/ui/mainwindow.py:377 picard/ui/mainwindow.py:378 -msgid "Lookup metadata" -msgstr "Cercar metadades" +#: picard/ui/mainwindow.py:411 +msgid "Lookup selected items in MusicBrainz" +msgstr "" -#: picard/ui/mainwindow.py:381 +#: picard/ui/mainwindow.py:416 msgid "Ctrl+L" msgstr "Ctrl+L" -#: picard/ui/mainwindow.py:384 +#: picard/ui/mainwindow.py:419 msgid "&Info..." msgstr "&Informació..." -#: picard/ui/mainwindow.py:387 +#: picard/ui/mainwindow.py:422 msgid "Ctrl+I" msgstr "Ctrl+I" -#: picard/ui/mainwindow.py:390 +#: picard/ui/mainwindow.py:425 msgid "&Refresh" msgstr "&Actualitza" -#: picard/ui/mainwindow.py:391 +#: picard/ui/mainwindow.py:426 msgid "Ctrl+R" msgstr "Ctrl+R" -#: picard/ui/mainwindow.py:394 +#: picard/ui/mainwindow.py:429 msgid "&Rename Files" msgstr "&Reanomena fitxers" -#: picard/ui/mainwindow.py:399 +#: picard/ui/mainwindow.py:434 msgid "&Move Files" msgstr "&Mou fitxers" -#: picard/ui/mainwindow.py:404 +#: picard/ui/mainwindow.py:439 msgid "Save &Tags" msgstr "Desa &etiquetes" -#: picard/ui/mainwindow.py:409 +#: picard/ui/mainwindow.py:444 msgid "Tags From &File Names..." msgstr "Etiquetar des dels &noms de fitxer" -#: picard/ui/mainwindow.py:412 -msgid "View &Log..." -msgstr "Veure ®istre" - -#: picard/ui/mainwindow.py:415 -msgid "View Status &History..." +#: picard/ui/mainwindow.py:447 +msgid "&Open My Collections in Browser" msgstr "" -#: picard/ui/mainwindow.py:422 -msgid "&Open..." -msgstr "&Obrir" +#: picard/ui/mainwindow.py:451 +msgid "View Error/Debug &Log" +msgstr "" -#: picard/ui/mainwindow.py:423 -msgid "Open the file" -msgstr "Obre el fitxer" +#: picard/ui/mainwindow.py:454 +msgid "View Activity &History" +msgstr "" -#: picard/ui/mainwindow.py:426 -msgid "Open &Folder..." -msgstr "Obrir &carpeta..." +#: picard/ui/mainwindow.py:461 +msgid "&Play file" +msgstr "" -#: picard/ui/mainwindow.py:427 -msgid "Open the containing folder" -msgstr "Obre la carpeta del fitxer" +#: picard/ui/mainwindow.py:462 +msgid "Play the file in your default media player" +msgstr "" -#: picard/ui/mainwindow.py:448 +#: picard/ui/mainwindow.py:466 +msgid "Open Containing &Folder" +msgstr "" + +#: picard/ui/mainwindow.py:467 +msgid "Open the containing folder in your file explorer" +msgstr "" + +#: picard/ui/mainwindow.py:492 msgid "&File" msgstr "&Fitxer" -#: picard/ui/mainwindow.py:456 +#: picard/ui/mainwindow.py:503 msgid "&Edit" msgstr "&Editar" -#: picard/ui/mainwindow.py:462 +#: picard/ui/mainwindow.py:509 msgid "&View" msgstr "&Veure" -#: picard/ui/mainwindow.py:470 +#: picard/ui/mainwindow.py:515 msgid "&Options" msgstr "&Opcions" -#: picard/ui/mainwindow.py:476 +#: picard/ui/mainwindow.py:521 msgid "&Tools" msgstr "&Eines" -#: picard/ui/mainwindow.py:485 picard/ui/util.py:35 +#: picard/ui/mainwindow.py:532 picard/ui/util.py:35 msgid "&Help" msgstr "&Ajuda" -#: picard/ui/mainwindow.py:505 +#: picard/ui/mainwindow.py:553 msgid "Actions" msgstr "" -#: picard/ui/mainwindow.py:608 +#: picard/ui/mainwindow.py:599 +msgid "Track" +msgstr "Pista" + +#: picard/ui/mainwindow.py:662 msgid "All Supported Formats" msgstr "Tots els formats suportats" -#: picard/ui/mainwindow.py:705 +#: picard/ui/mainwindow.py:695 +#, python-format +msgid "Adding directory: '%(directory)s' ..." +msgstr "" + +#: picard/ui/mainwindow.py:702 +#, python-format +msgid "Adding multiple directories from '%(directory)s' ..." +msgstr "" + +#: picard/ui/mainwindow.py:767 msgid "Configuration Required" msgstr "Configuració necessària" -#: picard/ui/mainwindow.py:706 +#: picard/ui/mainwindow.py:768 msgid "" "Audio fingerprinting is not yet configured. Would you like to configure it " "now?" msgstr "El sistema d'empremtes d'àudio no està configurat. Voleu fer-ho ara?" -#: picard/ui/mainwindow.py:784 picard/ui/mainwindow.py:791 +#: picard/ui/mainwindow.py:848 #, python-format -msgid " (Error: %s)" -msgstr "(Error: %s)" +msgid "%(filename)s (error: %(error)s)" +msgstr "" + +#: picard/ui/mainwindow.py:854 +#, python-format +msgid "%(filename)s" +msgstr "" + +#: picard/ui/mainwindow.py:864 +#, python-format +msgid "%(filename)s (%(similarity)d%%) (error: %(error)s)" +msgstr "" + +#: picard/ui/mainwindow.py:871 +#, python-format +msgid "%(filename)s (%(similarity)d%%)" +msgstr "" #: picard/ui/metadatabox.py:82 #, python-format @@ -1100,387 +1026,387 @@ msgid_plural "Use Original Values" msgstr[0] "Utilitza el valor original" msgstr[1] "Utilitza els valors originals" -#: picard/ui/passworddialog.py:37 +#: picard/ui/passworddialog.py:40 #, python-format msgid "" "The server %s requires you to login. Please enter your username and " "password." msgstr "El servidor %s necessita autenticació. Si us plau, introduïu el vostre nom d'usuari i contrasenya." -#: picard/ui/passworddialog.py:75 +#: picard/ui/passworddialog.py:79 #, python-format msgid "" "The proxy %s requires you to login. Please enter your username and password." msgstr "El proxy %s necessita autenticació. Si us plau, introduïu el vostre nom d'usuari i contrasenya." -#: picard/ui/tagsfromfilenames.py:55 picard/ui/tagsfromfilenames.py:100 +#: picard/ui/tagsfromfilenames.py:56 picard/ui/tagsfromfilenames.py:101 msgid "File Name" msgstr "Nom de fitxer" -#: picard/ui/ui_cdlookup.py:66 picard/ui/ui_options_cdlookup.py:55 -#: picard/ui/ui_options_cdlookup_select.py:62 picard/ui/options/cdlookup.py:38 +#: picard/ui/ui_cdlookup.py:53 picard/ui/ui_options_cdlookup.py:42 +#: picard/ui/ui_options_cdlookup_select.py:49 picard/ui/options/cdlookup.py:38 msgid "CD Lookup" msgstr "Recerca de CD" -#: picard/ui/ui_cdlookup.py:67 +#: picard/ui/ui_cdlookup.py:54 msgid "The following releases on MusicBrainz match the CD:" msgstr "" -#: picard/ui/ui_cdlookup.py:68 +#: picard/ui/ui_cdlookup.py:55 msgid "OK" msgstr "OK" -#: picard/ui/ui_cdlookup.py:69 +#: picard/ui/ui_cdlookup.py:56 msgid "Lookup manually" msgstr "" -#: picard/ui/ui_cdlookup.py:70 +#: picard/ui/ui_cdlookup.py:57 msgid "Cancel" msgstr "Cancel·la" -#: picard/ui/ui_edittagdialog.py:101 +#: picard/ui/ui_edittagdialog.py:88 msgid "Edit Tag" msgstr "Edita etiqueta" -#: picard/ui/ui_edittagdialog.py:102 +#: picard/ui/ui_edittagdialog.py:89 msgid "Edit value" msgstr "Edita valor" -#: picard/ui/ui_edittagdialog.py:103 +#: picard/ui/ui_edittagdialog.py:90 msgid "Add value" msgstr "Afegeix valor" -#: picard/ui/ui_edittagdialog.py:104 +#: picard/ui/ui_edittagdialog.py:91 msgid "Remove value" msgstr "Esborra valor" -#: picard/ui/ui_infodialog.py:78 +#: picard/ui/ui_infodialog.py:74 msgid "A&rtwork" msgstr "" -#: picard/ui/ui_infostatus.py:100 +#: picard/ui/ui_infostatus.py:96 msgid "Form" msgstr "" -#: picard/ui/ui_options.py:51 +#: picard/ui/ui_options.py:38 msgid "Options" msgstr "Opcions" -#: picard/ui/ui_options_advanced.py:46 +#: picard/ui/ui_options_advanced.py:42 msgid "Advanced options" msgstr "" -#: picard/ui/ui_options_advanced.py:47 +#: picard/ui/ui_options_advanced.py:43 msgid "Ignore file paths matching the following regular expression:" msgstr "" -#: picard/ui/ui_options_cdlookup.py:56 +#: picard/ui/ui_options_cdlookup.py:43 msgid "CD-ROM device to use for lookups:" msgstr "Unitat de CD-ROM per les recerques:" -#: picard/ui/ui_options_cdlookup_select.py:63 +#: picard/ui/ui_options_cdlookup_select.py:50 msgid "Default CD-ROM drive to use for lookups:" msgstr "Unitat de CD-ROM per defecte en les recerques:" -#: picard/ui/ui_options_cover.py:145 +#: picard/ui/ui_options_cover.py:131 msgid "Location" msgstr "" -#: picard/ui/ui_options_cover.py:146 +#: picard/ui/ui_options_cover.py:132 msgid "Embed cover images into tags" msgstr "Insereix caràtules dins les etiquetes" -#: picard/ui/ui_options_cover.py:147 +#: picard/ui/ui_options_cover.py:133 msgid "Only embed a front image" msgstr "" -#: picard/ui/ui_options_cover.py:148 +#: picard/ui/ui_options_cover.py:134 msgid "Save cover images as separate files" msgstr "Desa les caràtules com fitxers separats" -#: picard/ui/ui_options_cover.py:149 +#: picard/ui/ui_options_cover.py:135 msgid "Use the following file name for images:" msgstr "" -#: picard/ui/ui_options_cover.py:150 +#: picard/ui/ui_options_cover.py:136 msgid "Overwrite the file if it already exists" msgstr "Sobreescriu el fitxer si ja existeix" -#: picard/ui/ui_options_cover.py:151 +#: picard/ui/ui_options_cover.py:137 msgid "Coverart Providers" msgstr "" -#: picard/ui/ui_options_cover.py:152 +#: picard/ui/ui_options_cover.py:138 msgid "Amazon" msgstr "" -#: picard/ui/ui_options_cover.py:153 picard/ui/ui_options_cover.py:155 +#: picard/ui/ui_options_cover.py:139 picard/ui/ui_options_cover.py:141 msgid "Cover Art Archive" msgstr "" -#: picard/ui/ui_options_cover.py:154 +#: picard/ui/ui_options_cover.py:140 msgid "Sites on the whitelist" msgstr "" -#: picard/ui/ui_options_cover.py:156 +#: picard/ui/ui_options_cover.py:142 msgid "Only use images of the following size:" msgstr "" -#: picard/ui/ui_options_cover.py:157 +#: picard/ui/ui_options_cover.py:143 msgid "250 px" msgstr "" -#: picard/ui/ui_options_cover.py:158 +#: picard/ui/ui_options_cover.py:144 msgid "500 px" msgstr "" -#: picard/ui/ui_options_cover.py:159 +#: picard/ui/ui_options_cover.py:145 msgid "Full size" msgstr "" -#: picard/ui/ui_options_cover.py:160 +#: picard/ui/ui_options_cover.py:146 msgid "Download only images of the following types:" msgstr "" -#: picard/ui/ui_options_cover.py:161 +#: picard/ui/ui_options_cover.py:147 msgid "Download only approved images" msgstr "" -#: picard/ui/ui_options_cover.py:162 +#: picard/ui/ui_options_cover.py:148 msgid "" "Use the first image type as the filename. This will not change the filename " "of front images." msgstr "" -#: picard/ui/ui_options_fingerprinting.py:83 +#: picard/ui/ui_options_fingerprinting.py:70 msgid "Audio Fingerprinting" msgstr "Recerca d'empremtes d'àudio" -#: picard/ui/ui_options_fingerprinting.py:84 +#: picard/ui/ui_options_fingerprinting.py:71 msgid "Do not use audio fingerprinting" msgstr "" -#: picard/ui/ui_options_fingerprinting.py:85 +#: picard/ui/ui_options_fingerprinting.py:72 msgid "Use AcoustID" msgstr "Utilitza AcoustID" -#: picard/ui/ui_options_fingerprinting.py:86 +#: picard/ui/ui_options_fingerprinting.py:73 msgid "AcoustID Settings" msgstr "Configuració AcoustID" -#: picard/ui/ui_options_fingerprinting.py:87 +#: picard/ui/ui_options_fingerprinting.py:74 msgid "Fingerprint calculator:" msgstr "Calculadora d'empremtes:" -#: picard/ui/ui_options_fingerprinting.py:88 -#: picard/ui/ui_options_interface.py:88 picard/ui/ui_options_renaming.py:138 +#: picard/ui/ui_options_fingerprinting.py:75 +#: picard/ui/ui_options_interface.py:75 picard/ui/ui_options_renaming.py:134 msgid "Browse..." msgstr "" -#: picard/ui/ui_options_fingerprinting.py:89 +#: picard/ui/ui_options_fingerprinting.py:76 msgid "Download..." msgstr "Descarrega..." -#: picard/ui/ui_options_fingerprinting.py:90 +#: picard/ui/ui_options_fingerprinting.py:77 msgid "API key:" msgstr "Clau API:" -#: picard/ui/ui_options_fingerprinting.py:91 +#: picard/ui/ui_options_fingerprinting.py:78 msgid "Get API key..." msgstr "Obté una clau API..." -#: picard/ui/ui_options_folksonomy.py:115 picard/ui/options/folksonomy.py:28 +#: picard/ui/ui_options_folksonomy.py:102 picard/ui/options/folksonomy.py:28 msgid "Folksonomy Tags" msgstr "Etiquetes de folcsonomia" -#: picard/ui/ui_options_folksonomy.py:117 +#: picard/ui/ui_options_folksonomy.py:104 msgid "Only use my tags" msgstr "Utilitza només les meves etiquetes:" -#: picard/ui/ui_options_folksonomy.py:120 +#: picard/ui/ui_options_folksonomy.py:107 msgid "Maximum number of tags:" msgstr "Nombre màxim d'etiquetes:" -#: picard/ui/ui_options_general.py:92 +#: picard/ui/ui_options_general.py:88 msgid "MusicBrainz Server" msgstr "Servidor MusicBrainz" -#: picard/ui/ui_options_general.py:93 picard/ui/ui_options_network.py:123 +#: picard/ui/ui_options_general.py:89 picard/ui/ui_options_network.py:110 msgid "Port:" msgstr "Port:" -#: picard/ui/ui_options_general.py:94 picard/ui/ui_options_network.py:124 +#: picard/ui/ui_options_general.py:90 picard/ui/ui_options_network.py:111 msgid "Server address:" msgstr "Adreça del servidor:" -#: picard/ui/ui_options_general.py:95 +#: picard/ui/ui_options_general.py:91 msgid "Account Information" msgstr "Informació del compte" -#: picard/ui/ui_options_general.py:96 picard/ui/ui_options_network.py:121 -#: picard/ui/ui_passworddialog.py:74 +#: picard/ui/ui_options_general.py:92 picard/ui/ui_options_network.py:108 +#: picard/ui/ui_passworddialog.py:70 msgid "Password:" msgstr "Contrasenya:" -#: picard/ui/ui_options_general.py:97 picard/ui/ui_options_network.py:122 -#: picard/ui/ui_passworddialog.py:73 +#: picard/ui/ui_options_general.py:93 picard/ui/ui_options_network.py:109 +#: picard/ui/ui_passworddialog.py:69 msgid "Username:" msgstr "Nom d'usuari:" -#: picard/ui/ui_options_general.py:98 picard/ui/options/general.py:31 +#: picard/ui/ui_options_general.py:94 picard/ui/options/general.py:31 msgid "General" msgstr "General" -#: picard/ui/ui_options_general.py:99 +#: picard/ui/ui_options_general.py:95 msgid "Automatically scan all new files" msgstr "Escanejar automàticament tots els nous fitxers" -#: picard/ui/ui_options_general.py:100 +#: picard/ui/ui_options_general.py:96 msgid "Ignore MBIDs when loading new files" msgstr "Ignorar MBIDs quan es carreguin nous fitxers" -#: picard/ui/ui_options_interface.py:82 +#: picard/ui/ui_options_interface.py:69 msgid "Miscellaneous" msgstr "Miscel·lània" -#: picard/ui/ui_options_interface.py:83 +#: picard/ui/ui_options_interface.py:70 msgid "Show text labels under icons" msgstr "Mostra etiquetes de texte a sota les icones" -#: picard/ui/ui_options_interface.py:84 +#: picard/ui/ui_options_interface.py:71 msgid "Allow selection of multiple directories" msgstr "Permet la selecció múltiple de directoris" -#: picard/ui/ui_options_interface.py:85 +#: picard/ui/ui_options_interface.py:72 msgid "Use advanced query syntax" msgstr "Utilitza la sintaxi avançada en les consules" -#: picard/ui/ui_options_interface.py:86 +#: picard/ui/ui_options_interface.py:73 msgid "Show a quit confirmation dialog for unsaved changes" msgstr "Mostra una confirmació si hi han canvis pendents de desar" -#: picard/ui/ui_options_interface.py:87 +#: picard/ui/ui_options_interface.py:74 msgid "Begin browsing in the following directory:" msgstr "" -#: picard/ui/ui_options_interface.py:89 +#: picard/ui/ui_options_interface.py:76 msgid "User interface language:" msgstr "Llengua de l'interfície d'usuari:" -#: picard/ui/ui_options_matching.py:86 +#: picard/ui/ui_options_matching.py:73 msgid "Thresholds" msgstr "Llindars" -#: picard/ui/ui_options_matching.py:87 +#: picard/ui/ui_options_matching.py:74 msgid "Minimal similarity for matching files to tracks:" msgstr "Mínima semblança per fer coincidir fitxers amb pistes:" -#: picard/ui/ui_options_matching.py:91 +#: picard/ui/ui_options_matching.py:78 msgid "Minimal similarity for file lookups:" msgstr "Mínima semblança per recerques de fitxers:" -#: picard/ui/ui_options_matching.py:92 +#: picard/ui/ui_options_matching.py:79 msgid "Minimal similarity for cluster lookups:" msgstr "Mínima similitud per les recerques de clúster:" -#: picard/ui/ui_options_metadata.py:114 picard/ui/options/metadata.py:29 +#: picard/ui/ui_options_metadata.py:101 picard/ui/options/metadata.py:29 msgid "Metadata" msgstr "Metadades" -#: picard/ui/ui_options_metadata.py:115 +#: picard/ui/ui_options_metadata.py:102 msgid "Translate artist names to this locale where possible:" msgstr "Tradueix els noms d'artista a aquesta llengua quan sigui possible:" -#: picard/ui/ui_options_metadata.py:116 +#: picard/ui/ui_options_metadata.py:103 msgid "Use standardized artist names" msgstr "Utilitza noms d'artista estandarditzats" -#: picard/ui/ui_options_metadata.py:117 +#: picard/ui/ui_options_metadata.py:104 msgid "Convert Unicode punctuation characters to ASCII" msgstr "Converteix a ASCII els caràcters de puntuació Unicode" -#: picard/ui/ui_options_metadata.py:118 +#: picard/ui/ui_options_metadata.py:105 msgid "Use release relationships" msgstr "" -#: picard/ui/ui_options_metadata.py:119 +#: picard/ui/ui_options_metadata.py:106 msgid "Use track relationships" msgstr "" -#: picard/ui/ui_options_metadata.py:120 +#: picard/ui/ui_options_metadata.py:107 msgid "Use folksonomy tags as genre" msgstr "Utilitza etiquetes de folcsonomia com a gènere" -#: picard/ui/ui_options_metadata.py:121 +#: picard/ui/ui_options_metadata.py:108 msgid "Custom Fields" msgstr "Camps personalitzats" -#: picard/ui/ui_options_metadata.py:122 +#: picard/ui/ui_options_metadata.py:109 msgid "Various artists:" msgstr "Diversos artistes:" -#: picard/ui/ui_options_metadata.py:123 +#: picard/ui/ui_options_metadata.py:110 msgid "Non-album tracks:" msgstr "Pistes aïllades:" -#: picard/ui/ui_options_metadata.py:124 picard/ui/ui_options_metadata.py:125 -#: picard/ui/ui_options_renaming.py:147 +#: picard/ui/ui_options_metadata.py:111 picard/ui/ui_options_metadata.py:112 +#: picard/ui/ui_options_renaming.py:143 msgid "Default" msgstr "Valor per defecte" -#: picard/ui/ui_options_network.py:120 +#: picard/ui/ui_options_network.py:107 msgid "Web Proxy" msgstr "Proxy web" -#: picard/ui/ui_options_network.py:125 +#: picard/ui/ui_options_network.py:112 msgid "Browser Integration" msgstr "" -#: picard/ui/ui_options_network.py:126 +#: picard/ui/ui_options_network.py:113 msgid "Default listening port:" msgstr "" -#: picard/ui/ui_options_network.py:127 +#: picard/ui/ui_options_network.py:114 msgid "Listen only on localhost" msgstr "" -#: picard/ui/ui_options_plugins.py:131 picard/ui/options/plugins.py:38 +#: picard/ui/ui_options_plugins.py:127 picard/ui/options/plugins.py:38 msgid "Plugins" msgstr "Plugins" -#: picard/ui/ui_options_plugins.py:132 picard/ui/options/plugins.py:122 +#: picard/ui/ui_options_plugins.py:128 picard/ui/options/plugins.py:122 msgid "Name" msgstr "Nom" -#: picard/ui/ui_options_plugins.py:133 picard/util/tags.py:39 +#: picard/ui/ui_options_plugins.py:129 msgid "Version" msgstr "Versió" -#: picard/ui/ui_options_plugins.py:134 picard/ui/options/plugins.py:125 +#: picard/ui/ui_options_plugins.py:130 picard/ui/options/plugins.py:125 msgid "Author" msgstr "Autor" -#: picard/ui/ui_options_plugins.py:135 +#: picard/ui/ui_options_plugins.py:131 msgid "Install plugin..." msgstr "Instal·lar plugin..." -#: picard/ui/ui_options_plugins.py:136 +#: picard/ui/ui_options_plugins.py:132 msgid "Open plugin folder" msgstr "" -#: picard/ui/ui_options_plugins.py:137 +#: picard/ui/ui_options_plugins.py:133 msgid "Download plugins" msgstr "" -#: picard/ui/ui_options_plugins.py:138 +#: picard/ui/ui_options_plugins.py:134 msgid "Details" msgstr "Detalls" -#: picard/ui/ui_options_ratings.py:53 +#: picard/ui/ui_options_ratings.py:49 msgid "Enable track ratings" msgstr "" -#: picard/ui/ui_options_ratings.py:54 +#: picard/ui/ui_options_ratings.py:50 msgid "" "Picard saves the ratings together with an e-mail address identifying the " "user who did the rating. That way different ratings for different users can " @@ -1488,207 +1414,167 @@ msgid "" "your ratings." msgstr "" -#: picard/ui/ui_options_ratings.py:55 +#: picard/ui/ui_options_ratings.py:51 msgid "E-mail:" msgstr "Correu electrònic:" -#: picard/ui/ui_options_ratings.py:56 +#: picard/ui/ui_options_ratings.py:52 msgid "Submit ratings to MusicBrainz" msgstr "" -#: picard/ui/ui_options_releases.py:215 +#: picard/ui/ui_options_releases.py:104 msgid "Preferred release types" msgstr "" -#: picard/ui/ui_options_releases.py:217 -msgid "Single" -msgstr "Senzill" - -#: picard/ui/ui_options_releases.py:218 -msgid "EP" -msgstr "EP" - -#: picard/ui/ui_options_releases.py:219 -msgid "Compilation" -msgstr "Recopilació" - -#: picard/ui/ui_options_releases.py:220 -msgid "Soundtrack" -msgstr "Banda sonora" - -#: picard/ui/ui_options_releases.py:221 -msgid "Spokenword" -msgstr "" - -#: picard/ui/ui_options_releases.py:222 -msgid "Interview" -msgstr "Entrevista" - -#: picard/ui/ui_options_releases.py:223 -msgid "Audiobook" -msgstr "Àudiollibre" - -#: picard/ui/ui_options_releases.py:224 -msgid "Live" -msgstr "En directe" - -#: picard/ui/ui_options_releases.py:225 -msgid "Remix" -msgstr "Remix" - -#: picard/ui/ui_options_releases.py:227 -msgid "Reset all" -msgstr "Reinicialitza tot" - -#: picard/ui/ui_options_releases.py:228 +#: picard/ui/ui_options_releases.py:105 msgid "Preferred release countries" msgstr "" -#: picard/ui/ui_options_releases.py:229 picard/ui/ui_options_releases.py:232 +#: picard/ui/ui_options_releases.py:106 picard/ui/ui_options_releases.py:109 msgid ">" msgstr ">" -#: picard/ui/ui_options_releases.py:230 picard/ui/ui_options_releases.py:233 +#: picard/ui/ui_options_releases.py:107 picard/ui/ui_options_releases.py:110 msgid "<" msgstr "<" -#: picard/ui/ui_options_releases.py:231 +#: picard/ui/ui_options_releases.py:108 msgid "Preferred release formats" msgstr "" -#: picard/ui/ui_options_renaming.py:134 +#: picard/ui/ui_options_renaming.py:130 msgid "Rename files when saving" msgstr "Reanomena els fitxers al desar-los" -#: picard/ui/ui_options_renaming.py:135 +#: picard/ui/ui_options_renaming.py:131 msgid "Replace non-ASCII characters" msgstr "Substitueix els caràcters no ASCII" -#: picard/ui/ui_options_renaming.py:136 +#: picard/ui/ui_options_renaming.py:132 msgid "Windows compatibility" msgstr "" -#: picard/ui/ui_options_renaming.py:137 +#: picard/ui/ui_options_renaming.py:133 msgid "Move files to this directory when saving:" msgstr "Mou els fitxers cap aquest directori al desar-los:" -#: picard/ui/ui_options_renaming.py:139 +#: picard/ui/ui_options_renaming.py:135 msgid "Delete empty directories" msgstr "Esborra els directoris buits" -#: picard/ui/ui_options_renaming.py:140 +#: picard/ui/ui_options_renaming.py:136 msgid "Move additional files:" msgstr "Mou d'altres fitxers addicionals:" -#: picard/ui/ui_options_renaming.py:141 +#: picard/ui/ui_options_renaming.py:137 msgid "Name files like this" msgstr "Anomena els fitxers d'aquesta manera" -#: picard/ui/ui_options_renaming.py:148 +#: picard/ui/ui_options_renaming.py:144 msgid "Examples" msgstr "Exemples" -#: picard/ui/ui_options_script.py:49 +#: picard/ui/ui_options_script.py:45 msgid "Tagger Script" msgstr "Script d'etiquetatge" -#: picard/ui/ui_options_tags.py:165 +#: picard/ui/ui_options_tags.py:152 msgid "Write tags to files" msgstr "Escriu etiquetes als fitxers" -#: picard/ui/ui_options_tags.py:166 +#: picard/ui/ui_options_tags.py:153 msgid "Preserve timestamps of tagged files" msgstr "No modificar la data dels fitxers etiquetats" -#: picard/ui/ui_options_tags.py:167 +#: picard/ui/ui_options_tags.py:154 msgid "Before Tagging" msgstr "" -#: picard/ui/ui_options_tags.py:168 +#: picard/ui/ui_options_tags.py:155 msgid "Clear existing tags" msgstr "Elimina etiquetes existents" -#: picard/ui/ui_options_tags.py:169 +#: picard/ui/ui_options_tags.py:156 msgid "Remove ID3 tags from FLAC files" msgstr "Elimina etiquetes ID3 dels fitxers FLAC" -#: picard/ui/ui_options_tags.py:170 +#: picard/ui/ui_options_tags.py:157 msgid "Remove APEv2 tags from MP3 files" msgstr "Elimina etiquetes APEv2 dels fitxers MP3" -#: picard/ui/ui_options_tags.py:171 +#: picard/ui/ui_options_tags.py:158 msgid "" "Preserve these tags from being cleared or overwritten with MusicBrainz data:" msgstr "Evita que aquestes etiquetes siguin esborrades o reemplaçades amb la informació de MusicBrainz:" -#: picard/ui/ui_options_tags.py:172 +#: picard/ui/ui_options_tags.py:159 msgid "Tags are separated by commas, and are case-sensitive." msgstr "" -#: picard/ui/ui_options_tags.py:173 +#: picard/ui/ui_options_tags.py:160 msgid "Tag Compatibility" msgstr "" -#: picard/ui/ui_options_tags.py:174 +#: picard/ui/ui_options_tags.py:161 msgid "ID3v2 Version" msgstr "" -#: picard/ui/ui_options_tags.py:175 +#: picard/ui/ui_options_tags.py:162 msgid "2.4" msgstr "2.4" -#: picard/ui/ui_options_tags.py:176 +#: picard/ui/ui_options_tags.py:163 msgid "2.3" msgstr "2.3" -#: picard/ui/ui_options_tags.py:177 +#: picard/ui/ui_options_tags.py:164 msgid "ID3v2 Text Encoding" msgstr "" -#: picard/ui/ui_options_tags.py:178 +#: picard/ui/ui_options_tags.py:165 msgid "UTF-8" msgstr "UTF-8" -#: picard/ui/ui_options_tags.py:179 +#: picard/ui/ui_options_tags.py:166 msgid "UTF-16" msgstr "UTF-16" -#: picard/ui/ui_options_tags.py:180 +#: picard/ui/ui_options_tags.py:167 msgid "ISO-8859-1" msgstr "ISO-8859-1" -#: picard/ui/ui_options_tags.py:181 +#: picard/ui/ui_options_tags.py:168 msgid "Join multiple ID3v2.3 tags with:" msgstr "" -#: picard/ui/ui_options_tags.py:182 +#: picard/ui/ui_options_tags.py:169 msgid "" "

Default is '/' to maintain compatibility with previous" " Picard releases.

New alternatives are ';_' or '_/_' or type your own." "

" msgstr "" -#: picard/ui/ui_options_tags.py:183 +#: picard/ui/ui_options_tags.py:170 msgid "Also include ID3v1 tags in the files" msgstr "Inclou també etiquetes ID3v1 als fitxers" -#: picard/ui/ui_passworddialog.py:72 +#: picard/ui/ui_passworddialog.py:68 msgid "Authentication required" msgstr "Autentificació necessària" -#: picard/ui/ui_passworddialog.py:75 +#: picard/ui/ui_passworddialog.py:71 msgid "Save username and password" msgstr "Desar nom d'usuari i contrasenya" -#: picard/ui/ui_tagsfromfilenames.py:54 +#: picard/ui/ui_tagsfromfilenames.py:50 msgid "Convert File Names to Tags" msgstr "Converteix noms de fitxer a etiquetes" -#: picard/ui/ui_tagsfromfilenames.py:55 +#: picard/ui/ui_tagsfromfilenames.py:51 msgid "Replace underscores with spaces" msgstr "Reemplaça guions baixos per espais" -#: picard/ui/ui_tagsfromfilenames.py:56 +#: picard/ui/ui_tagsfromfilenames.py:52 msgid "&Preview" msgstr "" @@ -1744,7 +1630,11 @@ msgstr "Avançat" msgid "Regex Error" msgstr "" -#: picard/ui/options/cover.py:63 +#: picard/ui/options/cover.py:44 +msgid "title" +msgstr "" + +#: picard/ui/options/cover.py:68 msgid "Cover Art" msgstr "Caràtules" @@ -1760,11 +1650,11 @@ msgstr "Interfície d'usuari" msgid "System default" msgstr "Paràmetres per defecte del sistema" -#: picard/ui/options/interface.py:96 +#: picard/ui/options/interface.py:98 msgid "Language changed" msgstr "" -#: picard/ui/options/interface.py:96 +#: picard/ui/options/interface.py:99 msgid "" "You have changed the interface language. You have to restart Picard in order" " for the change to take effect." @@ -1786,31 +1676,35 @@ msgstr "Fitxer" msgid "Ratings" msgstr "" -#: picard/ui/options/releases.py:33 +#: picard/ui/options/releases.py:87 msgid "Preferred Releases" msgstr "" +#: picard/ui/options/releases.py:121 +msgid "Reset all" +msgstr "Reinicialitza tot" + #: picard/ui/options/renaming.py:37 msgid "File Naming" msgstr "" -#: picard/ui/options/renaming.py:184 +#: picard/ui/options/renaming.py:187 msgid "Error" msgstr "Error" -#: picard/ui/options/renaming.py:184 +#: picard/ui/options/renaming.py:187 msgid "The location to move files to must not be empty." msgstr "" -#: picard/ui/options/renaming.py:194 +#: picard/ui/options/renaming.py:197 msgid "The file naming format must not be empty." msgstr "" -#: picard/ui/options/scripting.py:63 +#: picard/ui/options/scripting.py:99 msgid "Scripting" msgstr "" -#: picard/ui/options/scripting.py:95 +#: picard/ui/options/scripting.py:131 msgid "Script Error" msgstr "" @@ -1930,199 +1824,199 @@ msgstr "ASIN" msgid "Grouping" msgstr "" -#: picard/util/tags.py:40 +#: picard/util/tags.py:39 msgid "ISRC" msgstr "ISRC" -#: picard/util/tags.py:41 +#: picard/util/tags.py:40 msgid "Mood" msgstr "Estat d'ànim" -#: picard/util/tags.py:42 +#: picard/util/tags.py:41 msgid "BPM" msgstr "BPM" -#: picard/util/tags.py:43 +#: picard/util/tags.py:42 msgid "Copyright" msgstr "Copyright" -#: picard/util/tags.py:44 +#: picard/util/tags.py:43 msgid "License" msgstr "" -#: picard/util/tags.py:45 +#: picard/util/tags.py:44 msgid "Composer" msgstr "Compositor" -#: picard/util/tags.py:46 +#: picard/util/tags.py:45 msgid "Writer" msgstr "Escriptor" -#: picard/util/tags.py:47 +#: picard/util/tags.py:46 msgid "Conductor" msgstr "Director" -#: picard/util/tags.py:48 +#: picard/util/tags.py:47 msgid "Lyricist" msgstr "Lletrista" -#: picard/util/tags.py:49 +#: picard/util/tags.py:48 msgid "Arranger" msgstr "Arranjador" -#: picard/util/tags.py:50 +#: picard/util/tags.py:49 msgid "Producer" msgstr "Productor" -#: picard/util/tags.py:51 +#: picard/util/tags.py:50 msgid "Engineer" msgstr "Enginyer" -#: picard/util/tags.py:52 +#: picard/util/tags.py:51 msgid "Subtitle" msgstr "" -#: picard/util/tags.py:53 +#: picard/util/tags.py:52 msgid "Disc Subtitle" msgstr "" -#: picard/util/tags.py:54 +#: picard/util/tags.py:53 msgid "Remixer" msgstr "Remesclador" -#: picard/util/tags.py:55 +#: picard/util/tags.py:54 msgid "MusicBrainz Recording Id" msgstr "ID MusicBrainz d'enregistrament" -#: picard/util/tags.py:56 +#: picard/util/tags.py:55 msgid "MusicBrainz Track Id" msgstr "" -#: picard/util/tags.py:57 +#: picard/util/tags.py:56 msgid "MusicBrainz Release Id" msgstr "" -#: picard/util/tags.py:58 +#: picard/util/tags.py:57 msgid "MusicBrainz Artist Id" msgstr "ID MusicBrainz d'artista" -#: picard/util/tags.py:59 +#: picard/util/tags.py:58 msgid "MusicBrainz Release Artist Id" msgstr "" -#: picard/util/tags.py:60 +#: picard/util/tags.py:59 msgid "MusicBrainz Work Id" msgstr "ID MusicBrainz de treball" -#: picard/util/tags.py:61 +#: picard/util/tags.py:60 msgid "MusicBrainz Release Group Id" msgstr "" -#: picard/util/tags.py:62 +#: picard/util/tags.py:61 msgid "MusicBrainz Disc Id" msgstr "ID MusicBrainz de disc" -#: picard/util/tags.py:63 -msgid "MusicBrainz Sort Name" -msgstr "" - -#: picard/util/tags.py:64 +#: picard/util/tags.py:62 msgid "MusicIP PUID" msgstr "PUID MusicIP" -#: picard/util/tags.py:65 +#: picard/util/tags.py:63 msgid "MusicIP Fingerprint" msgstr "Empremta MusicIP" -#: picard/util/tags.py:66 +#: picard/util/tags.py:64 msgid "AcoustID" msgstr "AcoustID" -#: picard/util/tags.py:67 +#: picard/util/tags.py:65 msgid "AcoustID Fingerprint" msgstr "Empremta AcoustID" -#: picard/util/tags.py:68 +#: picard/util/tags.py:66 msgid "Disc Id" msgstr "ID de disc" -#: picard/util/tags.py:69 -msgid "Website" -msgstr "Lloc web" +#: picard/util/tags.py:67 +msgid "Artist Website" +msgstr "" -#: picard/util/tags.py:70 +#: picard/util/tags.py:68 msgid "Compilation (iTunes)" msgstr "" -#: picard/util/tags.py:71 +#: picard/util/tags.py:69 msgid "Comment" msgstr "Comentari" -#: picard/util/tags.py:72 +#: picard/util/tags.py:70 msgid "Genre" msgstr "Gènere" -#: picard/util/tags.py:73 +#: picard/util/tags.py:71 msgid "Encoded By" msgstr "Codificat per" -#: picard/util/tags.py:74 +#: picard/util/tags.py:72 +msgid "Encoder Settings" +msgstr "" + +#: picard/util/tags.py:73 msgid "Performer" msgstr "Intèrpret" -#: picard/util/tags.py:75 +#: picard/util/tags.py:74 msgid "Release Type" msgstr "" -#: picard/util/tags.py:76 +#: picard/util/tags.py:75 msgid "Release Status" msgstr "" -#: picard/util/tags.py:77 +#: picard/util/tags.py:76 msgid "Release Country" msgstr "" -#: picard/util/tags.py:78 +#: picard/util/tags.py:77 msgid "Record Label" msgstr "Segell discogràfic" -#: picard/util/tags.py:80 +#: picard/util/tags.py:79 msgid "Catalog Number" msgstr "Nº de catàleg" -#: picard/util/tags.py:82 +#: picard/util/tags.py:80 msgid "DJ-Mixer" msgstr "" -#: picard/util/tags.py:83 +#: picard/util/tags.py:81 msgid "Media" msgstr "Mitjà" -#: picard/util/tags.py:84 +#: picard/util/tags.py:82 msgid "Lyrics" msgstr "Lletres" -#: picard/util/tags.py:85 +#: picard/util/tags.py:83 msgid "Mixer" msgstr "Mesclador" -#: picard/util/tags.py:86 +#: picard/util/tags.py:84 msgid "Language" msgstr "Idioma" -#: picard/util/tags.py:87 +#: picard/util/tags.py:85 msgid "Script" msgstr "Escriptura" -#: picard/util/tags.py:89 +#: picard/util/tags.py:87 msgid "Rating" msgstr "" -#: picard/util/tags.py:90 +#: picard/util/tags.py:88 msgid "Artists" msgstr "" -#: picard/util/tags.py:91 +#: picard/util/tags.py:89 msgid "Work" msgstr "" diff --git a/po/countries/ru.po b/po/countries/ru.po index a3a13ec1a..8f447b3d7 100644 --- a/po/countries/ru.po +++ b/po/countries/ru.po @@ -4,11 +4,12 @@ # greycat , 2012 # Nikolai Prokoschenko , 2011 # dubwai , 2012 +# Дмитрий Яковлев , 2014 msgid "" msgstr "" "Project-Id-Version: MusicBrainz\n" -"PO-Revision-Date: 2014-01-12 12:58+0000\n" -"Last-Translator: Ian McEwen \n" +"PO-Revision-Date: 2014-05-04 10:11+0000\n" +"Last-Translator: Дмитрий Яковлев \n" "Language-Team: Russian (http://www.transifex.com/projects/p/musicbrainz/language/ru/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -144,7 +145,7 @@ msgstr "Бутан" #. iso.code:BO #: DBarea JOIN iso_3166_1 iso on iso.area = area.id/area.name:26 msgid "Bolivia" -msgstr "" +msgstr "Боливия" #. iso.code:BQ #: DBarea JOIN iso_3166_1 iso on iso.area = area.id/area.name:258 @@ -179,12 +180,12 @@ msgstr "Британская территория в Индийском океа #. iso.code:VG #: DBarea JOIN iso_3166_1 iso on iso.area = area.id/area.name:230 msgid "British Virgin Islands" -msgstr "" +msgstr "Британские Виргинские острова" #. iso.code:BN #: DBarea JOIN iso_3166_1 iso on iso.area = area.id/area.name:32 msgid "Brunei" -msgstr "" +msgstr "Бруней" #. iso.code:BG #: DBarea JOIN iso_3166_1 iso on iso.area = area.id/area.name:33 @@ -309,7 +310,7 @@ msgstr "Чехия" #. iso.code:XC #: DBarea JOIN iso_3166_1 iso on iso.area = area.id/area.name:245 msgid "Czechoslovakia" -msgstr "" +msgstr "Чехословакия" #. iso.code:CI #: DBarea JOIN iso_3166_1 iso on iso.area = area.id/area.name:52 @@ -319,7 +320,7 @@ msgstr "Кот-д'Ивуар" #. iso.code:CD #: DBarea JOIN iso_3166_1 iso on iso.area = area.id/area.name:236 msgid "Democratic Republic of the Congo" -msgstr "" +msgstr "Демократическая Республика Конго" #. iso.code:DK #: DBarea JOIN iso_3166_1 iso on iso.area = area.id/area.name:57 @@ -344,7 +345,7 @@ msgstr "Доминиканская Республика" #. iso.code:XG #: DBarea JOIN iso_3166_1 iso on iso.area = area.id/area.name:244 msgid "East Germany" -msgstr "" +msgstr "Восточная Германия" #. iso.code:EC #: DBarea JOIN iso_3166_1 iso on iso.area = area.id/area.name:62 @@ -389,7 +390,7 @@ msgstr "Европа" #. iso.code:FK #: DBarea JOIN iso_3166_1 iso on iso.area = area.id/area.name:69 msgid "Falkland Islands" -msgstr "" +msgstr "Фолклендские острова" #. iso.code:FO #: DBarea JOIN iso_3166_1 iso on iso.area = area.id/area.name:70 @@ -549,7 +550,7 @@ msgstr "Индонезия" #. iso.code:IR #: DBarea JOIN iso_3166_1 iso on iso.area = area.id/area.name:101 msgid "Iran" -msgstr "" +msgstr "Иран" #. iso.code:IQ #: DBarea JOIN iso_3166_1 iso on iso.area = area.id/area.name:102 @@ -614,7 +615,7 @@ msgstr "Кирибати" #. iso.code:XK #: DBarea JOIN iso_3166_1 iso on iso.area = area.id/area.name:2358 msgid "Kosovo" -msgstr "" +msgstr "Косово" #. iso.code:KW #: DBarea JOIN iso_3166_1 iso on iso.area = area.id/area.name:114 @@ -629,7 +630,7 @@ msgstr "Киргизия" #. iso.code:LA #: DBarea JOIN iso_3166_1 iso on iso.area = area.id/area.name:116 msgid "Laos" -msgstr "" +msgstr "Лаос" #. iso.code:LV #: DBarea JOIN iso_3166_1 iso on iso.area = area.id/area.name:117 @@ -679,7 +680,7 @@ msgstr "Макао" #. iso.code:MK #: DBarea JOIN iso_3166_1 iso on iso.area = area.id/area.name:126 msgid "Macedonia" -msgstr "" +msgstr "Македония" #. iso.code:MG #: DBarea JOIN iso_3166_1 iso on iso.area = area.id/area.name:127 @@ -749,7 +750,7 @@ msgstr "Микронезия" #. iso.code:MD #: DBarea JOIN iso_3166_1 iso on iso.area = area.id/area.name:140 msgid "Moldova" -msgstr "" +msgstr "Молдова" #. iso.code:MC #: DBarea JOIN iso_3166_1 iso on iso.area = area.id/area.name:141 @@ -809,7 +810,7 @@ msgstr "Нидерланды" #. iso.code:AN #: DBarea JOIN iso_3166_1 iso on iso.area = area.id/area.name:151 msgid "Netherlands Antilles" -msgstr "" +msgstr "Нидерландские Антильские острова" #. iso.code:NC #: DBarea JOIN iso_3166_1 iso on iso.area = area.id/area.name:152 @@ -849,7 +850,7 @@ msgstr "Остров Норфолк" #. iso.code:KP #: DBarea JOIN iso_3166_1 iso on iso.area = area.id/area.name:112 msgid "North Korea" -msgstr "" +msgstr "Северная Корея" #. iso.code:MP #: DBarea JOIN iso_3166_1 iso on iso.area = area.id/area.name:159 @@ -879,7 +880,7 @@ msgstr "Палау" #. iso.code:PS #: DBarea JOIN iso_3166_1 iso on iso.area = area.id/area.name:249 msgid "Palestine" -msgstr "" +msgstr "Палестина" #. iso.code:PA #: DBarea JOIN iso_3166_1 iso on iso.area = area.id/area.name:164 @@ -1019,7 +1020,7 @@ msgstr "Сербия" #. iso.code:CS #: DBarea JOIN iso_3166_1 iso on iso.area = area.id/area.name:242 msgid "Serbia and Montenegro" -msgstr "" +msgstr "Сербия и Черногория" #. iso.code:SC #: DBarea JOIN iso_3166_1 iso on iso.area = area.id/area.name:186 @@ -1074,7 +1075,7 @@ msgstr "Южная Георгия и Южные Сандвичевы остро #. iso.code:KR #: DBarea JOIN iso_3166_1 iso on iso.area = area.id/area.name:113 msgid "South Korea" -msgstr "" +msgstr "Южная Корея" #. iso.code:SS #: DBarea JOIN iso_3166_1 iso on iso.area = area.id/area.name:257 @@ -1084,7 +1085,7 @@ msgstr "Южный Судан" #. iso.code:SU #: DBarea JOIN iso_3166_1 iso on iso.area = area.id/area.name:243 msgid "Soviet Union" -msgstr "" +msgstr "Советский Союз" #. iso.code:ES #: DBarea JOIN iso_3166_1 iso on iso.area = area.id/area.name:194 @@ -1129,7 +1130,7 @@ msgstr "Швейцария" #. iso.code:SY #: DBarea JOIN iso_3166_1 iso on iso.area = area.id/area.name:204 msgid "Syria" -msgstr "" +msgstr "Сирия" #. iso.code:TW #: DBarea JOIN iso_3166_1 iso on iso.area = area.id/area.name:205 @@ -1144,7 +1145,7 @@ msgstr "Таджикистан" #. iso.code:TZ #: DBarea JOIN iso_3166_1 iso on iso.area = area.id/area.name:207 msgid "Tanzania" -msgstr "" +msgstr "Танзания" #. iso.code:TH #: DBarea JOIN iso_3166_1 iso on iso.area = area.id/area.name:208 @@ -1204,7 +1205,7 @@ msgstr "Тувалу" #. iso.code:VI #: DBarea JOIN iso_3166_1 iso on iso.area = area.id/area.name:231 msgid "U.S. Virgin Islands" -msgstr "" +msgstr "Американские Виргинские острова" #. iso.code:UG #: DBarea JOIN iso_3166_1 iso on iso.area = area.id/area.name:218 @@ -1259,12 +1260,12 @@ msgstr "Ватикан" #. iso.code:VE #: DBarea JOIN iso_3166_1 iso on iso.area = area.id/area.name:228 msgid "Venezuela" -msgstr "" +msgstr "Венесуэла" #. iso.code:VN #: DBarea JOIN iso_3166_1 iso on iso.area = area.id/area.name:229 msgid "Vietnam" -msgstr "" +msgstr "Вьетнам" #. iso.code:WF #: DBarea JOIN iso_3166_1 iso on iso.area = area.id/area.name:232 @@ -1284,7 +1285,7 @@ msgstr "Йемен" #. iso.code:YU #: DBarea JOIN iso_3166_1 iso on iso.area = area.id/area.name:235 msgid "Yugoslavia" -msgstr "" +msgstr "Югославия" #. iso.code:ZM #: DBarea JOIN iso_3166_1 iso on iso.area = area.id/area.name:237 diff --git a/po/cs.po b/po/cs.po index 9bf9678ec..5194edc04 100644 --- a/po/cs.po +++ b/po/cs.po @@ -9,8 +9,8 @@ msgid "" msgstr "" "Project-Id-Version: MusicBrainz\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2014-03-20 11:12+0100\n" -"PO-Revision-Date: 2014-03-21 08:44+0000\n" +"POT-Creation-Date: 2014-05-03 17:28+0200\n" +"PO-Revision-Date: 2014-05-04 08:44+0000\n" "Last-Translator: nikki\n" "Language-Team: Czech (http://www.transifex.com/projects/p/musicbrainz/language/cs/)\n" "MIME-Version: 1.0\n" @@ -20,6 +20,10 @@ msgstr "" "Language: cs\n" "Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n" +#: contrib/plugins/albumartist_website.py:3 +msgid "Album Artist Website" +msgstr "" + #: contrib/plugins/no_release.py:50 msgid "Enable plugin for all releases by default" msgstr "" @@ -32,63 +36,55 @@ msgstr "Tagy k odstranění (oddělené čárkou)" msgid "Remove specific release information..." msgstr "" -#: contrib/plugins/open_in_gui.py:32 -msgid "Open Error" -msgstr "Chyba při otevírání" +#: contrib/plugins/standardise_performers.py:3 +msgid "Standardise Performers" +msgstr "" -#: contrib/plugins/open_in_gui.py:32 -#, python-format -msgid "" -"Error while opening file:\n" -"\n" -"%s" -msgstr "Chyba při otevírání souboru: \n\n%s" - -#: contrib/plugins/lastfm/ui_options_lastfm.py:117 +#: contrib/plugins/lastfm/ui_options_lastfm.py:99 msgid "Last.fm" msgstr "Last.fm" -#: contrib/plugins/lastfm/ui_options_lastfm.py:118 +#: contrib/plugins/lastfm/ui_options_lastfm.py:100 msgid "Use track tags" msgstr "Použít tagy skladby" -#: contrib/plugins/lastfm/ui_options_lastfm.py:119 +#: contrib/plugins/lastfm/ui_options_lastfm.py:101 msgid "Use artist tags" msgstr "Použít tagy umělce" -#: contrib/plugins/lastfm/ui_options_lastfm.py:120 +#: contrib/plugins/lastfm/ui_options_lastfm.py:102 #: picard/ui/options/tags.py:30 msgid "Tags" msgstr "Tagy" -#: contrib/plugins/lastfm/ui_options_lastfm.py:121 -#: picard/ui/ui_options_folksonomy.py:116 +#: contrib/plugins/lastfm/ui_options_lastfm.py:103 +#: picard/ui/ui_options_folksonomy.py:103 msgid "Ignore tags:" msgstr "Ignorovat tagy:" -#: contrib/plugins/lastfm/ui_options_lastfm.py:122 -#: picard/ui/ui_options_folksonomy.py:121 +#: contrib/plugins/lastfm/ui_options_lastfm.py:104 +#: picard/ui/ui_options_folksonomy.py:108 msgid "Join multiple tags with:" msgstr "Spojit více tagů znakem:" -#: contrib/plugins/lastfm/ui_options_lastfm.py:123 -#: picard/ui/ui_options_folksonomy.py:122 +#: contrib/plugins/lastfm/ui_options_lastfm.py:105 +#: picard/ui/ui_options_folksonomy.py:109 msgid " / " msgstr " / " -#: contrib/plugins/lastfm/ui_options_lastfm.py:124 -#: picard/ui/ui_options_folksonomy.py:123 +#: contrib/plugins/lastfm/ui_options_lastfm.py:106 +#: picard/ui/ui_options_folksonomy.py:110 msgid ", " msgstr ", " -#: contrib/plugins/lastfm/ui_options_lastfm.py:125 -#: picard/ui/ui_options_folksonomy.py:118 +#: contrib/plugins/lastfm/ui_options_lastfm.py:107 +#: picard/ui/ui_options_folksonomy.py:105 msgid "Minimal tag usage:" msgstr "Minimální využití tagu:" -#: contrib/plugins/lastfm/ui_options_lastfm.py:126 -#: picard/ui/ui_options_folksonomy.py:119 picard/ui/ui_options_matching.py:88 -#: picard/ui/ui_options_matching.py:89 picard/ui/ui_options_matching.py:90 +#: contrib/plugins/lastfm/ui_options_lastfm.py:108 +#: picard/ui/ui_options_folksonomy.py:106 picard/ui/ui_options_matching.py:75 +#: picard/ui/ui_options_matching.py:76 picard/ui/ui_options_matching.py:77 msgid " %" msgstr " %" @@ -96,93 +92,152 @@ msgstr " %" msgid "Calculate replay &gain..." msgstr "" -#: contrib/plugins/replaygain/__init__.py:66 +#: contrib/plugins/replaygain/__init__.py:67 #, python-format -msgid "Calculating replay gain for \"%s\"..." +msgid "Calculating replay gain for \"%(filename)s\"..." msgstr "" -#: contrib/plugins/replaygain/__init__.py:71 +#: contrib/plugins/replaygain/__init__.py:75 #, python-format -msgid "Replay gain for \"%s\" successfully calculated." +msgid "Replay gain for \"%(filename)s\" successfully calculated." msgstr "" -#: contrib/plugins/replaygain/__init__.py:73 +#: contrib/plugins/replaygain/__init__.py:80 #, python-format -msgid "Could not calculate replay gain for \"%s\"." +msgid "Could not calculate replay gain for \"%(filename)s\"." msgstr "" -#: contrib/plugins/replaygain/__init__.py:76 +#: contrib/plugins/replaygain/__init__.py:85 msgid "Calculate album &gain..." msgstr "" -#: contrib/plugins/replaygain/__init__.py:103 -#: contrib/plugins/replaygain/__init__.py:111 +#: contrib/plugins/replaygain/__init__.py:113 +#: contrib/plugins/replaygain/__init__.py:124 #, python-format -msgid "Calculating album gain for \"%s\"..." +msgid "Calculating album gain for \"%(album)s\"..." msgstr "" -#: contrib/plugins/replaygain/__init__.py:119 +#: contrib/plugins/replaygain/__init__.py:135 #, python-format -msgid "Album gain for \"%s\" successfully calculated." +msgid "Album gain for \"%(album)s\" successfully calculated." msgstr "" -#: contrib/plugins/replaygain/__init__.py:121 +#: contrib/plugins/replaygain/__init__.py:140 #, python-format -msgid "Could not calculate album gain for \"%s\"." +msgid "Could not calculate album gain for \"%(album)s\"." msgstr "" -#: picard/acoustid.py:102 -#, python-format -msgid "AcoustID lookup network error for '%s'!" +#: contrib/plugins/replaygain/ui_options_replaygain.py:59 +msgid "Replay Gain" msgstr "" -#: picard/acoustid.py:117 -#, python-format -msgid "AcoustID lookup failed for '%s'!" +#: contrib/plugins/replaygain/ui_options_replaygain.py:60 +msgid "Path to VorbisGain:" msgstr "" -#: picard/acoustid.py:128 -#, python-format -msgid "Acoustid lookup returned no result for file '%s'" +#: contrib/plugins/replaygain/ui_options_replaygain.py:61 +msgid "Path to MP3Gain:" msgstr "" -#: picard/acoustid.py:132 -#, python-format -msgid "Looking up the fingerprint for file %s..." -msgstr "Hledají se otisky pro soubor %s" - -#: picard/acoustidmanager.py:78 -msgid "Submitting AcoustIDs..." -msgstr "Odesílám AcoustIDy..." - -#: picard/acoustidmanager.py:83 -#, python-format -msgid "AcoustID submission failed with error '%s'" +#: contrib/plugins/replaygain/ui_options_replaygain.py:62 +msgid "Path to metaflac:" msgstr "" -#: picard/acoustidmanager.py:85 +#: contrib/plugins/replaygain/ui_options_replaygain.py:63 +msgid "Path to wvgain:" +msgstr "" + +#: contrib/plugins/viewvariables/__init__.py:42 +#, python-format +msgid "File: %s" +msgstr "" + +#: contrib/plugins/viewvariables/__init__.py:47 +#, python-format +msgid "Track: %s %s " +msgstr "" + +#: contrib/plugins/viewvariables/__init__.py:49 +msgid "Variables" +msgstr "" + +#: contrib/plugins/viewvariables/__init__.py:69 +msgid "File variables" +msgstr "" + +#: contrib/plugins/viewvariables/__init__.py:74 +msgid "Hidden variables" +msgstr "" + +#: contrib/plugins/viewvariables/__init__.py:79 +msgid "Tag variables" +msgstr "" + +#: contrib/plugins/viewvariables/ui_variables_dialog.py:73 +msgid "Variable" +msgstr "" + +#: contrib/plugins/viewvariables/ui_variables_dialog.py:75 +msgid "Value" +msgstr "" + +#: picard/acoustid.py:109 +#, python-format +msgid "AcoustID lookup network error for '%(filename)s'!" +msgstr "" + +#: picard/acoustid.py:133 +#, python-format +msgid "AcoustID lookup failed for '%(filename)s'!" +msgstr "" + +#: picard/acoustid.py:155 +#, python-format +msgid "AcoustID lookup returned no result for file '%(filename)s'" +msgstr "" + +#: picard/acoustid.py:166 +#, python-format +msgid "Looking up the fingerprint for file '%(filename)s' ..." +msgstr "" + +#: picard/acoustidmanager.py:80 +msgid "Submitting AcoustIDs ..." +msgstr "" + +#: picard/acoustidmanager.py:94 +#, python-format +msgid "AcoustID submission failed with error '%(error)s'" +msgstr "" + +#: picard/acoustidmanager.py:102 msgid "AcoustIDs successfully submitted." msgstr "" -#: picard/album.py:64 picard/cluster.py:234 +#: picard/album.py:65 picard/cluster.py:255 msgid "Unmatched Files" msgstr "Nerozpoznané soubory" -#: picard/album.py:187 +#: picard/album.py:188 #, python-format msgid "[could not load album %s]" msgstr "[nemohu načíst album %s]" -#: picard/album.py:272 +#: picard/album.py:277 #, python-format -msgid "Album %s loaded" -msgstr "Album %s načteno" +msgid "Album %(id)s loaded: %(artist)s - %(album)s" +msgstr "" -#: picard/album.py:288 +#: picard/album.py:294 +#, python-format +msgid "Loading album %(id)s ..." +msgstr "" + +#: picard/album.py:303 msgid "[loading album information]" msgstr "[načítají se informace o albu]" -#: picard/album.py:463 +#: picard/album.py:478 #, python-format msgid "; %i image" msgid_plural "; %i images" @@ -190,329 +245,157 @@ msgstr[0] "; %i obrázek" msgstr[1] "; %i obrázky" msgstr[2] "; %i obrázků" -#: picard/cluster.py:150 picard/cluster.py:159 +#: picard/cluster.py:155 picard/cluster.py:168 #, python-format -msgid "No matching releases for cluster %s" -msgstr "Žádné odpovídající album pro klastr %s" - -#: picard/cluster.py:161 -#, python-format -msgid "Cluster %s identified!" -msgstr "Klastr %s identifikován!" - -#: picard/cluster.py:168 -#, python-format -msgid "Looking up the metadata for cluster %s..." -msgstr "Vyhledávají se metadata pro klastr %s" - -#: picard/collection.py:60 -#, python-format -msgid "Added %i release to collection \"%s\"" -msgid_plural "Added %i releases to collection \"%s\"" -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" - -#: picard/collection.py:72 -#, python-format -msgid "Removed %i release from collection \"%s\"" -msgid_plural "Removed %i releases from collection \"%s\"" -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" - -#: picard/collection.py:81 -#, python-format -msgid "Error loading collections: %s" +msgid "No matching releases for cluster %(album)s" msgstr "" -#: picard/config_upgrade.py:57 picard/config_upgrade.py:70 +#: picard/cluster.py:174 +#, python-format +msgid "Cluster %(album)s identified!" +msgstr "" + +#: picard/cluster.py:185 +#, python-format +msgid "Looking up the metadata for cluster %(album)s..." +msgstr "" + +#: picard/collection.py:64 +#, python-format +msgid "Added %(count)i release to collection \"%(name)s\"" +msgid_plural "Added %(count)i releases to collection \"%(name)s\"" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" + +#: picard/collection.py:86 +#, python-format +msgid "Removed %(count)i release from collection \"%(name)s\"" +msgid_plural "Removed %(count)i releases from collection \"%(name)s\"" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" + +#: picard/collection.py:100 +#, python-format +msgid "Error loading collections: %(error)s" +msgstr "" + +#: picard/config_upgrade.py:58 picard/config_upgrade.py:71 msgid "Various Artists file naming scheme removal" msgstr "" -#: picard/config_upgrade.py:58 +#: picard/config_upgrade.py:59 msgid "" "The separate file naming scheme for various artists albums has been removed in this version of Picard.\n" "Your file naming scheme has automatically been merged with that of single artist albums." msgstr "" -#: picard/config_upgrade.py:71 +#: picard/config_upgrade.py:72 msgid "" "The separate file naming scheme for various artists albums has been removed in this version of Picard.\n" "You currently do not use this option, but have a separate file naming scheme defined.\n" "Do you want to remove it or merge it with your file naming scheme for single artist albums?" msgstr "" -#: picard/config_upgrade.py:77 +#: picard/config_upgrade.py:78 msgid "Merge" msgstr "Sloučit" -#: picard/config_upgrade.py:77 picard/ui/metadatabox.py:254 +#: picard/config_upgrade.py:78 picard/ui/metadatabox.py:254 msgid "Remove" msgstr "Odstranit" -#: picard/const.py:67 -msgid "CD" -msgstr "CD" - -#: picard/const.py:68 -msgid "CD-R" -msgstr "CD-R" - -#: picard/const.py:69 -msgid "HDCD" -msgstr "HDCD" - -#: picard/const.py:70 -msgid "8cm CD" -msgstr "8cm CD" - -#: picard/const.py:71 -msgid "Vinyl" -msgstr "Vinyl" - -#: picard/const.py:72 -msgid "7\" Vinyl" -msgstr "7\" Vinyl" - -#: picard/const.py:73 -msgid "10\" Vinyl" -msgstr "10\" Vinyl" - -#: picard/const.py:74 -msgid "12\" Vinyl" -msgstr "12\" Vinyl" - -#: picard/const.py:75 -msgid "Digital Media" -msgstr "Digitální médium" - -#: picard/const.py:76 -msgid "USB Flash Drive" -msgstr "USB flash disk" - -#: picard/const.py:77 -msgid "slotMusic" -msgstr "slotMusic" - -#: picard/const.py:78 -msgid "Cassette" -msgstr "Kazeta" - -#: picard/const.py:79 -msgid "DVD" -msgstr "DVD" - -#: picard/const.py:80 -msgid "DVD-Audio" -msgstr "DVD-Audio" - -#: picard/const.py:81 -msgid "DVD-Video" -msgstr "DVD-Video" - -#: picard/const.py:82 -msgid "SACD" -msgstr "SACD" - -#: picard/const.py:83 -msgid "DualDisc" -msgstr "DualDisc" - -#: picard/const.py:84 -msgid "MiniDisc" -msgstr "MiniDisc" - -#: picard/const.py:85 -msgid "Blu-ray" -msgstr "Blu-ray" - -#: picard/const.py:86 -msgid "HD-DVD" -msgstr "HD-DVD" - -#: picard/const.py:87 -msgid "Videotape" -msgstr "Videokazeta" - -#: picard/const.py:88 -msgid "VHS" -msgstr "VHS" - -#: picard/const.py:89 -msgid "Betamax" -msgstr "Betamax" - #: picard/const.py:90 -msgid "VCD" -msgstr "VCD" - -#: picard/const.py:91 -msgid "SVCD" -msgstr "SVCD" - -#: picard/const.py:92 -msgid "UMD" -msgstr "UMD" - -#: picard/const.py:93 picard/coverartarchive.py:33 -#: picard/ui/ui_options_releases.py:226 -msgid "Other" -msgstr "Jiný" - -#: picard/const.py:94 -msgid "LaserDisc" -msgstr "LaserDisc" - -#: picard/const.py:95 -msgid "Cartridge" -msgstr "" - -#: picard/const.py:96 -msgid "Reel-to-reel" -msgstr "" - -#: picard/const.py:97 -msgid "DAT" -msgstr "DAT" - -#: picard/const.py:98 -msgid "Wax Cylinder" -msgstr "Voskový válec" - -#: picard/const.py:99 -msgid "Piano Roll" -msgstr "Klavírní rolka" - -#: picard/const.py:100 -msgid "DCC" -msgstr "DCC" - -#: picard/const.py:115 msgid "Danish" msgstr "Dánština" -#: picard/const.py:116 +#: picard/const.py:91 msgid "German" msgstr "němčina" -#: picard/const.py:118 +#: picard/const.py:93 msgid "English" msgstr "angličtina" -#: picard/const.py:119 +#: picard/const.py:94 msgid "English (Canada)" msgstr "angličtina (kanadská)" -#: picard/const.py:120 +#: picard/const.py:95 msgid "English (UK)" msgstr "angličtina (UK)" -#: picard/const.py:122 +#: picard/const.py:97 msgid "Spanish" msgstr "španělština" -#: picard/const.py:123 +#: picard/const.py:98 msgid "Estonian" msgstr "Estonština" -#: picard/const.py:125 +#: picard/const.py:100 msgid "Finnish" msgstr "finština" -#: picard/const.py:127 +#: picard/const.py:102 msgid "French" msgstr "francouzština" -#: picard/const.py:136 +#: picard/const.py:111 msgid "Italian" msgstr "italština" -#: picard/const.py:143 +#: picard/const.py:118 msgid "Dutch" msgstr "holandština" -#: picard/const.py:145 +#: picard/const.py:120 msgid "Polish" msgstr "polština" -#: picard/const.py:147 +#: picard/const.py:122 msgid "Brazilian Portuguese" msgstr "brazilská portugalština" -#: picard/const.py:154 +#: picard/const.py:129 msgid "Swedish" msgstr "švédština" -#: picard/coverart.py:84 +#: picard/coverart.py:85 #, python-format -msgid "Coverart %s downloaded" -msgstr "Obrázek alba %s stažen" +msgid "Cover art of type '%(type)s' downloaded for %(albumid)s from %(host)s" +msgstr "" -#: picard/coverart.py:240 +#: picard/coverart.py:256 #, python-format -msgid "Downloading http://%s:%i%s" -msgstr "Stahování http://%s:%i%s" - -#: picard/coverartarchive.py:24 -msgid "Front" -msgstr "" - -#: picard/coverartarchive.py:25 -msgid "Back" -msgstr "" - -#: picard/coverartarchive.py:26 -msgid "Booklet" -msgstr "" - -#: picard/coverartarchive.py:27 -msgid "Medium" -msgstr "" - -#: picard/coverartarchive.py:28 -msgid "Tray" -msgstr "" - -#: picard/coverartarchive.py:29 -msgid "Obi" +msgid "" +"Downloading cover art of type '%(type)s' for %(albumid)s from %(host)s .." msgstr "" #: picard/coverartarchive.py:30 -msgid "Spine" -msgstr "" - -#: picard/coverartarchive.py:31 picard/ui/mainwindow.py:546 -msgid "Track" -msgstr "Skladba" - -#: picard/coverartarchive.py:32 -msgid "Sticker" -msgstr "" - -#: picard/coverartarchive.py:34 msgid "Unknown" msgstr "" -#: picard/file.py:536 +#: picard/file.py:494 #, python-format -msgid "No matching tracks for file %s" -msgstr "Žádné odpovídající výsledky pro soubor %s" +msgid "No matching tracks for file '%(filename)s'" +msgstr "" -#: picard/file.py:548 +#: picard/file.py:510 #, python-format -msgid "No matching tracks above the threshold for file %s" -msgstr "Žádné odpovídající skladby nad danou úrovní pro soubor %s" +msgid "No matching tracks above the threshold for file '%(filename)s'" +msgstr "" -#: picard/file.py:551 +#: picard/file.py:517 #, python-format -msgid "File %s identified!" -msgstr "Soubor %s identifikován!" +msgid "File '%(filename)s' identified!" +msgstr "" -#: picard/file.py:567 +#: picard/file.py:537 #, python-format -msgid "Looking up the metadata for file %s..." -msgstr "Vyhledávají se metadata pro soubor %s" +msgid "Looking up the metadata for file %(filename)s ..." +msgstr "" #: picard/releasegroup.py:53 msgid "Tracks" @@ -522,11 +405,11 @@ msgstr "" msgid "Year" msgstr "" -#: picard/releasegroup.py:55 picard/ui/cdlookup.py:34 +#: picard/releasegroup.py:55 picard/ui/cdlookup.py:35 msgid "Country" msgstr "Země" -#: picard/releasegroup.py:56 picard/util/tags.py:81 +#: picard/releasegroup.py:56 msgid "Format" msgstr "Formát" @@ -546,16 +429,24 @@ msgstr "" msgid "[no release info]" msgstr "[žádné informace o vydání]" -#: picard/tagger.py:316 +#: picard/tagger.py:370 #, python-format -msgid "Loading directory %s" -msgstr "Načítání adresáře %s" +msgid "Adding %(count)d file from '%(directory)s' ..." +msgid_plural "Adding %(count)d files from '%(directory)s' ..." +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" -#: picard/tagger.py:452 +#: picard/tagger.py:512 +#, python-format +msgid "Removing album %(id)s: %(artist)s - %(album)s" +msgstr "" + +#: picard/tagger.py:528 msgid "CD Lookup Error" msgstr "Chyba při prohledávání CD/DVD" -#: picard/tagger.py:453 +#: picard/tagger.py:529 #, python-format msgid "" "Error while reading CD:\n" @@ -563,37 +454,36 @@ msgid "" "%s" msgstr "Chyba při čtení CD/DVD:\n\n%s" -#: picard/ui/cdlookup.py:34 picard/ui/mainwindow.py:544 -#: picard/ui/ui_options_releases.py:216 picard/util/tags.py:21 +#: picard/ui/cdlookup.py:35 picard/ui/mainwindow.py:597 picard/util/tags.py:21 msgid "Album" msgstr "Album" -#: picard/ui/cdlookup.py:34 picard/ui/itemviews.py:96 -#: picard/ui/mainwindow.py:545 picard/util/tags.py:22 +#: picard/ui/cdlookup.py:35 picard/ui/itemviews.py:96 +#: picard/ui/mainwindow.py:598 picard/util/tags.py:22 msgid "Artist" msgstr "Umělec" -#: picard/ui/cdlookup.py:34 picard/util/tags.py:24 +#: picard/ui/cdlookup.py:35 picard/util/tags.py:24 msgid "Date" msgstr "Datum" -#: picard/ui/cdlookup.py:35 +#: picard/ui/cdlookup.py:36 msgid "Labels" msgstr "" -#: picard/ui/cdlookup.py:35 +#: picard/ui/cdlookup.py:36 msgid "Catalog #s" msgstr "Katalogová čísla" -#: picard/ui/cdlookup.py:35 picard/util/tags.py:79 +#: picard/ui/cdlookup.py:36 picard/util/tags.py:78 msgid "Barcode" msgstr "Čárový kód" -#: picard/ui/collectionmenu.py:31 +#: picard/ui/collectionmenu.py:42 msgid "Refresh List" msgstr "" -#: picard/ui/collectionmenu.py:92 +#: picard/ui/collectionmenu.py:86 #, python-format msgid "%s (%i release)" msgid_plural "%s (%i releases)" @@ -601,7 +491,7 @@ msgstr[0] "" msgstr[1] "" msgstr[2] "" -#: picard/ui/coverartbox.py:142 +#: picard/ui/coverartbox.py:141 msgid "View release on MusicBrainz" msgstr "Zobrazit vydání na MusicBrainz serveru" @@ -617,59 +507,59 @@ msgstr "&Ukázat skryté soubory" msgid "&Set as starting directory" msgstr "" -#: picard/ui/infodialog.py:36 picard/ui/infodialog.py:75 +#: picard/ui/infodialog.py:37 picard/ui/infodialog.py:80 msgid "Info" msgstr "Informace" -#: picard/ui/infodialog.py:80 +#: picard/ui/infodialog.py:85 msgid "Filename:" msgstr "Název souboru:" -#: picard/ui/infodialog.py:82 +#: picard/ui/infodialog.py:87 msgid "Format:" msgstr "Formát:" -#: picard/ui/infodialog.py:86 +#: picard/ui/infodialog.py:91 msgid "Size:" msgstr "Velikost:" -#: picard/ui/infodialog.py:90 +#: picard/ui/infodialog.py:95 msgid "Length:" msgstr "Délka:" -#: picard/ui/infodialog.py:92 +#: picard/ui/infodialog.py:97 msgid "Bitrate:" msgstr "Bitový tok:" -#: picard/ui/infodialog.py:94 +#: picard/ui/infodialog.py:99 msgid "Sample rate:" msgstr "Vzorkovací frekvence:" -#: picard/ui/infodialog.py:96 +#: picard/ui/infodialog.py:101 msgid "Bits per sample:" msgstr "Bitů na vzorek" -#: picard/ui/infodialog.py:100 +#: picard/ui/infodialog.py:105 msgid "Mono" msgstr "Mono" -#: picard/ui/infodialog.py:102 +#: picard/ui/infodialog.py:107 msgid "Stereo" msgstr "Stereo" -#: picard/ui/infodialog.py:105 +#: picard/ui/infodialog.py:110 msgid "Channels:" msgstr "Kanály:" -#: picard/ui/infodialog.py:116 +#: picard/ui/infodialog.py:121 msgid "Album Info" msgstr "" -#: picard/ui/infodialog.py:124 +#: picard/ui/infodialog.py:129 msgid "&Errors" msgstr "" -#: picard/ui/infodialog.py:134 picard/ui/ui_infodialog.py:77 +#: picard/ui/infodialog.py:139 picard/ui/ui_infodialog.py:73 msgid "&Info" msgstr "&Info" @@ -693,7 +583,7 @@ msgstr "" msgid "Title" msgstr "Název" -#: picard/ui/itemviews.py:95 picard/util/tags.py:88 +#: picard/ui/itemviews.py:95 picard/util/tags.py:86 msgid "Length" msgstr "Délka" @@ -718,8 +608,8 @@ msgid "Collections" msgstr "" #: picard/ui/itemviews.py:365 -msgid "&Plugins" -msgstr "&Zásuvné moduly" +msgid "P&lugins" +msgstr "" #: picard/ui/itemviews.py:541 msgid "file view" @@ -741,12 +631,16 @@ msgstr "" msgid "Contains albums and matched files" msgstr "" -#: picard/ui/logview.py:91 +#: picard/ui/logview.py:109 msgid "Log" msgstr "Záznamy" -#: picard/ui/logview.py:99 -msgid "Status History" +#: picard/ui/logview.py:113 +msgid "Debug mode" +msgstr "" + +#: picard/ui/logview.py:134 +msgid "Activity History" msgstr "" #: picard/ui/mainwindow.py:74 @@ -781,276 +675,309 @@ msgstr "Připraven" #: picard/ui/mainwindow.py:220 msgid "" -"Picard listens on a port to integrate with your browser and downloads " -"release information when you click the \"Tagger\" buttons on the MusicBrainz" -" website" +"Picard listens on this port to integrate with your browser. When you " +"\"Search\" or \"Open in Browser\" from Picard, clicking the \"Tagger\" " +"button on the web page loads the release into Picard." msgstr "" -#: picard/ui/mainwindow.py:240 +#: picard/ui/mainwindow.py:243 #, python-format msgid " Listening on port %(port)d " msgstr " Picard poslouchá na portu %(port)d " -#: picard/ui/mainwindow.py:263 +#: picard/ui/mainwindow.py:299 msgid "Submission Error" msgstr "Chyba při odesílání" -#: picard/ui/mainwindow.py:264 +#: picard/ui/mainwindow.py:300 msgid "" "You need to configure your AcoustID API key before you can submit " "fingerprints." msgstr "" -#: picard/ui/mainwindow.py:269 +#: picard/ui/mainwindow.py:305 msgid "&Options..." msgstr "&Možnosti..." -#: picard/ui/mainwindow.py:273 +#: picard/ui/mainwindow.py:309 msgid "&Cut" msgstr "&Vyjmout" -#: picard/ui/mainwindow.py:278 +#: picard/ui/mainwindow.py:314 msgid "&Paste" msgstr "&Vložit" -#: picard/ui/mainwindow.py:283 +#: picard/ui/mainwindow.py:319 msgid "&Help..." msgstr "&Nápověda..." -#: picard/ui/mainwindow.py:288 +#: picard/ui/mainwindow.py:323 msgid "&About..." msgstr "&O programu..." -#: picard/ui/mainwindow.py:292 +#: picard/ui/mainwindow.py:327 msgid "&Donate..." msgstr "Přispějte" -#: picard/ui/mainwindow.py:295 +#: picard/ui/mainwindow.py:330 msgid "&Report a Bug..." msgstr "&Nahlásit chybu" -#: picard/ui/mainwindow.py:298 +#: picard/ui/mainwindow.py:333 msgid "&Support Forum..." msgstr "&Podpora - Fórum [EN]" -#: picard/ui/mainwindow.py:301 +#: picard/ui/mainwindow.py:336 msgid "&Add Files..." msgstr "&Přidat soubory..." -#: picard/ui/mainwindow.py:302 +#: picard/ui/mainwindow.py:337 msgid "Add files to the tagger" msgstr "Přidat soubory do Picard" -#: picard/ui/mainwindow.py:307 +#: picard/ui/mainwindow.py:342 msgid "A&dd Folder..." msgstr "Při&dat složku..." -#: picard/ui/mainwindow.py:308 +#: picard/ui/mainwindow.py:343 msgid "Add a folder to the tagger" msgstr "Přidat složku do Picard" -#: picard/ui/mainwindow.py:310 +#: picard/ui/mainwindow.py:345 msgid "Ctrl+D" msgstr "Ctrl+D" -#: picard/ui/mainwindow.py:313 +#: picard/ui/mainwindow.py:348 msgid "&Save" msgstr "&Uložit" -#: picard/ui/mainwindow.py:314 +#: picard/ui/mainwindow.py:349 msgid "Save selected files" msgstr "Uložit vybrané soubory" -#: picard/ui/mainwindow.py:320 +#: picard/ui/mainwindow.py:355 msgid "S&ubmit" msgstr "&Odeslat" -#: picard/ui/mainwindow.py:321 -msgid "Submit fingerprints" -msgstr "Odeslat otisky" +#: picard/ui/mainwindow.py:356 +msgid "Submit acoustic fingerprints" +msgstr "" -#: picard/ui/mainwindow.py:325 +#: picard/ui/mainwindow.py:360 msgid "E&xit" msgstr "&Konec" -#: picard/ui/mainwindow.py:328 +#: picard/ui/mainwindow.py:363 msgid "Ctrl+Q" msgstr "Ctrl+Q" -#: picard/ui/mainwindow.py:331 +#: picard/ui/mainwindow.py:366 msgid "&Remove" msgstr "Odst&ranit" -#: picard/ui/mainwindow.py:332 +#: picard/ui/mainwindow.py:367 msgid "Remove selected files/albums" msgstr "Odstranit vybraná alba/soubory" -#: picard/ui/mainwindow.py:336 +#: picard/ui/mainwindow.py:371 msgid "Lookup in &Browser" msgstr "Vyhledat v &prohlížeči" -#: picard/ui/mainwindow.py:337 +#: picard/ui/mainwindow.py:372 msgid "Lookup selected item on MusicBrainz website" msgstr "Vyhledat vybranou položku na webu MusicBrainz" -#: picard/ui/mainwindow.py:341 +#: picard/ui/mainwindow.py:376 msgid "File &Browser" msgstr "Procházet sou&bory" -#: picard/ui/mainwindow.py:345 +#: picard/ui/mainwindow.py:380 msgid "Ctrl+B" msgstr "Ctrl+B" -#: picard/ui/mainwindow.py:348 +#: picard/ui/mainwindow.py:383 msgid "&Cover Art" msgstr "&Obrázek alba" -#: picard/ui/mainwindow.py:354 picard/ui/mainwindow.py:539 +#: picard/ui/mainwindow.py:389 picard/ui/mainwindow.py:591 msgid "Search" msgstr "Hledat" -#: picard/ui/mainwindow.py:357 -msgid "&CD Lookup..." -msgstr "Vyhledání CD" +#: picard/ui/mainwindow.py:392 +msgid "Lookup &CD..." +msgstr "" -#: picard/ui/mainwindow.py:358 picard/ui/mainwindow.py:359 -msgid "Lookup CD" -msgstr "Vyhledat CD" +#: picard/ui/mainwindow.py:393 +msgid "Lookup the details of the CD in your drive" +msgstr "" -#: picard/ui/mainwindow.py:361 +#: picard/ui/mainwindow.py:395 msgid "Ctrl+K" msgstr "Ctrl+K" -#: picard/ui/mainwindow.py:364 +#: picard/ui/mainwindow.py:398 msgid "&Scan" msgstr "Pro&hledat" -#: picard/ui/mainwindow.py:367 +#: picard/ui/mainwindow.py:401 msgid "Ctrl+Y" msgstr "Ctrl+Y" -#: picard/ui/mainwindow.py:370 +#: picard/ui/mainwindow.py:404 msgid "Cl&uster" msgstr "Kl&astr" -#: picard/ui/mainwindow.py:373 +#: picard/ui/mainwindow.py:407 msgid "Ctrl+U" msgstr "Ctrl+U" -#: picard/ui/mainwindow.py:376 +#: picard/ui/mainwindow.py:410 msgid "&Lookup" msgstr "Vyh&ledat" -#: picard/ui/mainwindow.py:377 picard/ui/mainwindow.py:378 -msgid "Lookup metadata" -msgstr "Vyhledat metadata" +#: picard/ui/mainwindow.py:411 +msgid "Lookup selected items in MusicBrainz" +msgstr "" -#: picard/ui/mainwindow.py:381 +#: picard/ui/mainwindow.py:416 msgid "Ctrl+L" msgstr "Ctrl+L" -#: picard/ui/mainwindow.py:384 +#: picard/ui/mainwindow.py:419 msgid "&Info..." msgstr "&Info..." -#: picard/ui/mainwindow.py:387 +#: picard/ui/mainwindow.py:422 msgid "Ctrl+I" msgstr "Ctrl+D" -#: picard/ui/mainwindow.py:390 +#: picard/ui/mainwindow.py:425 msgid "&Refresh" msgstr "O&bnovit" -#: picard/ui/mainwindow.py:391 +#: picard/ui/mainwindow.py:426 msgid "Ctrl+R" msgstr "Ctrl+R" -#: picard/ui/mainwindow.py:394 +#: picard/ui/mainwindow.py:429 msgid "&Rename Files" msgstr "&Přejmenovat soubory" -#: picard/ui/mainwindow.py:399 +#: picard/ui/mainwindow.py:434 msgid "&Move Files" msgstr "Přesunout otagované soubory" -#: picard/ui/mainwindow.py:404 +#: picard/ui/mainwindow.py:439 msgid "Save &Tags" msgstr "Uložit &tagy" -#: picard/ui/mainwindow.py:409 +#: picard/ui/mainwindow.py:444 msgid "Tags From &File Names..." msgstr "Tagy z &názvů souborů" -#: picard/ui/mainwindow.py:412 -msgid "View &Log..." -msgstr "Prohlížet &záznamy" - -#: picard/ui/mainwindow.py:415 -msgid "View Status &History..." +#: picard/ui/mainwindow.py:447 +msgid "&Open My Collections in Browser" msgstr "" -#: picard/ui/mainwindow.py:422 -msgid "&Open..." -msgstr "&Otevřít..." +#: picard/ui/mainwindow.py:451 +msgid "View Error/Debug &Log" +msgstr "" -#: picard/ui/mainwindow.py:423 -msgid "Open the file" -msgstr "Otevřít soubor" +#: picard/ui/mainwindow.py:454 +msgid "View Activity &History" +msgstr "" -#: picard/ui/mainwindow.py:426 -msgid "Open &Folder..." -msgstr "Otevřít &složku..." +#: picard/ui/mainwindow.py:461 +msgid "&Play file" +msgstr "" -#: picard/ui/mainwindow.py:427 -msgid "Open the containing folder" -msgstr "Otevřít složku obsahující soubor" +#: picard/ui/mainwindow.py:462 +msgid "Play the file in your default media player" +msgstr "" -#: picard/ui/mainwindow.py:448 +#: picard/ui/mainwindow.py:466 +msgid "Open Containing &Folder" +msgstr "" + +#: picard/ui/mainwindow.py:467 +msgid "Open the containing folder in your file explorer" +msgstr "" + +#: picard/ui/mainwindow.py:492 msgid "&File" msgstr "&Soubor" -#: picard/ui/mainwindow.py:456 +#: picard/ui/mainwindow.py:503 msgid "&Edit" msgstr "Ú&pravy" -#: picard/ui/mainwindow.py:462 +#: picard/ui/mainwindow.py:509 msgid "&View" msgstr "Zo&brazit" -#: picard/ui/mainwindow.py:470 +#: picard/ui/mainwindow.py:515 msgid "&Options" msgstr "&Možnosti" -#: picard/ui/mainwindow.py:476 +#: picard/ui/mainwindow.py:521 msgid "&Tools" msgstr "Nás&troje" -#: picard/ui/mainwindow.py:485 picard/ui/util.py:35 +#: picard/ui/mainwindow.py:532 picard/ui/util.py:35 msgid "&Help" msgstr "&Nápověda" -#: picard/ui/mainwindow.py:505 +#: picard/ui/mainwindow.py:553 msgid "Actions" msgstr "" -#: picard/ui/mainwindow.py:608 +#: picard/ui/mainwindow.py:599 +msgid "Track" +msgstr "Skladba" + +#: picard/ui/mainwindow.py:662 msgid "All Supported Formats" msgstr "Všechny podporované formáty" -#: picard/ui/mainwindow.py:705 +#: picard/ui/mainwindow.py:695 +#, python-format +msgid "Adding directory: '%(directory)s' ..." +msgstr "" + +#: picard/ui/mainwindow.py:702 +#, python-format +msgid "Adding multiple directories from '%(directory)s' ..." +msgstr "" + +#: picard/ui/mainwindow.py:767 msgid "Configuration Required" msgstr "Je nutná konfigurace" -#: picard/ui/mainwindow.py:706 +#: picard/ui/mainwindow.py:768 msgid "" "Audio fingerprinting is not yet configured. Would you like to configure it " "now?" msgstr "" -#: picard/ui/mainwindow.py:784 picard/ui/mainwindow.py:791 +#: picard/ui/mainwindow.py:848 #, python-format -msgid " (Error: %s)" -msgstr " (Chyba: %s)" +msgid "%(filename)s (error: %(error)s)" +msgstr "" + +#: picard/ui/mainwindow.py:854 +#, python-format +msgid "%(filename)s" +msgstr "" + +#: picard/ui/mainwindow.py:864 +#, python-format +msgid "%(filename)s (%(similarity)d%%) (error: %(error)s)" +msgstr "" + +#: picard/ui/mainwindow.py:871 +#, python-format +msgid "%(filename)s (%(similarity)d%%)" +msgstr "" #: picard/ui/metadatabox.py:82 #, python-format @@ -1107,387 +1034,387 @@ msgstr[0] "" msgstr[1] "" msgstr[2] "Použít původní hodnotu" -#: picard/ui/passworddialog.py:37 +#: picard/ui/passworddialog.py:40 #, python-format msgid "" "The server %s requires you to login. Please enter your username and " "password." msgstr "Server %s vyžaduje vaše přihlášení. Prosím zadejte vaše uživatelské jméno a heslo." -#: picard/ui/passworddialog.py:75 +#: picard/ui/passworddialog.py:79 #, python-format msgid "" "The proxy %s requires you to login. Please enter your username and password." msgstr "Proxy %s vyžaduje Vaše přihlášení. Zadejte prosím vaše jméno a heslo." -#: picard/ui/tagsfromfilenames.py:55 picard/ui/tagsfromfilenames.py:100 +#: picard/ui/tagsfromfilenames.py:56 picard/ui/tagsfromfilenames.py:101 msgid "File Name" msgstr "Název souboru" -#: picard/ui/ui_cdlookup.py:66 picard/ui/ui_options_cdlookup.py:55 -#: picard/ui/ui_options_cdlookup_select.py:62 picard/ui/options/cdlookup.py:38 +#: picard/ui/ui_cdlookup.py:53 picard/ui/ui_options_cdlookup.py:42 +#: picard/ui/ui_options_cdlookup_select.py:49 picard/ui/options/cdlookup.py:38 msgid "CD Lookup" msgstr "Vyhledání CD" -#: picard/ui/ui_cdlookup.py:67 +#: picard/ui/ui_cdlookup.py:54 msgid "The following releases on MusicBrainz match the CD:" msgstr "Vydání obsažená v MusicBrainz a shodná s tímto CD:" -#: picard/ui/ui_cdlookup.py:68 +#: picard/ui/ui_cdlookup.py:55 msgid "OK" msgstr "OK" -#: picard/ui/ui_cdlookup.py:69 +#: picard/ui/ui_cdlookup.py:56 msgid "Lookup manually" msgstr "" -#: picard/ui/ui_cdlookup.py:70 +#: picard/ui/ui_cdlookup.py:57 msgid "Cancel" msgstr "Zrušit" -#: picard/ui/ui_edittagdialog.py:101 +#: picard/ui/ui_edittagdialog.py:88 msgid "Edit Tag" msgstr "Upravit tag" -#: picard/ui/ui_edittagdialog.py:102 +#: picard/ui/ui_edittagdialog.py:89 msgid "Edit value" msgstr "Upravit hodnotu" -#: picard/ui/ui_edittagdialog.py:103 +#: picard/ui/ui_edittagdialog.py:90 msgid "Add value" msgstr "Přidat hodnotu" -#: picard/ui/ui_edittagdialog.py:104 +#: picard/ui/ui_edittagdialog.py:91 msgid "Remove value" msgstr "Smazat hodnotu" -#: picard/ui/ui_infodialog.py:78 +#: picard/ui/ui_infodialog.py:74 msgid "A&rtwork" msgstr "O&brázek" -#: picard/ui/ui_infostatus.py:100 +#: picard/ui/ui_infostatus.py:96 msgid "Form" msgstr "" -#: picard/ui/ui_options.py:51 +#: picard/ui/ui_options.py:38 msgid "Options" msgstr "Možnosti" -#: picard/ui/ui_options_advanced.py:46 +#: picard/ui/ui_options_advanced.py:42 msgid "Advanced options" msgstr "" -#: picard/ui/ui_options_advanced.py:47 +#: picard/ui/ui_options_advanced.py:43 msgid "Ignore file paths matching the following regular expression:" msgstr "" -#: picard/ui/ui_options_cdlookup.py:56 +#: picard/ui/ui_options_cdlookup.py:43 msgid "CD-ROM device to use for lookups:" msgstr "CD/DVD zařízení pro identifikaci:" -#: picard/ui/ui_options_cdlookup_select.py:63 +#: picard/ui/ui_options_cdlookup_select.py:50 msgid "Default CD-ROM drive to use for lookups:" msgstr "Výchozí CD/DVD mechanika" -#: picard/ui/ui_options_cover.py:145 +#: picard/ui/ui_options_cover.py:131 msgid "Location" msgstr "Umístění" -#: picard/ui/ui_options_cover.py:146 +#: picard/ui/ui_options_cover.py:132 msgid "Embed cover images into tags" msgstr "Vkládat obrázky alb do tagů" -#: picard/ui/ui_options_cover.py:147 +#: picard/ui/ui_options_cover.py:133 msgid "Only embed a front image" msgstr "" -#: picard/ui/ui_options_cover.py:148 +#: picard/ui/ui_options_cover.py:134 msgid "Save cover images as separate files" msgstr "Uložit obrázky alb jako samostatné soubory" -#: picard/ui/ui_options_cover.py:149 +#: picard/ui/ui_options_cover.py:135 msgid "Use the following file name for images:" msgstr "" -#: picard/ui/ui_options_cover.py:150 +#: picard/ui/ui_options_cover.py:136 msgid "Overwrite the file if it already exists" msgstr "Přepsat soubor, pokud existuje" -#: picard/ui/ui_options_cover.py:151 +#: picard/ui/ui_options_cover.py:137 msgid "Coverart Providers" msgstr "Poskytovatelé obrázku alb" -#: picard/ui/ui_options_cover.py:152 +#: picard/ui/ui_options_cover.py:138 msgid "Amazon" msgstr "Amazon" -#: picard/ui/ui_options_cover.py:153 picard/ui/ui_options_cover.py:155 +#: picard/ui/ui_options_cover.py:139 picard/ui/ui_options_cover.py:141 msgid "Cover Art Archive" msgstr "Cover Art Archive" -#: picard/ui/ui_options_cover.py:154 +#: picard/ui/ui_options_cover.py:140 msgid "Sites on the whitelist" msgstr "Seznam povolených stránek" -#: picard/ui/ui_options_cover.py:156 +#: picard/ui/ui_options_cover.py:142 msgid "Only use images of the following size:" msgstr "Používat pouze obrázky těchto rozměrů:" -#: picard/ui/ui_options_cover.py:157 +#: picard/ui/ui_options_cover.py:143 msgid "250 px" msgstr "250 px" -#: picard/ui/ui_options_cover.py:158 +#: picard/ui/ui_options_cover.py:144 msgid "500 px" msgstr "500 px" -#: picard/ui/ui_options_cover.py:159 +#: picard/ui/ui_options_cover.py:145 msgid "Full size" msgstr "" -#: picard/ui/ui_options_cover.py:160 +#: picard/ui/ui_options_cover.py:146 msgid "Download only images of the following types:" msgstr "Stahovat pouze obrázky těchto typů:" -#: picard/ui/ui_options_cover.py:161 +#: picard/ui/ui_options_cover.py:147 msgid "Download only approved images" msgstr "Stahovat pouze schválené obrázky." -#: picard/ui/ui_options_cover.py:162 +#: picard/ui/ui_options_cover.py:148 msgid "" "Use the first image type as the filename. This will not change the filename " "of front images." msgstr "" -#: picard/ui/ui_options_fingerprinting.py:83 +#: picard/ui/ui_options_fingerprinting.py:70 msgid "Audio Fingerprinting" msgstr "" -#: picard/ui/ui_options_fingerprinting.py:84 +#: picard/ui/ui_options_fingerprinting.py:71 msgid "Do not use audio fingerprinting" msgstr "" -#: picard/ui/ui_options_fingerprinting.py:85 +#: picard/ui/ui_options_fingerprinting.py:72 msgid "Use AcoustID" msgstr "Použít AcoustID" -#: picard/ui/ui_options_fingerprinting.py:86 +#: picard/ui/ui_options_fingerprinting.py:73 msgid "AcoustID Settings" msgstr "Nastavení AcoustID" -#: picard/ui/ui_options_fingerprinting.py:87 +#: picard/ui/ui_options_fingerprinting.py:74 msgid "Fingerprint calculator:" msgstr "" -#: picard/ui/ui_options_fingerprinting.py:88 -#: picard/ui/ui_options_interface.py:88 picard/ui/ui_options_renaming.py:138 +#: picard/ui/ui_options_fingerprinting.py:75 +#: picard/ui/ui_options_interface.py:75 picard/ui/ui_options_renaming.py:134 msgid "Browse..." msgstr "Procházet..." -#: picard/ui/ui_options_fingerprinting.py:89 +#: picard/ui/ui_options_fingerprinting.py:76 msgid "Download..." msgstr "Stáhnout..." -#: picard/ui/ui_options_fingerprinting.py:90 +#: picard/ui/ui_options_fingerprinting.py:77 msgid "API key:" msgstr "Klíč API:" -#: picard/ui/ui_options_fingerprinting.py:91 +#: picard/ui/ui_options_fingerprinting.py:78 msgid "Get API key..." msgstr "Získat klíč API..." -#: picard/ui/ui_options_folksonomy.py:115 picard/ui/options/folksonomy.py:28 +#: picard/ui/ui_options_folksonomy.py:102 picard/ui/options/folksonomy.py:28 msgid "Folksonomy Tags" msgstr "Folkosonomické tagy" -#: picard/ui/ui_options_folksonomy.py:117 +#: picard/ui/ui_options_folksonomy.py:104 msgid "Only use my tags" msgstr "Používat jen moje tagy" -#: picard/ui/ui_options_folksonomy.py:120 +#: picard/ui/ui_options_folksonomy.py:107 msgid "Maximum number of tags:" msgstr "Maximální počet tagů:" -#: picard/ui/ui_options_general.py:92 +#: picard/ui/ui_options_general.py:88 msgid "MusicBrainz Server" msgstr "MusicBrainz server" -#: picard/ui/ui_options_general.py:93 picard/ui/ui_options_network.py:123 +#: picard/ui/ui_options_general.py:89 picard/ui/ui_options_network.py:110 msgid "Port:" msgstr "Port:" -#: picard/ui/ui_options_general.py:94 picard/ui/ui_options_network.py:124 +#: picard/ui/ui_options_general.py:90 picard/ui/ui_options_network.py:111 msgid "Server address:" msgstr "Adresa serveru:" -#: picard/ui/ui_options_general.py:95 +#: picard/ui/ui_options_general.py:91 msgid "Account Information" msgstr "Informace o účtu" -#: picard/ui/ui_options_general.py:96 picard/ui/ui_options_network.py:121 -#: picard/ui/ui_passworddialog.py:74 +#: picard/ui/ui_options_general.py:92 picard/ui/ui_options_network.py:108 +#: picard/ui/ui_passworddialog.py:70 msgid "Password:" msgstr "Heslo:" -#: picard/ui/ui_options_general.py:97 picard/ui/ui_options_network.py:122 -#: picard/ui/ui_passworddialog.py:73 +#: picard/ui/ui_options_general.py:93 picard/ui/ui_options_network.py:109 +#: picard/ui/ui_passworddialog.py:69 msgid "Username:" msgstr "Uživatelské jméno:" -#: picard/ui/ui_options_general.py:98 picard/ui/options/general.py:31 +#: picard/ui/ui_options_general.py:94 picard/ui/options/general.py:31 msgid "General" msgstr "Obecné" -#: picard/ui/ui_options_general.py:99 +#: picard/ui/ui_options_general.py:95 msgid "Automatically scan all new files" msgstr "Automaticky skenovat nové soubory" -#: picard/ui/ui_options_general.py:100 +#: picard/ui/ui_options_general.py:96 msgid "Ignore MBIDs when loading new files" msgstr "Při načítání nových souborů ignorovat MBIDy" -#: picard/ui/ui_options_interface.py:82 +#: picard/ui/ui_options_interface.py:69 msgid "Miscellaneous" msgstr "Různé" -#: picard/ui/ui_options_interface.py:83 +#: picard/ui/ui_options_interface.py:70 msgid "Show text labels under icons" msgstr "Ukazovat popisky pod ikonami" -#: picard/ui/ui_options_interface.py:84 +#: picard/ui/ui_options_interface.py:71 msgid "Allow selection of multiple directories" msgstr "Povolit výběr více adresářů" -#: picard/ui/ui_options_interface.py:85 +#: picard/ui/ui_options_interface.py:72 msgid "Use advanced query syntax" msgstr "Použít pokročilou dotazovací syntaxi" -#: picard/ui/ui_options_interface.py:86 +#: picard/ui/ui_options_interface.py:73 msgid "Show a quit confirmation dialog for unsaved changes" msgstr "" -#: picard/ui/ui_options_interface.py:87 +#: picard/ui/ui_options_interface.py:74 msgid "Begin browsing in the following directory:" msgstr "" -#: picard/ui/ui_options_interface.py:89 +#: picard/ui/ui_options_interface.py:76 msgid "User interface language:" msgstr "Jazyk uživatelského rozhraní:" -#: picard/ui/ui_options_matching.py:86 +#: picard/ui/ui_options_matching.py:73 msgid "Thresholds" msgstr "Úrovně" -#: picard/ui/ui_options_matching.py:87 +#: picard/ui/ui_options_matching.py:74 msgid "Minimal similarity for matching files to tracks:" msgstr "Minimální podobnost k identifikaci skladeb" -#: picard/ui/ui_options_matching.py:91 +#: picard/ui/ui_options_matching.py:78 msgid "Minimal similarity for file lookups:" msgstr "Minimální podobnost pro vyhledávní v souborech" -#: picard/ui/ui_options_matching.py:92 +#: picard/ui/ui_options_matching.py:79 msgid "Minimal similarity for cluster lookups:" msgstr "Minimální podobnost pro vyhledávní v klastrech" -#: picard/ui/ui_options_metadata.py:114 picard/ui/options/metadata.py:29 +#: picard/ui/ui_options_metadata.py:101 picard/ui/options/metadata.py:29 msgid "Metadata" msgstr "Metadata" -#: picard/ui/ui_options_metadata.py:115 +#: picard/ui/ui_options_metadata.py:102 msgid "Translate artist names to this locale where possible:" msgstr "Pokud je to možné, překládat jména umělců do této lokalizace:" -#: picard/ui/ui_options_metadata.py:116 +#: picard/ui/ui_options_metadata.py:103 msgid "Use standardized artist names" msgstr "Používat standardizovaná jména umělců" -#: picard/ui/ui_options_metadata.py:117 +#: picard/ui/ui_options_metadata.py:104 msgid "Convert Unicode punctuation characters to ASCII" msgstr "Převést Unicode interpunkci do ASCII" -#: picard/ui/ui_options_metadata.py:118 +#: picard/ui/ui_options_metadata.py:105 msgid "Use release relationships" msgstr "Používat vztahy vydání" -#: picard/ui/ui_options_metadata.py:119 +#: picard/ui/ui_options_metadata.py:106 msgid "Use track relationships" msgstr "Používat vztahy skladeb" -#: picard/ui/ui_options_metadata.py:120 +#: picard/ui/ui_options_metadata.py:107 msgid "Use folksonomy tags as genre" msgstr "Používat folksonomické tagy jako žánr" -#: picard/ui/ui_options_metadata.py:121 +#: picard/ui/ui_options_metadata.py:108 msgid "Custom Fields" msgstr "Vlastní pole" -#: picard/ui/ui_options_metadata.py:122 +#: picard/ui/ui_options_metadata.py:109 msgid "Various artists:" msgstr "Various artists:" -#: picard/ui/ui_options_metadata.py:123 +#: picard/ui/ui_options_metadata.py:110 msgid "Non-album tracks:" msgstr "Skladby neobažené v albech" -#: picard/ui/ui_options_metadata.py:124 picard/ui/ui_options_metadata.py:125 -#: picard/ui/ui_options_renaming.py:147 +#: picard/ui/ui_options_metadata.py:111 picard/ui/ui_options_metadata.py:112 +#: picard/ui/ui_options_renaming.py:143 msgid "Default" msgstr "Výchozí" -#: picard/ui/ui_options_network.py:120 +#: picard/ui/ui_options_network.py:107 msgid "Web Proxy" msgstr "Webová proxy" -#: picard/ui/ui_options_network.py:125 +#: picard/ui/ui_options_network.py:112 msgid "Browser Integration" msgstr "" -#: picard/ui/ui_options_network.py:126 +#: picard/ui/ui_options_network.py:113 msgid "Default listening port:" msgstr "" -#: picard/ui/ui_options_network.py:127 +#: picard/ui/ui_options_network.py:114 msgid "Listen only on localhost" msgstr "" -#: picard/ui/ui_options_plugins.py:131 picard/ui/options/plugins.py:38 +#: picard/ui/ui_options_plugins.py:127 picard/ui/options/plugins.py:38 msgid "Plugins" msgstr "Zásuvné moduly" -#: picard/ui/ui_options_plugins.py:132 picard/ui/options/plugins.py:122 +#: picard/ui/ui_options_plugins.py:128 picard/ui/options/plugins.py:122 msgid "Name" msgstr "Název" -#: picard/ui/ui_options_plugins.py:133 picard/util/tags.py:39 +#: picard/ui/ui_options_plugins.py:129 msgid "Version" msgstr "Verze" -#: picard/ui/ui_options_plugins.py:134 picard/ui/options/plugins.py:125 +#: picard/ui/ui_options_plugins.py:130 picard/ui/options/plugins.py:125 msgid "Author" msgstr "Autor" -#: picard/ui/ui_options_plugins.py:135 +#: picard/ui/ui_options_plugins.py:131 msgid "Install plugin..." msgstr "Nainstalovat zásuvný modul..." -#: picard/ui/ui_options_plugins.py:136 +#: picard/ui/ui_options_plugins.py:132 msgid "Open plugin folder" msgstr "Otevřít složku se zásuvnými moduly" -#: picard/ui/ui_options_plugins.py:137 +#: picard/ui/ui_options_plugins.py:133 msgid "Download plugins" msgstr "Stáhnout zásuvné moduly" -#: picard/ui/ui_options_plugins.py:138 +#: picard/ui/ui_options_plugins.py:134 msgid "Details" msgstr "Podrobnosti" -#: picard/ui/ui_options_ratings.py:53 +#: picard/ui/ui_options_ratings.py:49 msgid "Enable track ratings" msgstr "Povolit hodnocení skladeb" -#: picard/ui/ui_options_ratings.py:54 +#: picard/ui/ui_options_ratings.py:50 msgid "" "Picard saves the ratings together with an e-mail address identifying the " "user who did the rating. That way different ratings for different users can " @@ -1495,207 +1422,167 @@ msgid "" "your ratings." msgstr "Picard ukládá hodnocení spolu s e-mailovou adresou, která identifikuje hodnotícího uživatele. Tímto způsobem je možné do souboru uložit různá hodnocení pro různé uživatele. Prosím uveďte e-mailovou adresu, kterou chcete použít pro ukládání hodnocení." -#: picard/ui/ui_options_ratings.py:55 +#: picard/ui/ui_options_ratings.py:51 msgid "E-mail:" msgstr "E-mail:" -#: picard/ui/ui_options_ratings.py:56 +#: picard/ui/ui_options_ratings.py:52 msgid "Submit ratings to MusicBrainz" msgstr "Poslat hodnocení do MusicBrainz databáze" -#: picard/ui/ui_options_releases.py:215 +#: picard/ui/ui_options_releases.py:104 msgid "Preferred release types" msgstr "Preferovaný typ vydání" -#: picard/ui/ui_options_releases.py:217 -msgid "Single" -msgstr "Singl" - -#: picard/ui/ui_options_releases.py:218 -msgid "EP" -msgstr "EP" - -#: picard/ui/ui_options_releases.py:219 -msgid "Compilation" -msgstr "Kompilace" - -#: picard/ui/ui_options_releases.py:220 -msgid "Soundtrack" -msgstr "Soundtrack" - -#: picard/ui/ui_options_releases.py:221 -msgid "Spokenword" -msgstr "Mluvené slovo" - -#: picard/ui/ui_options_releases.py:222 -msgid "Interview" -msgstr "Rozhovor" - -#: picard/ui/ui_options_releases.py:223 -msgid "Audiobook" -msgstr "Audiokniha" - -#: picard/ui/ui_options_releases.py:224 -msgid "Live" -msgstr "Živě" - -#: picard/ui/ui_options_releases.py:225 -msgid "Remix" -msgstr "Remix" - -#: picard/ui/ui_options_releases.py:227 -msgid "Reset all" -msgstr "Resetovat vše" - -#: picard/ui/ui_options_releases.py:228 +#: picard/ui/ui_options_releases.py:105 msgid "Preferred release countries" msgstr "Preferované země vydání" -#: picard/ui/ui_options_releases.py:229 picard/ui/ui_options_releases.py:232 +#: picard/ui/ui_options_releases.py:106 picard/ui/ui_options_releases.py:109 msgid ">" msgstr ">" -#: picard/ui/ui_options_releases.py:230 picard/ui/ui_options_releases.py:233 +#: picard/ui/ui_options_releases.py:107 picard/ui/ui_options_releases.py:110 msgid "<" msgstr "<" -#: picard/ui/ui_options_releases.py:231 +#: picard/ui/ui_options_releases.py:108 msgid "Preferred release formats" msgstr "Preferované formáty vydání" -#: picard/ui/ui_options_renaming.py:134 +#: picard/ui/ui_options_renaming.py:130 msgid "Rename files when saving" msgstr "Přejmenovat soubory při ukládání" -#: picard/ui/ui_options_renaming.py:135 +#: picard/ui/ui_options_renaming.py:131 msgid "Replace non-ASCII characters" msgstr "Nahradit neASCII znaky" -#: picard/ui/ui_options_renaming.py:136 +#: picard/ui/ui_options_renaming.py:132 msgid "Windows compatibility" msgstr "" -#: picard/ui/ui_options_renaming.py:137 +#: picard/ui/ui_options_renaming.py:133 msgid "Move files to this directory when saving:" msgstr "Při ukládání přesunout soubory do tohoto adresáře" -#: picard/ui/ui_options_renaming.py:139 +#: picard/ui/ui_options_renaming.py:135 msgid "Delete empty directories" msgstr "Smazat prázdné adresáře" -#: picard/ui/ui_options_renaming.py:140 +#: picard/ui/ui_options_renaming.py:136 msgid "Move additional files:" msgstr "Přesunout dodatečné soubory:" -#: picard/ui/ui_options_renaming.py:141 +#: picard/ui/ui_options_renaming.py:137 msgid "Name files like this" msgstr "Pojmenovat soubory takto" -#: picard/ui/ui_options_renaming.py:148 +#: picard/ui/ui_options_renaming.py:144 msgid "Examples" msgstr "Příklady" -#: picard/ui/ui_options_script.py:49 +#: picard/ui/ui_options_script.py:45 msgid "Tagger Script" msgstr "Skripty pro tagger" -#: picard/ui/ui_options_tags.py:165 +#: picard/ui/ui_options_tags.py:152 msgid "Write tags to files" msgstr "Zapsat tagy do souborů" -#: picard/ui/ui_options_tags.py:166 +#: picard/ui/ui_options_tags.py:153 msgid "Preserve timestamps of tagged files" msgstr "Zachovat časová razítka otagovaných souborů " -#: picard/ui/ui_options_tags.py:167 +#: picard/ui/ui_options_tags.py:154 msgid "Before Tagging" msgstr "" -#: picard/ui/ui_options_tags.py:168 +#: picard/ui/ui_options_tags.py:155 msgid "Clear existing tags" msgstr "Smazat existující tagy" -#: picard/ui/ui_options_tags.py:169 +#: picard/ui/ui_options_tags.py:156 msgid "Remove ID3 tags from FLAC files" msgstr "Odebrat ID3 tagy ze souborů FLAC" -#: picard/ui/ui_options_tags.py:170 +#: picard/ui/ui_options_tags.py:157 msgid "Remove APEv2 tags from MP3 files" msgstr "Odebrat APEv2 tagy z MP3 souborů" -#: picard/ui/ui_options_tags.py:171 +#: picard/ui/ui_options_tags.py:158 msgid "" "Preserve these tags from being cleared or overwritten with MusicBrainz data:" msgstr "" -#: picard/ui/ui_options_tags.py:172 +#: picard/ui/ui_options_tags.py:159 msgid "Tags are separated by commas, and are case-sensitive." msgstr "" -#: picard/ui/ui_options_tags.py:173 +#: picard/ui/ui_options_tags.py:160 msgid "Tag Compatibility" msgstr "" -#: picard/ui/ui_options_tags.py:174 +#: picard/ui/ui_options_tags.py:161 msgid "ID3v2 Version" msgstr "" -#: picard/ui/ui_options_tags.py:175 +#: picard/ui/ui_options_tags.py:162 msgid "2.4" msgstr "2.4" -#: picard/ui/ui_options_tags.py:176 +#: picard/ui/ui_options_tags.py:163 msgid "2.3" msgstr "2.3" -#: picard/ui/ui_options_tags.py:177 +#: picard/ui/ui_options_tags.py:164 msgid "ID3v2 Text Encoding" msgstr "" -#: picard/ui/ui_options_tags.py:178 +#: picard/ui/ui_options_tags.py:165 msgid "UTF-8" msgstr "UTF-8" -#: picard/ui/ui_options_tags.py:179 +#: picard/ui/ui_options_tags.py:166 msgid "UTF-16" msgstr "UTF-16" -#: picard/ui/ui_options_tags.py:180 +#: picard/ui/ui_options_tags.py:167 msgid "ISO-8859-1" msgstr "ISO-8859-1" -#: picard/ui/ui_options_tags.py:181 +#: picard/ui/ui_options_tags.py:168 msgid "Join multiple ID3v2.3 tags with:" msgstr "" -#: picard/ui/ui_options_tags.py:182 +#: picard/ui/ui_options_tags.py:169 msgid "" "

Default is '/' to maintain compatibility with previous" " Picard releases.

New alternatives are ';_' or '_/_' or type your own." "

" msgstr "" -#: picard/ui/ui_options_tags.py:183 +#: picard/ui/ui_options_tags.py:170 msgid "Also include ID3v1 tags in the files" msgstr "Vkládat do souborů také tagy ID3v1" -#: picard/ui/ui_passworddialog.py:72 +#: picard/ui/ui_passworddialog.py:68 msgid "Authentication required" msgstr "Je vyžadována autentizace" -#: picard/ui/ui_passworddialog.py:75 +#: picard/ui/ui_passworddialog.py:71 msgid "Save username and password" msgstr "Uložit uživatelské jméno a heslo" -#: picard/ui/ui_tagsfromfilenames.py:54 +#: picard/ui/ui_tagsfromfilenames.py:50 msgid "Convert File Names to Tags" msgstr "Převést názvy souborů do tagů" -#: picard/ui/ui_tagsfromfilenames.py:55 +#: picard/ui/ui_tagsfromfilenames.py:51 msgid "Replace underscores with spaces" msgstr "Nahradit podtržítka mezerami" -#: picard/ui/ui_tagsfromfilenames.py:56 +#: picard/ui/ui_tagsfromfilenames.py:52 msgid "&Preview" msgstr "Ná&hled" @@ -1751,7 +1638,11 @@ msgstr "Pokročilé" msgid "Regex Error" msgstr "" -#: picard/ui/options/cover.py:63 +#: picard/ui/options/cover.py:44 +msgid "title" +msgstr "" + +#: picard/ui/options/cover.py:68 msgid "Cover Art" msgstr "Obrázek alba" @@ -1767,11 +1658,11 @@ msgstr "Uživatelské rozhraní" msgid "System default" msgstr "Výchozí jazyk systému" -#: picard/ui/options/interface.py:96 +#: picard/ui/options/interface.py:98 msgid "Language changed" msgstr "Jazyk změněn" -#: picard/ui/options/interface.py:96 +#: picard/ui/options/interface.py:99 msgid "" "You have changed the interface language. You have to restart Picard in order" " for the change to take effect." @@ -1793,31 +1684,35 @@ msgstr "Soubor" msgid "Ratings" msgstr "Hodnocení" -#: picard/ui/options/releases.py:33 +#: picard/ui/options/releases.py:87 msgid "Preferred Releases" msgstr "Preferované vydání" +#: picard/ui/options/releases.py:121 +msgid "Reset all" +msgstr "Resetovat vše" + #: picard/ui/options/renaming.py:37 msgid "File Naming" msgstr "" -#: picard/ui/options/renaming.py:184 +#: picard/ui/options/renaming.py:187 msgid "Error" msgstr "Chyba" -#: picard/ui/options/renaming.py:184 +#: picard/ui/options/renaming.py:187 msgid "The location to move files to must not be empty." msgstr "Musí být specifikéván cíl pro přesunu souborů." -#: picard/ui/options/renaming.py:194 +#: picard/ui/options/renaming.py:197 msgid "The file naming format must not be empty." msgstr "Musí být specifikováno schéma pojmenování souborů." -#: picard/ui/options/scripting.py:63 +#: picard/ui/options/scripting.py:99 msgid "Scripting" msgstr "Skriptování" -#: picard/ui/options/scripting.py:95 +#: picard/ui/options/scripting.py:131 msgid "Script Error" msgstr "Chyba skriptu" @@ -1937,199 +1832,199 @@ msgstr "ASIN" msgid "Grouping" msgstr "Seskupování" -#: picard/util/tags.py:40 +#: picard/util/tags.py:39 msgid "ISRC" msgstr "ISRC" -#: picard/util/tags.py:41 +#: picard/util/tags.py:40 msgid "Mood" msgstr "Nálada" -#: picard/util/tags.py:42 +#: picard/util/tags.py:41 msgid "BPM" msgstr "BPM" -#: picard/util/tags.py:43 +#: picard/util/tags.py:42 msgid "Copyright" msgstr "Copyright" -#: picard/util/tags.py:44 +#: picard/util/tags.py:43 msgid "License" msgstr "Licence" -#: picard/util/tags.py:45 +#: picard/util/tags.py:44 msgid "Composer" msgstr "Skladatel" -#: picard/util/tags.py:46 +#: picard/util/tags.py:45 msgid "Writer" msgstr "" -#: picard/util/tags.py:47 +#: picard/util/tags.py:46 msgid "Conductor" msgstr "Dirigent" -#: picard/util/tags.py:48 +#: picard/util/tags.py:47 msgid "Lyricist" msgstr "Textař" -#: picard/util/tags.py:49 +#: picard/util/tags.py:48 msgid "Arranger" msgstr "Aranžér" -#: picard/util/tags.py:50 +#: picard/util/tags.py:49 msgid "Producer" msgstr "Producent" -#: picard/util/tags.py:51 +#: picard/util/tags.py:50 msgid "Engineer" msgstr "Zvukový inženýr" -#: picard/util/tags.py:52 +#: picard/util/tags.py:51 msgid "Subtitle" msgstr "Podtitul" -#: picard/util/tags.py:53 +#: picard/util/tags.py:52 msgid "Disc Subtitle" msgstr "Podtitul disku" -#: picard/util/tags.py:54 +#: picard/util/tags.py:53 msgid "Remixer" msgstr "Remixér" -#: picard/util/tags.py:55 +#: picard/util/tags.py:54 msgid "MusicBrainz Recording Id" msgstr "" -#: picard/util/tags.py:56 +#: picard/util/tags.py:55 msgid "MusicBrainz Track Id" msgstr "" -#: picard/util/tags.py:57 +#: picard/util/tags.py:56 msgid "MusicBrainz Release Id" msgstr "MusicBrainz Id vydání" -#: picard/util/tags.py:58 +#: picard/util/tags.py:57 msgid "MusicBrainz Artist Id" msgstr "MusicBrainz Id umělce" -#: picard/util/tags.py:59 +#: picard/util/tags.py:58 msgid "MusicBrainz Release Artist Id" msgstr "MusicBrainz Id umělce vydání" -#: picard/util/tags.py:60 +#: picard/util/tags.py:59 msgid "MusicBrainz Work Id" msgstr "" -#: picard/util/tags.py:61 +#: picard/util/tags.py:60 msgid "MusicBrainz Release Group Id" msgstr "" -#: picard/util/tags.py:62 +#: picard/util/tags.py:61 msgid "MusicBrainz Disc Id" msgstr "MusicBrainz Id disku" -#: picard/util/tags.py:63 -msgid "MusicBrainz Sort Name" -msgstr "MusicBrainz jméno pro seřazení" - -#: picard/util/tags.py:64 +#: picard/util/tags.py:62 msgid "MusicIP PUID" msgstr "MusicIP PUID" -#: picard/util/tags.py:65 +#: picard/util/tags.py:63 msgid "MusicIP Fingerprint" msgstr "Otisk MusicIP" -#: picard/util/tags.py:66 +#: picard/util/tags.py:64 msgid "AcoustID" msgstr "AcoustID" -#: picard/util/tags.py:67 +#: picard/util/tags.py:65 msgid "AcoustID Fingerprint" msgstr "" -#: picard/util/tags.py:68 +#: picard/util/tags.py:66 msgid "Disc Id" msgstr "Id disku" -#: picard/util/tags.py:69 -msgid "Website" -msgstr "Webová stránka" +#: picard/util/tags.py:67 +msgid "Artist Website" +msgstr "" -#: picard/util/tags.py:70 +#: picard/util/tags.py:68 msgid "Compilation (iTunes)" msgstr "" -#: picard/util/tags.py:71 +#: picard/util/tags.py:69 msgid "Comment" msgstr "Komentář" -#: picard/util/tags.py:72 +#: picard/util/tags.py:70 msgid "Genre" msgstr "Žánr" -#: picard/util/tags.py:73 +#: picard/util/tags.py:71 msgid "Encoded By" msgstr "Enkódováno" -#: picard/util/tags.py:74 +#: picard/util/tags.py:72 +msgid "Encoder Settings" +msgstr "" + +#: picard/util/tags.py:73 msgid "Performer" msgstr "Interpret" -#: picard/util/tags.py:75 +#: picard/util/tags.py:74 msgid "Release Type" msgstr "Typ vydání" -#: picard/util/tags.py:76 +#: picard/util/tags.py:75 msgid "Release Status" msgstr "Stav vydání" -#: picard/util/tags.py:77 +#: picard/util/tags.py:76 msgid "Release Country" msgstr "Země vydání" -#: picard/util/tags.py:78 +#: picard/util/tags.py:77 msgid "Record Label" msgstr "Nahrávací společnost" -#: picard/util/tags.py:80 +#: picard/util/tags.py:79 msgid "Catalog Number" msgstr "Katalogové číslo" -#: picard/util/tags.py:82 +#: picard/util/tags.py:80 msgid "DJ-Mixer" msgstr "Mixoval DJ" -#: picard/util/tags.py:83 +#: picard/util/tags.py:81 msgid "Media" msgstr "Médium" -#: picard/util/tags.py:84 +#: picard/util/tags.py:82 msgid "Lyrics" msgstr "Text skladby" -#: picard/util/tags.py:85 +#: picard/util/tags.py:83 msgid "Mixer" msgstr "Mixér" -#: picard/util/tags.py:86 +#: picard/util/tags.py:84 msgid "Language" msgstr "Jazyk" -#: picard/util/tags.py:87 +#: picard/util/tags.py:85 msgid "Script" msgstr "Písmo" -#: picard/util/tags.py:89 +#: picard/util/tags.py:87 msgid "Rating" msgstr "Hodnocení" -#: picard/util/tags.py:90 +#: picard/util/tags.py:88 msgid "Artists" msgstr "" -#: picard/util/tags.py:91 +#: picard/util/tags.py:89 msgid "Work" msgstr "" diff --git a/po/cy.po b/po/cy.po index 43d1ef028..95f5c75cc 100644 --- a/po/cy.po +++ b/po/cy.po @@ -9,8 +9,8 @@ msgid "" msgstr "" "Project-Id-Version: MusicBrainz\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2014-03-20 11:12+0100\n" -"PO-Revision-Date: 2014-03-21 08:44+0000\n" +"POT-Creation-Date: 2014-05-03 17:28+0200\n" +"PO-Revision-Date: 2014-05-04 08:44+0000\n" "Last-Translator: nikki\n" "Language-Team: Welsh (http://www.transifex.com/projects/p/musicbrainz/language/cy/)\n" "MIME-Version: 1.0\n" @@ -20,6 +20,10 @@ msgstr "" "Language: cy\n" "Plural-Forms: nplurals=4; plural=(n==1) ? 0 : (n==2) ? 1 : (n != 8 && n != 11) ? 2 : 3;\n" +#: contrib/plugins/albumartist_website.py:3 +msgid "Album Artist Website" +msgstr "" + #: contrib/plugins/no_release.py:50 msgid "Enable plugin for all releases by default" msgstr "" @@ -32,63 +36,55 @@ msgstr "" msgid "Remove specific release information..." msgstr "" -#: contrib/plugins/open_in_gui.py:32 -msgid "Open Error" -msgstr "Gwall Agor" +#: contrib/plugins/standardise_performers.py:3 +msgid "Standardise Performers" +msgstr "" -#: contrib/plugins/open_in_gui.py:32 -#, python-format -msgid "" -"Error while opening file:\n" -"\n" -"%s" -msgstr "Gwall agor ffeil:\n\n%s" - -#: contrib/plugins/lastfm/ui_options_lastfm.py:117 +#: contrib/plugins/lastfm/ui_options_lastfm.py:99 msgid "Last.fm" msgstr "Last.fm" -#: contrib/plugins/lastfm/ui_options_lastfm.py:118 +#: contrib/plugins/lastfm/ui_options_lastfm.py:100 msgid "Use track tags" msgstr "" -#: contrib/plugins/lastfm/ui_options_lastfm.py:119 +#: contrib/plugins/lastfm/ui_options_lastfm.py:101 msgid "Use artist tags" msgstr "" -#: contrib/plugins/lastfm/ui_options_lastfm.py:120 +#: contrib/plugins/lastfm/ui_options_lastfm.py:102 #: picard/ui/options/tags.py:30 msgid "Tags" msgstr "Tagiau" -#: contrib/plugins/lastfm/ui_options_lastfm.py:121 -#: picard/ui/ui_options_folksonomy.py:116 +#: contrib/plugins/lastfm/ui_options_lastfm.py:103 +#: picard/ui/ui_options_folksonomy.py:103 msgid "Ignore tags:" msgstr "" -#: contrib/plugins/lastfm/ui_options_lastfm.py:122 -#: picard/ui/ui_options_folksonomy.py:121 +#: contrib/plugins/lastfm/ui_options_lastfm.py:104 +#: picard/ui/ui_options_folksonomy.py:108 msgid "Join multiple tags with:" msgstr "" -#: contrib/plugins/lastfm/ui_options_lastfm.py:123 -#: picard/ui/ui_options_folksonomy.py:122 +#: contrib/plugins/lastfm/ui_options_lastfm.py:105 +#: picard/ui/ui_options_folksonomy.py:109 msgid " / " msgstr "/ " -#: contrib/plugins/lastfm/ui_options_lastfm.py:124 -#: picard/ui/ui_options_folksonomy.py:123 +#: contrib/plugins/lastfm/ui_options_lastfm.py:106 +#: picard/ui/ui_options_folksonomy.py:110 msgid ", " msgstr "," -#: contrib/plugins/lastfm/ui_options_lastfm.py:125 -#: picard/ui/ui_options_folksonomy.py:118 +#: contrib/plugins/lastfm/ui_options_lastfm.py:107 +#: picard/ui/ui_options_folksonomy.py:105 msgid "Minimal tag usage:" msgstr "" -#: contrib/plugins/lastfm/ui_options_lastfm.py:126 -#: picard/ui/ui_options_folksonomy.py:119 picard/ui/ui_options_matching.py:88 -#: picard/ui/ui_options_matching.py:89 picard/ui/ui_options_matching.py:90 +#: contrib/plugins/lastfm/ui_options_lastfm.py:108 +#: picard/ui/ui_options_folksonomy.py:106 picard/ui/ui_options_matching.py:75 +#: picard/ui/ui_options_matching.py:76 picard/ui/ui_options_matching.py:77 msgid " %" msgstr "%" @@ -96,93 +92,152 @@ msgstr "%" msgid "Calculate replay &gain..." msgstr "" -#: contrib/plugins/replaygain/__init__.py:66 +#: contrib/plugins/replaygain/__init__.py:67 #, python-format -msgid "Calculating replay gain for \"%s\"..." +msgid "Calculating replay gain for \"%(filename)s\"..." msgstr "" -#: contrib/plugins/replaygain/__init__.py:71 +#: contrib/plugins/replaygain/__init__.py:75 #, python-format -msgid "Replay gain for \"%s\" successfully calculated." +msgid "Replay gain for \"%(filename)s\" successfully calculated." msgstr "" -#: contrib/plugins/replaygain/__init__.py:73 +#: contrib/plugins/replaygain/__init__.py:80 #, python-format -msgid "Could not calculate replay gain for \"%s\"." +msgid "Could not calculate replay gain for \"%(filename)s\"." msgstr "" -#: contrib/plugins/replaygain/__init__.py:76 +#: contrib/plugins/replaygain/__init__.py:85 msgid "Calculate album &gain..." msgstr "" -#: contrib/plugins/replaygain/__init__.py:103 -#: contrib/plugins/replaygain/__init__.py:111 +#: contrib/plugins/replaygain/__init__.py:113 +#: contrib/plugins/replaygain/__init__.py:124 #, python-format -msgid "Calculating album gain for \"%s\"..." +msgid "Calculating album gain for \"%(album)s\"..." msgstr "" -#: contrib/plugins/replaygain/__init__.py:119 +#: contrib/plugins/replaygain/__init__.py:135 #, python-format -msgid "Album gain for \"%s\" successfully calculated." +msgid "Album gain for \"%(album)s\" successfully calculated." msgstr "" -#: contrib/plugins/replaygain/__init__.py:121 +#: contrib/plugins/replaygain/__init__.py:140 #, python-format -msgid "Could not calculate album gain for \"%s\"." +msgid "Could not calculate album gain for \"%(album)s\"." msgstr "" -#: picard/acoustid.py:102 -#, python-format -msgid "AcoustID lookup network error for '%s'!" +#: contrib/plugins/replaygain/ui_options_replaygain.py:59 +msgid "Replay Gain" msgstr "" -#: picard/acoustid.py:117 -#, python-format -msgid "AcoustID lookup failed for '%s'!" +#: contrib/plugins/replaygain/ui_options_replaygain.py:60 +msgid "Path to VorbisGain:" msgstr "" -#: picard/acoustid.py:128 -#, python-format -msgid "Acoustid lookup returned no result for file '%s'" +#: contrib/plugins/replaygain/ui_options_replaygain.py:61 +msgid "Path to MP3Gain:" msgstr "" -#: picard/acoustid.py:132 -#, python-format -msgid "Looking up the fingerprint for file %s..." -msgstr "Edrych lan y bysbrint ar gyfer ffeil %s..." - -#: picard/acoustidmanager.py:78 -msgid "Submitting AcoustIDs..." +#: contrib/plugins/replaygain/ui_options_replaygain.py:62 +msgid "Path to metaflac:" msgstr "" -#: picard/acoustidmanager.py:83 -#, python-format -msgid "AcoustID submission failed with error '%s'" +#: contrib/plugins/replaygain/ui_options_replaygain.py:63 +msgid "Path to wvgain:" msgstr "" -#: picard/acoustidmanager.py:85 +#: contrib/plugins/viewvariables/__init__.py:42 +#, python-format +msgid "File: %s" +msgstr "" + +#: contrib/plugins/viewvariables/__init__.py:47 +#, python-format +msgid "Track: %s %s " +msgstr "" + +#: contrib/plugins/viewvariables/__init__.py:49 +msgid "Variables" +msgstr "" + +#: contrib/plugins/viewvariables/__init__.py:69 +msgid "File variables" +msgstr "" + +#: contrib/plugins/viewvariables/__init__.py:74 +msgid "Hidden variables" +msgstr "" + +#: contrib/plugins/viewvariables/__init__.py:79 +msgid "Tag variables" +msgstr "" + +#: contrib/plugins/viewvariables/ui_variables_dialog.py:73 +msgid "Variable" +msgstr "" + +#: contrib/plugins/viewvariables/ui_variables_dialog.py:75 +msgid "Value" +msgstr "" + +#: picard/acoustid.py:109 +#, python-format +msgid "AcoustID lookup network error for '%(filename)s'!" +msgstr "" + +#: picard/acoustid.py:133 +#, python-format +msgid "AcoustID lookup failed for '%(filename)s'!" +msgstr "" + +#: picard/acoustid.py:155 +#, python-format +msgid "AcoustID lookup returned no result for file '%(filename)s'" +msgstr "" + +#: picard/acoustid.py:166 +#, python-format +msgid "Looking up the fingerprint for file '%(filename)s' ..." +msgstr "" + +#: picard/acoustidmanager.py:80 +msgid "Submitting AcoustIDs ..." +msgstr "" + +#: picard/acoustidmanager.py:94 +#, python-format +msgid "AcoustID submission failed with error '%(error)s'" +msgstr "" + +#: picard/acoustidmanager.py:102 msgid "AcoustIDs successfully submitted." msgstr "" -#: picard/album.py:64 picard/cluster.py:234 +#: picard/album.py:65 picard/cluster.py:255 msgid "Unmatched Files" msgstr "" -#: picard/album.py:187 +#: picard/album.py:188 #, python-format msgid "[could not load album %s]" msgstr "[methu llwytho albwm %s]" -#: picard/album.py:272 +#: picard/album.py:277 #, python-format -msgid "Album %s loaded" +msgid "Album %(id)s loaded: %(artist)s - %(album)s" msgstr "" -#: picard/album.py:288 +#: picard/album.py:294 +#, python-format +msgid "Loading album %(id)s ..." +msgstr "" + +#: picard/album.py:303 msgid "[loading album information]" msgstr "" -#: picard/album.py:463 +#: picard/album.py:478 #, python-format msgid "; %i image" msgid_plural "; %i images" @@ -191,330 +246,158 @@ msgstr[1] "" msgstr[2] "" msgstr[3] "" -#: picard/cluster.py:150 picard/cluster.py:159 +#: picard/cluster.py:155 picard/cluster.py:168 #, python-format -msgid "No matching releases for cluster %s" +msgid "No matching releases for cluster %(album)s" msgstr "" -#: picard/cluster.py:161 +#: picard/cluster.py:174 #, python-format -msgid "Cluster %s identified!" +msgid "Cluster %(album)s identified!" msgstr "" -#: picard/cluster.py:168 +#: picard/cluster.py:185 #, python-format -msgid "Looking up the metadata for cluster %s..." +msgid "Looking up the metadata for cluster %(album)s..." msgstr "" -#: picard/collection.py:60 +#: picard/collection.py:64 #, python-format -msgid "Added %i release to collection \"%s\"" -msgid_plural "Added %i releases to collection \"%s\"" +msgid "Added %(count)i release to collection \"%(name)s\"" +msgid_plural "Added %(count)i releases to collection \"%(name)s\"" msgstr[0] "" msgstr[1] "" msgstr[2] "" msgstr[3] "" -#: picard/collection.py:72 +#: picard/collection.py:86 #, python-format -msgid "Removed %i release from collection \"%s\"" -msgid_plural "Removed %i releases from collection \"%s\"" +msgid "Removed %(count)i release from collection \"%(name)s\"" +msgid_plural "Removed %(count)i releases from collection \"%(name)s\"" msgstr[0] "" msgstr[1] "" msgstr[2] "" msgstr[3] "" -#: picard/collection.py:81 +#: picard/collection.py:100 #, python-format -msgid "Error loading collections: %s" +msgid "Error loading collections: %(error)s" msgstr "" -#: picard/config_upgrade.py:57 picard/config_upgrade.py:70 +#: picard/config_upgrade.py:58 picard/config_upgrade.py:71 msgid "Various Artists file naming scheme removal" msgstr "" -#: picard/config_upgrade.py:58 +#: picard/config_upgrade.py:59 msgid "" "The separate file naming scheme for various artists albums has been removed in this version of Picard.\n" "Your file naming scheme has automatically been merged with that of single artist albums." msgstr "" -#: picard/config_upgrade.py:71 +#: picard/config_upgrade.py:72 msgid "" "The separate file naming scheme for various artists albums has been removed in this version of Picard.\n" "You currently do not use this option, but have a separate file naming scheme defined.\n" "Do you want to remove it or merge it with your file naming scheme for single artist albums?" msgstr "" -#: picard/config_upgrade.py:77 +#: picard/config_upgrade.py:78 msgid "Merge" msgstr "" -#: picard/config_upgrade.py:77 picard/ui/metadatabox.py:254 +#: picard/config_upgrade.py:78 picard/ui/metadatabox.py:254 msgid "Remove" msgstr "" -#: picard/const.py:67 -msgid "CD" -msgstr "CDd" - -#: picard/const.py:68 -msgid "CD-R" -msgstr "CD-R" - -#: picard/const.py:69 -msgid "HDCD" -msgstr "" - -#: picard/const.py:70 -msgid "8cm CD" -msgstr "" - -#: picard/const.py:71 -msgid "Vinyl" -msgstr "Finyl" - -#: picard/const.py:72 -msgid "7\" Vinyl" -msgstr "" - -#: picard/const.py:73 -msgid "10\" Vinyl" -msgstr "" - -#: picard/const.py:74 -msgid "12\" Vinyl" -msgstr "" - -#: picard/const.py:75 -msgid "Digital Media" -msgstr "Cyfrwng Digidol" - -#: picard/const.py:76 -msgid "USB Flash Drive" -msgstr "Gyrrwr Fflach USB" - -#: picard/const.py:77 -msgid "slotMusic" -msgstr "" - -#: picard/const.py:78 -msgid "Cassette" -msgstr "Casét" - -#: picard/const.py:79 -msgid "DVD" -msgstr "DFD" - -#: picard/const.py:80 -msgid "DVD-Audio" -msgstr "" - -#: picard/const.py:81 -msgid "DVD-Video" -msgstr "" - -#: picard/const.py:82 -msgid "SACD" -msgstr "SACD" - -#: picard/const.py:83 -msgid "DualDisc" -msgstr "" - -#: picard/const.py:84 -msgid "MiniDisc" -msgstr "MiniDisc" - -#: picard/const.py:85 -msgid "Blu-ray" -msgstr "Blu-ray" - -#: picard/const.py:86 -msgid "HD-DVD" -msgstr "" - -#: picard/const.py:87 -msgid "Videotape" -msgstr "Tapfideo" - -#: picard/const.py:88 -msgid "VHS" -msgstr "VHS" - -#: picard/const.py:89 -msgid "Betamax" -msgstr "Betamax" - #: picard/const.py:90 -msgid "VCD" -msgstr "" - -#: picard/const.py:91 -msgid "SVCD" -msgstr "" - -#: picard/const.py:92 -msgid "UMD" -msgstr "" - -#: picard/const.py:93 picard/coverartarchive.py:33 -#: picard/ui/ui_options_releases.py:226 -msgid "Other" -msgstr "Arall" - -#: picard/const.py:94 -msgid "LaserDisc" -msgstr "LaserDisc" - -#: picard/const.py:95 -msgid "Cartridge" -msgstr "" - -#: picard/const.py:96 -msgid "Reel-to-reel" -msgstr "" - -#: picard/const.py:97 -msgid "DAT" -msgstr "GDY" - -#: picard/const.py:98 -msgid "Wax Cylinder" -msgstr "Silindr Cwyr" - -#: picard/const.py:99 -msgid "Piano Roll" -msgstr "" - -#: picard/const.py:100 -msgid "DCC" -msgstr "" - -#: picard/const.py:115 msgid "Danish" msgstr "Daneg" -#: picard/const.py:116 +#: picard/const.py:91 msgid "German" msgstr "" -#: picard/const.py:118 +#: picard/const.py:93 msgid "English" msgstr "Saesneg" -#: picard/const.py:119 +#: picard/const.py:94 msgid "English (Canada)" msgstr "" -#: picard/const.py:120 +#: picard/const.py:95 msgid "English (UK)" msgstr "Saesneg (DU)" -#: picard/const.py:122 +#: picard/const.py:97 msgid "Spanish" msgstr "" -#: picard/const.py:123 +#: picard/const.py:98 msgid "Estonian" msgstr "" -#: picard/const.py:125 +#: picard/const.py:100 msgid "Finnish" msgstr "" -#: picard/const.py:127 +#: picard/const.py:102 msgid "French" msgstr "Ffrangeg" -#: picard/const.py:136 +#: picard/const.py:111 msgid "Italian" msgstr "" -#: picard/const.py:143 +#: picard/const.py:118 msgid "Dutch" msgstr "" -#: picard/const.py:145 +#: picard/const.py:120 msgid "Polish" msgstr "" -#: picard/const.py:147 +#: picard/const.py:122 msgid "Brazilian Portuguese" msgstr "" -#: picard/const.py:154 +#: picard/const.py:129 msgid "Swedish" msgstr "" -#: picard/coverart.py:84 +#: picard/coverart.py:85 #, python-format -msgid "Coverart %s downloaded" -msgstr "Celf Albwm %s wedi lawrlwytho" - -#: picard/coverart.py:240 -#, python-format -msgid "Downloading http://%s:%i%s" -msgstr "Lawrlwytho http://%s:%i%s" - -#: picard/coverartarchive.py:24 -msgid "Front" -msgstr "Blaen" - -#: picard/coverartarchive.py:25 -msgid "Back" -msgstr "Cefn" - -#: picard/coverartarchive.py:26 -msgid "Booklet" -msgstr "Llyfryn" - -#: picard/coverartarchive.py:27 -msgid "Medium" +msgid "Cover art of type '%(type)s' downloaded for %(albumid)s from %(host)s" msgstr "" -#: picard/coverartarchive.py:28 -msgid "Tray" -msgstr "Hambwrdd" - -#: picard/coverartarchive.py:29 -msgid "Obi" +#: picard/coverart.py:256 +#, python-format +msgid "" +"Downloading cover art of type '%(type)s' for %(albumid)s from %(host)s .." msgstr "" #: picard/coverartarchive.py:30 -msgid "Spine" -msgstr "" - -#: picard/coverartarchive.py:31 picard/ui/mainwindow.py:546 -msgid "Track" -msgstr "Trac" - -#: picard/coverartarchive.py:32 -msgid "Sticker" -msgstr "" - -#: picard/coverartarchive.py:34 msgid "Unknown" msgstr "Anadnabyddus" -#: picard/file.py:536 +#: picard/file.py:494 #, python-format -msgid "No matching tracks for file %s" +msgid "No matching tracks for file '%(filename)s'" msgstr "" -#: picard/file.py:548 +#: picard/file.py:510 #, python-format -msgid "No matching tracks above the threshold for file %s" +msgid "No matching tracks above the threshold for file '%(filename)s'" msgstr "" -#: picard/file.py:551 +#: picard/file.py:517 #, python-format -msgid "File %s identified!" +msgid "File '%(filename)s' identified!" msgstr "" -#: picard/file.py:567 +#: picard/file.py:537 #, python-format -msgid "Looking up the metadata for file %s..." +msgid "Looking up the metadata for file %(filename)s ..." msgstr "" #: picard/releasegroup.py:53 @@ -525,11 +408,11 @@ msgstr "" msgid "Year" msgstr "" -#: picard/releasegroup.py:55 picard/ui/cdlookup.py:34 +#: picard/releasegroup.py:55 picard/ui/cdlookup.py:35 msgid "Country" msgstr "Gwlad" -#: picard/releasegroup.py:56 picard/util/tags.py:81 +#: picard/releasegroup.py:56 msgid "Format" msgstr "Fformat" @@ -549,16 +432,25 @@ msgstr "" msgid "[no release info]" msgstr "" -#: picard/tagger.py:316 +#: picard/tagger.py:370 #, python-format -msgid "Loading directory %s" +msgid "Adding %(count)d file from '%(directory)s' ..." +msgid_plural "Adding %(count)d files from '%(directory)s' ..." +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + +#: picard/tagger.py:512 +#, python-format +msgid "Removing album %(id)s: %(artist)s - %(album)s" msgstr "" -#: picard/tagger.py:452 +#: picard/tagger.py:528 msgid "CD Lookup Error" msgstr "Gwall Edrych Lan CD" -#: picard/tagger.py:453 +#: picard/tagger.py:529 #, python-format msgid "" "Error while reading CD:\n" @@ -566,37 +458,36 @@ msgid "" "%s" msgstr "" -#: picard/ui/cdlookup.py:34 picard/ui/mainwindow.py:544 -#: picard/ui/ui_options_releases.py:216 picard/util/tags.py:21 +#: picard/ui/cdlookup.py:35 picard/ui/mainwindow.py:597 picard/util/tags.py:21 msgid "Album" msgstr "Albwm" -#: picard/ui/cdlookup.py:34 picard/ui/itemviews.py:96 -#: picard/ui/mainwindow.py:545 picard/util/tags.py:22 +#: picard/ui/cdlookup.py:35 picard/ui/itemviews.py:96 +#: picard/ui/mainwindow.py:598 picard/util/tags.py:22 msgid "Artist" msgstr "" -#: picard/ui/cdlookup.py:34 picard/util/tags.py:24 +#: picard/ui/cdlookup.py:35 picard/util/tags.py:24 msgid "Date" msgstr "Dyddiad" -#: picard/ui/cdlookup.py:35 +#: picard/ui/cdlookup.py:36 msgid "Labels" msgstr "Labeli" -#: picard/ui/cdlookup.py:35 +#: picard/ui/cdlookup.py:36 msgid "Catalog #s" msgstr "#au Catalog" -#: picard/ui/cdlookup.py:35 picard/util/tags.py:79 +#: picard/ui/cdlookup.py:36 picard/util/tags.py:78 msgid "Barcode" msgstr "Cod bar" -#: picard/ui/collectionmenu.py:31 +#: picard/ui/collectionmenu.py:42 msgid "Refresh List" msgstr "" -#: picard/ui/collectionmenu.py:92 +#: picard/ui/collectionmenu.py:86 #, python-format msgid "%s (%i release)" msgid_plural "%s (%i releases)" @@ -605,7 +496,7 @@ msgstr[1] "" msgstr[2] "" msgstr[3] "" -#: picard/ui/coverartbox.py:142 +#: picard/ui/coverartbox.py:141 msgid "View release on MusicBrainz" msgstr "" @@ -621,59 +512,59 @@ msgstr "" msgid "&Set as starting directory" msgstr "" -#: picard/ui/infodialog.py:36 picard/ui/infodialog.py:75 +#: picard/ui/infodialog.py:37 picard/ui/infodialog.py:80 msgid "Info" msgstr "Gwybodaeth" -#: picard/ui/infodialog.py:80 +#: picard/ui/infodialog.py:85 msgid "Filename:" msgstr "Enw ffeil:" -#: picard/ui/infodialog.py:82 +#: picard/ui/infodialog.py:87 msgid "Format:" msgstr "Fformat:" -#: picard/ui/infodialog.py:86 +#: picard/ui/infodialog.py:91 msgid "Size:" msgstr "Maint:" -#: picard/ui/infodialog.py:90 +#: picard/ui/infodialog.py:95 msgid "Length:" msgstr "Hyd:" -#: picard/ui/infodialog.py:92 +#: picard/ui/infodialog.py:97 msgid "Bitrate:" msgstr "Cyfradd ddidol:" -#: picard/ui/infodialog.py:94 +#: picard/ui/infodialog.py:99 msgid "Sample rate:" msgstr "" -#: picard/ui/infodialog.py:96 +#: picard/ui/infodialog.py:101 msgid "Bits per sample:" msgstr "" -#: picard/ui/infodialog.py:100 +#: picard/ui/infodialog.py:105 msgid "Mono" msgstr "Mono" -#: picard/ui/infodialog.py:102 +#: picard/ui/infodialog.py:107 msgid "Stereo" msgstr "Stereo" -#: picard/ui/infodialog.py:105 +#: picard/ui/infodialog.py:110 msgid "Channels:" msgstr "Sianeli:" -#: picard/ui/infodialog.py:116 +#: picard/ui/infodialog.py:121 msgid "Album Info" msgstr "Gwybodaeth Albwm" -#: picard/ui/infodialog.py:124 +#: picard/ui/infodialog.py:129 msgid "&Errors" msgstr "" -#: picard/ui/infodialog.py:134 picard/ui/ui_infodialog.py:77 +#: picard/ui/infodialog.py:139 picard/ui/ui_infodialog.py:73 msgid "&Info" msgstr "&Gwybodaeth" @@ -697,7 +588,7 @@ msgstr "" msgid "Title" msgstr "Teitl" -#: picard/ui/itemviews.py:95 picard/util/tags.py:88 +#: picard/ui/itemviews.py:95 picard/util/tags.py:86 msgid "Length" msgstr "Hyd" @@ -722,7 +613,7 @@ msgid "Collections" msgstr "" #: picard/ui/itemviews.py:365 -msgid "&Plugins" +msgid "P&lugins" msgstr "" #: picard/ui/itemviews.py:541 @@ -745,12 +636,16 @@ msgstr "" msgid "Contains albums and matched files" msgstr "" -#: picard/ui/logview.py:91 +#: picard/ui/logview.py:109 msgid "Log" msgstr "Log" -#: picard/ui/logview.py:99 -msgid "Status History" +#: picard/ui/logview.py:113 +msgid "Debug mode" +msgstr "" + +#: picard/ui/logview.py:134 +msgid "Activity History" msgstr "" #: picard/ui/mainwindow.py:74 @@ -786,276 +681,309 @@ msgstr "Barod" #: picard/ui/mainwindow.py:220 msgid "" -"Picard listens on a port to integrate with your browser and downloads " -"release information when you click the \"Tagger\" buttons on the MusicBrainz" -" website" +"Picard listens on this port to integrate with your browser. When you " +"\"Search\" or \"Open in Browser\" from Picard, clicking the \"Tagger\" " +"button on the web page loads the release into Picard." msgstr "" -#: picard/ui/mainwindow.py:240 +#: picard/ui/mainwindow.py:243 #, python-format msgid " Listening on port %(port)d " msgstr "Gwrando ar porth %(port)d" -#: picard/ui/mainwindow.py:263 +#: picard/ui/mainwindow.py:299 msgid "Submission Error" msgstr "Gwall Argymell" -#: picard/ui/mainwindow.py:264 +#: picard/ui/mainwindow.py:300 msgid "" "You need to configure your AcoustID API key before you can submit " "fingerprints." msgstr "Rhaid ffurfweddu eich allwedd API AcoustID cyn allwch argymell bysbrintiau." -#: picard/ui/mainwindow.py:269 +#: picard/ui/mainwindow.py:305 msgid "&Options..." msgstr "&Dewisiadau..." -#: picard/ui/mainwindow.py:273 +#: picard/ui/mainwindow.py:309 msgid "&Cut" msgstr "&Torri" -#: picard/ui/mainwindow.py:278 +#: picard/ui/mainwindow.py:314 msgid "&Paste" msgstr "&Gludo" -#: picard/ui/mainwindow.py:283 +#: picard/ui/mainwindow.py:319 msgid "&Help..." msgstr "&Cymorth" -#: picard/ui/mainwindow.py:288 +#: picard/ui/mainwindow.py:323 msgid "&About..." msgstr "&Ynghylch..." -#: picard/ui/mainwindow.py:292 +#: picard/ui/mainwindow.py:327 msgid "&Donate..." msgstr "" -#: picard/ui/mainwindow.py:295 +#: picard/ui/mainwindow.py:330 msgid "&Report a Bug..." msgstr "" -#: picard/ui/mainwindow.py:298 +#: picard/ui/mainwindow.py:333 msgid "&Support Forum..." msgstr "" -#: picard/ui/mainwindow.py:301 +#: picard/ui/mainwindow.py:336 msgid "&Add Files..." msgstr "" -#: picard/ui/mainwindow.py:302 +#: picard/ui/mainwindow.py:337 msgid "Add files to the tagger" msgstr "" -#: picard/ui/mainwindow.py:307 +#: picard/ui/mainwindow.py:342 msgid "A&dd Folder..." msgstr "" -#: picard/ui/mainwindow.py:308 +#: picard/ui/mainwindow.py:343 msgid "Add a folder to the tagger" msgstr "" -#: picard/ui/mainwindow.py:310 +#: picard/ui/mainwindow.py:345 msgid "Ctrl+D" msgstr "Ctrl+D" -#: picard/ui/mainwindow.py:313 +#: picard/ui/mainwindow.py:348 msgid "&Save" msgstr "&Cadw" -#: picard/ui/mainwindow.py:314 +#: picard/ui/mainwindow.py:349 msgid "Save selected files" msgstr "" -#: picard/ui/mainwindow.py:320 +#: picard/ui/mainwindow.py:355 msgid "S&ubmit" msgstr "" -#: picard/ui/mainwindow.py:321 -msgid "Submit fingerprints" -msgstr "Argymell bysbrintiau" +#: picard/ui/mainwindow.py:356 +msgid "Submit acoustic fingerprints" +msgstr "" -#: picard/ui/mainwindow.py:325 +#: picard/ui/mainwindow.py:360 msgid "E&xit" msgstr "G&adael" -#: picard/ui/mainwindow.py:328 +#: picard/ui/mainwindow.py:363 msgid "Ctrl+Q" msgstr "Ctrl+Q" -#: picard/ui/mainwindow.py:331 +#: picard/ui/mainwindow.py:366 msgid "&Remove" msgstr "" -#: picard/ui/mainwindow.py:332 +#: picard/ui/mainwindow.py:367 msgid "Remove selected files/albums" msgstr "" -#: picard/ui/mainwindow.py:336 +#: picard/ui/mainwindow.py:371 msgid "Lookup in &Browser" msgstr "" -#: picard/ui/mainwindow.py:337 +#: picard/ui/mainwindow.py:372 msgid "Lookup selected item on MusicBrainz website" msgstr "" -#: picard/ui/mainwindow.py:341 +#: picard/ui/mainwindow.py:376 msgid "File &Browser" msgstr "" -#: picard/ui/mainwindow.py:345 +#: picard/ui/mainwindow.py:380 msgid "Ctrl+B" msgstr "Ctrl+B" -#: picard/ui/mainwindow.py:348 +#: picard/ui/mainwindow.py:383 msgid "&Cover Art" msgstr "&Celf Albwm" -#: picard/ui/mainwindow.py:354 picard/ui/mainwindow.py:539 +#: picard/ui/mainwindow.py:389 picard/ui/mainwindow.py:591 msgid "Search" msgstr "" -#: picard/ui/mainwindow.py:357 -msgid "&CD Lookup..." +#: picard/ui/mainwindow.py:392 +msgid "Lookup &CD..." msgstr "" -#: picard/ui/mainwindow.py:358 picard/ui/mainwindow.py:359 -msgid "Lookup CD" +#: picard/ui/mainwindow.py:393 +msgid "Lookup the details of the CD in your drive" msgstr "" -#: picard/ui/mainwindow.py:361 +#: picard/ui/mainwindow.py:395 msgid "Ctrl+K" msgstr "Ctrl+K" -#: picard/ui/mainwindow.py:364 +#: picard/ui/mainwindow.py:398 msgid "&Scan" msgstr "" -#: picard/ui/mainwindow.py:367 +#: picard/ui/mainwindow.py:401 msgid "Ctrl+Y" msgstr "Ctrl+Y" -#: picard/ui/mainwindow.py:370 +#: picard/ui/mainwindow.py:404 msgid "Cl&uster" msgstr "" -#: picard/ui/mainwindow.py:373 +#: picard/ui/mainwindow.py:407 msgid "Ctrl+U" msgstr "Ctrl+U" -#: picard/ui/mainwindow.py:376 +#: picard/ui/mainwindow.py:410 msgid "&Lookup" msgstr "" -#: picard/ui/mainwindow.py:377 picard/ui/mainwindow.py:378 -msgid "Lookup metadata" +#: picard/ui/mainwindow.py:411 +msgid "Lookup selected items in MusicBrainz" msgstr "" -#: picard/ui/mainwindow.py:381 +#: picard/ui/mainwindow.py:416 msgid "Ctrl+L" msgstr "Ctrl+L" -#: picard/ui/mainwindow.py:384 +#: picard/ui/mainwindow.py:419 msgid "&Info..." msgstr "" -#: picard/ui/mainwindow.py:387 +#: picard/ui/mainwindow.py:422 msgid "Ctrl+I" msgstr "Ctrl+I" -#: picard/ui/mainwindow.py:390 +#: picard/ui/mainwindow.py:425 msgid "&Refresh" msgstr "" -#: picard/ui/mainwindow.py:391 +#: picard/ui/mainwindow.py:426 msgid "Ctrl+R" msgstr "Ctrl+R" -#: picard/ui/mainwindow.py:394 +#: picard/ui/mainwindow.py:429 msgid "&Rename Files" msgstr "" -#: picard/ui/mainwindow.py:399 +#: picard/ui/mainwindow.py:434 msgid "&Move Files" msgstr "" -#: picard/ui/mainwindow.py:404 +#: picard/ui/mainwindow.py:439 msgid "Save &Tags" msgstr "" -#: picard/ui/mainwindow.py:409 +#: picard/ui/mainwindow.py:444 msgid "Tags From &File Names..." msgstr "" -#: picard/ui/mainwindow.py:412 -msgid "View &Log..." +#: picard/ui/mainwindow.py:447 +msgid "&Open My Collections in Browser" msgstr "" -#: picard/ui/mainwindow.py:415 -msgid "View Status &History..." +#: picard/ui/mainwindow.py:451 +msgid "View Error/Debug &Log" msgstr "" -#: picard/ui/mainwindow.py:422 -msgid "&Open..." -msgstr "&Agor..." - -#: picard/ui/mainwindow.py:423 -msgid "Open the file" +#: picard/ui/mainwindow.py:454 +msgid "View Activity &History" msgstr "" -#: picard/ui/mainwindow.py:426 -msgid "Open &Folder..." -msgstr "" - -#: picard/ui/mainwindow.py:427 -msgid "Open the containing folder" -msgstr "" - -#: picard/ui/mainwindow.py:448 -msgid "&File" -msgstr "&Ffeil" - -#: picard/ui/mainwindow.py:456 -msgid "&Edit" +#: picard/ui/mainwindow.py:461 +msgid "&Play file" msgstr "" #: picard/ui/mainwindow.py:462 +msgid "Play the file in your default media player" +msgstr "" + +#: picard/ui/mainwindow.py:466 +msgid "Open Containing &Folder" +msgstr "" + +#: picard/ui/mainwindow.py:467 +msgid "Open the containing folder in your file explorer" +msgstr "" + +#: picard/ui/mainwindow.py:492 +msgid "&File" +msgstr "&Ffeil" + +#: picard/ui/mainwindow.py:503 +msgid "&Edit" +msgstr "" + +#: picard/ui/mainwindow.py:509 msgid "&View" msgstr "" -#: picard/ui/mainwindow.py:470 +#: picard/ui/mainwindow.py:515 msgid "&Options" msgstr "&Dewisiadau" -#: picard/ui/mainwindow.py:476 +#: picard/ui/mainwindow.py:521 msgid "&Tools" msgstr "" -#: picard/ui/mainwindow.py:485 picard/ui/util.py:35 +#: picard/ui/mainwindow.py:532 picard/ui/util.py:35 msgid "&Help" msgstr "&Cymorth" -#: picard/ui/mainwindow.py:505 +#: picard/ui/mainwindow.py:553 msgid "Actions" msgstr "" -#: picard/ui/mainwindow.py:608 +#: picard/ui/mainwindow.py:599 +msgid "Track" +msgstr "Trac" + +#: picard/ui/mainwindow.py:662 msgid "All Supported Formats" msgstr "" -#: picard/ui/mainwindow.py:705 +#: picard/ui/mainwindow.py:695 +#, python-format +msgid "Adding directory: '%(directory)s' ..." +msgstr "" + +#: picard/ui/mainwindow.py:702 +#, python-format +msgid "Adding multiple directories from '%(directory)s' ..." +msgstr "" + +#: picard/ui/mainwindow.py:767 msgid "Configuration Required" msgstr "" -#: picard/ui/mainwindow.py:706 +#: picard/ui/mainwindow.py:768 msgid "" "Audio fingerprinting is not yet configured. Would you like to configure it " "now?" msgstr "Nid yw bysbrintio clywedol wedi ffurfweddu. Hoffwch ei ffurfweddu nawr?" -#: picard/ui/mainwindow.py:784 picard/ui/mainwindow.py:791 +#: picard/ui/mainwindow.py:848 #, python-format -msgid " (Error: %s)" -msgstr "(Gwall: %s)" +msgid "%(filename)s (error: %(error)s)" +msgstr "" + +#: picard/ui/mainwindow.py:854 +#, python-format +msgid "%(filename)s" +msgstr "" + +#: picard/ui/mainwindow.py:864 +#, python-format +msgid "%(filename)s (%(similarity)d%%) (error: %(error)s)" +msgstr "" + +#: picard/ui/mainwindow.py:871 +#, python-format +msgid "%(filename)s (%(similarity)d%%)" +msgstr "" #: picard/ui/metadatabox.py:82 #, python-format @@ -1115,387 +1043,387 @@ msgstr[1] "" msgstr[2] "" msgstr[3] "" -#: picard/ui/passworddialog.py:37 +#: picard/ui/passworddialog.py:40 #, python-format msgid "" "The server %s requires you to login. Please enter your username and " "password." msgstr "" -#: picard/ui/passworddialog.py:75 +#: picard/ui/passworddialog.py:79 #, python-format msgid "" "The proxy %s requires you to login. Please enter your username and password." msgstr "" -#: picard/ui/tagsfromfilenames.py:55 picard/ui/tagsfromfilenames.py:100 +#: picard/ui/tagsfromfilenames.py:56 picard/ui/tagsfromfilenames.py:101 msgid "File Name" msgstr "Enw Ffeil" -#: picard/ui/ui_cdlookup.py:66 picard/ui/ui_options_cdlookup.py:55 -#: picard/ui/ui_options_cdlookup_select.py:62 picard/ui/options/cdlookup.py:38 +#: picard/ui/ui_cdlookup.py:53 picard/ui/ui_options_cdlookup.py:42 +#: picard/ui/ui_options_cdlookup_select.py:49 picard/ui/options/cdlookup.py:38 msgid "CD Lookup" msgstr "Edrych lan CD" -#: picard/ui/ui_cdlookup.py:67 +#: picard/ui/ui_cdlookup.py:54 msgid "The following releases on MusicBrainz match the CD:" msgstr "" -#: picard/ui/ui_cdlookup.py:68 +#: picard/ui/ui_cdlookup.py:55 msgid "OK" msgstr "Iawn" -#: picard/ui/ui_cdlookup.py:69 +#: picard/ui/ui_cdlookup.py:56 msgid "Lookup manually" msgstr "" -#: picard/ui/ui_cdlookup.py:70 +#: picard/ui/ui_cdlookup.py:57 msgid "Cancel" msgstr "Diddymu" -#: picard/ui/ui_edittagdialog.py:101 +#: picard/ui/ui_edittagdialog.py:88 msgid "Edit Tag" msgstr "" -#: picard/ui/ui_edittagdialog.py:102 +#: picard/ui/ui_edittagdialog.py:89 msgid "Edit value" msgstr "" -#: picard/ui/ui_edittagdialog.py:103 +#: picard/ui/ui_edittagdialog.py:90 msgid "Add value" msgstr "" -#: picard/ui/ui_edittagdialog.py:104 +#: picard/ui/ui_edittagdialog.py:91 msgid "Remove value" msgstr "" -#: picard/ui/ui_infodialog.py:78 +#: picard/ui/ui_infodialog.py:74 msgid "A&rtwork" msgstr "&Celflun" -#: picard/ui/ui_infostatus.py:100 +#: picard/ui/ui_infostatus.py:96 msgid "Form" msgstr "" -#: picard/ui/ui_options.py:51 +#: picard/ui/ui_options.py:38 msgid "Options" msgstr "Dewisiadau" -#: picard/ui/ui_options_advanced.py:46 +#: picard/ui/ui_options_advanced.py:42 msgid "Advanced options" msgstr "" -#: picard/ui/ui_options_advanced.py:47 +#: picard/ui/ui_options_advanced.py:43 msgid "Ignore file paths matching the following regular expression:" msgstr "" -#: picard/ui/ui_options_cdlookup.py:56 +#: picard/ui/ui_options_cdlookup.py:43 msgid "CD-ROM device to use for lookups:" msgstr "" -#: picard/ui/ui_options_cdlookup_select.py:63 +#: picard/ui/ui_options_cdlookup_select.py:50 msgid "Default CD-ROM drive to use for lookups:" msgstr "" -#: picard/ui/ui_options_cover.py:145 +#: picard/ui/ui_options_cover.py:131 msgid "Location" msgstr "Lleoliad" -#: picard/ui/ui_options_cover.py:146 +#: picard/ui/ui_options_cover.py:132 msgid "Embed cover images into tags" msgstr "" -#: picard/ui/ui_options_cover.py:147 +#: picard/ui/ui_options_cover.py:133 msgid "Only embed a front image" msgstr "" -#: picard/ui/ui_options_cover.py:148 +#: picard/ui/ui_options_cover.py:134 msgid "Save cover images as separate files" msgstr "Cadw testyn celf albwm fel ffeiliau ar wahan" -#: picard/ui/ui_options_cover.py:149 +#: picard/ui/ui_options_cover.py:135 msgid "Use the following file name for images:" msgstr "" -#: picard/ui/ui_options_cover.py:150 +#: picard/ui/ui_options_cover.py:136 msgid "Overwrite the file if it already exists" msgstr "" -#: picard/ui/ui_options_cover.py:151 +#: picard/ui/ui_options_cover.py:137 msgid "Coverart Providers" msgstr "" -#: picard/ui/ui_options_cover.py:152 +#: picard/ui/ui_options_cover.py:138 msgid "Amazon" msgstr "Amazon" -#: picard/ui/ui_options_cover.py:153 picard/ui/ui_options_cover.py:155 +#: picard/ui/ui_options_cover.py:139 picard/ui/ui_options_cover.py:141 msgid "Cover Art Archive" msgstr "Archif Celf Albwm" -#: picard/ui/ui_options_cover.py:154 +#: picard/ui/ui_options_cover.py:140 msgid "Sites on the whitelist" msgstr "" -#: picard/ui/ui_options_cover.py:156 +#: picard/ui/ui_options_cover.py:142 msgid "Only use images of the following size:" msgstr "" -#: picard/ui/ui_options_cover.py:157 +#: picard/ui/ui_options_cover.py:143 msgid "250 px" msgstr "" -#: picard/ui/ui_options_cover.py:158 +#: picard/ui/ui_options_cover.py:144 msgid "500 px" msgstr "" -#: picard/ui/ui_options_cover.py:159 +#: picard/ui/ui_options_cover.py:145 msgid "Full size" msgstr "Maint llawn" -#: picard/ui/ui_options_cover.py:160 +#: picard/ui/ui_options_cover.py:146 msgid "Download only images of the following types:" msgstr "" -#: picard/ui/ui_options_cover.py:161 +#: picard/ui/ui_options_cover.py:147 msgid "Download only approved images" msgstr "" -#: picard/ui/ui_options_cover.py:162 +#: picard/ui/ui_options_cover.py:148 msgid "" "Use the first image type as the filename. This will not change the filename " "of front images." msgstr "" -#: picard/ui/ui_options_fingerprinting.py:83 +#: picard/ui/ui_options_fingerprinting.py:70 msgid "Audio Fingerprinting" msgstr "Bysbrintio Clywedol" -#: picard/ui/ui_options_fingerprinting.py:84 +#: picard/ui/ui_options_fingerprinting.py:71 msgid "Do not use audio fingerprinting" msgstr "Paid defnyddio bysbrintio clywedol" -#: picard/ui/ui_options_fingerprinting.py:85 +#: picard/ui/ui_options_fingerprinting.py:72 msgid "Use AcoustID" msgstr "Defnyddio AcoustID" -#: picard/ui/ui_options_fingerprinting.py:86 +#: picard/ui/ui_options_fingerprinting.py:73 msgid "AcoustID Settings" msgstr "Gosodiadau AcoustID" -#: picard/ui/ui_options_fingerprinting.py:87 +#: picard/ui/ui_options_fingerprinting.py:74 msgid "Fingerprint calculator:" msgstr "Cyfrifiannell bysbrint:" -#: picard/ui/ui_options_fingerprinting.py:88 -#: picard/ui/ui_options_interface.py:88 picard/ui/ui_options_renaming.py:138 +#: picard/ui/ui_options_fingerprinting.py:75 +#: picard/ui/ui_options_interface.py:75 picard/ui/ui_options_renaming.py:134 msgid "Browse..." msgstr "" -#: picard/ui/ui_options_fingerprinting.py:89 +#: picard/ui/ui_options_fingerprinting.py:76 msgid "Download..." msgstr "Lawrlwytho..." -#: picard/ui/ui_options_fingerprinting.py:90 +#: picard/ui/ui_options_fingerprinting.py:77 msgid "API key:" msgstr "Allwedd API:" -#: picard/ui/ui_options_fingerprinting.py:91 +#: picard/ui/ui_options_fingerprinting.py:78 msgid "Get API key..." msgstr "Cael allwedd API..." -#: picard/ui/ui_options_folksonomy.py:115 picard/ui/options/folksonomy.py:28 +#: picard/ui/ui_options_folksonomy.py:102 picard/ui/options/folksonomy.py:28 msgid "Folksonomy Tags" msgstr "" -#: picard/ui/ui_options_folksonomy.py:117 +#: picard/ui/ui_options_folksonomy.py:104 msgid "Only use my tags" msgstr "" -#: picard/ui/ui_options_folksonomy.py:120 +#: picard/ui/ui_options_folksonomy.py:107 msgid "Maximum number of tags:" msgstr "" -#: picard/ui/ui_options_general.py:92 +#: picard/ui/ui_options_general.py:88 msgid "MusicBrainz Server" msgstr "" -#: picard/ui/ui_options_general.py:93 picard/ui/ui_options_network.py:123 +#: picard/ui/ui_options_general.py:89 picard/ui/ui_options_network.py:110 msgid "Port:" msgstr "Porth:" -#: picard/ui/ui_options_general.py:94 picard/ui/ui_options_network.py:124 +#: picard/ui/ui_options_general.py:90 picard/ui/ui_options_network.py:111 msgid "Server address:" msgstr "" -#: picard/ui/ui_options_general.py:95 +#: picard/ui/ui_options_general.py:91 msgid "Account Information" msgstr "" -#: picard/ui/ui_options_general.py:96 picard/ui/ui_options_network.py:121 -#: picard/ui/ui_passworddialog.py:74 +#: picard/ui/ui_options_general.py:92 picard/ui/ui_options_network.py:108 +#: picard/ui/ui_passworddialog.py:70 msgid "Password:" msgstr "Cyfrinair:" -#: picard/ui/ui_options_general.py:97 picard/ui/ui_options_network.py:122 -#: picard/ui/ui_passworddialog.py:73 +#: picard/ui/ui_options_general.py:93 picard/ui/ui_options_network.py:109 +#: picard/ui/ui_passworddialog.py:69 msgid "Username:" msgstr "" -#: picard/ui/ui_options_general.py:98 picard/ui/options/general.py:31 +#: picard/ui/ui_options_general.py:94 picard/ui/options/general.py:31 msgid "General" msgstr "Cyffredinol" -#: picard/ui/ui_options_general.py:99 +#: picard/ui/ui_options_general.py:95 msgid "Automatically scan all new files" msgstr "" -#: picard/ui/ui_options_general.py:100 +#: picard/ui/ui_options_general.py:96 msgid "Ignore MBIDs when loading new files" msgstr "" -#: picard/ui/ui_options_interface.py:82 +#: picard/ui/ui_options_interface.py:69 msgid "Miscellaneous" msgstr "" -#: picard/ui/ui_options_interface.py:83 +#: picard/ui/ui_options_interface.py:70 msgid "Show text labels under icons" msgstr "" -#: picard/ui/ui_options_interface.py:84 +#: picard/ui/ui_options_interface.py:71 msgid "Allow selection of multiple directories" msgstr "" -#: picard/ui/ui_options_interface.py:85 +#: picard/ui/ui_options_interface.py:72 msgid "Use advanced query syntax" msgstr "" -#: picard/ui/ui_options_interface.py:86 +#: picard/ui/ui_options_interface.py:73 msgid "Show a quit confirmation dialog for unsaved changes" msgstr "" -#: picard/ui/ui_options_interface.py:87 +#: picard/ui/ui_options_interface.py:74 msgid "Begin browsing in the following directory:" msgstr "" -#: picard/ui/ui_options_interface.py:89 +#: picard/ui/ui_options_interface.py:76 msgid "User interface language:" msgstr "" -#: picard/ui/ui_options_matching.py:86 +#: picard/ui/ui_options_matching.py:73 msgid "Thresholds" msgstr "" -#: picard/ui/ui_options_matching.py:87 +#: picard/ui/ui_options_matching.py:74 msgid "Minimal similarity for matching files to tracks:" msgstr "" -#: picard/ui/ui_options_matching.py:91 +#: picard/ui/ui_options_matching.py:78 msgid "Minimal similarity for file lookups:" msgstr "" -#: picard/ui/ui_options_matching.py:92 +#: picard/ui/ui_options_matching.py:79 msgid "Minimal similarity for cluster lookups:" msgstr "" -#: picard/ui/ui_options_metadata.py:114 picard/ui/options/metadata.py:29 +#: picard/ui/ui_options_metadata.py:101 picard/ui/options/metadata.py:29 msgid "Metadata" msgstr "" -#: picard/ui/ui_options_metadata.py:115 +#: picard/ui/ui_options_metadata.py:102 msgid "Translate artist names to this locale where possible:" msgstr "" -#: picard/ui/ui_options_metadata.py:116 +#: picard/ui/ui_options_metadata.py:103 msgid "Use standardized artist names" msgstr "" -#: picard/ui/ui_options_metadata.py:117 +#: picard/ui/ui_options_metadata.py:104 msgid "Convert Unicode punctuation characters to ASCII" msgstr "" -#: picard/ui/ui_options_metadata.py:118 +#: picard/ui/ui_options_metadata.py:105 msgid "Use release relationships" msgstr "" -#: picard/ui/ui_options_metadata.py:119 +#: picard/ui/ui_options_metadata.py:106 msgid "Use track relationships" msgstr "" -#: picard/ui/ui_options_metadata.py:120 +#: picard/ui/ui_options_metadata.py:107 msgid "Use folksonomy tags as genre" msgstr "" -#: picard/ui/ui_options_metadata.py:121 +#: picard/ui/ui_options_metadata.py:108 msgid "Custom Fields" msgstr "" -#: picard/ui/ui_options_metadata.py:122 +#: picard/ui/ui_options_metadata.py:109 msgid "Various artists:" msgstr "" -#: picard/ui/ui_options_metadata.py:123 +#: picard/ui/ui_options_metadata.py:110 msgid "Non-album tracks:" msgstr "" -#: picard/ui/ui_options_metadata.py:124 picard/ui/ui_options_metadata.py:125 -#: picard/ui/ui_options_renaming.py:147 +#: picard/ui/ui_options_metadata.py:111 picard/ui/ui_options_metadata.py:112 +#: picard/ui/ui_options_renaming.py:143 msgid "Default" msgstr "Rhagosodedig" -#: picard/ui/ui_options_network.py:120 +#: picard/ui/ui_options_network.py:107 msgid "Web Proxy" msgstr "" -#: picard/ui/ui_options_network.py:125 +#: picard/ui/ui_options_network.py:112 msgid "Browser Integration" msgstr "" -#: picard/ui/ui_options_network.py:126 +#: picard/ui/ui_options_network.py:113 msgid "Default listening port:" msgstr "" -#: picard/ui/ui_options_network.py:127 +#: picard/ui/ui_options_network.py:114 msgid "Listen only on localhost" msgstr "" -#: picard/ui/ui_options_plugins.py:131 picard/ui/options/plugins.py:38 +#: picard/ui/ui_options_plugins.py:127 picard/ui/options/plugins.py:38 msgid "Plugins" msgstr "Ategion" -#: picard/ui/ui_options_plugins.py:132 picard/ui/options/plugins.py:122 +#: picard/ui/ui_options_plugins.py:128 picard/ui/options/plugins.py:122 msgid "Name" msgstr "Enw" -#: picard/ui/ui_options_plugins.py:133 picard/util/tags.py:39 +#: picard/ui/ui_options_plugins.py:129 msgid "Version" msgstr "Fersiwn" -#: picard/ui/ui_options_plugins.py:134 picard/ui/options/plugins.py:125 +#: picard/ui/ui_options_plugins.py:130 picard/ui/options/plugins.py:125 msgid "Author" msgstr "Awdur" -#: picard/ui/ui_options_plugins.py:135 +#: picard/ui/ui_options_plugins.py:131 msgid "Install plugin..." msgstr "Gosod ategyn..." -#: picard/ui/ui_options_plugins.py:136 +#: picard/ui/ui_options_plugins.py:132 msgid "Open plugin folder" msgstr "" -#: picard/ui/ui_options_plugins.py:137 +#: picard/ui/ui_options_plugins.py:133 msgid "Download plugins" msgstr "Lawrlwytho ategion" -#: picard/ui/ui_options_plugins.py:138 +#: picard/ui/ui_options_plugins.py:134 msgid "Details" msgstr "Manylion" -#: picard/ui/ui_options_ratings.py:53 +#: picard/ui/ui_options_ratings.py:49 msgid "Enable track ratings" msgstr "" -#: picard/ui/ui_options_ratings.py:54 +#: picard/ui/ui_options_ratings.py:50 msgid "" "Picard saves the ratings together with an e-mail address identifying the " "user who did the rating. That way different ratings for different users can " @@ -1503,207 +1431,167 @@ msgid "" "your ratings." msgstr "" -#: picard/ui/ui_options_ratings.py:55 +#: picard/ui/ui_options_ratings.py:51 msgid "E-mail:" msgstr "E-bost:" -#: picard/ui/ui_options_ratings.py:56 +#: picard/ui/ui_options_ratings.py:52 msgid "Submit ratings to MusicBrainz" msgstr "Argymell graddiau i MusicBrainz" -#: picard/ui/ui_options_releases.py:215 +#: picard/ui/ui_options_releases.py:104 msgid "Preferred release types" msgstr "" -#: picard/ui/ui_options_releases.py:217 -msgid "Single" -msgstr "Sengl" - -#: picard/ui/ui_options_releases.py:218 -msgid "EP" -msgstr "EP" - -#: picard/ui/ui_options_releases.py:219 -msgid "Compilation" -msgstr "Casgliad" - -#: picard/ui/ui_options_releases.py:220 -msgid "Soundtrack" -msgstr "" - -#: picard/ui/ui_options_releases.py:221 -msgid "Spokenword" -msgstr "" - -#: picard/ui/ui_options_releases.py:222 -msgid "Interview" -msgstr "Cyfweliad" - -#: picard/ui/ui_options_releases.py:223 -msgid "Audiobook" -msgstr "" - -#: picard/ui/ui_options_releases.py:224 -msgid "Live" -msgstr "Byw" - -#: picard/ui/ui_options_releases.py:225 -msgid "Remix" -msgstr "Ailgymysgiad" - -#: picard/ui/ui_options_releases.py:227 -msgid "Reset all" -msgstr "" - -#: picard/ui/ui_options_releases.py:228 +#: picard/ui/ui_options_releases.py:105 msgid "Preferred release countries" msgstr "" -#: picard/ui/ui_options_releases.py:229 picard/ui/ui_options_releases.py:232 +#: picard/ui/ui_options_releases.py:106 picard/ui/ui_options_releases.py:109 msgid ">" msgstr ">" -#: picard/ui/ui_options_releases.py:230 picard/ui/ui_options_releases.py:233 +#: picard/ui/ui_options_releases.py:107 picard/ui/ui_options_releases.py:110 msgid "<" msgstr "<" -#: picard/ui/ui_options_releases.py:231 +#: picard/ui/ui_options_releases.py:108 msgid "Preferred release formats" msgstr "" -#: picard/ui/ui_options_renaming.py:134 +#: picard/ui/ui_options_renaming.py:130 msgid "Rename files when saving" msgstr "" -#: picard/ui/ui_options_renaming.py:135 +#: picard/ui/ui_options_renaming.py:131 msgid "Replace non-ASCII characters" msgstr "" -#: picard/ui/ui_options_renaming.py:136 +#: picard/ui/ui_options_renaming.py:132 msgid "Windows compatibility" msgstr "" -#: picard/ui/ui_options_renaming.py:137 +#: picard/ui/ui_options_renaming.py:133 msgid "Move files to this directory when saving:" msgstr "" -#: picard/ui/ui_options_renaming.py:139 +#: picard/ui/ui_options_renaming.py:135 msgid "Delete empty directories" msgstr "" -#: picard/ui/ui_options_renaming.py:140 +#: picard/ui/ui_options_renaming.py:136 msgid "Move additional files:" msgstr "" -#: picard/ui/ui_options_renaming.py:141 +#: picard/ui/ui_options_renaming.py:137 msgid "Name files like this" msgstr "" -#: picard/ui/ui_options_renaming.py:148 +#: picard/ui/ui_options_renaming.py:144 msgid "Examples" msgstr "" -#: picard/ui/ui_options_script.py:49 +#: picard/ui/ui_options_script.py:45 msgid "Tagger Script" msgstr "" -#: picard/ui/ui_options_tags.py:165 +#: picard/ui/ui_options_tags.py:152 msgid "Write tags to files" msgstr "" -#: picard/ui/ui_options_tags.py:166 +#: picard/ui/ui_options_tags.py:153 msgid "Preserve timestamps of tagged files" msgstr "" -#: picard/ui/ui_options_tags.py:167 +#: picard/ui/ui_options_tags.py:154 msgid "Before Tagging" msgstr "" -#: picard/ui/ui_options_tags.py:168 +#: picard/ui/ui_options_tags.py:155 msgid "Clear existing tags" msgstr "" -#: picard/ui/ui_options_tags.py:169 +#: picard/ui/ui_options_tags.py:156 msgid "Remove ID3 tags from FLAC files" msgstr "" -#: picard/ui/ui_options_tags.py:170 +#: picard/ui/ui_options_tags.py:157 msgid "Remove APEv2 tags from MP3 files" msgstr "" -#: picard/ui/ui_options_tags.py:171 +#: picard/ui/ui_options_tags.py:158 msgid "" "Preserve these tags from being cleared or overwritten with MusicBrainz data:" msgstr "" -#: picard/ui/ui_options_tags.py:172 +#: picard/ui/ui_options_tags.py:159 msgid "Tags are separated by commas, and are case-sensitive." msgstr "" -#: picard/ui/ui_options_tags.py:173 +#: picard/ui/ui_options_tags.py:160 msgid "Tag Compatibility" msgstr "" -#: picard/ui/ui_options_tags.py:174 +#: picard/ui/ui_options_tags.py:161 msgid "ID3v2 Version" msgstr "" -#: picard/ui/ui_options_tags.py:175 +#: picard/ui/ui_options_tags.py:162 msgid "2.4" msgstr "2,4" -#: picard/ui/ui_options_tags.py:176 +#: picard/ui/ui_options_tags.py:163 msgid "2.3" msgstr "2.3" -#: picard/ui/ui_options_tags.py:177 +#: picard/ui/ui_options_tags.py:164 msgid "ID3v2 Text Encoding" msgstr "" -#: picard/ui/ui_options_tags.py:178 +#: picard/ui/ui_options_tags.py:165 msgid "UTF-8" msgstr "UTF-8" -#: picard/ui/ui_options_tags.py:179 +#: picard/ui/ui_options_tags.py:166 msgid "UTF-16" msgstr "UTF-16" -#: picard/ui/ui_options_tags.py:180 +#: picard/ui/ui_options_tags.py:167 msgid "ISO-8859-1" msgstr "ISO-8859-1" -#: picard/ui/ui_options_tags.py:181 +#: picard/ui/ui_options_tags.py:168 msgid "Join multiple ID3v2.3 tags with:" msgstr "" -#: picard/ui/ui_options_tags.py:182 +#: picard/ui/ui_options_tags.py:169 msgid "" "

Default is '/' to maintain compatibility with previous" " Picard releases.

New alternatives are ';_' or '_/_' or type your own." "

" msgstr "" -#: picard/ui/ui_options_tags.py:183 +#: picard/ui/ui_options_tags.py:170 msgid "Also include ID3v1 tags in the files" msgstr "" -#: picard/ui/ui_passworddialog.py:72 +#: picard/ui/ui_passworddialog.py:68 msgid "Authentication required" msgstr "" -#: picard/ui/ui_passworddialog.py:75 +#: picard/ui/ui_passworddialog.py:71 msgid "Save username and password" msgstr "" -#: picard/ui/ui_tagsfromfilenames.py:54 +#: picard/ui/ui_tagsfromfilenames.py:50 msgid "Convert File Names to Tags" msgstr "" -#: picard/ui/ui_tagsfromfilenames.py:55 +#: picard/ui/ui_tagsfromfilenames.py:51 msgid "Replace underscores with spaces" msgstr "" -#: picard/ui/ui_tagsfromfilenames.py:56 +#: picard/ui/ui_tagsfromfilenames.py:52 msgid "&Preview" msgstr "" @@ -1759,7 +1647,11 @@ msgstr "" msgid "Regex Error" msgstr "" -#: picard/ui/options/cover.py:63 +#: picard/ui/options/cover.py:44 +msgid "title" +msgstr "" + +#: picard/ui/options/cover.py:68 msgid "Cover Art" msgstr "Celf Albwm" @@ -1775,11 +1667,11 @@ msgstr "" msgid "System default" msgstr "" -#: picard/ui/options/interface.py:96 +#: picard/ui/options/interface.py:98 msgid "Language changed" msgstr "" -#: picard/ui/options/interface.py:96 +#: picard/ui/options/interface.py:99 msgid "" "You have changed the interface language. You have to restart Picard in order" " for the change to take effect." @@ -1801,31 +1693,35 @@ msgstr "Ffeil" msgid "Ratings" msgstr "" -#: picard/ui/options/releases.py:33 +#: picard/ui/options/releases.py:87 msgid "Preferred Releases" msgstr "" +#: picard/ui/options/releases.py:121 +msgid "Reset all" +msgstr "" + #: picard/ui/options/renaming.py:37 msgid "File Naming" msgstr "" -#: picard/ui/options/renaming.py:184 +#: picard/ui/options/renaming.py:187 msgid "Error" msgstr "Gwall" -#: picard/ui/options/renaming.py:184 +#: picard/ui/options/renaming.py:187 msgid "The location to move files to must not be empty." msgstr "" -#: picard/ui/options/renaming.py:194 +#: picard/ui/options/renaming.py:197 msgid "The file naming format must not be empty." msgstr "" -#: picard/ui/options/scripting.py:63 +#: picard/ui/options/scripting.py:99 msgid "Scripting" msgstr "" -#: picard/ui/options/scripting.py:95 +#: picard/ui/options/scripting.py:131 msgid "Script Error" msgstr "" @@ -1945,199 +1841,199 @@ msgstr "ASIN" msgid "Grouping" msgstr "" -#: picard/util/tags.py:40 +#: picard/util/tags.py:39 msgid "ISRC" msgstr "" -#: picard/util/tags.py:41 +#: picard/util/tags.py:40 msgid "Mood" msgstr "" -#: picard/util/tags.py:42 +#: picard/util/tags.py:41 msgid "BPM" msgstr "BPM" -#: picard/util/tags.py:43 +#: picard/util/tags.py:42 msgid "Copyright" msgstr "Hawlfraint" -#: picard/util/tags.py:44 +#: picard/util/tags.py:43 msgid "License" msgstr "Trwydded" -#: picard/util/tags.py:45 +#: picard/util/tags.py:44 msgid "Composer" msgstr "Cyfansoddwr" -#: picard/util/tags.py:46 +#: picard/util/tags.py:45 msgid "Writer" msgstr "Ysgrifennwr" -#: picard/util/tags.py:47 +#: picard/util/tags.py:46 msgid "Conductor" msgstr "Arweinydd" -#: picard/util/tags.py:48 +#: picard/util/tags.py:47 msgid "Lyricist" msgstr "" -#: picard/util/tags.py:49 +#: picard/util/tags.py:48 msgid "Arranger" msgstr "" -#: picard/util/tags.py:50 +#: picard/util/tags.py:49 msgid "Producer" msgstr "" -#: picard/util/tags.py:51 +#: picard/util/tags.py:50 msgid "Engineer" msgstr "" -#: picard/util/tags.py:52 +#: picard/util/tags.py:51 msgid "Subtitle" msgstr "Isdeitl" -#: picard/util/tags.py:53 +#: picard/util/tags.py:52 msgid "Disc Subtitle" msgstr "Isdeitl Disg" -#: picard/util/tags.py:54 +#: picard/util/tags.py:53 msgid "Remixer" msgstr "" -#: picard/util/tags.py:55 +#: picard/util/tags.py:54 msgid "MusicBrainz Recording Id" msgstr "" -#: picard/util/tags.py:56 +#: picard/util/tags.py:55 msgid "MusicBrainz Track Id" msgstr "" -#: picard/util/tags.py:57 +#: picard/util/tags.py:56 msgid "MusicBrainz Release Id" msgstr "" -#: picard/util/tags.py:58 +#: picard/util/tags.py:57 msgid "MusicBrainz Artist Id" msgstr "" -#: picard/util/tags.py:59 +#: picard/util/tags.py:58 msgid "MusicBrainz Release Artist Id" msgstr "" -#: picard/util/tags.py:60 +#: picard/util/tags.py:59 msgid "MusicBrainz Work Id" msgstr "" -#: picard/util/tags.py:61 +#: picard/util/tags.py:60 msgid "MusicBrainz Release Group Id" msgstr "" -#: picard/util/tags.py:62 +#: picard/util/tags.py:61 msgid "MusicBrainz Disc Id" msgstr "" -#: picard/util/tags.py:63 -msgid "MusicBrainz Sort Name" -msgstr "" - -#: picard/util/tags.py:64 +#: picard/util/tags.py:62 msgid "MusicIP PUID" msgstr "" -#: picard/util/tags.py:65 +#: picard/util/tags.py:63 msgid "MusicIP Fingerprint" msgstr "Bysbrint MusicIP" -#: picard/util/tags.py:66 +#: picard/util/tags.py:64 msgid "AcoustID" msgstr "AcoustID" -#: picard/util/tags.py:67 +#: picard/util/tags.py:65 msgid "AcoustID Fingerprint" msgstr "Bysbrint AcoustID" -#: picard/util/tags.py:68 +#: picard/util/tags.py:66 msgid "Disc Id" msgstr "" -#: picard/util/tags.py:69 -msgid "Website" -msgstr "Gwefan" +#: picard/util/tags.py:67 +msgid "Artist Website" +msgstr "" -#: picard/util/tags.py:70 +#: picard/util/tags.py:68 msgid "Compilation (iTunes)" msgstr "" -#: picard/util/tags.py:71 +#: picard/util/tags.py:69 msgid "Comment" msgstr "Sylw" -#: picard/util/tags.py:72 +#: picard/util/tags.py:70 msgid "Genre" msgstr "Genre" -#: picard/util/tags.py:73 +#: picard/util/tags.py:71 msgid "Encoded By" msgstr "" -#: picard/util/tags.py:74 +#: picard/util/tags.py:72 +msgid "Encoder Settings" +msgstr "" + +#: picard/util/tags.py:73 msgid "Performer" msgstr "" -#: picard/util/tags.py:75 +#: picard/util/tags.py:74 msgid "Release Type" msgstr "" -#: picard/util/tags.py:76 +#: picard/util/tags.py:75 msgid "Release Status" msgstr "" -#: picard/util/tags.py:77 +#: picard/util/tags.py:76 msgid "Release Country" msgstr "" -#: picard/util/tags.py:78 +#: picard/util/tags.py:77 msgid "Record Label" msgstr "" -#: picard/util/tags.py:80 +#: picard/util/tags.py:79 msgid "Catalog Number" msgstr "Rhif Catalog" -#: picard/util/tags.py:82 +#: picard/util/tags.py:80 msgid "DJ-Mixer" msgstr "" -#: picard/util/tags.py:83 +#: picard/util/tags.py:81 msgid "Media" msgstr "" -#: picard/util/tags.py:84 +#: picard/util/tags.py:82 msgid "Lyrics" msgstr "" -#: picard/util/tags.py:85 +#: picard/util/tags.py:83 msgid "Mixer" msgstr "" -#: picard/util/tags.py:86 +#: picard/util/tags.py:84 msgid "Language" msgstr "Iaith" -#: picard/util/tags.py:87 +#: picard/util/tags.py:85 msgid "Script" msgstr "Sgript" -#: picard/util/tags.py:89 +#: picard/util/tags.py:87 msgid "Rating" msgstr "Gradd" -#: picard/util/tags.py:90 +#: picard/util/tags.py:88 msgid "Artists" msgstr "" -#: picard/util/tags.py:91 +#: picard/util/tags.py:89 msgid "Work" msgstr "" diff --git a/po/da.po b/po/da.po index 5fcb5f581..db9759816 100644 --- a/po/da.po +++ b/po/da.po @@ -12,9 +12,9 @@ msgid "" msgstr "" "Project-Id-Version: MusicBrainz\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2014-03-20 11:12+0100\n" -"PO-Revision-Date: 2014-03-25 15:41+0000\n" -"Last-Translator: Frederik \"Freso\" S. Olesen \n" +"POT-Creation-Date: 2014-05-03 17:28+0200\n" +"PO-Revision-Date: 2014-05-04 08:44+0000\n" +"Last-Translator: nikki\n" "Language-Team: Danish (http://www.transifex.com/projects/p/musicbrainz/language/da/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -23,6 +23,10 @@ msgstr "" "Language: da\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" +#: contrib/plugins/albumartist_website.py:3 +msgid "Album Artist Website" +msgstr "" + #: contrib/plugins/no_release.py:50 msgid "Enable plugin for all releases by default" msgstr "" @@ -35,63 +39,55 @@ msgstr "" msgid "Remove specific release information..." msgstr "" -#: contrib/plugins/open_in_gui.py:32 -msgid "Open Error" +#: contrib/plugins/standardise_performers.py:3 +msgid "Standardise Performers" msgstr "" -#: contrib/plugins/open_in_gui.py:32 -#, python-format -msgid "" -"Error while opening file:\n" -"\n" -"%s" -msgstr "Fejl under åbning af fil:\n\n%s" - -#: contrib/plugins/lastfm/ui_options_lastfm.py:117 +#: contrib/plugins/lastfm/ui_options_lastfm.py:99 msgid "Last.fm" msgstr "Last.fm" -#: contrib/plugins/lastfm/ui_options_lastfm.py:118 +#: contrib/plugins/lastfm/ui_options_lastfm.py:100 msgid "Use track tags" msgstr "" -#: contrib/plugins/lastfm/ui_options_lastfm.py:119 +#: contrib/plugins/lastfm/ui_options_lastfm.py:101 msgid "Use artist tags" msgstr "" -#: contrib/plugins/lastfm/ui_options_lastfm.py:120 +#: contrib/plugins/lastfm/ui_options_lastfm.py:102 #: picard/ui/options/tags.py:30 msgid "Tags" msgstr "Tags" -#: contrib/plugins/lastfm/ui_options_lastfm.py:121 -#: picard/ui/ui_options_folksonomy.py:116 +#: contrib/plugins/lastfm/ui_options_lastfm.py:103 +#: picard/ui/ui_options_folksonomy.py:103 msgid "Ignore tags:" msgstr "Ignorer tags:" -#: contrib/plugins/lastfm/ui_options_lastfm.py:122 -#: picard/ui/ui_options_folksonomy.py:121 +#: contrib/plugins/lastfm/ui_options_lastfm.py:104 +#: picard/ui/ui_options_folksonomy.py:108 msgid "Join multiple tags with:" msgstr "Flet flere tags sammen med:" -#: contrib/plugins/lastfm/ui_options_lastfm.py:123 -#: picard/ui/ui_options_folksonomy.py:122 +#: contrib/plugins/lastfm/ui_options_lastfm.py:105 +#: picard/ui/ui_options_folksonomy.py:109 msgid " / " msgstr " / " -#: contrib/plugins/lastfm/ui_options_lastfm.py:124 -#: picard/ui/ui_options_folksonomy.py:123 +#: contrib/plugins/lastfm/ui_options_lastfm.py:106 +#: picard/ui/ui_options_folksonomy.py:110 msgid ", " msgstr ", " -#: contrib/plugins/lastfm/ui_options_lastfm.py:125 -#: picard/ui/ui_options_folksonomy.py:118 +#: contrib/plugins/lastfm/ui_options_lastfm.py:107 +#: picard/ui/ui_options_folksonomy.py:105 msgid "Minimal tag usage:" msgstr "Minimum tag-brug:" -#: contrib/plugins/lastfm/ui_options_lastfm.py:126 -#: picard/ui/ui_options_folksonomy.py:119 picard/ui/ui_options_matching.py:88 -#: picard/ui/ui_options_matching.py:89 picard/ui/ui_options_matching.py:90 +#: contrib/plugins/lastfm/ui_options_lastfm.py:108 +#: picard/ui/ui_options_folksonomy.py:106 picard/ui/ui_options_matching.py:75 +#: picard/ui/ui_options_matching.py:76 picard/ui/ui_options_matching.py:77 msgid " %" msgstr " %" @@ -99,420 +95,307 @@ msgstr " %" msgid "Calculate replay &gain..." msgstr "" -#: contrib/plugins/replaygain/__init__.py:66 +#: contrib/plugins/replaygain/__init__.py:67 #, python-format -msgid "Calculating replay gain for \"%s\"..." +msgid "Calculating replay gain for \"%(filename)s\"..." msgstr "" -#: contrib/plugins/replaygain/__init__.py:71 +#: contrib/plugins/replaygain/__init__.py:75 #, python-format -msgid "Replay gain for \"%s\" successfully calculated." +msgid "Replay gain for \"%(filename)s\" successfully calculated." msgstr "" -#: contrib/plugins/replaygain/__init__.py:73 +#: contrib/plugins/replaygain/__init__.py:80 #, python-format -msgid "Could not calculate replay gain for \"%s\"." +msgid "Could not calculate replay gain for \"%(filename)s\"." msgstr "" -#: contrib/plugins/replaygain/__init__.py:76 +#: contrib/plugins/replaygain/__init__.py:85 msgid "Calculate album &gain..." msgstr "" -#: contrib/plugins/replaygain/__init__.py:103 -#: contrib/plugins/replaygain/__init__.py:111 +#: contrib/plugins/replaygain/__init__.py:113 +#: contrib/plugins/replaygain/__init__.py:124 #, python-format -msgid "Calculating album gain for \"%s\"..." +msgid "Calculating album gain for \"%(album)s\"..." msgstr "" -#: contrib/plugins/replaygain/__init__.py:119 +#: contrib/plugins/replaygain/__init__.py:135 #, python-format -msgid "Album gain for \"%s\" successfully calculated." +msgid "Album gain for \"%(album)s\" successfully calculated." msgstr "" -#: contrib/plugins/replaygain/__init__.py:121 +#: contrib/plugins/replaygain/__init__.py:140 #, python-format -msgid "Could not calculate album gain for \"%s\"." +msgid "Could not calculate album gain for \"%(album)s\"." msgstr "" -#: picard/acoustid.py:102 -#, python-format -msgid "AcoustID lookup network error for '%s'!" +#: contrib/plugins/replaygain/ui_options_replaygain.py:59 +msgid "Replay Gain" msgstr "" -#: picard/acoustid.py:117 -#, python-format -msgid "AcoustID lookup failed for '%s'!" +#: contrib/plugins/replaygain/ui_options_replaygain.py:60 +msgid "Path to VorbisGain:" msgstr "" -#: picard/acoustid.py:128 -#, python-format -msgid "Acoustid lookup returned no result for file '%s'" +#: contrib/plugins/replaygain/ui_options_replaygain.py:61 +msgid "Path to MP3Gain:" msgstr "" -#: picard/acoustid.py:132 -#, python-format -msgid "Looking up the fingerprint for file %s..." -msgstr "Slår fingeraftrykket for filen %s op..." - -#: picard/acoustidmanager.py:78 -msgid "Submitting AcoustIDs..." -msgstr "Indsender AcoustID'er..." - -#: picard/acoustidmanager.py:83 -#, python-format -msgid "AcoustID submission failed with error '%s'" +#: contrib/plugins/replaygain/ui_options_replaygain.py:62 +msgid "Path to metaflac:" msgstr "" -#: picard/acoustidmanager.py:85 +#: contrib/plugins/replaygain/ui_options_replaygain.py:63 +msgid "Path to wvgain:" +msgstr "" + +#: contrib/plugins/viewvariables/__init__.py:42 +#, python-format +msgid "File: %s" +msgstr "" + +#: contrib/plugins/viewvariables/__init__.py:47 +#, python-format +msgid "Track: %s %s " +msgstr "" + +#: contrib/plugins/viewvariables/__init__.py:49 +msgid "Variables" +msgstr "" + +#: contrib/plugins/viewvariables/__init__.py:69 +msgid "File variables" +msgstr "" + +#: contrib/plugins/viewvariables/__init__.py:74 +msgid "Hidden variables" +msgstr "" + +#: contrib/plugins/viewvariables/__init__.py:79 +msgid "Tag variables" +msgstr "" + +#: contrib/plugins/viewvariables/ui_variables_dialog.py:73 +msgid "Variable" +msgstr "" + +#: contrib/plugins/viewvariables/ui_variables_dialog.py:75 +msgid "Value" +msgstr "" + +#: picard/acoustid.py:109 +#, python-format +msgid "AcoustID lookup network error for '%(filename)s'!" +msgstr "" + +#: picard/acoustid.py:133 +#, python-format +msgid "AcoustID lookup failed for '%(filename)s'!" +msgstr "" + +#: picard/acoustid.py:155 +#, python-format +msgid "AcoustID lookup returned no result for file '%(filename)s'" +msgstr "" + +#: picard/acoustid.py:166 +#, python-format +msgid "Looking up the fingerprint for file '%(filename)s' ..." +msgstr "" + +#: picard/acoustidmanager.py:80 +msgid "Submitting AcoustIDs ..." +msgstr "" + +#: picard/acoustidmanager.py:94 +#, python-format +msgid "AcoustID submission failed with error '%(error)s'" +msgstr "" + +#: picard/acoustidmanager.py:102 msgid "AcoustIDs successfully submitted." msgstr "" -#: picard/album.py:64 picard/cluster.py:234 +#: picard/album.py:65 picard/cluster.py:255 msgid "Unmatched Files" msgstr "ikke-matchede filer" -#: picard/album.py:187 +#: picard/album.py:188 #, python-format msgid "[could not load album %s]" msgstr "[kunne ikke indlæse album %s]" -#: picard/album.py:272 +#: picard/album.py:277 #, python-format -msgid "Album %s loaded" -msgstr "Album %s indlæst" +msgid "Album %(id)s loaded: %(artist)s - %(album)s" +msgstr "" -#: picard/album.py:288 +#: picard/album.py:294 +#, python-format +msgid "Loading album %(id)s ..." +msgstr "" + +#: picard/album.py:303 msgid "[loading album information]" msgstr "[henter albuminformation]" -#: picard/album.py:463 +#: picard/album.py:478 #, python-format msgid "; %i image" msgid_plural "; %i images" msgstr[0] "; %i billede" msgstr[1] "; %i billeder" -#: picard/cluster.py:150 picard/cluster.py:159 +#: picard/cluster.py:155 picard/cluster.py:168 #, python-format -msgid "No matching releases for cluster %s" -msgstr "Ingen passende udgivelser for klyngen \"%s\"" - -#: picard/cluster.py:161 -#, python-format -msgid "Cluster %s identified!" -msgstr "Klyngen %s identificeret!" - -#: picard/cluster.py:168 -#, python-format -msgid "Looking up the metadata for cluster %s..." -msgstr "Slår metadata for klyngen %s op..." - -#: picard/collection.py:60 -#, python-format -msgid "Added %i release to collection \"%s\"" -msgid_plural "Added %i releases to collection \"%s\"" -msgstr[0] "" -msgstr[1] "" - -#: picard/collection.py:72 -#, python-format -msgid "Removed %i release from collection \"%s\"" -msgid_plural "Removed %i releases from collection \"%s\"" -msgstr[0] "" -msgstr[1] "" - -#: picard/collection.py:81 -#, python-format -msgid "Error loading collections: %s" +msgid "No matching releases for cluster %(album)s" msgstr "" -#: picard/config_upgrade.py:57 picard/config_upgrade.py:70 +#: picard/cluster.py:174 +#, python-format +msgid "Cluster %(album)s identified!" +msgstr "" + +#: picard/cluster.py:185 +#, python-format +msgid "Looking up the metadata for cluster %(album)s..." +msgstr "" + +#: picard/collection.py:64 +#, python-format +msgid "Added %(count)i release to collection \"%(name)s\"" +msgid_plural "Added %(count)i releases to collection \"%(name)s\"" +msgstr[0] "" +msgstr[1] "" + +#: picard/collection.py:86 +#, python-format +msgid "Removed %(count)i release from collection \"%(name)s\"" +msgid_plural "Removed %(count)i releases from collection \"%(name)s\"" +msgstr[0] "" +msgstr[1] "" + +#: picard/collection.py:100 +#, python-format +msgid "Error loading collections: %(error)s" +msgstr "" + +#: picard/config_upgrade.py:58 picard/config_upgrade.py:71 msgid "Various Artists file naming scheme removal" msgstr "" -#: picard/config_upgrade.py:58 +#: picard/config_upgrade.py:59 msgid "" "The separate file naming scheme for various artists albums has been removed in this version of Picard.\n" "Your file naming scheme has automatically been merged with that of single artist albums." msgstr "" -#: picard/config_upgrade.py:71 +#: picard/config_upgrade.py:72 msgid "" "The separate file naming scheme for various artists albums has been removed in this version of Picard.\n" "You currently do not use this option, but have a separate file naming scheme defined.\n" "Do you want to remove it or merge it with your file naming scheme for single artist albums?" msgstr "" -#: picard/config_upgrade.py:77 +#: picard/config_upgrade.py:78 msgid "Merge" msgstr "Sammenflet" -#: picard/config_upgrade.py:77 picard/ui/metadatabox.py:254 +#: picard/config_upgrade.py:78 picard/ui/metadatabox.py:254 msgid "Remove" msgstr "Fjern" -#: picard/const.py:67 -msgid "CD" -msgstr "CD" - -#: picard/const.py:68 -msgid "CD-R" -msgstr "CD-R" - -#: picard/const.py:69 -msgid "HDCD" -msgstr "HDCD" - -#: picard/const.py:70 -msgid "8cm CD" -msgstr "8cm CD" - -#: picard/const.py:71 -msgid "Vinyl" -msgstr "Vinyl" - -#: picard/const.py:72 -msgid "7\" Vinyl" -msgstr "7\" vinyl" - -#: picard/const.py:73 -msgid "10\" Vinyl" -msgstr "10\" vinyl" - -#: picard/const.py:74 -msgid "12\" Vinyl" -msgstr "12\" vinyl" - -#: picard/const.py:75 -msgid "Digital Media" -msgstr "Digitalt medie" - -#: picard/const.py:76 -msgid "USB Flash Drive" -msgstr "USB-nøgle" - -#: picard/const.py:77 -msgid "slotMusic" -msgstr "slotMusic" - -#: picard/const.py:78 -msgid "Cassette" -msgstr "Kassette" - -#: picard/const.py:79 -msgid "DVD" -msgstr "DVD" - -#: picard/const.py:80 -msgid "DVD-Audio" -msgstr "DVD-audio" - -#: picard/const.py:81 -msgid "DVD-Video" -msgstr "DVD-video" - -#: picard/const.py:82 -msgid "SACD" -msgstr "SACD" - -#: picard/const.py:83 -msgid "DualDisc" -msgstr "DualDisc" - -#: picard/const.py:84 -msgid "MiniDisc" -msgstr "MiniDisc" - -#: picard/const.py:85 -msgid "Blu-ray" -msgstr "Blu-ray" - -#: picard/const.py:86 -msgid "HD-DVD" -msgstr "HD-DVD" - -#: picard/const.py:87 -msgid "Videotape" -msgstr "Videobånd" - -#: picard/const.py:88 -msgid "VHS" -msgstr "VHS" - -#: picard/const.py:89 -msgid "Betamax" -msgstr "Betamax" - #: picard/const.py:90 -msgid "VCD" -msgstr "VCD" - -#: picard/const.py:91 -msgid "SVCD" -msgstr "SVCD" - -#: picard/const.py:92 -msgid "UMD" -msgstr "UMD" - -#: picard/const.py:93 picard/coverartarchive.py:33 -#: picard/ui/ui_options_releases.py:226 -msgid "Other" -msgstr "Andet" - -#: picard/const.py:94 -msgid "LaserDisc" -msgstr "LaserDisc" - -#: picard/const.py:95 -msgid "Cartridge" -msgstr "" - -#: picard/const.py:96 -msgid "Reel-to-reel" -msgstr "Spolebånd" - -#: picard/const.py:97 -msgid "DAT" -msgstr "DAT" - -#: picard/const.py:98 -msgid "Wax Cylinder" -msgstr "Fonografcylinder" - -#: picard/const.py:99 -msgid "Piano Roll" -msgstr "Klaverrulle" - -#: picard/const.py:100 -msgid "DCC" -msgstr "DCC" - -#: picard/const.py:115 msgid "Danish" msgstr "Dansk" -#: picard/const.py:116 +#: picard/const.py:91 msgid "German" msgstr "Tysk" -#: picard/const.py:118 +#: picard/const.py:93 msgid "English" msgstr "Engelsk" -#: picard/const.py:119 +#: picard/const.py:94 msgid "English (Canada)" msgstr "Engelsk (Canada)" -#: picard/const.py:120 +#: picard/const.py:95 msgid "English (UK)" msgstr "Engelsk (Storbritannien)" -#: picard/const.py:122 +#: picard/const.py:97 msgid "Spanish" msgstr "Spansk" -#: picard/const.py:123 +#: picard/const.py:98 msgid "Estonian" msgstr "Estisk" -#: picard/const.py:125 +#: picard/const.py:100 msgid "Finnish" msgstr "Finsk" -#: picard/const.py:127 +#: picard/const.py:102 msgid "French" msgstr "Fransk" -#: picard/const.py:136 +#: picard/const.py:111 msgid "Italian" msgstr "Italiensk" -#: picard/const.py:143 +#: picard/const.py:118 msgid "Dutch" msgstr "Hollandsk" -#: picard/const.py:145 +#: picard/const.py:120 msgid "Polish" msgstr "Polsk" -#: picard/const.py:147 +#: picard/const.py:122 msgid "Brazilian Portuguese" msgstr "Brasiliansk portugisisk" -#: picard/const.py:154 +#: picard/const.py:129 msgid "Swedish" msgstr "Svensk" -#: picard/coverart.py:84 +#: picard/coverart.py:85 #, python-format -msgid "Coverart %s downloaded" +msgid "Cover art of type '%(type)s' downloaded for %(albumid)s from %(host)s" msgstr "" -#: picard/coverart.py:240 +#: picard/coverart.py:256 #, python-format -msgid "Downloading http://%s:%i%s" -msgstr "Downloader http://%s:%i%s" - -#: picard/coverartarchive.py:24 -msgid "Front" -msgstr "Forside/front" - -#: picard/coverartarchive.py:25 -msgid "Back" -msgstr "Bagside" - -#: picard/coverartarchive.py:26 -msgid "Booklet" -msgstr "Hæfte" - -#: picard/coverartarchive.py:27 -msgid "Medium" -msgstr "Medie" - -#: picard/coverartarchive.py:28 -msgid "Tray" -msgstr "Bakke" - -#: picard/coverartarchive.py:29 -msgid "Obi" -msgstr "Obi" +msgid "" +"Downloading cover art of type '%(type)s' for %(albumid)s from %(host)s .." +msgstr "" #: picard/coverartarchive.py:30 -msgid "Spine" -msgstr "Ryg" - -#: picard/coverartarchive.py:31 picard/ui/mainwindow.py:546 -msgid "Track" -msgstr "Nummer" - -#: picard/coverartarchive.py:32 -msgid "Sticker" -msgstr "Klistermærke" - -#: picard/coverartarchive.py:34 msgid "Unknown" msgstr "Ukendt" -#: picard/file.py:536 +#: picard/file.py:494 #, python-format -msgid "No matching tracks for file %s" -msgstr "Ingen matchende numre for filen %s" +msgid "No matching tracks for file '%(filename)s'" +msgstr "" -#: picard/file.py:548 +#: picard/file.py:510 #, python-format -msgid "No matching tracks above the threshold for file %s" -msgstr "Ingen matchende numre over grænseværdien for filen %s" +msgid "No matching tracks above the threshold for file '%(filename)s'" +msgstr "" -#: picard/file.py:551 +#: picard/file.py:517 #, python-format -msgid "File %s identified!" -msgstr "Filen %s identificeret!" +msgid "File '%(filename)s' identified!" +msgstr "" -#: picard/file.py:567 +#: picard/file.py:537 #, python-format -msgid "Looking up the metadata for file %s..." -msgstr "Finder metadata for filen %s op..." +msgid "Looking up the metadata for file %(filename)s ..." +msgstr "" #: picard/releasegroup.py:53 msgid "Tracks" @@ -522,11 +405,11 @@ msgstr "" msgid "Year" msgstr "" -#: picard/releasegroup.py:55 picard/ui/cdlookup.py:34 +#: picard/releasegroup.py:55 picard/ui/cdlookup.py:35 msgid "Country" msgstr "Land" -#: picard/releasegroup.py:56 picard/util/tags.py:81 +#: picard/releasegroup.py:56 msgid "Format" msgstr "Format" @@ -546,16 +429,23 @@ msgstr "" msgid "[no release info]" msgstr "[ingen udgivelsesinfo]" -#: picard/tagger.py:316 +#: picard/tagger.py:370 #, python-format -msgid "Loading directory %s" +msgid "Adding %(count)d file from '%(directory)s' ..." +msgid_plural "Adding %(count)d files from '%(directory)s' ..." +msgstr[0] "" +msgstr[1] "" + +#: picard/tagger.py:512 +#, python-format +msgid "Removing album %(id)s: %(artist)s - %(album)s" msgstr "" -#: picard/tagger.py:452 +#: picard/tagger.py:528 msgid "CD Lookup Error" msgstr "Fejl under cd-opslag" -#: picard/tagger.py:453 +#: picard/tagger.py:529 #, python-format msgid "" "Error while reading CD:\n" @@ -563,44 +453,43 @@ msgid "" "%s" msgstr "Fejl under læsning af CD:\n\n%s" -#: picard/ui/cdlookup.py:34 picard/ui/mainwindow.py:544 -#: picard/ui/ui_options_releases.py:216 picard/util/tags.py:21 +#: picard/ui/cdlookup.py:35 picard/ui/mainwindow.py:597 picard/util/tags.py:21 msgid "Album" msgstr "Album" -#: picard/ui/cdlookup.py:34 picard/ui/itemviews.py:96 -#: picard/ui/mainwindow.py:545 picard/util/tags.py:22 +#: picard/ui/cdlookup.py:35 picard/ui/itemviews.py:96 +#: picard/ui/mainwindow.py:598 picard/util/tags.py:22 msgid "Artist" msgstr "Kunstner" -#: picard/ui/cdlookup.py:34 picard/util/tags.py:24 +#: picard/ui/cdlookup.py:35 picard/util/tags.py:24 msgid "Date" msgstr "Dato" -#: picard/ui/cdlookup.py:35 +#: picard/ui/cdlookup.py:36 msgid "Labels" msgstr "" -#: picard/ui/cdlookup.py:35 +#: picard/ui/cdlookup.py:36 msgid "Catalog #s" msgstr "Katalognumre" -#: picard/ui/cdlookup.py:35 picard/util/tags.py:79 +#: picard/ui/cdlookup.py:36 picard/util/tags.py:78 msgid "Barcode" msgstr "Stregkode" -#: picard/ui/collectionmenu.py:31 +#: picard/ui/collectionmenu.py:42 msgid "Refresh List" msgstr "" -#: picard/ui/collectionmenu.py:92 +#: picard/ui/collectionmenu.py:86 #, python-format msgid "%s (%i release)" msgid_plural "%s (%i releases)" msgstr[0] "%s (%i udgivelse)" msgstr[1] "%s (%i udgivelser)" -#: picard/ui/coverartbox.py:142 +#: picard/ui/coverartbox.py:141 msgid "View release on MusicBrainz" msgstr "Vis udgivelse på MusicBrainz" @@ -616,59 +505,59 @@ msgstr "Vis skjulte filer" msgid "&Set as starting directory" msgstr "" -#: picard/ui/infodialog.py:36 picard/ui/infodialog.py:75 +#: picard/ui/infodialog.py:37 picard/ui/infodialog.py:80 msgid "Info" msgstr "Info" -#: picard/ui/infodialog.py:80 +#: picard/ui/infodialog.py:85 msgid "Filename:" msgstr "Filnavn:" -#: picard/ui/infodialog.py:82 +#: picard/ui/infodialog.py:87 msgid "Format:" msgstr "Format:" -#: picard/ui/infodialog.py:86 +#: picard/ui/infodialog.py:91 msgid "Size:" msgstr "Størrelse:" -#: picard/ui/infodialog.py:90 +#: picard/ui/infodialog.py:95 msgid "Length:" msgstr "Længde:" -#: picard/ui/infodialog.py:92 +#: picard/ui/infodialog.py:97 msgid "Bitrate:" msgstr "Bitfrekvens:" -#: picard/ui/infodialog.py:94 +#: picard/ui/infodialog.py:99 msgid "Sample rate:" msgstr "Samplefrekvens:" -#: picard/ui/infodialog.py:96 +#: picard/ui/infodialog.py:101 msgid "Bits per sample:" msgstr "" -#: picard/ui/infodialog.py:100 +#: picard/ui/infodialog.py:105 msgid "Mono" msgstr "Mono" -#: picard/ui/infodialog.py:102 +#: picard/ui/infodialog.py:107 msgid "Stereo" msgstr "Stereo" -#: picard/ui/infodialog.py:105 +#: picard/ui/infodialog.py:110 msgid "Channels:" msgstr "Kanaler:" -#: picard/ui/infodialog.py:116 +#: picard/ui/infodialog.py:121 msgid "Album Info" msgstr "" -#: picard/ui/infodialog.py:124 +#: picard/ui/infodialog.py:129 msgid "&Errors" msgstr "" -#: picard/ui/infodialog.py:134 picard/ui/ui_infodialog.py:77 +#: picard/ui/infodialog.py:139 picard/ui/ui_infodialog.py:73 msgid "&Info" msgstr "&Info" @@ -692,7 +581,7 @@ msgstr "" msgid "Title" msgstr "Titel" -#: picard/ui/itemviews.py:95 picard/util/tags.py:88 +#: picard/ui/itemviews.py:95 picard/util/tags.py:86 msgid "Length" msgstr "Længde" @@ -717,8 +606,8 @@ msgid "Collections" msgstr "" #: picard/ui/itemviews.py:365 -msgid "&Plugins" -msgstr "Udvidelsesmoduler" +msgid "P&lugins" +msgstr "" #: picard/ui/itemviews.py:541 msgid "file view" @@ -740,12 +629,16 @@ msgstr "" msgid "Contains albums and matched files" msgstr "" -#: picard/ui/logview.py:91 +#: picard/ui/logview.py:109 msgid "Log" msgstr "Log" -#: picard/ui/logview.py:99 -msgid "Status History" +#: picard/ui/logview.py:113 +msgid "Debug mode" +msgstr "" + +#: picard/ui/logview.py:134 +msgid "Activity History" msgstr "" #: picard/ui/mainwindow.py:74 @@ -779,276 +672,309 @@ msgstr "Klar" #: picard/ui/mainwindow.py:220 msgid "" -"Picard listens on a port to integrate with your browser and downloads " -"release information when you click the \"Tagger\" buttons on the MusicBrainz" -" website" -msgstr "Picard lytter til en port for at integrere med din browser og downloader udgivelsesinformationer når du klikker på \"Tagger\"-knapperne på MusicBrainz-netstedet" +"Picard listens on this port to integrate with your browser. When you " +"\"Search\" or \"Open in Browser\" from Picard, clicking the \"Tagger\" " +"button on the web page loads the release into Picard." +msgstr "" -#: picard/ui/mainwindow.py:240 +#: picard/ui/mainwindow.py:243 #, python-format msgid " Listening on port %(port)d " msgstr " Lytter på port %(port)d " -#: picard/ui/mainwindow.py:263 +#: picard/ui/mainwindow.py:299 msgid "Submission Error" msgstr "Indsendelsesfejl" -#: picard/ui/mainwindow.py:264 +#: picard/ui/mainwindow.py:300 msgid "" "You need to configure your AcoustID API key before you can submit " "fingerprints." msgstr "Du skal angive din AcoustID API-nøgle før du kan indsende fingeraftryk." -#: picard/ui/mainwindow.py:269 +#: picard/ui/mainwindow.py:305 msgid "&Options..." msgstr "&Indstillinger..." -#: picard/ui/mainwindow.py:273 +#: picard/ui/mainwindow.py:309 msgid "&Cut" msgstr "&Klip" -#: picard/ui/mainwindow.py:278 +#: picard/ui/mainwindow.py:314 msgid "&Paste" msgstr "&Indsæt" -#: picard/ui/mainwindow.py:283 +#: picard/ui/mainwindow.py:319 msgid "&Help..." msgstr "&Hjælp..." -#: picard/ui/mainwindow.py:288 +#: picard/ui/mainwindow.py:323 msgid "&About..." msgstr "&Om..." -#: picard/ui/mainwindow.py:292 +#: picard/ui/mainwindow.py:327 msgid "&Donate..." msgstr "%Donere..." -#: picard/ui/mainwindow.py:295 +#: picard/ui/mainwindow.py:330 msgid "&Report a Bug..." msgstr "&Rapportér en fejl..." -#: picard/ui/mainwindow.py:298 +#: picard/ui/mainwindow.py:333 msgid "&Support Forum..." msgstr "&Support-forum..." -#: picard/ui/mainwindow.py:301 +#: picard/ui/mainwindow.py:336 msgid "&Add Files..." msgstr "&Tilføj filer..." -#: picard/ui/mainwindow.py:302 +#: picard/ui/mainwindow.py:337 msgid "Add files to the tagger" msgstr "Tilføj filer til taggeren" -#: picard/ui/mainwindow.py:307 +#: picard/ui/mainwindow.py:342 msgid "A&dd Folder..." msgstr "Tilføj &mappe..." -#: picard/ui/mainwindow.py:308 +#: picard/ui/mainwindow.py:343 msgid "Add a folder to the tagger" msgstr "Tilføj en mappe til taggeren" -#: picard/ui/mainwindow.py:310 +#: picard/ui/mainwindow.py:345 msgid "Ctrl+D" msgstr "Ctrl+D" -#: picard/ui/mainwindow.py:313 +#: picard/ui/mainwindow.py:348 msgid "&Save" msgstr "&Gem" -#: picard/ui/mainwindow.py:314 +#: picard/ui/mainwindow.py:349 msgid "Save selected files" msgstr "Gem valgte filer" -#: picard/ui/mainwindow.py:320 +#: picard/ui/mainwindow.py:355 msgid "S&ubmit" msgstr "Indsend" -#: picard/ui/mainwindow.py:321 -msgid "Submit fingerprints" -msgstr "Indsend fingeraftryk" +#: picard/ui/mainwindow.py:356 +msgid "Submit acoustic fingerprints" +msgstr "" -#: picard/ui/mainwindow.py:325 +#: picard/ui/mainwindow.py:360 msgid "E&xit" msgstr "Afslut" -#: picard/ui/mainwindow.py:328 +#: picard/ui/mainwindow.py:363 msgid "Ctrl+Q" msgstr "Ctrl+Q" -#: picard/ui/mainwindow.py:331 +#: picard/ui/mainwindow.py:366 msgid "&Remove" msgstr "Fje&rn" -#: picard/ui/mainwindow.py:332 +#: picard/ui/mainwindow.py:367 msgid "Remove selected files/albums" msgstr "Fjern valgte filer/album" -#: picard/ui/mainwindow.py:336 +#: picard/ui/mainwindow.py:371 msgid "Lookup in &Browser" msgstr "Slå op i &browser" -#: picard/ui/mainwindow.py:337 +#: picard/ui/mainwindow.py:372 msgid "Lookup selected item on MusicBrainz website" msgstr "Slå det valgte element op på MusicBrainz-netstedet" -#: picard/ui/mainwindow.py:341 +#: picard/ui/mainwindow.py:376 msgid "File &Browser" msgstr "Filbrowser" -#: picard/ui/mainwindow.py:345 +#: picard/ui/mainwindow.py:380 msgid "Ctrl+B" msgstr "Ctrl+B" -#: picard/ui/mainwindow.py:348 +#: picard/ui/mainwindow.py:383 msgid "&Cover Art" msgstr "Omslag" -#: picard/ui/mainwindow.py:354 picard/ui/mainwindow.py:539 +#: picard/ui/mainwindow.py:389 picard/ui/mainwindow.py:591 msgid "Search" msgstr "Søg" -#: picard/ui/mainwindow.py:357 -msgid "&CD Lookup..." -msgstr "&CD-opslag..." +#: picard/ui/mainwindow.py:392 +msgid "Lookup &CD..." +msgstr "" -#: picard/ui/mainwindow.py:358 picard/ui/mainwindow.py:359 -msgid "Lookup CD" -msgstr "Slå cd op" +#: picard/ui/mainwindow.py:393 +msgid "Lookup the details of the CD in your drive" +msgstr "" -#: picard/ui/mainwindow.py:361 +#: picard/ui/mainwindow.py:395 msgid "Ctrl+K" msgstr "Ctrl+K" -#: picard/ui/mainwindow.py:364 +#: picard/ui/mainwindow.py:398 msgid "&Scan" msgstr "&Skan" -#: picard/ui/mainwindow.py:367 +#: picard/ui/mainwindow.py:401 msgid "Ctrl+Y" msgstr "Ctrl+Y" -#: picard/ui/mainwindow.py:370 +#: picard/ui/mainwindow.py:404 msgid "Cl&uster" msgstr "" -#: picard/ui/mainwindow.py:373 +#: picard/ui/mainwindow.py:407 msgid "Ctrl+U" msgstr "Ctrl+U" -#: picard/ui/mainwindow.py:376 +#: picard/ui/mainwindow.py:410 msgid "&Lookup" msgstr "S&lå op" -#: picard/ui/mainwindow.py:377 picard/ui/mainwindow.py:378 -msgid "Lookup metadata" -msgstr "Slå metadata op" +#: picard/ui/mainwindow.py:411 +msgid "Lookup selected items in MusicBrainz" +msgstr "" -#: picard/ui/mainwindow.py:381 +#: picard/ui/mainwindow.py:416 msgid "Ctrl+L" msgstr "Ctrl+L" -#: picard/ui/mainwindow.py:384 +#: picard/ui/mainwindow.py:419 msgid "&Info..." msgstr "&Info..." -#: picard/ui/mainwindow.py:387 +#: picard/ui/mainwindow.py:422 msgid "Ctrl+I" msgstr "Ctrl+I" -#: picard/ui/mainwindow.py:390 +#: picard/ui/mainwindow.py:425 msgid "&Refresh" msgstr "Genindlæs" -#: picard/ui/mainwindow.py:391 +#: picard/ui/mainwindow.py:426 msgid "Ctrl+R" msgstr "Ctrl+R" -#: picard/ui/mainwindow.py:394 +#: picard/ui/mainwindow.py:429 msgid "&Rename Files" msgstr "Omdøb filer" -#: picard/ui/mainwindow.py:399 +#: picard/ui/mainwindow.py:434 msgid "&Move Files" msgstr "Flyt filer" -#: picard/ui/mainwindow.py:404 +#: picard/ui/mainwindow.py:439 msgid "Save &Tags" msgstr "Gem &tags" -#: picard/ui/mainwindow.py:409 +#: picard/ui/mainwindow.py:444 msgid "Tags From &File Names..." msgstr "Tags fra &filnavne..." -#: picard/ui/mainwindow.py:412 -msgid "View &Log..." -msgstr "Vis &log..." - -#: picard/ui/mainwindow.py:415 -msgid "View Status &History..." +#: picard/ui/mainwindow.py:447 +msgid "&Open My Collections in Browser" msgstr "" -#: picard/ui/mainwindow.py:422 -msgid "&Open..." -msgstr "Åben..." - -#: picard/ui/mainwindow.py:423 -msgid "Open the file" -msgstr "Åben filen" - -#: picard/ui/mainwindow.py:426 -msgid "Open &Folder..." -msgstr "Åben mappe..." - -#: picard/ui/mainwindow.py:427 -msgid "Open the containing folder" +#: picard/ui/mainwindow.py:451 +msgid "View Error/Debug &Log" msgstr "" -#: picard/ui/mainwindow.py:448 +#: picard/ui/mainwindow.py:454 +msgid "View Activity &History" +msgstr "" + +#: picard/ui/mainwindow.py:461 +msgid "&Play file" +msgstr "" + +#: picard/ui/mainwindow.py:462 +msgid "Play the file in your default media player" +msgstr "" + +#: picard/ui/mainwindow.py:466 +msgid "Open Containing &Folder" +msgstr "" + +#: picard/ui/mainwindow.py:467 +msgid "Open the containing folder in your file explorer" +msgstr "" + +#: picard/ui/mainwindow.py:492 msgid "&File" msgstr "&Filer" -#: picard/ui/mainwindow.py:456 +#: picard/ui/mainwindow.py:503 msgid "&Edit" msgstr "&Rediger" -#: picard/ui/mainwindow.py:462 +#: picard/ui/mainwindow.py:509 msgid "&View" msgstr "&Vis" -#: picard/ui/mainwindow.py:470 +#: picard/ui/mainwindow.py:515 msgid "&Options" msgstr "&Indstillinger" -#: picard/ui/mainwindow.py:476 +#: picard/ui/mainwindow.py:521 msgid "&Tools" msgstr "Funk&tioner" -#: picard/ui/mainwindow.py:485 picard/ui/util.py:35 +#: picard/ui/mainwindow.py:532 picard/ui/util.py:35 msgid "&Help" msgstr "&Hjælp" -#: picard/ui/mainwindow.py:505 +#: picard/ui/mainwindow.py:553 msgid "Actions" msgstr "" -#: picard/ui/mainwindow.py:608 +#: picard/ui/mainwindow.py:599 +msgid "Track" +msgstr "Nummer" + +#: picard/ui/mainwindow.py:662 msgid "All Supported Formats" msgstr "Alle understøttede formater" -#: picard/ui/mainwindow.py:705 +#: picard/ui/mainwindow.py:695 +#, python-format +msgid "Adding directory: '%(directory)s' ..." +msgstr "" + +#: picard/ui/mainwindow.py:702 +#, python-format +msgid "Adding multiple directories from '%(directory)s' ..." +msgstr "" + +#: picard/ui/mainwindow.py:767 msgid "Configuration Required" msgstr "Opsætning nødvendig" -#: picard/ui/mainwindow.py:706 +#: picard/ui/mainwindow.py:768 msgid "" "Audio fingerprinting is not yet configured. Would you like to configure it " "now?" msgstr "Lydfingeraftryk er ikke sat op endnu. Vil du sætte det op nu?" -#: picard/ui/mainwindow.py:784 picard/ui/mainwindow.py:791 +#: picard/ui/mainwindow.py:848 #, python-format -msgid " (Error: %s)" -msgstr " (Fejl: %s)" +msgid "%(filename)s (error: %(error)s)" +msgstr "" + +#: picard/ui/mainwindow.py:854 +#, python-format +msgid "%(filename)s" +msgstr "" + +#: picard/ui/mainwindow.py:864 +#, python-format +msgid "%(filename)s (%(similarity)d%%) (error: %(error)s)" +msgstr "" + +#: picard/ui/mainwindow.py:871 +#, python-format +msgid "%(filename)s (%(similarity)d%%)" +msgstr "" #: picard/ui/metadatabox.py:82 #, python-format @@ -1102,387 +1028,387 @@ msgid_plural "Use Original Values" msgstr[0] "" msgstr[1] "Brug oprindelig værdi" -#: picard/ui/passworddialog.py:37 +#: picard/ui/passworddialog.py:40 #, python-format msgid "" "The server %s requires you to login. Please enter your username and " "password." msgstr "Serveren %s kræver at du logger ind. Angiv dit brugernavn og din adgangskode." -#: picard/ui/passworddialog.py:75 +#: picard/ui/passworddialog.py:79 #, python-format msgid "" "The proxy %s requires you to login. Please enter your username and password." msgstr "Proxyen %s kræver at du logger ind. Angiv dit brugernavn og din adgangskode." -#: picard/ui/tagsfromfilenames.py:55 picard/ui/tagsfromfilenames.py:100 +#: picard/ui/tagsfromfilenames.py:56 picard/ui/tagsfromfilenames.py:101 msgid "File Name" msgstr "Filnavn" -#: picard/ui/ui_cdlookup.py:66 picard/ui/ui_options_cdlookup.py:55 -#: picard/ui/ui_options_cdlookup_select.py:62 picard/ui/options/cdlookup.py:38 +#: picard/ui/ui_cdlookup.py:53 picard/ui/ui_options_cdlookup.py:42 +#: picard/ui/ui_options_cdlookup_select.py:49 picard/ui/options/cdlookup.py:38 msgid "CD Lookup" msgstr "Cd-opslag" -#: picard/ui/ui_cdlookup.py:67 +#: picard/ui/ui_cdlookup.py:54 msgid "The following releases on MusicBrainz match the CD:" msgstr "Følgende udgivelser fra MusicBrainz matcher cd'en:" -#: picard/ui/ui_cdlookup.py:68 +#: picard/ui/ui_cdlookup.py:55 msgid "OK" msgstr "OK" -#: picard/ui/ui_cdlookup.py:69 +#: picard/ui/ui_cdlookup.py:56 msgid "Lookup manually" msgstr "" -#: picard/ui/ui_cdlookup.py:70 +#: picard/ui/ui_cdlookup.py:57 msgid "Cancel" msgstr "Annuller" -#: picard/ui/ui_edittagdialog.py:101 +#: picard/ui/ui_edittagdialog.py:88 msgid "Edit Tag" msgstr "Rediger tag" -#: picard/ui/ui_edittagdialog.py:102 +#: picard/ui/ui_edittagdialog.py:89 msgid "Edit value" msgstr "Redigér værdi" -#: picard/ui/ui_edittagdialog.py:103 +#: picard/ui/ui_edittagdialog.py:90 msgid "Add value" msgstr "Tilføj værdi" -#: picard/ui/ui_edittagdialog.py:104 +#: picard/ui/ui_edittagdialog.py:91 msgid "Remove value" msgstr "Fjern værdi" -#: picard/ui/ui_infodialog.py:78 +#: picard/ui/ui_infodialog.py:74 msgid "A&rtwork" msgstr "&Omslag" -#: picard/ui/ui_infostatus.py:100 +#: picard/ui/ui_infostatus.py:96 msgid "Form" msgstr "" -#: picard/ui/ui_options.py:51 +#: picard/ui/ui_options.py:38 msgid "Options" msgstr "Indstillinger" -#: picard/ui/ui_options_advanced.py:46 +#: picard/ui/ui_options_advanced.py:42 msgid "Advanced options" msgstr "" -#: picard/ui/ui_options_advanced.py:47 +#: picard/ui/ui_options_advanced.py:43 msgid "Ignore file paths matching the following regular expression:" msgstr "" -#: picard/ui/ui_options_cdlookup.py:56 +#: picard/ui/ui_options_cdlookup.py:43 msgid "CD-ROM device to use for lookups:" msgstr "CD-ROM-drev der skal bruges til opslag:" -#: picard/ui/ui_options_cdlookup_select.py:63 +#: picard/ui/ui_options_cdlookup_select.py:50 msgid "Default CD-ROM drive to use for lookups:" msgstr "CD-ROM-drev der som standard skal bruges til opslag:" -#: picard/ui/ui_options_cover.py:145 +#: picard/ui/ui_options_cover.py:131 msgid "Location" msgstr "Placering" -#: picard/ui/ui_options_cover.py:146 +#: picard/ui/ui_options_cover.py:132 msgid "Embed cover images into tags" msgstr "Indsæt omslag i tags" -#: picard/ui/ui_options_cover.py:147 +#: picard/ui/ui_options_cover.py:133 msgid "Only embed a front image" msgstr "Indsæt kun et frontbillede" -#: picard/ui/ui_options_cover.py:148 +#: picard/ui/ui_options_cover.py:134 msgid "Save cover images as separate files" msgstr "Gem omslag som separate filer" -#: picard/ui/ui_options_cover.py:149 +#: picard/ui/ui_options_cover.py:135 msgid "Use the following file name for images:" msgstr "Brug dette filnavn til billeder:" -#: picard/ui/ui_options_cover.py:150 +#: picard/ui/ui_options_cover.py:136 msgid "Overwrite the file if it already exists" msgstr "Overskriv filen hvis den allerede eksisterer" -#: picard/ui/ui_options_cover.py:151 +#: picard/ui/ui_options_cover.py:137 msgid "Coverart Providers" msgstr "" -#: picard/ui/ui_options_cover.py:152 +#: picard/ui/ui_options_cover.py:138 msgid "Amazon" msgstr "Amazon" -#: picard/ui/ui_options_cover.py:153 picard/ui/ui_options_cover.py:155 +#: picard/ui/ui_options_cover.py:139 picard/ui/ui_options_cover.py:141 msgid "Cover Art Archive" msgstr "Cover Art Archive" -#: picard/ui/ui_options_cover.py:154 +#: picard/ui/ui_options_cover.py:140 msgid "Sites on the whitelist" msgstr "" -#: picard/ui/ui_options_cover.py:156 +#: picard/ui/ui_options_cover.py:142 msgid "Only use images of the following size:" msgstr "Brug kun billeder med den følgende størrelse:" -#: picard/ui/ui_options_cover.py:157 +#: picard/ui/ui_options_cover.py:143 msgid "250 px" msgstr "250 px" -#: picard/ui/ui_options_cover.py:158 +#: picard/ui/ui_options_cover.py:144 msgid "500 px" msgstr "500 px" -#: picard/ui/ui_options_cover.py:159 +#: picard/ui/ui_options_cover.py:145 msgid "Full size" msgstr "Fuld størrelse" -#: picard/ui/ui_options_cover.py:160 +#: picard/ui/ui_options_cover.py:146 msgid "Download only images of the following types:" msgstr "" -#: picard/ui/ui_options_cover.py:161 +#: picard/ui/ui_options_cover.py:147 msgid "Download only approved images" msgstr "" -#: picard/ui/ui_options_cover.py:162 +#: picard/ui/ui_options_cover.py:148 msgid "" "Use the first image type as the filename. This will not change the filename " "of front images." msgstr "Brug den første billedtype til filnavnet. Dette vil ikke ændre filnavnet for frontbilleder." -#: picard/ui/ui_options_fingerprinting.py:83 +#: picard/ui/ui_options_fingerprinting.py:70 msgid "Audio Fingerprinting" msgstr "Lyd-fingeraftryk" -#: picard/ui/ui_options_fingerprinting.py:84 +#: picard/ui/ui_options_fingerprinting.py:71 msgid "Do not use audio fingerprinting" msgstr "Brug ikke lydfingeraftryk" -#: picard/ui/ui_options_fingerprinting.py:85 +#: picard/ui/ui_options_fingerprinting.py:72 msgid "Use AcoustID" msgstr "Brug AcoustID" -#: picard/ui/ui_options_fingerprinting.py:86 +#: picard/ui/ui_options_fingerprinting.py:73 msgid "AcoustID Settings" msgstr "AcoustID-indstillinger" -#: picard/ui/ui_options_fingerprinting.py:87 +#: picard/ui/ui_options_fingerprinting.py:74 msgid "Fingerprint calculator:" msgstr "Fingeraftryksberegner:" -#: picard/ui/ui_options_fingerprinting.py:88 -#: picard/ui/ui_options_interface.py:88 picard/ui/ui_options_renaming.py:138 +#: picard/ui/ui_options_fingerprinting.py:75 +#: picard/ui/ui_options_interface.py:75 picard/ui/ui_options_renaming.py:134 msgid "Browse..." msgstr "Gennemse..." -#: picard/ui/ui_options_fingerprinting.py:89 +#: picard/ui/ui_options_fingerprinting.py:76 msgid "Download..." msgstr "Download..." -#: picard/ui/ui_options_fingerprinting.py:90 +#: picard/ui/ui_options_fingerprinting.py:77 msgid "API key:" msgstr "API-nøgle:" -#: picard/ui/ui_options_fingerprinting.py:91 +#: picard/ui/ui_options_fingerprinting.py:78 msgid "Get API key..." msgstr "Få API-nøgle..." -#: picard/ui/ui_options_folksonomy.py:115 picard/ui/options/folksonomy.py:28 +#: picard/ui/ui_options_folksonomy.py:102 picard/ui/options/folksonomy.py:28 msgid "Folksonomy Tags" msgstr "Folksonomitags" -#: picard/ui/ui_options_folksonomy.py:117 +#: picard/ui/ui_options_folksonomy.py:104 msgid "Only use my tags" msgstr "Brug kun mine tags" -#: picard/ui/ui_options_folksonomy.py:120 +#: picard/ui/ui_options_folksonomy.py:107 msgid "Maximum number of tags:" msgstr "Maksimalt antal tags:" -#: picard/ui/ui_options_general.py:92 +#: picard/ui/ui_options_general.py:88 msgid "MusicBrainz Server" msgstr "MusicBrainz-server" -#: picard/ui/ui_options_general.py:93 picard/ui/ui_options_network.py:123 +#: picard/ui/ui_options_general.py:89 picard/ui/ui_options_network.py:110 msgid "Port:" msgstr "Port:" -#: picard/ui/ui_options_general.py:94 picard/ui/ui_options_network.py:124 +#: picard/ui/ui_options_general.py:90 picard/ui/ui_options_network.py:111 msgid "Server address:" msgstr "Serveradresse:" -#: picard/ui/ui_options_general.py:95 +#: picard/ui/ui_options_general.py:91 msgid "Account Information" msgstr "Kontoinformation" -#: picard/ui/ui_options_general.py:96 picard/ui/ui_options_network.py:121 -#: picard/ui/ui_passworddialog.py:74 +#: picard/ui/ui_options_general.py:92 picard/ui/ui_options_network.py:108 +#: picard/ui/ui_passworddialog.py:70 msgid "Password:" msgstr "Adgangskode:" -#: picard/ui/ui_options_general.py:97 picard/ui/ui_options_network.py:122 -#: picard/ui/ui_passworddialog.py:73 +#: picard/ui/ui_options_general.py:93 picard/ui/ui_options_network.py:109 +#: picard/ui/ui_passworddialog.py:69 msgid "Username:" msgstr "Brugernavn:" -#: picard/ui/ui_options_general.py:98 picard/ui/options/general.py:31 +#: picard/ui/ui_options_general.py:94 picard/ui/options/general.py:31 msgid "General" msgstr "Generelt" -#: picard/ui/ui_options_general.py:99 +#: picard/ui/ui_options_general.py:95 msgid "Automatically scan all new files" msgstr "Skan automatisk alle nye filer" -#: picard/ui/ui_options_general.py:100 +#: picard/ui/ui_options_general.py:96 msgid "Ignore MBIDs when loading new files" msgstr "Ignorer MBID'er ved indlæsning af nye filer" -#: picard/ui/ui_options_interface.py:82 +#: picard/ui/ui_options_interface.py:69 msgid "Miscellaneous" msgstr "Diverse" -#: picard/ui/ui_options_interface.py:83 +#: picard/ui/ui_options_interface.py:70 msgid "Show text labels under icons" msgstr "Vis tekstmærkater under ikoner" -#: picard/ui/ui_options_interface.py:84 +#: picard/ui/ui_options_interface.py:71 msgid "Allow selection of multiple directories" msgstr "Tillad markering af flere mapper" -#: picard/ui/ui_options_interface.py:85 +#: picard/ui/ui_options_interface.py:72 msgid "Use advanced query syntax" msgstr "Brug avanceret forespørgselssyntaks" -#: picard/ui/ui_options_interface.py:86 +#: picard/ui/ui_options_interface.py:73 msgid "Show a quit confirmation dialog for unsaved changes" msgstr "Vis et vindue til bekræftelse af afslutning hvis der er ugemte ændringer" -#: picard/ui/ui_options_interface.py:87 +#: picard/ui/ui_options_interface.py:74 msgid "Begin browsing in the following directory:" msgstr "" -#: picard/ui/ui_options_interface.py:89 +#: picard/ui/ui_options_interface.py:76 msgid "User interface language:" msgstr "Sprog for brugerfladen:" -#: picard/ui/ui_options_matching.py:86 +#: picard/ui/ui_options_matching.py:73 msgid "Thresholds" msgstr "Grænser" -#: picard/ui/ui_options_matching.py:87 +#: picard/ui/ui_options_matching.py:74 msgid "Minimal similarity for matching files to tracks:" msgstr "Mindste lighed for matchning af filer til spor:" -#: picard/ui/ui_options_matching.py:91 +#: picard/ui/ui_options_matching.py:78 msgid "Minimal similarity for file lookups:" msgstr "Mindste lighed for filopslag:" -#: picard/ui/ui_options_matching.py:92 +#: picard/ui/ui_options_matching.py:79 msgid "Minimal similarity for cluster lookups:" msgstr "Mindste lighed for klyngeopslag:" -#: picard/ui/ui_options_metadata.py:114 picard/ui/options/metadata.py:29 +#: picard/ui/ui_options_metadata.py:101 picard/ui/options/metadata.py:29 msgid "Metadata" msgstr "Metadata" -#: picard/ui/ui_options_metadata.py:115 +#: picard/ui/ui_options_metadata.py:102 msgid "Translate artist names to this locale where possible:" msgstr "Oversæt kunstnernavne til denne lokalitet hvor det er muligt:" -#: picard/ui/ui_options_metadata.py:116 +#: picard/ui/ui_options_metadata.py:103 msgid "Use standardized artist names" msgstr "Brug standardiserede kunstnernavne" -#: picard/ui/ui_options_metadata.py:117 +#: picard/ui/ui_options_metadata.py:104 msgid "Convert Unicode punctuation characters to ASCII" msgstr "Omdan Unicode-tegnsætning til ASCII" -#: picard/ui/ui_options_metadata.py:118 +#: picard/ui/ui_options_metadata.py:105 msgid "Use release relationships" msgstr "Brug udgivelsessammenhænge" -#: picard/ui/ui_options_metadata.py:119 +#: picard/ui/ui_options_metadata.py:106 msgid "Use track relationships" msgstr "Brug skæringsforbindelser" -#: picard/ui/ui_options_metadata.py:120 +#: picard/ui/ui_options_metadata.py:107 msgid "Use folksonomy tags as genre" msgstr "Brug folksonomitags som genre" -#: picard/ui/ui_options_metadata.py:121 +#: picard/ui/ui_options_metadata.py:108 msgid "Custom Fields" msgstr "Brugerdefinerede felter" -#: picard/ui/ui_options_metadata.py:122 +#: picard/ui/ui_options_metadata.py:109 msgid "Various artists:" msgstr "Diverse kunstnere:" -#: picard/ui/ui_options_metadata.py:123 +#: picard/ui/ui_options_metadata.py:110 msgid "Non-album tracks:" msgstr "Skæringer uden album:" -#: picard/ui/ui_options_metadata.py:124 picard/ui/ui_options_metadata.py:125 -#: picard/ui/ui_options_renaming.py:147 +#: picard/ui/ui_options_metadata.py:111 picard/ui/ui_options_metadata.py:112 +#: picard/ui/ui_options_renaming.py:143 msgid "Default" msgstr "Standard" -#: picard/ui/ui_options_network.py:120 +#: picard/ui/ui_options_network.py:107 msgid "Web Proxy" msgstr "Internetproxy" -#: picard/ui/ui_options_network.py:125 +#: picard/ui/ui_options_network.py:112 msgid "Browser Integration" msgstr "" -#: picard/ui/ui_options_network.py:126 +#: picard/ui/ui_options_network.py:113 msgid "Default listening port:" msgstr "" -#: picard/ui/ui_options_network.py:127 +#: picard/ui/ui_options_network.py:114 msgid "Listen only on localhost" msgstr "" -#: picard/ui/ui_options_plugins.py:131 picard/ui/options/plugins.py:38 +#: picard/ui/ui_options_plugins.py:127 picard/ui/options/plugins.py:38 msgid "Plugins" msgstr "Udvidelsesmoduler" -#: picard/ui/ui_options_plugins.py:132 picard/ui/options/plugins.py:122 +#: picard/ui/ui_options_plugins.py:128 picard/ui/options/plugins.py:122 msgid "Name" msgstr "Navn" -#: picard/ui/ui_options_plugins.py:133 picard/util/tags.py:39 +#: picard/ui/ui_options_plugins.py:129 msgid "Version" msgstr "Version" -#: picard/ui/ui_options_plugins.py:134 picard/ui/options/plugins.py:125 +#: picard/ui/ui_options_plugins.py:130 picard/ui/options/plugins.py:125 msgid "Author" msgstr "Forfatter" -#: picard/ui/ui_options_plugins.py:135 +#: picard/ui/ui_options_plugins.py:131 msgid "Install plugin..." msgstr "Installér modul..." -#: picard/ui/ui_options_plugins.py:136 +#: picard/ui/ui_options_plugins.py:132 msgid "Open plugin folder" msgstr "Åben modulmappe" -#: picard/ui/ui_options_plugins.py:137 +#: picard/ui/ui_options_plugins.py:133 msgid "Download plugins" msgstr "Download moduler" -#: picard/ui/ui_options_plugins.py:138 +#: picard/ui/ui_options_plugins.py:134 msgid "Details" msgstr "Detaljer" -#: picard/ui/ui_options_ratings.py:53 +#: picard/ui/ui_options_ratings.py:49 msgid "Enable track ratings" msgstr "Aktiver skæringsvurderinger" -#: picard/ui/ui_options_ratings.py:54 +#: picard/ui/ui_options_ratings.py:50 msgid "" "Picard saves the ratings together with an e-mail address identifying the " "user who did the rating. That way different ratings for different users can " @@ -1490,207 +1416,167 @@ msgid "" "your ratings." msgstr "Picard gemmer vurderingerne sammen med en e-mail-adresse til at identificere den bruger der foretog vurderingen. På den måde kan forskellige vurderinger fra forskellige brugere blive gemt i filerne. Indtast den e-mail du vil bruge til at gemme dine vurderinger." -#: picard/ui/ui_options_ratings.py:55 +#: picard/ui/ui_options_ratings.py:51 msgid "E-mail:" msgstr "E-mail:" -#: picard/ui/ui_options_ratings.py:56 +#: picard/ui/ui_options_ratings.py:52 msgid "Submit ratings to MusicBrainz" msgstr "Send vurderinger til MusicBrainz" -#: picard/ui/ui_options_releases.py:215 +#: picard/ui/ui_options_releases.py:104 msgid "Preferred release types" msgstr "Foretrukne udgivelsestyper" -#: picard/ui/ui_options_releases.py:217 -msgid "Single" -msgstr "Single" - -#: picard/ui/ui_options_releases.py:218 -msgid "EP" -msgstr "EP" - -#: picard/ui/ui_options_releases.py:219 -msgid "Compilation" -msgstr "Opsamling" - -#: picard/ui/ui_options_releases.py:220 -msgid "Soundtrack" -msgstr "Lydspor" - -#: picard/ui/ui_options_releases.py:221 -msgid "Spokenword" -msgstr "Spokenword" - -#: picard/ui/ui_options_releases.py:222 -msgid "Interview" -msgstr "Interview" - -#: picard/ui/ui_options_releases.py:223 -msgid "Audiobook" -msgstr "Lydbog" - -#: picard/ui/ui_options_releases.py:224 -msgid "Live" -msgstr "Live" - -#: picard/ui/ui_options_releases.py:225 -msgid "Remix" -msgstr "Remix" - -#: picard/ui/ui_options_releases.py:227 -msgid "Reset all" -msgstr "Nulstil alle" - -#: picard/ui/ui_options_releases.py:228 +#: picard/ui/ui_options_releases.py:105 msgid "Preferred release countries" msgstr "Foretrukne udgivelseslande" -#: picard/ui/ui_options_releases.py:229 picard/ui/ui_options_releases.py:232 +#: picard/ui/ui_options_releases.py:106 picard/ui/ui_options_releases.py:109 msgid ">" msgstr ">" -#: picard/ui/ui_options_releases.py:230 picard/ui/ui_options_releases.py:233 +#: picard/ui/ui_options_releases.py:107 picard/ui/ui_options_releases.py:110 msgid "<" msgstr "<" -#: picard/ui/ui_options_releases.py:231 +#: picard/ui/ui_options_releases.py:108 msgid "Preferred release formats" msgstr "Foretrukne udgivelsesformater" -#: picard/ui/ui_options_renaming.py:134 +#: picard/ui/ui_options_renaming.py:130 msgid "Rename files when saving" msgstr "Omdøb filer når de gemmes" -#: picard/ui/ui_options_renaming.py:135 +#: picard/ui/ui_options_renaming.py:131 msgid "Replace non-ASCII characters" msgstr "Erstat tegn der ikke er ASCII-tegn" -#: picard/ui/ui_options_renaming.py:136 +#: picard/ui/ui_options_renaming.py:132 msgid "Windows compatibility" msgstr "Windows-kompatibilitet" -#: picard/ui/ui_options_renaming.py:137 +#: picard/ui/ui_options_renaming.py:133 msgid "Move files to this directory when saving:" msgstr "Flyt filer til denne mappe når de gemmes:" -#: picard/ui/ui_options_renaming.py:139 +#: picard/ui/ui_options_renaming.py:135 msgid "Delete empty directories" msgstr "Slet tomme mapper" -#: picard/ui/ui_options_renaming.py:140 +#: picard/ui/ui_options_renaming.py:136 msgid "Move additional files:" msgstr "Flyt yderligere filer:" -#: picard/ui/ui_options_renaming.py:141 +#: picard/ui/ui_options_renaming.py:137 msgid "Name files like this" msgstr "Navngiv filer som så" -#: picard/ui/ui_options_renaming.py:148 +#: picard/ui/ui_options_renaming.py:144 msgid "Examples" msgstr "Eksempler" -#: picard/ui/ui_options_script.py:49 +#: picard/ui/ui_options_script.py:45 msgid "Tagger Script" msgstr "Taggerskript" -#: picard/ui/ui_options_tags.py:165 +#: picard/ui/ui_options_tags.py:152 msgid "Write tags to files" msgstr "Skriv tags til filer" -#: picard/ui/ui_options_tags.py:166 +#: picard/ui/ui_options_tags.py:153 msgid "Preserve timestamps of tagged files" msgstr "Bevar tidsstempel for taggede filer" -#: picard/ui/ui_options_tags.py:167 +#: picard/ui/ui_options_tags.py:154 msgid "Before Tagging" msgstr "" -#: picard/ui/ui_options_tags.py:168 +#: picard/ui/ui_options_tags.py:155 msgid "Clear existing tags" msgstr "Ryd eksisterende tags" -#: picard/ui/ui_options_tags.py:169 +#: picard/ui/ui_options_tags.py:156 msgid "Remove ID3 tags from FLAC files" msgstr "Fjern ID3-tags fra FLAC-filer" -#: picard/ui/ui_options_tags.py:170 +#: picard/ui/ui_options_tags.py:157 msgid "Remove APEv2 tags from MP3 files" msgstr "Fjern APEv2-tags fra MP3-filer" -#: picard/ui/ui_options_tags.py:171 +#: picard/ui/ui_options_tags.py:158 msgid "" "Preserve these tags from being cleared or overwritten with MusicBrainz data:" msgstr "Beskyt disse tags mod at blive ryddet eller overskrevet med MusicBrainz-data:" -#: picard/ui/ui_options_tags.py:172 +#: picard/ui/ui_options_tags.py:159 msgid "Tags are separated by commas, and are case-sensitive." msgstr "Tags er adskilt af kommaer og versalfølsomme" -#: picard/ui/ui_options_tags.py:173 +#: picard/ui/ui_options_tags.py:160 msgid "Tag Compatibility" msgstr "" -#: picard/ui/ui_options_tags.py:174 +#: picard/ui/ui_options_tags.py:161 msgid "ID3v2 Version" msgstr "" -#: picard/ui/ui_options_tags.py:175 +#: picard/ui/ui_options_tags.py:162 msgid "2.4" msgstr "2.4" -#: picard/ui/ui_options_tags.py:176 +#: picard/ui/ui_options_tags.py:163 msgid "2.3" msgstr "2.3" -#: picard/ui/ui_options_tags.py:177 +#: picard/ui/ui_options_tags.py:164 msgid "ID3v2 Text Encoding" msgstr "" -#: picard/ui/ui_options_tags.py:178 +#: picard/ui/ui_options_tags.py:165 msgid "UTF-8" msgstr "UTF-8" -#: picard/ui/ui_options_tags.py:179 +#: picard/ui/ui_options_tags.py:166 msgid "UTF-16" msgstr "UTF-16" -#: picard/ui/ui_options_tags.py:180 +#: picard/ui/ui_options_tags.py:167 msgid "ISO-8859-1" msgstr "ISO-8859-1" -#: picard/ui/ui_options_tags.py:181 +#: picard/ui/ui_options_tags.py:168 msgid "Join multiple ID3v2.3 tags with:" msgstr "Flet flere ID3v2.3-tags sammen med:" -#: picard/ui/ui_options_tags.py:182 +#: picard/ui/ui_options_tags.py:169 msgid "" "

Default is '/' to maintain compatibility with previous" " Picard releases.

New alternatives are ';_' or '_/_' or type your own." "

" msgstr "" -#: picard/ui/ui_options_tags.py:183 +#: picard/ui/ui_options_tags.py:170 msgid "Also include ID3v1 tags in the files" msgstr "Inkluder også ID3v1-tags i filerne" -#: picard/ui/ui_passworddialog.py:72 +#: picard/ui/ui_passworddialog.py:68 msgid "Authentication required" msgstr "Autentifikation påkrævet" -#: picard/ui/ui_passworddialog.py:75 +#: picard/ui/ui_passworddialog.py:71 msgid "Save username and password" msgstr "Gem brugernavn og adgangskode" -#: picard/ui/ui_tagsfromfilenames.py:54 +#: picard/ui/ui_tagsfromfilenames.py:50 msgid "Convert File Names to Tags" msgstr "Omskriv filnavne til tags" -#: picard/ui/ui_tagsfromfilenames.py:55 +#: picard/ui/ui_tagsfromfilenames.py:51 msgid "Replace underscores with spaces" msgstr "Erstat understreger med mellemrum" -#: picard/ui/ui_tagsfromfilenames.py:56 +#: picard/ui/ui_tagsfromfilenames.py:52 msgid "&Preview" msgstr "&Forhåndsvisning" @@ -1746,7 +1632,11 @@ msgstr "Avanceret" msgid "Regex Error" msgstr "" -#: picard/ui/options/cover.py:63 +#: picard/ui/options/cover.py:44 +msgid "title" +msgstr "" + +#: picard/ui/options/cover.py:68 msgid "Cover Art" msgstr "Omslag" @@ -1762,11 +1652,11 @@ msgstr "Brugergrænseflade" msgid "System default" msgstr "Systemstandard" -#: picard/ui/options/interface.py:96 +#: picard/ui/options/interface.py:98 msgid "Language changed" msgstr "Sprog ændret" -#: picard/ui/options/interface.py:96 +#: picard/ui/options/interface.py:99 msgid "" "You have changed the interface language. You have to restart Picard in order" " for the change to take effect." @@ -1788,31 +1678,35 @@ msgstr "Fil" msgid "Ratings" msgstr "Vurderinger" -#: picard/ui/options/releases.py:33 +#: picard/ui/options/releases.py:87 msgid "Preferred Releases" msgstr "Foretrukne udgivelser" +#: picard/ui/options/releases.py:121 +msgid "Reset all" +msgstr "Nulstil alle" + #: picard/ui/options/renaming.py:37 msgid "File Naming" msgstr "" -#: picard/ui/options/renaming.py:184 +#: picard/ui/options/renaming.py:187 msgid "Error" msgstr "Fejl" -#: picard/ui/options/renaming.py:184 +#: picard/ui/options/renaming.py:187 msgid "The location to move files to must not be empty." msgstr "Placeringen nye filer flyttes til må ikke være tom." -#: picard/ui/options/renaming.py:194 +#: picard/ui/options/renaming.py:197 msgid "The file naming format must not be empty." msgstr "Filnavngivningsformatet må ikke være tomt." -#: picard/ui/options/scripting.py:63 +#: picard/ui/options/scripting.py:99 msgid "Scripting" msgstr "Skriptning" -#: picard/ui/options/scripting.py:95 +#: picard/ui/options/scripting.py:131 msgid "Script Error" msgstr "Skriptfejl" @@ -1932,199 +1826,199 @@ msgstr "ASIN" msgid "Grouping" msgstr "Gruppering" -#: picard/util/tags.py:40 +#: picard/util/tags.py:39 msgid "ISRC" msgstr "ISRC" -#: picard/util/tags.py:41 +#: picard/util/tags.py:40 msgid "Mood" msgstr "Stemning" -#: picard/util/tags.py:42 +#: picard/util/tags.py:41 msgid "BPM" msgstr "BPM" -#: picard/util/tags.py:43 +#: picard/util/tags.py:42 msgid "Copyright" msgstr "Ophavsret" -#: picard/util/tags.py:44 +#: picard/util/tags.py:43 msgid "License" msgstr "Licens" -#: picard/util/tags.py:45 +#: picard/util/tags.py:44 msgid "Composer" msgstr "Komponist" -#: picard/util/tags.py:46 +#: picard/util/tags.py:45 msgid "Writer" msgstr "" -#: picard/util/tags.py:47 +#: picard/util/tags.py:46 msgid "Conductor" msgstr "Dirigent" -#: picard/util/tags.py:48 +#: picard/util/tags.py:47 msgid "Lyricist" msgstr "Tekstforfatter" -#: picard/util/tags.py:49 +#: picard/util/tags.py:48 msgid "Arranger" msgstr "Arrangør" -#: picard/util/tags.py:50 +#: picard/util/tags.py:49 msgid "Producer" msgstr "Producer" -#: picard/util/tags.py:51 +#: picard/util/tags.py:50 msgid "Engineer" msgstr "Tekniker" -#: picard/util/tags.py:52 +#: picard/util/tags.py:51 msgid "Subtitle" msgstr "Undertitel" -#: picard/util/tags.py:53 +#: picard/util/tags.py:52 msgid "Disc Subtitle" msgstr "Diskundertitel" -#: picard/util/tags.py:54 +#: picard/util/tags.py:53 msgid "Remixer" msgstr "Remixer" -#: picard/util/tags.py:55 +#: picard/util/tags.py:54 msgid "MusicBrainz Recording Id" msgstr "MusicBrainz optagelses-id" -#: picard/util/tags.py:56 +#: picard/util/tags.py:55 msgid "MusicBrainz Track Id" msgstr "" -#: picard/util/tags.py:57 +#: picard/util/tags.py:56 msgid "MusicBrainz Release Id" msgstr "MusicBrainz udgivelses-id" -#: picard/util/tags.py:58 +#: picard/util/tags.py:57 msgid "MusicBrainz Artist Id" msgstr "MusicBrainz kunstner-id" -#: picard/util/tags.py:59 +#: picard/util/tags.py:58 msgid "MusicBrainz Release Artist Id" msgstr "MusicBrainz udgivelseskunster-id" -#: picard/util/tags.py:60 +#: picard/util/tags.py:59 msgid "MusicBrainz Work Id" msgstr "MusicBranz værk-id" -#: picard/util/tags.py:61 +#: picard/util/tags.py:60 msgid "MusicBrainz Release Group Id" msgstr "MusicBrainz udgivelsesgruppe-id" -#: picard/util/tags.py:62 +#: picard/util/tags.py:61 msgid "MusicBrainz Disc Id" msgstr "MusicBrainz disk-id" -#: picard/util/tags.py:63 -msgid "MusicBrainz Sort Name" -msgstr "" - -#: picard/util/tags.py:64 +#: picard/util/tags.py:62 msgid "MusicIP PUID" msgstr "MusicIP PUID" -#: picard/util/tags.py:65 +#: picard/util/tags.py:63 msgid "MusicIP Fingerprint" msgstr "MusicIP-fingeraftryk" -#: picard/util/tags.py:66 +#: picard/util/tags.py:64 msgid "AcoustID" msgstr "AcoustID" -#: picard/util/tags.py:67 +#: picard/util/tags.py:65 msgid "AcoustID Fingerprint" msgstr "AcoustID-fingeraftryk" -#: picard/util/tags.py:68 +#: picard/util/tags.py:66 msgid "Disc Id" msgstr "Disk-id" -#: picard/util/tags.py:69 -msgid "Website" -msgstr "Websted" +#: picard/util/tags.py:67 +msgid "Artist Website" +msgstr "" -#: picard/util/tags.py:70 +#: picard/util/tags.py:68 msgid "Compilation (iTunes)" msgstr "" -#: picard/util/tags.py:71 +#: picard/util/tags.py:69 msgid "Comment" msgstr "Kommentar" -#: picard/util/tags.py:72 +#: picard/util/tags.py:70 msgid "Genre" msgstr "Genre" -#: picard/util/tags.py:73 +#: picard/util/tags.py:71 msgid "Encoded By" msgstr "Kodet af" -#: picard/util/tags.py:74 +#: picard/util/tags.py:72 +msgid "Encoder Settings" +msgstr "" + +#: picard/util/tags.py:73 msgid "Performer" msgstr "Optræder" -#: picard/util/tags.py:75 +#: picard/util/tags.py:74 msgid "Release Type" msgstr "Udgivelsestype" -#: picard/util/tags.py:76 +#: picard/util/tags.py:75 msgid "Release Status" msgstr "Udgivelsesstatus" -#: picard/util/tags.py:77 +#: picard/util/tags.py:76 msgid "Release Country" msgstr "Udgivelsesland" -#: picard/util/tags.py:78 +#: picard/util/tags.py:77 msgid "Record Label" msgstr "Pladeselskab" -#: picard/util/tags.py:80 +#: picard/util/tags.py:79 msgid "Catalog Number" msgstr "Katalognummer" -#: picard/util/tags.py:82 +#: picard/util/tags.py:80 msgid "DJ-Mixer" msgstr "DJ-Mixer" -#: picard/util/tags.py:83 +#: picard/util/tags.py:81 msgid "Media" msgstr "Medie" -#: picard/util/tags.py:84 +#: picard/util/tags.py:82 msgid "Lyrics" msgstr "Sangtekst" -#: picard/util/tags.py:85 +#: picard/util/tags.py:83 msgid "Mixer" msgstr "Mixer" -#: picard/util/tags.py:86 +#: picard/util/tags.py:84 msgid "Language" msgstr "Sprog" -#: picard/util/tags.py:87 +#: picard/util/tags.py:85 msgid "Script" msgstr "Skriftsystem" -#: picard/util/tags.py:89 +#: picard/util/tags.py:87 msgid "Rating" msgstr "Vurdering" -#: picard/util/tags.py:90 +#: picard/util/tags.py:88 msgid "Artists" msgstr "" -#: picard/util/tags.py:91 +#: picard/util/tags.py:89 msgid "Work" msgstr "" diff --git a/po/de.po b/po/de.po index 85d5bdba5..3edf2caf1 100644 --- a/po/de.po +++ b/po/de.po @@ -3,6 +3,7 @@ # This file is distributed under the same license as the picard project. # # Translators: +# nikki, 2014 # nikki2 , 2012 # Björn Krombholz , 2006 # nikki, 2013 @@ -16,8 +17,8 @@ msgid "" msgstr "" "Project-Id-Version: MusicBrainz\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2014-03-20 11:12+0100\n" -"PO-Revision-Date: 2014-03-21 08:44+0000\n" +"POT-Creation-Date: 2014-05-03 17:28+0200\n" +"PO-Revision-Date: 2014-05-04 08:44+0000\n" "Last-Translator: nikki\n" "Language-Team: German (http://www.transifex.com/projects/p/musicbrainz/language/de/)\n" "MIME-Version: 1.0\n" @@ -27,6 +28,10 @@ msgstr "" "Language: de\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" +#: contrib/plugins/albumartist_website.py:3 +msgid "Album Artist Website" +msgstr "" + #: contrib/plugins/no_release.py:50 msgid "Enable plugin for all releases by default" msgstr "Plugin standardmäßig für alle Veröffentlichungen einschalten" @@ -39,63 +44,55 @@ msgstr "Zu entfernende Tags (kommasepariert)" msgid "Remove specific release information..." msgstr "Spezifische Veröffentlichungsinformation entfernen" -#: contrib/plugins/open_in_gui.py:32 -msgid "Open Error" -msgstr "Offener Fehler" +#: contrib/plugins/standardise_performers.py:3 +msgid "Standardise Performers" +msgstr "" -#: contrib/plugins/open_in_gui.py:32 -#, python-format -msgid "" -"Error while opening file:\n" -"\n" -"%s" -msgstr "Fehler beim Öffnen der Datei:\n\n%s" - -#: contrib/plugins/lastfm/ui_options_lastfm.py:117 +#: contrib/plugins/lastfm/ui_options_lastfm.py:99 msgid "Last.fm" msgstr "Last.fm" -#: contrib/plugins/lastfm/ui_options_lastfm.py:118 +#: contrib/plugins/lastfm/ui_options_lastfm.py:100 msgid "Use track tags" msgstr "Titeltags benutzen" -#: contrib/plugins/lastfm/ui_options_lastfm.py:119 +#: contrib/plugins/lastfm/ui_options_lastfm.py:101 msgid "Use artist tags" msgstr "Künstlertags benutzen" -#: contrib/plugins/lastfm/ui_options_lastfm.py:120 +#: contrib/plugins/lastfm/ui_options_lastfm.py:102 #: picard/ui/options/tags.py:30 msgid "Tags" msgstr "Tags" -#: contrib/plugins/lastfm/ui_options_lastfm.py:121 -#: picard/ui/ui_options_folksonomy.py:116 +#: contrib/plugins/lastfm/ui_options_lastfm.py:103 +#: picard/ui/ui_options_folksonomy.py:103 msgid "Ignore tags:" msgstr "Zu ignorierende Tags:" -#: contrib/plugins/lastfm/ui_options_lastfm.py:122 -#: picard/ui/ui_options_folksonomy.py:121 +#: contrib/plugins/lastfm/ui_options_lastfm.py:104 +#: picard/ui/ui_options_folksonomy.py:108 msgid "Join multiple tags with:" msgstr "Mehrere Tags verbinden mit:" -#: contrib/plugins/lastfm/ui_options_lastfm.py:123 -#: picard/ui/ui_options_folksonomy.py:122 +#: contrib/plugins/lastfm/ui_options_lastfm.py:105 +#: picard/ui/ui_options_folksonomy.py:109 msgid " / " msgstr " / " -#: contrib/plugins/lastfm/ui_options_lastfm.py:124 -#: picard/ui/ui_options_folksonomy.py:123 +#: contrib/plugins/lastfm/ui_options_lastfm.py:106 +#: picard/ui/ui_options_folksonomy.py:110 msgid ", " msgstr ", " -#: contrib/plugins/lastfm/ui_options_lastfm.py:125 -#: picard/ui/ui_options_folksonomy.py:118 +#: contrib/plugins/lastfm/ui_options_lastfm.py:107 +#: picard/ui/ui_options_folksonomy.py:105 msgid "Minimal tag usage:" msgstr "Mindestens zu verwendende Tags:" -#: contrib/plugins/lastfm/ui_options_lastfm.py:126 -#: picard/ui/ui_options_folksonomy.py:119 picard/ui/ui_options_matching.py:88 -#: picard/ui/ui_options_matching.py:89 picard/ui/ui_options_matching.py:90 +#: contrib/plugins/lastfm/ui_options_lastfm.py:108 +#: picard/ui/ui_options_folksonomy.py:106 picard/ui/ui_options_matching.py:75 +#: picard/ui/ui_options_matching.py:76 picard/ui/ui_options_matching.py:77 msgid " %" msgstr " %" @@ -103,420 +100,307 @@ msgstr " %" msgid "Calculate replay &gain..." msgstr "Replay &Gain berechnen …" -#: contrib/plugins/replaygain/__init__.py:66 +#: contrib/plugins/replaygain/__init__.py:67 #, python-format -msgid "Calculating replay gain for \"%s\"..." -msgstr "Berechne Replay Gain für „%s“ …" +msgid "Calculating replay gain for \"%(filename)s\"..." +msgstr "" -#: contrib/plugins/replaygain/__init__.py:71 +#: contrib/plugins/replaygain/__init__.py:75 #, python-format -msgid "Replay gain for \"%s\" successfully calculated." -msgstr "Replay Gain für „%s“ erfolgreich berechnet." +msgid "Replay gain for \"%(filename)s\" successfully calculated." +msgstr "" -#: contrib/plugins/replaygain/__init__.py:73 +#: contrib/plugins/replaygain/__init__.py:80 #, python-format -msgid "Could not calculate replay gain for \"%s\"." -msgstr "Konnte Replay Gain für „%s“ nicht berechnen." +msgid "Could not calculate replay gain for \"%(filename)s\"." +msgstr "" -#: contrib/plugins/replaygain/__init__.py:76 +#: contrib/plugins/replaygain/__init__.py:85 msgid "Calculate album &gain..." msgstr "Album &Gain berechnen …" -#: contrib/plugins/replaygain/__init__.py:103 -#: contrib/plugins/replaygain/__init__.py:111 +#: contrib/plugins/replaygain/__init__.py:113 +#: contrib/plugins/replaygain/__init__.py:124 #, python-format -msgid "Calculating album gain for \"%s\"..." -msgstr "Berechne Album Gain für „%s“ …" - -#: contrib/plugins/replaygain/__init__.py:119 -#, python-format -msgid "Album gain for \"%s\" successfully calculated." -msgstr "Album Gain für „%s“ erfolgreich berechnet." - -#: contrib/plugins/replaygain/__init__.py:121 -#, python-format -msgid "Could not calculate album gain for \"%s\"." -msgstr "Konnte Album Gain für „%s“ nicht berechnen." - -#: picard/acoustid.py:102 -#, python-format -msgid "AcoustID lookup network error for '%s'!" +msgid "Calculating album gain for \"%(album)s\"..." msgstr "" -#: picard/acoustid.py:117 +#: contrib/plugins/replaygain/__init__.py:135 #, python-format -msgid "AcoustID lookup failed for '%s'!" +msgid "Album gain for \"%(album)s\" successfully calculated." msgstr "" -#: picard/acoustid.py:128 +#: contrib/plugins/replaygain/__init__.py:140 #, python-format -msgid "Acoustid lookup returned no result for file '%s'" +msgid "Could not calculate album gain for \"%(album)s\"." msgstr "" -#: picard/acoustid.py:132 -#, python-format -msgid "Looking up the fingerprint for file %s..." -msgstr "Frage Fingerabdruck der Datei %s ab …" - -#: picard/acoustidmanager.py:78 -msgid "Submitting AcoustIDs..." -msgstr "Übermittle AcoustIDs …" - -#: picard/acoustidmanager.py:83 -#, python-format -msgid "AcoustID submission failed with error '%s'" +#: contrib/plugins/replaygain/ui_options_replaygain.py:59 +msgid "Replay Gain" msgstr "" -#: picard/acoustidmanager.py:85 +#: contrib/plugins/replaygain/ui_options_replaygain.py:60 +msgid "Path to VorbisGain:" +msgstr "" + +#: contrib/plugins/replaygain/ui_options_replaygain.py:61 +msgid "Path to MP3Gain:" +msgstr "" + +#: contrib/plugins/replaygain/ui_options_replaygain.py:62 +msgid "Path to metaflac:" +msgstr "" + +#: contrib/plugins/replaygain/ui_options_replaygain.py:63 +msgid "Path to wvgain:" +msgstr "" + +#: contrib/plugins/viewvariables/__init__.py:42 +#, python-format +msgid "File: %s" +msgstr "" + +#: contrib/plugins/viewvariables/__init__.py:47 +#, python-format +msgid "Track: %s %s " +msgstr "" + +#: contrib/plugins/viewvariables/__init__.py:49 +msgid "Variables" +msgstr "" + +#: contrib/plugins/viewvariables/__init__.py:69 +msgid "File variables" +msgstr "" + +#: contrib/plugins/viewvariables/__init__.py:74 +msgid "Hidden variables" +msgstr "" + +#: contrib/plugins/viewvariables/__init__.py:79 +msgid "Tag variables" +msgstr "" + +#: contrib/plugins/viewvariables/ui_variables_dialog.py:73 +msgid "Variable" +msgstr "" + +#: contrib/plugins/viewvariables/ui_variables_dialog.py:75 +msgid "Value" +msgstr "" + +#: picard/acoustid.py:109 +#, python-format +msgid "AcoustID lookup network error for '%(filename)s'!" +msgstr "" + +#: picard/acoustid.py:133 +#, python-format +msgid "AcoustID lookup failed for '%(filename)s'!" +msgstr "" + +#: picard/acoustid.py:155 +#, python-format +msgid "AcoustID lookup returned no result for file '%(filename)s'" +msgstr "" + +#: picard/acoustid.py:166 +#, python-format +msgid "Looking up the fingerprint for file '%(filename)s' ..." +msgstr "" + +#: picard/acoustidmanager.py:80 +msgid "Submitting AcoustIDs ..." +msgstr "" + +#: picard/acoustidmanager.py:94 +#, python-format +msgid "AcoustID submission failed with error '%(error)s'" +msgstr "" + +#: picard/acoustidmanager.py:102 msgid "AcoustIDs successfully submitted." msgstr "" -#: picard/album.py:64 picard/cluster.py:234 +#: picard/album.py:65 picard/cluster.py:255 msgid "Unmatched Files" msgstr "Nicht zugeordnete Dateien" -#: picard/album.py:187 +#: picard/album.py:188 #, python-format msgid "[could not load album %s]" msgstr "[konnte Album %s nicht laden]" -#: picard/album.py:272 +#: picard/album.py:277 #, python-format -msgid "Album %s loaded" -msgstr "Album %s geladen" +msgid "Album %(id)s loaded: %(artist)s - %(album)s" +msgstr "" -#: picard/album.py:288 +#: picard/album.py:294 +#, python-format +msgid "Loading album %(id)s ..." +msgstr "" + +#: picard/album.py:303 msgid "[loading album information]" msgstr "[lade Albuminformationen]" -#: picard/album.py:463 +#: picard/album.py:478 #, python-format msgid "; %i image" msgid_plural "; %i images" msgstr[0] "; %i Bild" msgstr[1] "; %i Bilder" -#: picard/cluster.py:150 picard/cluster.py:159 +#: picard/cluster.py:155 picard/cluster.py:168 #, python-format -msgid "No matching releases for cluster %s" -msgstr "Keine passenden Veröffentlichungen für Gruppierung %s" +msgid "No matching releases for cluster %(album)s" +msgstr "" -#: picard/cluster.py:161 +#: picard/cluster.py:174 #, python-format -msgid "Cluster %s identified!" -msgstr "Gruppierung %s identifiziert!" +msgid "Cluster %(album)s identified!" +msgstr "" -#: picard/cluster.py:168 +#: picard/cluster.py:185 #, python-format -msgid "Looking up the metadata for cluster %s..." -msgstr "Frage Metadaten für Gruppierung %s ab …" +msgid "Looking up the metadata for cluster %(album)s..." +msgstr "" -#: picard/collection.py:60 +#: picard/collection.py:64 #, python-format -msgid "Added %i release to collection \"%s\"" -msgid_plural "Added %i releases to collection \"%s\"" -msgstr[0] "%i Veröffentlichung zu Sammlung „%s“ hinzugefügt" -msgstr[1] "%i Veröffentlichungen zu Sammlung „%s“ hinzugefügt" +msgid "Added %(count)i release to collection \"%(name)s\"" +msgid_plural "Added %(count)i releases to collection \"%(name)s\"" +msgstr[0] "" +msgstr[1] "" -#: picard/collection.py:72 +#: picard/collection.py:86 #, python-format -msgid "Removed %i release from collection \"%s\"" -msgid_plural "Removed %i releases from collection \"%s\"" -msgstr[0] "%i Veröffentlichung von Sammlung „%s“ entfernt" -msgstr[1] "%i Veröffentlichungen von Sammlung „%s“ entfernt" +msgid "Removed %(count)i release from collection \"%(name)s\"" +msgid_plural "Removed %(count)i releases from collection \"%(name)s\"" +msgstr[0] "" +msgstr[1] "" -#: picard/collection.py:81 +#: picard/collection.py:100 #, python-format -msgid "Error loading collections: %s" -msgstr "Fehler beim Laden von Sammlungen: %s" +msgid "Error loading collections: %(error)s" +msgstr "" -#: picard/config_upgrade.py:57 picard/config_upgrade.py:70 +#: picard/config_upgrade.py:58 picard/config_upgrade.py:71 msgid "Various Artists file naming scheme removal" msgstr "Wegfall des Dateibenennungsschemas für Diverse Interpreten" -#: picard/config_upgrade.py:58 +#: picard/config_upgrade.py:59 msgid "" "The separate file naming scheme for various artists albums has been removed in this version of Picard.\n" "Your file naming scheme has automatically been merged with that of single artist albums." msgstr "Das separate Dateibenennungsschema für Alben diverser Interpreten wurde mit dieser Version von Picard entfernt.\nDein Dateibenennungsschema wurde automatisch mit demjenigen für Alben einzelner Interpreten zusammengeführt." -#: picard/config_upgrade.py:71 +#: picard/config_upgrade.py:72 msgid "" "The separate file naming scheme for various artists albums has been removed in this version of Picard.\n" "You currently do not use this option, but have a separate file naming scheme defined.\n" "Do you want to remove it or merge it with your file naming scheme for single artist albums?" msgstr "Das separate Dateibenennungsschema für Alben diverser Interpreten wurde mit dieser Version von Picard entfernt.\nDu nutzt diese Option momentan nicht, hast aber ein separates Schema definiert.\nMöchtest du es entfernen oder mit dem Schema für Alben einzelner Interpreten zusammenführen?" -#: picard/config_upgrade.py:77 +#: picard/config_upgrade.py:78 msgid "Merge" msgstr "Vereinen" -#: picard/config_upgrade.py:77 picard/ui/metadatabox.py:254 +#: picard/config_upgrade.py:78 picard/ui/metadatabox.py:254 msgid "Remove" msgstr "Entfernen" -#: picard/const.py:67 -msgid "CD" -msgstr "CD" - -#: picard/const.py:68 -msgid "CD-R" -msgstr "CD-R" - -#: picard/const.py:69 -msgid "HDCD" -msgstr "HDCD" - -#: picard/const.py:70 -msgid "8cm CD" -msgstr "8cm-CD" - -#: picard/const.py:71 -msgid "Vinyl" -msgstr "Vinyl" - -#: picard/const.py:72 -msgid "7\" Vinyl" -msgstr "7\"-Vinyl" - -#: picard/const.py:73 -msgid "10\" Vinyl" -msgstr "10\"-Vinyl" - -#: picard/const.py:74 -msgid "12\" Vinyl" -msgstr "12\"-Vinyl" - -#: picard/const.py:75 -msgid "Digital Media" -msgstr "digitale Medien" - -#: picard/const.py:76 -msgid "USB Flash Drive" -msgstr "USB-Stick" - -#: picard/const.py:77 -msgid "slotMusic" -msgstr "slotMusic" - -#: picard/const.py:78 -msgid "Cassette" -msgstr "Kassette" - -#: picard/const.py:79 -msgid "DVD" -msgstr "DVD" - -#: picard/const.py:80 -msgid "DVD-Audio" -msgstr "DVD-Audio" - -#: picard/const.py:81 -msgid "DVD-Video" -msgstr "DVD-Video" - -#: picard/const.py:82 -msgid "SACD" -msgstr "SACD" - -#: picard/const.py:83 -msgid "DualDisc" -msgstr "DualDisc" - -#: picard/const.py:84 -msgid "MiniDisc" -msgstr "MiniDisc" - -#: picard/const.py:85 -msgid "Blu-ray" -msgstr "Blu-ray" - -#: picard/const.py:86 -msgid "HD-DVD" -msgstr "HD-DVD" - -#: picard/const.py:87 -msgid "Videotape" -msgstr "Videokassette" - -#: picard/const.py:88 -msgid "VHS" -msgstr "VHS" - -#: picard/const.py:89 -msgid "Betamax" -msgstr "Betamax" - #: picard/const.py:90 -msgid "VCD" -msgstr "VCD" - -#: picard/const.py:91 -msgid "SVCD" -msgstr "SVCD" - -#: picard/const.py:92 -msgid "UMD" -msgstr "Universal Media Disc" - -#: picard/const.py:93 picard/coverartarchive.py:33 -#: picard/ui/ui_options_releases.py:226 -msgid "Other" -msgstr "Anderes" - -#: picard/const.py:94 -msgid "LaserDisc" -msgstr "LaserDisc" - -#: picard/const.py:95 -msgid "Cartridge" -msgstr "4-/8-Spur-Kassette" - -#: picard/const.py:96 -msgid "Reel-to-reel" -msgstr "Tonband" - -#: picard/const.py:97 -msgid "DAT" -msgstr "DAT" - -#: picard/const.py:98 -msgid "Wax Cylinder" -msgstr "Wachszylinder" - -#: picard/const.py:99 -msgid "Piano Roll" -msgstr "Notenrolle" - -#: picard/const.py:100 -msgid "DCC" -msgstr "Digital Compact Cassette" - -#: picard/const.py:115 msgid "Danish" msgstr "Dänisch" -#: picard/const.py:116 +#: picard/const.py:91 msgid "German" msgstr "Deutsch" -#: picard/const.py:118 +#: picard/const.py:93 msgid "English" msgstr "Englisch" -#: picard/const.py:119 +#: picard/const.py:94 msgid "English (Canada)" msgstr "Englisch (Kanada)" -#: picard/const.py:120 +#: picard/const.py:95 msgid "English (UK)" msgstr "Englisch (UK)" -#: picard/const.py:122 +#: picard/const.py:97 msgid "Spanish" msgstr "Spanisch" -#: picard/const.py:123 +#: picard/const.py:98 msgid "Estonian" msgstr "Estnisch" -#: picard/const.py:125 +#: picard/const.py:100 msgid "Finnish" msgstr "Finnisch" -#: picard/const.py:127 +#: picard/const.py:102 msgid "French" msgstr "Französisch" -#: picard/const.py:136 +#: picard/const.py:111 msgid "Italian" msgstr "Italienisch" -#: picard/const.py:143 +#: picard/const.py:118 msgid "Dutch" msgstr "Niederländisch" -#: picard/const.py:145 +#: picard/const.py:120 msgid "Polish" msgstr "Polnisch" -#: picard/const.py:147 +#: picard/const.py:122 msgid "Brazilian Portuguese" msgstr "Brasilianisches Portugiesisch" -#: picard/const.py:154 +#: picard/const.py:129 msgid "Swedish" msgstr "Schwedisch" -#: picard/coverart.py:84 +#: picard/coverart.py:85 #, python-format -msgid "Coverart %s downloaded" -msgstr "Cover-Art %s heruntergeladen" +msgid "Cover art of type '%(type)s' downloaded for %(albumid)s from %(host)s" +msgstr "" -#: picard/coverart.py:240 +#: picard/coverart.py:256 #, python-format -msgid "Downloading http://%s:%i%s" -msgstr "Lade http://%s:%i%s herunter" - -#: picard/coverartarchive.py:24 -msgid "Front" -msgstr "Vorderseite" - -#: picard/coverartarchive.py:25 -msgid "Back" -msgstr "Rückseite" - -#: picard/coverartarchive.py:26 -msgid "Booklet" -msgstr "Booklet" - -#: picard/coverartarchive.py:27 -msgid "Medium" -msgstr "Medium" - -#: picard/coverartarchive.py:28 -msgid "Tray" -msgstr "Tray" - -#: picard/coverartarchive.py:29 -msgid "Obi" -msgstr "Obi" +msgid "" +"Downloading cover art of type '%(type)s' for %(albumid)s from %(host)s .." +msgstr "" #: picard/coverartarchive.py:30 -msgid "Spine" -msgstr "Schmale Seite" - -#: picard/coverartarchive.py:31 picard/ui/mainwindow.py:546 -msgid "Track" -msgstr "Titel" - -#: picard/coverartarchive.py:32 -msgid "Sticker" -msgstr "Aufkleber" - -#: picard/coverartarchive.py:34 msgid "Unknown" msgstr "Unbekannt" -#: picard/file.py:536 +#: picard/file.py:494 #, python-format -msgid "No matching tracks for file %s" -msgstr "Keine passenden Titel für Datei %s" +msgid "No matching tracks for file '%(filename)s'" +msgstr "" -#: picard/file.py:548 +#: picard/file.py:510 #, python-format -msgid "No matching tracks above the threshold for file %s" -msgstr "Keine passenden Titel oberhalb der Schwellenwerte für Datei %s" +msgid "No matching tracks above the threshold for file '%(filename)s'" +msgstr "" -#: picard/file.py:551 +#: picard/file.py:517 #, python-format -msgid "File %s identified!" -msgstr "Datei %s identifiziert!" +msgid "File '%(filename)s' identified!" +msgstr "" -#: picard/file.py:567 +#: picard/file.py:537 #, python-format -msgid "Looking up the metadata for file %s..." -msgstr "Frage Metadaten für Datei %s ab …" +msgid "Looking up the metadata for file %(filename)s ..." +msgstr "" #: picard/releasegroup.py:53 msgid "Tracks" @@ -524,19 +408,19 @@ msgstr "" #: picard/releasegroup.py:54 msgid "Year" -msgstr "" +msgstr "Jahr" -#: picard/releasegroup.py:55 picard/ui/cdlookup.py:34 +#: picard/releasegroup.py:55 picard/ui/cdlookup.py:35 msgid "Country" msgstr "Land" -#: picard/releasegroup.py:56 picard/util/tags.py:81 +#: picard/releasegroup.py:56 msgid "Format" msgstr "Format" #: picard/releasegroup.py:57 msgid "Label" -msgstr "" +msgstr "Label" #: picard/releasegroup.py:58 msgid "Cat No" @@ -550,16 +434,23 @@ msgstr "[kein Strichcode]" msgid "[no release info]" msgstr "[keine Informationen zur Veröffentlichung]" -#: picard/tagger.py:316 +#: picard/tagger.py:370 #, python-format -msgid "Loading directory %s" -msgstr "Lade Verzeichnis %s" +msgid "Adding %(count)d file from '%(directory)s' ..." +msgid_plural "Adding %(count)d files from '%(directory)s' ..." +msgstr[0] "" +msgstr[1] "" -#: picard/tagger.py:452 +#: picard/tagger.py:512 +#, python-format +msgid "Removing album %(id)s: %(artist)s - %(album)s" +msgstr "" + +#: picard/tagger.py:528 msgid "CD Lookup Error" msgstr "CD-Abfrage-Fehler" -#: picard/tagger.py:453 +#: picard/tagger.py:529 #, python-format msgid "" "Error while reading CD:\n" @@ -567,44 +458,43 @@ msgid "" "%s" msgstr "Fehler beim Lesen der CD:\n%s" -#: picard/ui/cdlookup.py:34 picard/ui/mainwindow.py:544 -#: picard/ui/ui_options_releases.py:216 picard/util/tags.py:21 +#: picard/ui/cdlookup.py:35 picard/ui/mainwindow.py:597 picard/util/tags.py:21 msgid "Album" msgstr "Album" -#: picard/ui/cdlookup.py:34 picard/ui/itemviews.py:96 -#: picard/ui/mainwindow.py:545 picard/util/tags.py:22 +#: picard/ui/cdlookup.py:35 picard/ui/itemviews.py:96 +#: picard/ui/mainwindow.py:598 picard/util/tags.py:22 msgid "Artist" msgstr "Interpret" -#: picard/ui/cdlookup.py:34 picard/util/tags.py:24 +#: picard/ui/cdlookup.py:35 picard/util/tags.py:24 msgid "Date" msgstr "Datum" -#: picard/ui/cdlookup.py:35 +#: picard/ui/cdlookup.py:36 msgid "Labels" msgstr "Labels" -#: picard/ui/cdlookup.py:35 +#: picard/ui/cdlookup.py:36 msgid "Catalog #s" msgstr "Katalognummern" -#: picard/ui/cdlookup.py:35 picard/util/tags.py:79 +#: picard/ui/cdlookup.py:36 picard/util/tags.py:78 msgid "Barcode" msgstr "Strichcode" -#: picard/ui/collectionmenu.py:31 +#: picard/ui/collectionmenu.py:42 msgid "Refresh List" msgstr "Liste aktualisieren" -#: picard/ui/collectionmenu.py:92 +#: picard/ui/collectionmenu.py:86 #, python-format msgid "%s (%i release)" msgid_plural "%s (%i releases)" msgstr[0] "%s (%i Veröffentlichung)" msgstr[1] "%s (%i Veröffentlichungen)" -#: picard/ui/coverartbox.py:142 +#: picard/ui/coverartbox.py:141 msgid "View release on MusicBrainz" msgstr "Veröffentlichung auf MusicBrainz ansehen" @@ -620,59 +510,59 @@ msgstr "&Versteckte Dateien anzeigen" msgid "&Set as starting directory" msgstr "Als Startverzeichnis &setzen" -#: picard/ui/infodialog.py:36 picard/ui/infodialog.py:75 +#: picard/ui/infodialog.py:37 picard/ui/infodialog.py:80 msgid "Info" msgstr "Info" -#: picard/ui/infodialog.py:80 +#: picard/ui/infodialog.py:85 msgid "Filename:" msgstr "Dateiname:" -#: picard/ui/infodialog.py:82 +#: picard/ui/infodialog.py:87 msgid "Format:" msgstr "Format:" -#: picard/ui/infodialog.py:86 +#: picard/ui/infodialog.py:91 msgid "Size:" msgstr "Dateigröße:" -#: picard/ui/infodialog.py:90 +#: picard/ui/infodialog.py:95 msgid "Length:" msgstr "Dauer:" -#: picard/ui/infodialog.py:92 +#: picard/ui/infodialog.py:97 msgid "Bitrate:" msgstr "Bitrate:" -#: picard/ui/infodialog.py:94 +#: picard/ui/infodialog.py:99 msgid "Sample rate:" msgstr "Abtastrate:" -#: picard/ui/infodialog.py:96 +#: picard/ui/infodialog.py:101 msgid "Bits per sample:" msgstr "Bits pro Sample:" -#: picard/ui/infodialog.py:100 +#: picard/ui/infodialog.py:105 msgid "Mono" msgstr "Mono" -#: picard/ui/infodialog.py:102 +#: picard/ui/infodialog.py:107 msgid "Stereo" msgstr "Stereo" -#: picard/ui/infodialog.py:105 +#: picard/ui/infodialog.py:110 msgid "Channels:" msgstr "Kanäle:" -#: picard/ui/infodialog.py:116 +#: picard/ui/infodialog.py:121 msgid "Album Info" msgstr "Albumsinformationen" -#: picard/ui/infodialog.py:124 +#: picard/ui/infodialog.py:129 msgid "&Errors" msgstr "&Fehler" -#: picard/ui/infodialog.py:134 picard/ui/ui_infodialog.py:77 +#: picard/ui/infodialog.py:139 picard/ui/ui_infodialog.py:73 msgid "&Info" msgstr "&Info" @@ -696,7 +586,7 @@ msgstr "Ausstehende Anfragen" msgid "Title" msgstr "Titel" -#: picard/ui/itemviews.py:95 picard/util/tags.py:88 +#: picard/ui/itemviews.py:95 picard/util/tags.py:86 msgid "Length" msgstr "Dauer" @@ -721,8 +611,8 @@ msgid "Collections" msgstr "Sammlungen" #: picard/ui/itemviews.py:365 -msgid "&Plugins" -msgstr "&Plugins" +msgid "P&lugins" +msgstr "" #: picard/ui/itemviews.py:541 msgid "file view" @@ -744,13 +634,17 @@ msgstr "Albumsansicht" msgid "Contains albums and matched files" msgstr "Enthält Alben und zugeordnete Dateien" -#: picard/ui/logview.py:91 +#: picard/ui/logview.py:109 msgid "Log" msgstr "Protokoll" -#: picard/ui/logview.py:99 -msgid "Status History" -msgstr "Statushistorie" +#: picard/ui/logview.py:113 +msgid "Debug mode" +msgstr "" + +#: picard/ui/logview.py:134 +msgid "Activity History" +msgstr "" #: picard/ui/mainwindow.py:74 msgid "MusicBrainz Picard" @@ -783,276 +677,309 @@ msgstr "Bereit" #: picard/ui/mainwindow.py:220 msgid "" -"Picard listens on a port to integrate with your browser and downloads " -"release information when you click the \"Tagger\" buttons on the MusicBrainz" -" website" -msgstr "Picard benutzt einen Port, um deinen Browser einzubinden, und lädt Informationen über Veröffentlichungen, wenn du auf die entsprechenden „Tagger“-Buttons auf der MusicBrainz-Website klickst." +"Picard listens on this port to integrate with your browser. When you " +"\"Search\" or \"Open in Browser\" from Picard, clicking the \"Tagger\" " +"button on the web page loads the release into Picard." +msgstr "" -#: picard/ui/mainwindow.py:240 +#: picard/ui/mainwindow.py:243 #, python-format msgid " Listening on port %(port)d " msgstr "Benutze Port %(port)d" -#: picard/ui/mainwindow.py:263 +#: picard/ui/mainwindow.py:299 msgid "Submission Error" msgstr "Übermittlungsfehler" -#: picard/ui/mainwindow.py:264 +#: picard/ui/mainwindow.py:300 msgid "" "You need to configure your AcoustID API key before you can submit " "fingerprints." msgstr "Du musst deinen AcoustID API-Key angeben, um Fingerabdrücke übermitteln zu können." -#: picard/ui/mainwindow.py:269 +#: picard/ui/mainwindow.py:305 msgid "&Options..." msgstr "&Einstellungen …" -#: picard/ui/mainwindow.py:273 +#: picard/ui/mainwindow.py:309 msgid "&Cut" msgstr "&Ausschneiden" -#: picard/ui/mainwindow.py:278 +#: picard/ui/mainwindow.py:314 msgid "&Paste" msgstr "&Einfügen" -#: picard/ui/mainwindow.py:283 +#: picard/ui/mainwindow.py:319 msgid "&Help..." msgstr "&Hilfe …" -#: picard/ui/mainwindow.py:288 +#: picard/ui/mainwindow.py:323 msgid "&About..." msgstr "&Über …" -#: picard/ui/mainwindow.py:292 +#: picard/ui/mainwindow.py:327 msgid "&Donate..." msgstr "&Spenden …" -#: picard/ui/mainwindow.py:295 +#: picard/ui/mainwindow.py:330 msgid "&Report a Bug..." msgstr "Einen Fehler &melden …" -#: picard/ui/mainwindow.py:298 +#: picard/ui/mainwindow.py:333 msgid "&Support Forum..." msgstr "&Hilfe-Forum" -#: picard/ui/mainwindow.py:301 +#: picard/ui/mainwindow.py:336 msgid "&Add Files..." msgstr "Dateien &hinzufügen …" -#: picard/ui/mainwindow.py:302 +#: picard/ui/mainwindow.py:337 msgid "Add files to the tagger" msgstr "Dateien zum Tagger hinzufügen" -#: picard/ui/mainwindow.py:307 +#: picard/ui/mainwindow.py:342 msgid "A&dd Folder..." msgstr "&Verzeichnis hinzufügen …" -#: picard/ui/mainwindow.py:308 +#: picard/ui/mainwindow.py:343 msgid "Add a folder to the tagger" msgstr "Verzeichnis zum Tagger hinzufügen" -#: picard/ui/mainwindow.py:310 +#: picard/ui/mainwindow.py:345 msgid "Ctrl+D" msgstr "Ctrl+D" -#: picard/ui/mainwindow.py:313 +#: picard/ui/mainwindow.py:348 msgid "&Save" msgstr "&Speichern" -#: picard/ui/mainwindow.py:314 +#: picard/ui/mainwindow.py:349 msgid "Save selected files" msgstr "Ausgewählte Dateien speichern" -#: picard/ui/mainwindow.py:320 +#: picard/ui/mainwindow.py:355 msgid "S&ubmit" msgstr "Übermitteln" -#: picard/ui/mainwindow.py:321 -msgid "Submit fingerprints" -msgstr "Fingerabdrücke übermitteln" +#: picard/ui/mainwindow.py:356 +msgid "Submit acoustic fingerprints" +msgstr "" -#: picard/ui/mainwindow.py:325 +#: picard/ui/mainwindow.py:360 msgid "E&xit" msgstr "&Beenden" -#: picard/ui/mainwindow.py:328 +#: picard/ui/mainwindow.py:363 msgid "Ctrl+Q" msgstr "Ctrl+Q" -#: picard/ui/mainwindow.py:331 +#: picard/ui/mainwindow.py:366 msgid "&Remove" msgstr "&Entfernen" -#: picard/ui/mainwindow.py:332 +#: picard/ui/mainwindow.py:367 msgid "Remove selected files/albums" msgstr "Gewählte Dateien/Alben entfernen" -#: picard/ui/mainwindow.py:336 +#: picard/ui/mainwindow.py:371 msgid "Lookup in &Browser" msgstr "Im &Browser nachschlagen" -#: picard/ui/mainwindow.py:337 +#: picard/ui/mainwindow.py:372 msgid "Lookup selected item on MusicBrainz website" msgstr "Ausgewähltes Element auf der MusicBrainz-Website nachschlagen" -#: picard/ui/mainwindow.py:341 +#: picard/ui/mainwindow.py:376 msgid "File &Browser" msgstr "Datei-&Browser" -#: picard/ui/mainwindow.py:345 +#: picard/ui/mainwindow.py:380 msgid "Ctrl+B" msgstr "Ctrl+B" -#: picard/ui/mainwindow.py:348 +#: picard/ui/mainwindow.py:383 msgid "&Cover Art" msgstr "&Cover-Bild" -#: picard/ui/mainwindow.py:354 picard/ui/mainwindow.py:539 +#: picard/ui/mainwindow.py:389 picard/ui/mainwindow.py:591 msgid "Search" msgstr "Suchen" -#: picard/ui/mainwindow.py:357 -msgid "&CD Lookup..." -msgstr "&CD abfragen …" +#: picard/ui/mainwindow.py:392 +msgid "Lookup &CD..." +msgstr "" -#: picard/ui/mainwindow.py:358 picard/ui/mainwindow.py:359 -msgid "Lookup CD" -msgstr "CD abfragen" +#: picard/ui/mainwindow.py:393 +msgid "Lookup the details of the CD in your drive" +msgstr "" -#: picard/ui/mainwindow.py:361 +#: picard/ui/mainwindow.py:395 msgid "Ctrl+K" msgstr "Ctrl+K" -#: picard/ui/mainwindow.py:364 +#: picard/ui/mainwindow.py:398 msgid "&Scan" msgstr "Anal&ysieren" -#: picard/ui/mainwindow.py:367 +#: picard/ui/mainwindow.py:401 msgid "Ctrl+Y" msgstr "Ctrl+Y" -#: picard/ui/mainwindow.py:370 +#: picard/ui/mainwindow.py:404 msgid "Cl&uster" msgstr "Gr&uppieren" -#: picard/ui/mainwindow.py:373 +#: picard/ui/mainwindow.py:407 msgid "Ctrl+U" msgstr "Ctrl+U" -#: picard/ui/mainwindow.py:376 +#: picard/ui/mainwindow.py:410 msgid "&Lookup" msgstr "&Abfragen" -#: picard/ui/mainwindow.py:377 picard/ui/mainwindow.py:378 -msgid "Lookup metadata" -msgstr "Metadaten abfragen" +#: picard/ui/mainwindow.py:411 +msgid "Lookup selected items in MusicBrainz" +msgstr "" -#: picard/ui/mainwindow.py:381 +#: picard/ui/mainwindow.py:416 msgid "Ctrl+L" msgstr "Ctrl+L" -#: picard/ui/mainwindow.py:384 +#: picard/ui/mainwindow.py:419 msgid "&Info..." msgstr "&Info …" -#: picard/ui/mainwindow.py:387 +#: picard/ui/mainwindow.py:422 msgid "Ctrl+I" msgstr "Ctrl+I" -#: picard/ui/mainwindow.py:390 +#: picard/ui/mainwindow.py:425 msgid "&Refresh" msgstr "&Aktualisieren" -#: picard/ui/mainwindow.py:391 +#: picard/ui/mainwindow.py:426 msgid "Ctrl+R" msgstr "Ctrl+R" -#: picard/ui/mainwindow.py:394 +#: picard/ui/mainwindow.py:429 msgid "&Rename Files" msgstr "Dateien &umbenennen" -#: picard/ui/mainwindow.py:399 +#: picard/ui/mainwindow.py:434 msgid "&Move Files" msgstr "Dateien &verschieben" -#: picard/ui/mainwindow.py:404 +#: picard/ui/mainwindow.py:439 msgid "Save &Tags" msgstr "&Tags speichern" -#: picard/ui/mainwindow.py:409 +#: picard/ui/mainwindow.py:444 msgid "Tags From &File Names..." msgstr "Tags aus &Dateinamen …" -#: picard/ui/mainwindow.py:412 -msgid "View &Log..." -msgstr "&Protokoll öffnen" +#: picard/ui/mainwindow.py:447 +msgid "&Open My Collections in Browser" +msgstr "" -#: picard/ui/mainwindow.py:415 -msgid "View Status &History..." -msgstr "Status&historie ansehen ..." +#: picard/ui/mainwindow.py:451 +msgid "View Error/Debug &Log" +msgstr "" -#: picard/ui/mainwindow.py:422 -msgid "&Open..." -msgstr "&Öffnen …" +#: picard/ui/mainwindow.py:454 +msgid "View Activity &History" +msgstr "" -#: picard/ui/mainwindow.py:423 -msgid "Open the file" -msgstr "Datei öffnen" +#: picard/ui/mainwindow.py:461 +msgid "&Play file" +msgstr "" -#: picard/ui/mainwindow.py:426 -msgid "Open &Folder..." -msgstr "Verzeichnis öffnen …" +#: picard/ui/mainwindow.py:462 +msgid "Play the file in your default media player" +msgstr "" -#: picard/ui/mainwindow.py:427 -msgid "Open the containing folder" -msgstr "Beinhaltendes Verzeichnis öffnen" +#: picard/ui/mainwindow.py:466 +msgid "Open Containing &Folder" +msgstr "" -#: picard/ui/mainwindow.py:448 +#: picard/ui/mainwindow.py:467 +msgid "Open the containing folder in your file explorer" +msgstr "" + +#: picard/ui/mainwindow.py:492 msgid "&File" msgstr "&Datei" -#: picard/ui/mainwindow.py:456 +#: picard/ui/mainwindow.py:503 msgid "&Edit" msgstr "&Bearbeiten" -#: picard/ui/mainwindow.py:462 +#: picard/ui/mainwindow.py:509 msgid "&View" msgstr "&Ansicht" -#: picard/ui/mainwindow.py:470 +#: picard/ui/mainwindow.py:515 msgid "&Options" msgstr "&Einstellungen" -#: picard/ui/mainwindow.py:476 +#: picard/ui/mainwindow.py:521 msgid "&Tools" msgstr "&Extras" -#: picard/ui/mainwindow.py:485 picard/ui/util.py:35 +#: picard/ui/mainwindow.py:532 picard/ui/util.py:35 msgid "&Help" msgstr "&Hilfe" -#: picard/ui/mainwindow.py:505 +#: picard/ui/mainwindow.py:553 msgid "Actions" msgstr "Aktionen" -#: picard/ui/mainwindow.py:608 +#: picard/ui/mainwindow.py:599 +msgid "Track" +msgstr "Titel" + +#: picard/ui/mainwindow.py:662 msgid "All Supported Formats" msgstr "Alle unterstützten Formate" -#: picard/ui/mainwindow.py:705 +#: picard/ui/mainwindow.py:695 +#, python-format +msgid "Adding directory: '%(directory)s' ..." +msgstr "" + +#: picard/ui/mainwindow.py:702 +#, python-format +msgid "Adding multiple directories from '%(directory)s' ..." +msgstr "" + +#: picard/ui/mainwindow.py:767 msgid "Configuration Required" msgstr "Konfiguration erforderlich" -#: picard/ui/mainwindow.py:706 +#: picard/ui/mainwindow.py:768 msgid "" "Audio fingerprinting is not yet configured. Would you like to configure it " "now?" msgstr "Das Erzeugen von Audio-Fingerabdrücken wurde noch nicht konfiguriert. Möchtest du das jetzt vornehmen?" -#: picard/ui/mainwindow.py:784 picard/ui/mainwindow.py:791 +#: picard/ui/mainwindow.py:848 #, python-format -msgid " (Error: %s)" -msgstr " (Fehler: %s)" +msgid "%(filename)s (error: %(error)s)" +msgstr "" + +#: picard/ui/mainwindow.py:854 +#, python-format +msgid "%(filename)s" +msgstr "" + +#: picard/ui/mainwindow.py:864 +#, python-format +msgid "%(filename)s (%(similarity)d%%) (error: %(error)s)" +msgstr "" + +#: picard/ui/mainwindow.py:871 +#, python-format +msgid "%(filename)s (%(similarity)d%%)" +msgstr "" #: picard/ui/metadatabox.py:82 #, python-format @@ -1106,387 +1033,387 @@ msgid_plural "Use Original Values" msgstr[0] "" msgstr[1] "Ursprünglichen Wert benutzen" -#: picard/ui/passworddialog.py:37 +#: picard/ui/passworddialog.py:40 #, python-format msgid "" "The server %s requires you to login. Please enter your username and " "password." msgstr "Der Server %s erfordert eine Authentifizierung. Bitte gib deinen Benutzernamen und dein Passwort ein." -#: picard/ui/passworddialog.py:75 +#: picard/ui/passworddialog.py:79 #, python-format msgid "" "The proxy %s requires you to login. Please enter your username and password." msgstr "Der Proxy-Server %s erfordert eine Authentifizierung. Bitte gib deinen Benutzernamen und dein Passwort ein." -#: picard/ui/tagsfromfilenames.py:55 picard/ui/tagsfromfilenames.py:100 +#: picard/ui/tagsfromfilenames.py:56 picard/ui/tagsfromfilenames.py:101 msgid "File Name" msgstr "Dateiname" -#: picard/ui/ui_cdlookup.py:66 picard/ui/ui_options_cdlookup.py:55 -#: picard/ui/ui_options_cdlookup_select.py:62 picard/ui/options/cdlookup.py:38 +#: picard/ui/ui_cdlookup.py:53 picard/ui/ui_options_cdlookup.py:42 +#: picard/ui/ui_options_cdlookup_select.py:49 picard/ui/options/cdlookup.py:38 msgid "CD Lookup" msgstr "CD abfragen" -#: picard/ui/ui_cdlookup.py:67 +#: picard/ui/ui_cdlookup.py:54 msgid "The following releases on MusicBrainz match the CD:" msgstr "Die folgenden Veröffentlichungen auf MusicBrainz stimmen mit der CD überein:" -#: picard/ui/ui_cdlookup.py:68 +#: picard/ui/ui_cdlookup.py:55 msgid "OK" msgstr "OK" -#: picard/ui/ui_cdlookup.py:69 +#: picard/ui/ui_cdlookup.py:56 msgid "Lookup manually" msgstr "Manuell abfragen" -#: picard/ui/ui_cdlookup.py:70 +#: picard/ui/ui_cdlookup.py:57 msgid "Cancel" msgstr "Abbrechen" -#: picard/ui/ui_edittagdialog.py:101 +#: picard/ui/ui_edittagdialog.py:88 msgid "Edit Tag" msgstr "Tag bearbeiten" -#: picard/ui/ui_edittagdialog.py:102 +#: picard/ui/ui_edittagdialog.py:89 msgid "Edit value" msgstr "Wert bearbeiten" -#: picard/ui/ui_edittagdialog.py:103 +#: picard/ui/ui_edittagdialog.py:90 msgid "Add value" msgstr "Wert hinzufügen" -#: picard/ui/ui_edittagdialog.py:104 +#: picard/ui/ui_edittagdialog.py:91 msgid "Remove value" msgstr "Wert entfernen" -#: picard/ui/ui_infodialog.py:78 +#: picard/ui/ui_infodialog.py:74 msgid "A&rtwork" msgstr "Cover-Bild" -#: picard/ui/ui_infostatus.py:100 +#: picard/ui/ui_infostatus.py:96 msgid "Form" msgstr "Formular" -#: picard/ui/ui_options.py:51 +#: picard/ui/ui_options.py:38 msgid "Options" msgstr "Einstellungen" -#: picard/ui/ui_options_advanced.py:46 +#: picard/ui/ui_options_advanced.py:42 msgid "Advanced options" msgstr "Erweiterte Einstellungen" -#: picard/ui/ui_options_advanced.py:47 +#: picard/ui/ui_options_advanced.py:43 msgid "Ignore file paths matching the following regular expression:" msgstr "Ignoriere Dateipfade die dem folgenden regulären Ausdruck entsprechen:" -#: picard/ui/ui_options_cdlookup.py:56 +#: picard/ui/ui_options_cdlookup.py:43 msgid "CD-ROM device to use for lookups:" msgstr "Für Abfragen zu benutzendes CD-Laufwerk:" -#: picard/ui/ui_options_cdlookup_select.py:63 +#: picard/ui/ui_options_cdlookup_select.py:50 msgid "Default CD-ROM drive to use for lookups:" msgstr "Für Abfragen standardmäßig zu benutzendes CD-Laufwerk:" -#: picard/ui/ui_options_cover.py:145 +#: picard/ui/ui_options_cover.py:131 msgid "Location" msgstr "Speicherort" -#: picard/ui/ui_options_cover.py:146 +#: picard/ui/ui_options_cover.py:132 msgid "Embed cover images into tags" msgstr "Cover-Bilder in Tags einbetten" -#: picard/ui/ui_options_cover.py:147 +#: picard/ui/ui_options_cover.py:133 msgid "Only embed a front image" msgstr "Nur Vorderbild einbetten" -#: picard/ui/ui_options_cover.py:148 +#: picard/ui/ui_options_cover.py:134 msgid "Save cover images as separate files" msgstr "Cover-Bilder als separate Dateien speichern" -#: picard/ui/ui_options_cover.py:149 +#: picard/ui/ui_options_cover.py:135 msgid "Use the following file name for images:" msgstr "Benutze den folgenden Dateinamen für Bilder:" -#: picard/ui/ui_options_cover.py:150 +#: picard/ui/ui_options_cover.py:136 msgid "Overwrite the file if it already exists" msgstr "Überschreibe ggf. existierende Dateien" -#: picard/ui/ui_options_cover.py:151 +#: picard/ui/ui_options_cover.py:137 msgid "Coverart Providers" msgstr "Cover-Art-Quellen" -#: picard/ui/ui_options_cover.py:152 +#: picard/ui/ui_options_cover.py:138 msgid "Amazon" msgstr "Amazon" -#: picard/ui/ui_options_cover.py:153 picard/ui/ui_options_cover.py:155 +#: picard/ui/ui_options_cover.py:139 picard/ui/ui_options_cover.py:141 msgid "Cover Art Archive" msgstr "Cover Art Archive" -#: picard/ui/ui_options_cover.py:154 +#: picard/ui/ui_options_cover.py:140 msgid "Sites on the whitelist" msgstr "Seiten auf der Whitelist" -#: picard/ui/ui_options_cover.py:156 +#: picard/ui/ui_options_cover.py:142 msgid "Only use images of the following size:" msgstr "Benutze nur Bilder mit der folgenden Größe:" -#: picard/ui/ui_options_cover.py:157 +#: picard/ui/ui_options_cover.py:143 msgid "250 px" msgstr "250px" -#: picard/ui/ui_options_cover.py:158 +#: picard/ui/ui_options_cover.py:144 msgid "500 px" msgstr "500px" -#: picard/ui/ui_options_cover.py:159 +#: picard/ui/ui_options_cover.py:145 msgid "Full size" msgstr "Originalgröße" -#: picard/ui/ui_options_cover.py:160 +#: picard/ui/ui_options_cover.py:146 msgid "Download only images of the following types:" msgstr "Lade nur Bilder folgender Typen herunter:" -#: picard/ui/ui_options_cover.py:161 +#: picard/ui/ui_options_cover.py:147 msgid "Download only approved images" msgstr "Nur bestätigte Bilder herunterladen" -#: picard/ui/ui_options_cover.py:162 +#: picard/ui/ui_options_cover.py:148 msgid "" "Use the first image type as the filename. This will not change the filename " "of front images." msgstr "Benutze den ersten Bildtyp als Dateinamen. Das ändert den Dateinamen von Titelcover-Bildern nicht." -#: picard/ui/ui_options_fingerprinting.py:83 +#: picard/ui/ui_options_fingerprinting.py:70 msgid "Audio Fingerprinting" msgstr "Audio-Fingerabdrücke" -#: picard/ui/ui_options_fingerprinting.py:84 +#: picard/ui/ui_options_fingerprinting.py:71 msgid "Do not use audio fingerprinting" msgstr "Audio-Fingerabdrücke nicht benutzen" -#: picard/ui/ui_options_fingerprinting.py:85 +#: picard/ui/ui_options_fingerprinting.py:72 msgid "Use AcoustID" msgstr "Benutze AcoustID" -#: picard/ui/ui_options_fingerprinting.py:86 +#: picard/ui/ui_options_fingerprinting.py:73 msgid "AcoustID Settings" msgstr "AcoustID-Einstellungen" -#: picard/ui/ui_options_fingerprinting.py:87 +#: picard/ui/ui_options_fingerprinting.py:74 msgid "Fingerprint calculator:" msgstr "Fingerabdruckerzeuger" -#: picard/ui/ui_options_fingerprinting.py:88 -#: picard/ui/ui_options_interface.py:88 picard/ui/ui_options_renaming.py:138 +#: picard/ui/ui_options_fingerprinting.py:75 +#: picard/ui/ui_options_interface.py:75 picard/ui/ui_options_renaming.py:134 msgid "Browse..." msgstr "Durchsuchen …" -#: picard/ui/ui_options_fingerprinting.py:89 +#: picard/ui/ui_options_fingerprinting.py:76 msgid "Download..." msgstr "Herunterladen …" -#: picard/ui/ui_options_fingerprinting.py:90 +#: picard/ui/ui_options_fingerprinting.py:77 msgid "API key:" msgstr "API-Key:" -#: picard/ui/ui_options_fingerprinting.py:91 +#: picard/ui/ui_options_fingerprinting.py:78 msgid "Get API key..." msgstr "API-Schlüssel anfordern …" -#: picard/ui/ui_options_folksonomy.py:115 picard/ui/options/folksonomy.py:28 +#: picard/ui/ui_options_folksonomy.py:102 picard/ui/options/folksonomy.py:28 msgid "Folksonomy Tags" msgstr "Folksonomy-Tags" -#: picard/ui/ui_options_folksonomy.py:117 +#: picard/ui/ui_options_folksonomy.py:104 msgid "Only use my tags" msgstr "Nur eigene Tags verwenden" -#: picard/ui/ui_options_folksonomy.py:120 +#: picard/ui/ui_options_folksonomy.py:107 msgid "Maximum number of tags:" msgstr "Maximale Anzahl zu verwendender Tags:" -#: picard/ui/ui_options_general.py:92 +#: picard/ui/ui_options_general.py:88 msgid "MusicBrainz Server" msgstr "MusicBrainz-Server" -#: picard/ui/ui_options_general.py:93 picard/ui/ui_options_network.py:123 +#: picard/ui/ui_options_general.py:89 picard/ui/ui_options_network.py:110 msgid "Port:" msgstr "Port:" -#: picard/ui/ui_options_general.py:94 picard/ui/ui_options_network.py:124 +#: picard/ui/ui_options_general.py:90 picard/ui/ui_options_network.py:111 msgid "Server address:" msgstr "Serveradresse:" -#: picard/ui/ui_options_general.py:95 +#: picard/ui/ui_options_general.py:91 msgid "Account Information" msgstr "Anmeldedaten" -#: picard/ui/ui_options_general.py:96 picard/ui/ui_options_network.py:121 -#: picard/ui/ui_passworddialog.py:74 +#: picard/ui/ui_options_general.py:92 picard/ui/ui_options_network.py:108 +#: picard/ui/ui_passworddialog.py:70 msgid "Password:" msgstr "Passwort:" -#: picard/ui/ui_options_general.py:97 picard/ui/ui_options_network.py:122 -#: picard/ui/ui_passworddialog.py:73 +#: picard/ui/ui_options_general.py:93 picard/ui/ui_options_network.py:109 +#: picard/ui/ui_passworddialog.py:69 msgid "Username:" msgstr "Benutzername:" -#: picard/ui/ui_options_general.py:98 picard/ui/options/general.py:31 +#: picard/ui/ui_options_general.py:94 picard/ui/options/general.py:31 msgid "General" msgstr "Allgemein" -#: picard/ui/ui_options_general.py:99 +#: picard/ui/ui_options_general.py:95 msgid "Automatically scan all new files" msgstr "Analysiere alle neuen Dateien automatisch" -#: picard/ui/ui_options_general.py:100 +#: picard/ui/ui_options_general.py:96 msgid "Ignore MBIDs when loading new files" msgstr "Ignoriere MBIDs beim Laden neuer Dateien" -#: picard/ui/ui_options_interface.py:82 +#: picard/ui/ui_options_interface.py:69 msgid "Miscellaneous" msgstr "Verschiedenes" -#: picard/ui/ui_options_interface.py:83 +#: picard/ui/ui_options_interface.py:70 msgid "Show text labels under icons" msgstr "Text unter Symbolen anzeigen" -#: picard/ui/ui_options_interface.py:84 +#: picard/ui/ui_options_interface.py:71 msgid "Allow selection of multiple directories" msgstr "Auswahl mehrerer Verzeichnisse zulassen" -#: picard/ui/ui_options_interface.py:85 +#: picard/ui/ui_options_interface.py:72 msgid "Use advanced query syntax" msgstr "Erweiterte Syntax für Suchanfragen verwenden" -#: picard/ui/ui_options_interface.py:86 +#: picard/ui/ui_options_interface.py:73 msgid "Show a quit confirmation dialog for unsaved changes" msgstr "Beim Beenden einen Bestätigungsdialog im Falle ungespeicherter Änderungen zeigen" -#: picard/ui/ui_options_interface.py:87 +#: picard/ui/ui_options_interface.py:74 msgid "Begin browsing in the following directory:" msgstr "In folgendem Verzeichnis zu Suchen anfangen:" -#: picard/ui/ui_options_interface.py:89 +#: picard/ui/ui_options_interface.py:76 msgid "User interface language:" msgstr "Sprache der Benutzeroberfläche:" -#: picard/ui/ui_options_matching.py:86 +#: picard/ui/ui_options_matching.py:73 msgid "Thresholds" msgstr "Schwellenwerte" -#: picard/ui/ui_options_matching.py:87 +#: picard/ui/ui_options_matching.py:74 msgid "Minimal similarity for matching files to tracks:" msgstr "Minimale Ähnlichkeit, um Dateien mit Titeln abzugleichen:" -#: picard/ui/ui_options_matching.py:91 +#: picard/ui/ui_options_matching.py:78 msgid "Minimal similarity for file lookups:" msgstr "Minimale Ähnlichkeit für Datei-Abfragen:" -#: picard/ui/ui_options_matching.py:92 +#: picard/ui/ui_options_matching.py:79 msgid "Minimal similarity for cluster lookups:" msgstr "Minimale Ähnlichkeit für Gruppierungsabfragen:" -#: picard/ui/ui_options_metadata.py:114 picard/ui/options/metadata.py:29 +#: picard/ui/ui_options_metadata.py:101 picard/ui/options/metadata.py:29 msgid "Metadata" msgstr "Metadaten" -#: picard/ui/ui_options_metadata.py:115 +#: picard/ui/ui_options_metadata.py:102 msgid "Translate artist names to this locale where possible:" msgstr "Falls möglich, Künstlernamen in dieses Gebietsschema übersetzen:" -#: picard/ui/ui_options_metadata.py:116 +#: picard/ui/ui_options_metadata.py:103 msgid "Use standardized artist names" msgstr "Benutze standardisierte Künstlernamen" -#: picard/ui/ui_options_metadata.py:117 +#: picard/ui/ui_options_metadata.py:104 msgid "Convert Unicode punctuation characters to ASCII" msgstr "Konvertiere Unicode-Interpunktionszeichen zu ASCII" -#: picard/ui/ui_options_metadata.py:118 +#: picard/ui/ui_options_metadata.py:105 msgid "Use release relationships" msgstr "Verwende Veröffentlichungsbeziehungen:" -#: picard/ui/ui_options_metadata.py:119 +#: picard/ui/ui_options_metadata.py:106 msgid "Use track relationships" msgstr "Verwende Titelbeziehungen:" -#: picard/ui/ui_options_metadata.py:120 +#: picard/ui/ui_options_metadata.py:107 msgid "Use folksonomy tags as genre" msgstr "Verwende Folksonomy-Tags als Genre" -#: picard/ui/ui_options_metadata.py:121 +#: picard/ui/ui_options_metadata.py:108 msgid "Custom Fields" msgstr "Benutzerdefinierte Felder" -#: picard/ui/ui_options_metadata.py:122 +#: picard/ui/ui_options_metadata.py:109 msgid "Various artists:" msgstr "Diverse Interpreten:" -#: picard/ui/ui_options_metadata.py:123 +#: picard/ui/ui_options_metadata.py:110 msgid "Non-album tracks:" msgstr "Titel ohne Album:" -#: picard/ui/ui_options_metadata.py:124 picard/ui/ui_options_metadata.py:125 -#: picard/ui/ui_options_renaming.py:147 +#: picard/ui/ui_options_metadata.py:111 picard/ui/ui_options_metadata.py:112 +#: picard/ui/ui_options_renaming.py:143 msgid "Default" msgstr "Standard" -#: picard/ui/ui_options_network.py:120 +#: picard/ui/ui_options_network.py:107 msgid "Web Proxy" msgstr "Web-Proxy" -#: picard/ui/ui_options_network.py:125 +#: picard/ui/ui_options_network.py:112 msgid "Browser Integration" msgstr "Browser-Integration" -#: picard/ui/ui_options_network.py:126 +#: picard/ui/ui_options_network.py:113 msgid "Default listening port:" msgstr "Standard-Verbindungsport" -#: picard/ui/ui_options_network.py:127 +#: picard/ui/ui_options_network.py:114 msgid "Listen only on localhost" msgstr "Nur auf localhost Verbindungen annehmen" -#: picard/ui/ui_options_plugins.py:131 picard/ui/options/plugins.py:38 +#: picard/ui/ui_options_plugins.py:127 picard/ui/options/plugins.py:38 msgid "Plugins" msgstr "Plugins" -#: picard/ui/ui_options_plugins.py:132 picard/ui/options/plugins.py:122 +#: picard/ui/ui_options_plugins.py:128 picard/ui/options/plugins.py:122 msgid "Name" msgstr "Name" -#: picard/ui/ui_options_plugins.py:133 picard/util/tags.py:39 +#: picard/ui/ui_options_plugins.py:129 msgid "Version" msgstr "Version" -#: picard/ui/ui_options_plugins.py:134 picard/ui/options/plugins.py:125 +#: picard/ui/ui_options_plugins.py:130 picard/ui/options/plugins.py:125 msgid "Author" msgstr "Autor" -#: picard/ui/ui_options_plugins.py:135 +#: picard/ui/ui_options_plugins.py:131 msgid "Install plugin..." msgstr "Plugin installieren …" -#: picard/ui/ui_options_plugins.py:136 +#: picard/ui/ui_options_plugins.py:132 msgid "Open plugin folder" msgstr "Plugin-Verzeichnis öffnen" -#: picard/ui/ui_options_plugins.py:137 +#: picard/ui/ui_options_plugins.py:133 msgid "Download plugins" msgstr "Plugins herunterladen" -#: picard/ui/ui_options_plugins.py:138 +#: picard/ui/ui_options_plugins.py:134 msgid "Details" msgstr "Details" -#: picard/ui/ui_options_ratings.py:53 +#: picard/ui/ui_options_ratings.py:49 msgid "Enable track ratings" msgstr "Titelbewertungen aktivieren" -#: picard/ui/ui_options_ratings.py:54 +#: picard/ui/ui_options_ratings.py:50 msgid "" "Picard saves the ratings together with an e-mail address identifying the " "user who did the rating. That way different ratings for different users can " @@ -1494,207 +1421,167 @@ msgid "" "your ratings." msgstr "Picard speichert die Bewertungen zusammen mit einer E-Mail-Adresse, die den Nutzer identifiziert, der die Bewertungen vorgenommen hat. Somit ist es möglich, in einer einzigen Datei die persönlichen Bewertungen von mehreren Benutzern zu speichern. Bitte gib die E-Mail-Adresse an, die du für deine eigenen Bewertungen nutzen möchtest." -#: picard/ui/ui_options_ratings.py:55 +#: picard/ui/ui_options_ratings.py:51 msgid "E-mail:" msgstr "E-Mail-Adresse:" -#: picard/ui/ui_options_ratings.py:56 +#: picard/ui/ui_options_ratings.py:52 msgid "Submit ratings to MusicBrainz" msgstr "Bewertungen an MusicBrainz übermitteln" -#: picard/ui/ui_options_releases.py:215 +#: picard/ui/ui_options_releases.py:104 msgid "Preferred release types" msgstr "Bevorzugte Veröffentlichungstypen" -#: picard/ui/ui_options_releases.py:217 -msgid "Single" -msgstr "Single" - -#: picard/ui/ui_options_releases.py:218 -msgid "EP" -msgstr "EP" - -#: picard/ui/ui_options_releases.py:219 -msgid "Compilation" -msgstr "Kompilation" - -#: picard/ui/ui_options_releases.py:220 -msgid "Soundtrack" -msgstr "Soundtrack" - -#: picard/ui/ui_options_releases.py:221 -msgid "Spokenword" -msgstr "Spoken Word" - -#: picard/ui/ui_options_releases.py:222 -msgid "Interview" -msgstr "Interview" - -#: picard/ui/ui_options_releases.py:223 -msgid "Audiobook" -msgstr "Hörbuch" - -#: picard/ui/ui_options_releases.py:224 -msgid "Live" -msgstr "Live" - -#: picard/ui/ui_options_releases.py:225 -msgid "Remix" -msgstr "Remix" - -#: picard/ui/ui_options_releases.py:227 -msgid "Reset all" -msgstr "Alle zurücksetzen" - -#: picard/ui/ui_options_releases.py:228 +#: picard/ui/ui_options_releases.py:105 msgid "Preferred release countries" msgstr "Bevorzugte Veröffentlichungsländer" -#: picard/ui/ui_options_releases.py:229 picard/ui/ui_options_releases.py:232 +#: picard/ui/ui_options_releases.py:106 picard/ui/ui_options_releases.py:109 msgid ">" msgstr ">" -#: picard/ui/ui_options_releases.py:230 picard/ui/ui_options_releases.py:233 +#: picard/ui/ui_options_releases.py:107 picard/ui/ui_options_releases.py:110 msgid "<" msgstr "<" -#: picard/ui/ui_options_releases.py:231 +#: picard/ui/ui_options_releases.py:108 msgid "Preferred release formats" msgstr "Bevorzugte Veröffentlichungsformate" -#: picard/ui/ui_options_renaming.py:134 +#: picard/ui/ui_options_renaming.py:130 msgid "Rename files when saving" msgstr "Dateien beim Speichern umbenennen" -#: picard/ui/ui_options_renaming.py:135 +#: picard/ui/ui_options_renaming.py:131 msgid "Replace non-ASCII characters" msgstr "Nicht-ASCII-Zeichen ersetzen" -#: picard/ui/ui_options_renaming.py:136 +#: picard/ui/ui_options_renaming.py:132 msgid "Windows compatibility" msgstr "Windows-Kompatibilität" -#: picard/ui/ui_options_renaming.py:137 +#: picard/ui/ui_options_renaming.py:133 msgid "Move files to this directory when saving:" msgstr "Dateien beim Speichern in dieses Verzeichnis verschieben:" -#: picard/ui/ui_options_renaming.py:139 +#: picard/ui/ui_options_renaming.py:135 msgid "Delete empty directories" msgstr "Leere Verzeichnisse löschen" -#: picard/ui/ui_options_renaming.py:140 +#: picard/ui/ui_options_renaming.py:136 msgid "Move additional files:" msgstr "Zusätzliche Dateien verschieben:" -#: picard/ui/ui_options_renaming.py:141 +#: picard/ui/ui_options_renaming.py:137 msgid "Name files like this" msgstr "Dateibenennung" -#: picard/ui/ui_options_renaming.py:148 +#: picard/ui/ui_options_renaming.py:144 msgid "Examples" msgstr "Beispiele" -#: picard/ui/ui_options_script.py:49 +#: picard/ui/ui_options_script.py:45 msgid "Tagger Script" msgstr "Tagger-Script" -#: picard/ui/ui_options_tags.py:165 +#: picard/ui/ui_options_tags.py:152 msgid "Write tags to files" msgstr "Tags in Dateien schreiben" -#: picard/ui/ui_options_tags.py:166 +#: picard/ui/ui_options_tags.py:153 msgid "Preserve timestamps of tagged files" msgstr "Zeitstempel der getaggten Dateien beibehalten" -#: picard/ui/ui_options_tags.py:167 +#: picard/ui/ui_options_tags.py:154 msgid "Before Tagging" -msgstr "" +msgstr "Vor dem Schreiben neuer Tags" -#: picard/ui/ui_options_tags.py:168 +#: picard/ui/ui_options_tags.py:155 msgid "Clear existing tags" msgstr "Existierende Tags löschen" -#: picard/ui/ui_options_tags.py:169 +#: picard/ui/ui_options_tags.py:156 msgid "Remove ID3 tags from FLAC files" msgstr "ID3-Tags aus FLAC-Dateien entfernen" -#: picard/ui/ui_options_tags.py:170 +#: picard/ui/ui_options_tags.py:157 msgid "Remove APEv2 tags from MP3 files" msgstr "APEv2-Tags aus MP3-Dateien entfernen" -#: picard/ui/ui_options_tags.py:171 +#: picard/ui/ui_options_tags.py:158 msgid "" "Preserve these tags from being cleared or overwritten with MusicBrainz data:" msgstr "Diese Tags davon ausnehmen, gelöscht oder mit MusicBrainz-Daten überschrieben zu werden:" -#: picard/ui/ui_options_tags.py:172 +#: picard/ui/ui_options_tags.py:159 msgid "Tags are separated by commas, and are case-sensitive." msgstr "Tags werden durch Kommata getrennt und Groß-/Kleinschreibung wird unterschieden." -#: picard/ui/ui_options_tags.py:173 +#: picard/ui/ui_options_tags.py:160 msgid "Tag Compatibility" -msgstr "" +msgstr "Tag-Kompatibilität" -#: picard/ui/ui_options_tags.py:174 +#: picard/ui/ui_options_tags.py:161 msgid "ID3v2 Version" -msgstr "" +msgstr "ID3v2-Version" -#: picard/ui/ui_options_tags.py:175 +#: picard/ui/ui_options_tags.py:162 msgid "2.4" msgstr "2.4" -#: picard/ui/ui_options_tags.py:176 +#: picard/ui/ui_options_tags.py:163 msgid "2.3" msgstr "2.3" -#: picard/ui/ui_options_tags.py:177 +#: picard/ui/ui_options_tags.py:164 msgid "ID3v2 Text Encoding" -msgstr "" +msgstr "Zeichenkodierung für ID3v2" -#: picard/ui/ui_options_tags.py:178 +#: picard/ui/ui_options_tags.py:165 msgid "UTF-8" msgstr "UTF-8" -#: picard/ui/ui_options_tags.py:179 +#: picard/ui/ui_options_tags.py:166 msgid "UTF-16" msgstr "UTF-16" -#: picard/ui/ui_options_tags.py:180 +#: picard/ui/ui_options_tags.py:167 msgid "ISO-8859-1" msgstr "ISO-8859-1" -#: picard/ui/ui_options_tags.py:181 +#: picard/ui/ui_options_tags.py:168 msgid "Join multiple ID3v2.3 tags with:" msgstr "Mehrere ID3v2.3-Tags verbinden mit:" -#: picard/ui/ui_options_tags.py:182 +#: picard/ui/ui_options_tags.py:169 msgid "" "

Default is '/' to maintain compatibility with previous" " Picard releases.

New alternatives are ';_' or '_/_' or type your own." "

" msgstr "

Der Standard ist '/', um die Kompatibilität mit früheren Versionen von Picard zu erhalten

Neue Möglichkeiten sind ';_' oder '_/_' oder selbst definierte Zeichenfolgen.

" -#: picard/ui/ui_options_tags.py:183 +#: picard/ui/ui_options_tags.py:170 msgid "Also include ID3v1 tags in the files" msgstr "Schreibe zusätzlich ID3v1-Tags in Dateien" -#: picard/ui/ui_passworddialog.py:72 +#: picard/ui/ui_passworddialog.py:68 msgid "Authentication required" msgstr "Authentifizierung erforderlich" -#: picard/ui/ui_passworddialog.py:75 +#: picard/ui/ui_passworddialog.py:71 msgid "Save username and password" msgstr "Benutzername und Passwort speichern" -#: picard/ui/ui_tagsfromfilenames.py:54 +#: picard/ui/ui_tagsfromfilenames.py:50 msgid "Convert File Names to Tags" msgstr "Tags aus Dateinamen ermitteln" -#: picard/ui/ui_tagsfromfilenames.py:55 +#: picard/ui/ui_tagsfromfilenames.py:51 msgid "Replace underscores with spaces" msgstr "Unterstriche durch Leerzeichen ersetzen" -#: picard/ui/ui_tagsfromfilenames.py:56 +#: picard/ui/ui_tagsfromfilenames.py:52 msgid "&Preview" msgstr "&Vorschau" @@ -1750,7 +1637,11 @@ msgstr "Erweitert" msgid "Regex Error" msgstr "Regex-Fehler" -#: picard/ui/options/cover.py:63 +#: picard/ui/options/cover.py:44 +msgid "title" +msgstr "" + +#: picard/ui/options/cover.py:68 msgid "Cover Art" msgstr "Cover-Bild" @@ -1766,11 +1657,11 @@ msgstr "Benutzeroberfläche" msgid "System default" msgstr "Systemvoreinstellung" -#: picard/ui/options/interface.py:96 +#: picard/ui/options/interface.py:98 msgid "Language changed" msgstr "Sprache geändert" -#: picard/ui/options/interface.py:96 +#: picard/ui/options/interface.py:99 msgid "" "You have changed the interface language. You have to restart Picard in order" " for the change to take effect." @@ -1792,31 +1683,35 @@ msgstr "Datei" msgid "Ratings" msgstr "Bewertungen" -#: picard/ui/options/releases.py:33 +#: picard/ui/options/releases.py:87 msgid "Preferred Releases" msgstr "Bevorzugte Veröffentlichungen" +#: picard/ui/options/releases.py:121 +msgid "Reset all" +msgstr "Alle zurücksetzen" + #: picard/ui/options/renaming.py:37 msgid "File Naming" -msgstr "" +msgstr "Dateibenennung" -#: picard/ui/options/renaming.py:184 +#: picard/ui/options/renaming.py:187 msgid "Error" msgstr "Fehler" -#: picard/ui/options/renaming.py:184 +#: picard/ui/options/renaming.py:187 msgid "The location to move files to must not be empty." msgstr "Das Zielverzeichnis für verschobene Dateien darf nicht leer sein." -#: picard/ui/options/renaming.py:194 +#: picard/ui/options/renaming.py:197 msgid "The file naming format must not be empty." msgstr "Das Format des Dateinamens darf nicht leer sein." -#: picard/ui/options/scripting.py:63 +#: picard/ui/options/scripting.py:99 msgid "Scripting" msgstr "Scripting" -#: picard/ui/options/scripting.py:95 +#: picard/ui/options/scripting.py:131 msgid "Script Error" msgstr "Script-Fehler" @@ -1936,201 +1831,201 @@ msgstr "ASIN" msgid "Grouping" msgstr "Gruppierung" -#: picard/util/tags.py:40 +#: picard/util/tags.py:39 msgid "ISRC" msgstr "ISRC" -#: picard/util/tags.py:41 +#: picard/util/tags.py:40 msgid "Mood" msgstr "Stimmung" -#: picard/util/tags.py:42 +#: picard/util/tags.py:41 msgid "BPM" msgstr "BPM" -#: picard/util/tags.py:43 +#: picard/util/tags.py:42 msgid "Copyright" msgstr "Copyright" -#: picard/util/tags.py:44 +#: picard/util/tags.py:43 msgid "License" msgstr "Lizenz" -#: picard/util/tags.py:45 +#: picard/util/tags.py:44 msgid "Composer" msgstr "Komponist" -#: picard/util/tags.py:46 +#: picard/util/tags.py:45 msgid "Writer" msgstr "Autor" -#: picard/util/tags.py:47 +#: picard/util/tags.py:46 msgid "Conductor" msgstr "Dirigent" -#: picard/util/tags.py:48 +#: picard/util/tags.py:47 msgid "Lyricist" msgstr "Texter" -#: picard/util/tags.py:49 +#: picard/util/tags.py:48 msgid "Arranger" msgstr "Arrangeur" -#: picard/util/tags.py:50 +#: picard/util/tags.py:49 msgid "Producer" msgstr "Produzent" -#: picard/util/tags.py:51 +#: picard/util/tags.py:50 msgid "Engineer" msgstr "Tontechniker" -#: picard/util/tags.py:52 +#: picard/util/tags.py:51 msgid "Subtitle" msgstr "Untertitel" -#: picard/util/tags.py:53 +#: picard/util/tags.py:52 msgid "Disc Subtitle" msgstr "Tonträger-Untertitel" -#: picard/util/tags.py:54 +#: picard/util/tags.py:53 msgid "Remixer" msgstr "Remixer" -#: picard/util/tags.py:55 +#: picard/util/tags.py:54 msgid "MusicBrainz Recording Id" msgstr "MusicBrainz-Aufnahme-ID" -#: picard/util/tags.py:56 +#: picard/util/tags.py:55 msgid "MusicBrainz Track Id" msgstr "MusicBrainz-Titel-ID" -#: picard/util/tags.py:57 +#: picard/util/tags.py:56 msgid "MusicBrainz Release Id" msgstr "MusicBrainz-Album-ID" -#: picard/util/tags.py:58 +#: picard/util/tags.py:57 msgid "MusicBrainz Artist Id" msgstr "MusicBrainz-Interpreten-ID" -#: picard/util/tags.py:59 +#: picard/util/tags.py:58 msgid "MusicBrainz Release Artist Id" msgstr "MusicBrainz-Albuminterpreten-ID" -#: picard/util/tags.py:60 +#: picard/util/tags.py:59 msgid "MusicBrainz Work Id" msgstr "MusicBrainz-Werk-ID" -#: picard/util/tags.py:61 +#: picard/util/tags.py:60 msgid "MusicBrainz Release Group Id" msgstr "MusicBrainz-Veröffentlichtungsgruppen-ID" -#: picard/util/tags.py:62 +#: picard/util/tags.py:61 msgid "MusicBrainz Disc Id" msgstr "MusicBrainz-Disc-ID" -#: picard/util/tags.py:63 -msgid "MusicBrainz Sort Name" -msgstr "MusicBrainz-Sortiername" - -#: picard/util/tags.py:64 +#: picard/util/tags.py:62 msgid "MusicIP PUID" msgstr "MusicIP-PUID" -#: picard/util/tags.py:65 +#: picard/util/tags.py:63 msgid "MusicIP Fingerprint" msgstr "MusicIP-Fingerabdruck" -#: picard/util/tags.py:66 +#: picard/util/tags.py:64 msgid "AcoustID" msgstr "AcoustID" -#: picard/util/tags.py:67 +#: picard/util/tags.py:65 msgid "AcoustID Fingerprint" msgstr "AcoustID-Fingerabdruck" -#: picard/util/tags.py:68 +#: picard/util/tags.py:66 msgid "Disc Id" msgstr "Disc-ID" -#: picard/util/tags.py:69 -msgid "Website" -msgstr "Website" +#: picard/util/tags.py:67 +msgid "Artist Website" +msgstr "" -#: picard/util/tags.py:70 +#: picard/util/tags.py:68 msgid "Compilation (iTunes)" msgstr "Kompilation (iTunes)" -#: picard/util/tags.py:71 +#: picard/util/tags.py:69 msgid "Comment" msgstr "Kommentar" -#: picard/util/tags.py:72 +#: picard/util/tags.py:70 msgid "Genre" msgstr "Genre" -#: picard/util/tags.py:73 +#: picard/util/tags.py:71 msgid "Encoded By" msgstr "Kodiert von" -#: picard/util/tags.py:74 +#: picard/util/tags.py:72 +msgid "Encoder Settings" +msgstr "" + +#: picard/util/tags.py:73 msgid "Performer" msgstr "Interpret" -#: picard/util/tags.py:75 +#: picard/util/tags.py:74 msgid "Release Type" msgstr "Veröffentlichungstyp" -#: picard/util/tags.py:76 +#: picard/util/tags.py:75 msgid "Release Status" msgstr "Veröffentlichungsstatus" -#: picard/util/tags.py:77 +#: picard/util/tags.py:76 msgid "Release Country" msgstr "Veröffentlichungsland" -#: picard/util/tags.py:78 +#: picard/util/tags.py:77 msgid "Record Label" msgstr "Plattenlabel" -#: picard/util/tags.py:80 +#: picard/util/tags.py:79 msgid "Catalog Number" msgstr "Katalognummer" -#: picard/util/tags.py:82 +#: picard/util/tags.py:80 msgid "DJ-Mixer" msgstr "DJ-Mixer" -#: picard/util/tags.py:83 +#: picard/util/tags.py:81 msgid "Media" msgstr "Medien" -#: picard/util/tags.py:84 +#: picard/util/tags.py:82 msgid "Lyrics" msgstr "Text" -#: picard/util/tags.py:85 +#: picard/util/tags.py:83 msgid "Mixer" msgstr "Mixer" -#: picard/util/tags.py:86 +#: picard/util/tags.py:84 msgid "Language" msgstr "Sprache" -#: picard/util/tags.py:87 +#: picard/util/tags.py:85 msgid "Script" msgstr "Schrift" -#: picard/util/tags.py:89 +#: picard/util/tags.py:87 msgid "Rating" msgstr "Bewertung" -#: picard/util/tags.py:90 +#: picard/util/tags.py:88 msgid "Artists" msgstr "Künstler" -#: picard/util/tags.py:91 +#: picard/util/tags.py:89 msgid "Work" -msgstr "" +msgstr "Werk" #: picard/util/webbrowser2.py:90 msgid "Web Browser Error" diff --git a/po/el.po b/po/el.po index cdd889759..777d4b8e8 100644 --- a/po/el.po +++ b/po/el.po @@ -12,8 +12,8 @@ msgid "" msgstr "" "Project-Id-Version: MusicBrainz\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2014-03-20 11:12+0100\n" -"PO-Revision-Date: 2014-03-21 08:44+0000\n" +"POT-Creation-Date: 2014-05-03 17:28+0200\n" +"PO-Revision-Date: 2014-05-04 08:44+0000\n" "Last-Translator: nikki\n" "Language-Team: Greek (http://www.transifex.com/projects/p/musicbrainz/language/el/)\n" "MIME-Version: 1.0\n" @@ -23,6 +23,10 @@ msgstr "" "Language: el\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" +#: contrib/plugins/albumartist_website.py:3 +msgid "Album Artist Website" +msgstr "" + #: contrib/plugins/no_release.py:50 msgid "Enable plugin for all releases by default" msgstr "Προεπιλεγμένη ενεργοποίηση προσθέτου για όλες τις κυκλοφορίες" @@ -35,63 +39,55 @@ msgstr "Ετικέτες προς αφαίρεση (διαχωρίζονται msgid "Remove specific release information..." msgstr "Αφαίρεση πληροφοριών για συγκεκριμένη κυκλοφορία..." -#: contrib/plugins/open_in_gui.py:32 -msgid "Open Error" -msgstr "Σφάλμα κατά το άνοιγμα" +#: contrib/plugins/standardise_performers.py:3 +msgid "Standardise Performers" +msgstr "" -#: contrib/plugins/open_in_gui.py:32 -#, python-format -msgid "" -"Error while opening file:\n" -"\n" -"%s" -msgstr "Σφάλμα κατά το άνοιγμα του αρχείου:\n\n%s" - -#: contrib/plugins/lastfm/ui_options_lastfm.py:117 +#: contrib/plugins/lastfm/ui_options_lastfm.py:99 msgid "Last.fm" msgstr "Last.fm" -#: contrib/plugins/lastfm/ui_options_lastfm.py:118 +#: contrib/plugins/lastfm/ui_options_lastfm.py:100 msgid "Use track tags" msgstr "Χρήση ετικετών κομματιού" -#: contrib/plugins/lastfm/ui_options_lastfm.py:119 +#: contrib/plugins/lastfm/ui_options_lastfm.py:101 msgid "Use artist tags" msgstr "Χρήση ετικετών καλλιτέχνη" -#: contrib/plugins/lastfm/ui_options_lastfm.py:120 +#: contrib/plugins/lastfm/ui_options_lastfm.py:102 #: picard/ui/options/tags.py:30 msgid "Tags" msgstr "Ετικέτες" -#: contrib/plugins/lastfm/ui_options_lastfm.py:121 -#: picard/ui/ui_options_folksonomy.py:116 +#: contrib/plugins/lastfm/ui_options_lastfm.py:103 +#: picard/ui/ui_options_folksonomy.py:103 msgid "Ignore tags:" msgstr "Παράβλεψη ετικετών" -#: contrib/plugins/lastfm/ui_options_lastfm.py:122 -#: picard/ui/ui_options_folksonomy.py:121 +#: contrib/plugins/lastfm/ui_options_lastfm.py:104 +#: picard/ui/ui_options_folksonomy.py:108 msgid "Join multiple tags with:" msgstr "Ένωση πολλαπλών ετικετών με:" -#: contrib/plugins/lastfm/ui_options_lastfm.py:123 -#: picard/ui/ui_options_folksonomy.py:122 +#: contrib/plugins/lastfm/ui_options_lastfm.py:105 +#: picard/ui/ui_options_folksonomy.py:109 msgid " / " msgstr " / " -#: contrib/plugins/lastfm/ui_options_lastfm.py:124 -#: picard/ui/ui_options_folksonomy.py:123 +#: contrib/plugins/lastfm/ui_options_lastfm.py:106 +#: picard/ui/ui_options_folksonomy.py:110 msgid ", " msgstr ", " -#: contrib/plugins/lastfm/ui_options_lastfm.py:125 -#: picard/ui/ui_options_folksonomy.py:118 +#: contrib/plugins/lastfm/ui_options_lastfm.py:107 +#: picard/ui/ui_options_folksonomy.py:105 msgid "Minimal tag usage:" msgstr "Ελάχιστη χρήση ετικετών:" -#: contrib/plugins/lastfm/ui_options_lastfm.py:126 -#: picard/ui/ui_options_folksonomy.py:119 picard/ui/ui_options_matching.py:88 -#: picard/ui/ui_options_matching.py:89 picard/ui/ui_options_matching.py:90 +#: contrib/plugins/lastfm/ui_options_lastfm.py:108 +#: picard/ui/ui_options_folksonomy.py:106 picard/ui/ui_options_matching.py:75 +#: picard/ui/ui_options_matching.py:76 picard/ui/ui_options_matching.py:77 msgid " %" msgstr " %" @@ -99,420 +95,307 @@ msgstr " %" msgid "Calculate replay &gain..." msgstr "" -#: contrib/plugins/replaygain/__init__.py:66 +#: contrib/plugins/replaygain/__init__.py:67 #, python-format -msgid "Calculating replay gain for \"%s\"..." +msgid "Calculating replay gain for \"%(filename)s\"..." msgstr "" -#: contrib/plugins/replaygain/__init__.py:71 +#: contrib/plugins/replaygain/__init__.py:75 #, python-format -msgid "Replay gain for \"%s\" successfully calculated." +msgid "Replay gain for \"%(filename)s\" successfully calculated." msgstr "" -#: contrib/plugins/replaygain/__init__.py:73 +#: contrib/plugins/replaygain/__init__.py:80 #, python-format -msgid "Could not calculate replay gain for \"%s\"." +msgid "Could not calculate replay gain for \"%(filename)s\"." msgstr "" -#: contrib/plugins/replaygain/__init__.py:76 +#: contrib/plugins/replaygain/__init__.py:85 msgid "Calculate album &gain..." msgstr "" -#: contrib/plugins/replaygain/__init__.py:103 -#: contrib/plugins/replaygain/__init__.py:111 +#: contrib/plugins/replaygain/__init__.py:113 +#: contrib/plugins/replaygain/__init__.py:124 #, python-format -msgid "Calculating album gain for \"%s\"..." +msgid "Calculating album gain for \"%(album)s\"..." msgstr "" -#: contrib/plugins/replaygain/__init__.py:119 +#: contrib/plugins/replaygain/__init__.py:135 #, python-format -msgid "Album gain for \"%s\" successfully calculated." +msgid "Album gain for \"%(album)s\" successfully calculated." msgstr "" -#: contrib/plugins/replaygain/__init__.py:121 +#: contrib/plugins/replaygain/__init__.py:140 #, python-format -msgid "Could not calculate album gain for \"%s\"." +msgid "Could not calculate album gain for \"%(album)s\"." msgstr "" -#: picard/acoustid.py:102 -#, python-format -msgid "AcoustID lookup network error for '%s'!" +#: contrib/plugins/replaygain/ui_options_replaygain.py:59 +msgid "Replay Gain" msgstr "" -#: picard/acoustid.py:117 -#, python-format -msgid "AcoustID lookup failed for '%s'!" +#: contrib/plugins/replaygain/ui_options_replaygain.py:60 +msgid "Path to VorbisGain:" msgstr "" -#: picard/acoustid.py:128 -#, python-format -msgid "Acoustid lookup returned no result for file '%s'" +#: contrib/plugins/replaygain/ui_options_replaygain.py:61 +msgid "Path to MP3Gain:" msgstr "" -#: picard/acoustid.py:132 -#, python-format -msgid "Looking up the fingerprint for file %s..." -msgstr "Αναζήτηση αποτυπώματος για το αρχείο %s..." - -#: picard/acoustidmanager.py:78 -msgid "Submitting AcoustIDs..." -msgstr "Υποβολή AcoustID..." - -#: picard/acoustidmanager.py:83 -#, python-format -msgid "AcoustID submission failed with error '%s'" +#: contrib/plugins/replaygain/ui_options_replaygain.py:62 +msgid "Path to metaflac:" msgstr "" -#: picard/acoustidmanager.py:85 +#: contrib/plugins/replaygain/ui_options_replaygain.py:63 +msgid "Path to wvgain:" +msgstr "" + +#: contrib/plugins/viewvariables/__init__.py:42 +#, python-format +msgid "File: %s" +msgstr "" + +#: contrib/plugins/viewvariables/__init__.py:47 +#, python-format +msgid "Track: %s %s " +msgstr "" + +#: contrib/plugins/viewvariables/__init__.py:49 +msgid "Variables" +msgstr "" + +#: contrib/plugins/viewvariables/__init__.py:69 +msgid "File variables" +msgstr "" + +#: contrib/plugins/viewvariables/__init__.py:74 +msgid "Hidden variables" +msgstr "" + +#: contrib/plugins/viewvariables/__init__.py:79 +msgid "Tag variables" +msgstr "" + +#: contrib/plugins/viewvariables/ui_variables_dialog.py:73 +msgid "Variable" +msgstr "" + +#: contrib/plugins/viewvariables/ui_variables_dialog.py:75 +msgid "Value" +msgstr "" + +#: picard/acoustid.py:109 +#, python-format +msgid "AcoustID lookup network error for '%(filename)s'!" +msgstr "" + +#: picard/acoustid.py:133 +#, python-format +msgid "AcoustID lookup failed for '%(filename)s'!" +msgstr "" + +#: picard/acoustid.py:155 +#, python-format +msgid "AcoustID lookup returned no result for file '%(filename)s'" +msgstr "" + +#: picard/acoustid.py:166 +#, python-format +msgid "Looking up the fingerprint for file '%(filename)s' ..." +msgstr "" + +#: picard/acoustidmanager.py:80 +msgid "Submitting AcoustIDs ..." +msgstr "" + +#: picard/acoustidmanager.py:94 +#, python-format +msgid "AcoustID submission failed with error '%(error)s'" +msgstr "" + +#: picard/acoustidmanager.py:102 msgid "AcoustIDs successfully submitted." msgstr "" -#: picard/album.py:64 picard/cluster.py:234 +#: picard/album.py:65 picard/cluster.py:255 msgid "Unmatched Files" msgstr "Τα αρχεία δεν ταιριάζουν" -#: picard/album.py:187 +#: picard/album.py:188 #, python-format msgid "[could not load album %s]" msgstr "[αδύνατη η φόρτωση του άλμπουμ %s]" -#: picard/album.py:272 +#: picard/album.py:277 #, python-format -msgid "Album %s loaded" -msgstr "Το άλμπουμ %s φορτώθηκε" +msgid "Album %(id)s loaded: %(artist)s - %(album)s" +msgstr "" -#: picard/album.py:288 +#: picard/album.py:294 +#, python-format +msgid "Loading album %(id)s ..." +msgstr "" + +#: picard/album.py:303 msgid "[loading album information]" msgstr "[φόρτωση πληροφοριών άλμπουμ]" -#: picard/album.py:463 +#: picard/album.py:478 #, python-format msgid "; %i image" msgid_plural "; %i images" msgstr[0] "; %i εικόνα" msgstr[1] "; %i εικόνες" -#: picard/cluster.py:150 picard/cluster.py:159 +#: picard/cluster.py:155 picard/cluster.py:168 #, python-format -msgid "No matching releases for cluster %s" -msgstr "Δε βρέθηκε κυκλοφορία που να αντιστοιχεί στην ομάδα %s" +msgid "No matching releases for cluster %(album)s" +msgstr "" -#: picard/cluster.py:161 +#: picard/cluster.py:174 #, python-format -msgid "Cluster %s identified!" -msgstr "Ομάδα %s αναγνωρίστηκε!" +msgid "Cluster %(album)s identified!" +msgstr "" -#: picard/cluster.py:168 +#: picard/cluster.py:185 #, python-format -msgid "Looking up the metadata for cluster %s..." -msgstr "Αναζήτηση μεταδεδομένων για την ομάδα %s..." +msgid "Looking up the metadata for cluster %(album)s..." +msgstr "" -#: picard/collection.py:60 +#: picard/collection.py:64 #, python-format -msgid "Added %i release to collection \"%s\"" -msgid_plural "Added %i releases to collection \"%s\"" +msgid "Added %(count)i release to collection \"%(name)s\"" +msgid_plural "Added %(count)i releases to collection \"%(name)s\"" msgstr[0] "" msgstr[1] "" -#: picard/collection.py:72 +#: picard/collection.py:86 #, python-format -msgid "Removed %i release from collection \"%s\"" -msgid_plural "Removed %i releases from collection \"%s\"" -msgstr[0] "Αφαιρέθηκε %i κυκλοφορία από την συλλογή «%s»" -msgstr[1] "Αφαιρέθηκαν %i κυκλοφορίες από τη συλλογή «%s»" +msgid "Removed %(count)i release from collection \"%(name)s\"" +msgid_plural "Removed %(count)i releases from collection \"%(name)s\"" +msgstr[0] "" +msgstr[1] "" -#: picard/collection.py:81 +#: picard/collection.py:100 #, python-format -msgid "Error loading collections: %s" -msgstr "Σφάλμα κατά τη φόρτωση των συλλογών: %s " +msgid "Error loading collections: %(error)s" +msgstr "" -#: picard/config_upgrade.py:57 picard/config_upgrade.py:70 +#: picard/config_upgrade.py:58 picard/config_upgrade.py:71 msgid "Various Artists file naming scheme removal" msgstr "" -#: picard/config_upgrade.py:58 +#: picard/config_upgrade.py:59 msgid "" "The separate file naming scheme for various artists albums has been removed in this version of Picard.\n" "Your file naming scheme has automatically been merged with that of single artist albums." msgstr "" -#: picard/config_upgrade.py:71 +#: picard/config_upgrade.py:72 msgid "" "The separate file naming scheme for various artists albums has been removed in this version of Picard.\n" "You currently do not use this option, but have a separate file naming scheme defined.\n" "Do you want to remove it or merge it with your file naming scheme for single artist albums?" msgstr "" -#: picard/config_upgrade.py:77 +#: picard/config_upgrade.py:78 msgid "Merge" msgstr "Συγχώνευση" -#: picard/config_upgrade.py:77 picard/ui/metadatabox.py:254 +#: picard/config_upgrade.py:78 picard/ui/metadatabox.py:254 msgid "Remove" msgstr "Αφαίρεση" -#: picard/const.py:67 -msgid "CD" -msgstr "CD" - -#: picard/const.py:68 -msgid "CD-R" -msgstr "CD-R" - -#: picard/const.py:69 -msgid "HDCD" -msgstr "HDCD" - -#: picard/const.py:70 -msgid "8cm CD" -msgstr "CD 8cm" - -#: picard/const.py:71 -msgid "Vinyl" -msgstr "Βινύλιο" - -#: picard/const.py:72 -msgid "7\" Vinyl" -msgstr "Βινύλιο 7\"" - -#: picard/const.py:73 -msgid "10\" Vinyl" -msgstr "Βινύλιο 10\" " - -#: picard/const.py:74 -msgid "12\" Vinyl" -msgstr "Βινύλιο 12\" " - -#: picard/const.py:75 -msgid "Digital Media" -msgstr "Ψηφιακά Μέσα" - -#: picard/const.py:76 -msgid "USB Flash Drive" -msgstr "USB Flash Drive" - -#: picard/const.py:77 -msgid "slotMusic" -msgstr "slotMusic" - -#: picard/const.py:78 -msgid "Cassette" -msgstr "Κασέτα" - -#: picard/const.py:79 -msgid "DVD" -msgstr "DVD" - -#: picard/const.py:80 -msgid "DVD-Audio" -msgstr "DVD-Audio" - -#: picard/const.py:81 -msgid "DVD-Video" -msgstr "DVD-Video" - -#: picard/const.py:82 -msgid "SACD" -msgstr "SACD" - -#: picard/const.py:83 -msgid "DualDisc" -msgstr "DualDisc" - -#: picard/const.py:84 -msgid "MiniDisc" -msgstr "MiniDisc" - -#: picard/const.py:85 -msgid "Blu-ray" -msgstr "Blu-ray" - -#: picard/const.py:86 -msgid "HD-DVD" -msgstr "HD-DVD" - -#: picard/const.py:87 -msgid "Videotape" -msgstr "Βιντεοκασέτα" - -#: picard/const.py:88 -msgid "VHS" -msgstr "VHS" - -#: picard/const.py:89 -msgid "Betamax" -msgstr "Betamax" - #: picard/const.py:90 -msgid "VCD" -msgstr "VCD" - -#: picard/const.py:91 -msgid "SVCD" -msgstr "SVCD" - -#: picard/const.py:92 -msgid "UMD" -msgstr "UMD" - -#: picard/const.py:93 picard/coverartarchive.py:33 -#: picard/ui/ui_options_releases.py:226 -msgid "Other" -msgstr "Άλλο" - -#: picard/const.py:94 -msgid "LaserDisc" -msgstr "LaserDisc" - -#: picard/const.py:95 -msgid "Cartridge" -msgstr "Cartridge" - -#: picard/const.py:96 -msgid "Reel-to-reel" -msgstr "Reel-to-reel" - -#: picard/const.py:97 -msgid "DAT" -msgstr "DAT" - -#: picard/const.py:98 -msgid "Wax Cylinder" -msgstr "Κύλινδρος κεριού" - -#: picard/const.py:99 -msgid "Piano Roll" -msgstr "Piano Roll" - -#: picard/const.py:100 -msgid "DCC" -msgstr "DCC" - -#: picard/const.py:115 msgid "Danish" msgstr "Δανέζικα" -#: picard/const.py:116 +#: picard/const.py:91 msgid "German" msgstr "Γερμανικά" -#: picard/const.py:118 +#: picard/const.py:93 msgid "English" msgstr "Αγγλικά" -#: picard/const.py:119 +#: picard/const.py:94 msgid "English (Canada)" msgstr "Αγγλικά (Καναδάς)" -#: picard/const.py:120 +#: picard/const.py:95 msgid "English (UK)" msgstr "Αγγλικά (Ηνωμένο Βασίλειο)" -#: picard/const.py:122 +#: picard/const.py:97 msgid "Spanish" msgstr "Ισπανικά" -#: picard/const.py:123 +#: picard/const.py:98 msgid "Estonian" msgstr "Εσθονικά" -#: picard/const.py:125 +#: picard/const.py:100 msgid "Finnish" msgstr "Φινλανδικά" -#: picard/const.py:127 +#: picard/const.py:102 msgid "French" msgstr "Γαλλικά" -#: picard/const.py:136 +#: picard/const.py:111 msgid "Italian" msgstr "Ιταλικά" -#: picard/const.py:143 +#: picard/const.py:118 msgid "Dutch" msgstr "Ολλανδικά" -#: picard/const.py:145 +#: picard/const.py:120 msgid "Polish" msgstr "Πολωνικά" -#: picard/const.py:147 +#: picard/const.py:122 msgid "Brazilian Portuguese" msgstr "Πορτογαλικά Βραζιλίας" -#: picard/const.py:154 +#: picard/const.py:129 msgid "Swedish" msgstr "Σουηδικά" -#: picard/coverart.py:84 +#: picard/coverart.py:85 #, python-format -msgid "Coverart %s downloaded" -msgstr "Εξώφυλλα %s κατέβηκαν" - -#: picard/coverart.py:240 -#, python-format -msgid "Downloading http://%s:%i%s" +msgid "Cover art of type '%(type)s' downloaded for %(albumid)s from %(host)s" msgstr "" -#: picard/coverartarchive.py:24 -msgid "Front" -msgstr "Εξώφυλλο" - -#: picard/coverartarchive.py:25 -msgid "Back" -msgstr "Οπισθόφυλλο" - -#: picard/coverartarchive.py:26 -msgid "Booklet" -msgstr "Ένθετο" - -#: picard/coverartarchive.py:27 -msgid "Medium" -msgstr "Μέσο" - -#: picard/coverartarchive.py:28 -msgid "Tray" -msgstr "" - -#: picard/coverartarchive.py:29 -msgid "Obi" +#: picard/coverart.py:256 +#, python-format +msgid "" +"Downloading cover art of type '%(type)s' for %(albumid)s from %(host)s .." msgstr "" #: picard/coverartarchive.py:30 -msgid "Spine" -msgstr "Ράχη" - -#: picard/coverartarchive.py:31 picard/ui/mainwindow.py:546 -msgid "Track" -msgstr "Κομμάτι" - -#: picard/coverartarchive.py:32 -msgid "Sticker" -msgstr "Αυτοκόλλητο" - -#: picard/coverartarchive.py:34 msgid "Unknown" msgstr "Άγνωστο" -#: picard/file.py:536 +#: picard/file.py:494 #, python-format -msgid "No matching tracks for file %s" -msgstr "Δεν υπάρχει κομμάτι που να αντιστοιχεί με το αρχείο %s" +msgid "No matching tracks for file '%(filename)s'" +msgstr "" -#: picard/file.py:548 +#: picard/file.py:510 #, python-format -msgid "No matching tracks above the threshold for file %s" -msgstr "Δε βρέθηκαν κομμάτια που να ξεπερνούν τον κατώφλι ομοιότητας για το αρχείο %s" +msgid "No matching tracks above the threshold for file '%(filename)s'" +msgstr "" -#: picard/file.py:551 +#: picard/file.py:517 #, python-format -msgid "File %s identified!" -msgstr "Το αρχείο %s αναγνωρίστηκε!" +msgid "File '%(filename)s' identified!" +msgstr "" -#: picard/file.py:567 +#: picard/file.py:537 #, python-format -msgid "Looking up the metadata for file %s..." -msgstr "Αναζήτηση των μεταδεδομένων για το αρχείο %s..." +msgid "Looking up the metadata for file %(filename)s ..." +msgstr "" #: picard/releasegroup.py:53 msgid "Tracks" @@ -522,11 +405,11 @@ msgstr "" msgid "Year" msgstr "" -#: picard/releasegroup.py:55 picard/ui/cdlookup.py:34 +#: picard/releasegroup.py:55 picard/ui/cdlookup.py:35 msgid "Country" msgstr "Χώρα" -#: picard/releasegroup.py:56 picard/util/tags.py:81 +#: picard/releasegroup.py:56 msgid "Format" msgstr "Μορφή" @@ -546,16 +429,23 @@ msgstr "" msgid "[no release info]" msgstr "[καμία πληροφορία κυκλοφορίας]" -#: picard/tagger.py:316 +#: picard/tagger.py:370 #, python-format -msgid "Loading directory %s" -msgstr "Φόρτωση φακέλου %s" +msgid "Adding %(count)d file from '%(directory)s' ..." +msgid_plural "Adding %(count)d files from '%(directory)s' ..." +msgstr[0] "" +msgstr[1] "" -#: picard/tagger.py:452 +#: picard/tagger.py:512 +#, python-format +msgid "Removing album %(id)s: %(artist)s - %(album)s" +msgstr "" + +#: picard/tagger.py:528 msgid "CD Lookup Error" msgstr "Σφάλμα αναζήτησης CD" -#: picard/tagger.py:453 +#: picard/tagger.py:529 #, python-format msgid "" "Error while reading CD:\n" @@ -563,44 +453,43 @@ msgid "" "%s" msgstr "Σφάλμα κατά την ανάγνωση του CD:\n\n%s" -#: picard/ui/cdlookup.py:34 picard/ui/mainwindow.py:544 -#: picard/ui/ui_options_releases.py:216 picard/util/tags.py:21 +#: picard/ui/cdlookup.py:35 picard/ui/mainwindow.py:597 picard/util/tags.py:21 msgid "Album" msgstr "Άλμπουμ" -#: picard/ui/cdlookup.py:34 picard/ui/itemviews.py:96 -#: picard/ui/mainwindow.py:545 picard/util/tags.py:22 +#: picard/ui/cdlookup.py:35 picard/ui/itemviews.py:96 +#: picard/ui/mainwindow.py:598 picard/util/tags.py:22 msgid "Artist" msgstr "Καλλιτέχνης" -#: picard/ui/cdlookup.py:34 picard/util/tags.py:24 +#: picard/ui/cdlookup.py:35 picard/util/tags.py:24 msgid "Date" msgstr "Ημερομηνία" -#: picard/ui/cdlookup.py:35 +#: picard/ui/cdlookup.py:36 msgid "Labels" msgstr "Δισκογραφικές εταιρείες" -#: picard/ui/cdlookup.py:35 +#: picard/ui/cdlookup.py:36 msgid "Catalog #s" msgstr "Αριθμοί καταλόγου" -#: picard/ui/cdlookup.py:35 picard/util/tags.py:79 +#: picard/ui/cdlookup.py:36 picard/util/tags.py:78 msgid "Barcode" msgstr "Barcode" -#: picard/ui/collectionmenu.py:31 +#: picard/ui/collectionmenu.py:42 msgid "Refresh List" msgstr "Ανανέωση λίστας" -#: picard/ui/collectionmenu.py:92 +#: picard/ui/collectionmenu.py:86 #, python-format msgid "%s (%i release)" msgid_plural "%s (%i releases)" msgstr[0] "%s (%i κυκλοφορία)" msgstr[1] "%s (%i κυκλοφορίες)" -#: picard/ui/coverartbox.py:142 +#: picard/ui/coverartbox.py:141 msgid "View release on MusicBrainz" msgstr "Προβολή κυκλοφορίας στο MusicBrainz" @@ -616,59 +505,59 @@ msgstr "Εμφάνιση &Κρυφά Αρχεία" msgid "&Set as starting directory" msgstr "" -#: picard/ui/infodialog.py:36 picard/ui/infodialog.py:75 +#: picard/ui/infodialog.py:37 picard/ui/infodialog.py:80 msgid "Info" msgstr "Πληροφορίες" -#: picard/ui/infodialog.py:80 +#: picard/ui/infodialog.py:85 msgid "Filename:" msgstr "Όνομα αρχείου:" -#: picard/ui/infodialog.py:82 +#: picard/ui/infodialog.py:87 msgid "Format:" msgstr "Μορφή:" -#: picard/ui/infodialog.py:86 +#: picard/ui/infodialog.py:91 msgid "Size:" msgstr "Μέγεθος:" -#: picard/ui/infodialog.py:90 +#: picard/ui/infodialog.py:95 msgid "Length:" msgstr "Διάρκεια:" -#: picard/ui/infodialog.py:92 +#: picard/ui/infodialog.py:97 msgid "Bitrate:" msgstr "Ρυθμός bit:" -#: picard/ui/infodialog.py:94 +#: picard/ui/infodialog.py:99 msgid "Sample rate:" msgstr "Ρυθμός δειγματοληψίας:" -#: picard/ui/infodialog.py:96 +#: picard/ui/infodialog.py:101 msgid "Bits per sample:" msgstr "bits ανά δείγμα:" -#: picard/ui/infodialog.py:100 +#: picard/ui/infodialog.py:105 msgid "Mono" msgstr "Mono" -#: picard/ui/infodialog.py:102 +#: picard/ui/infodialog.py:107 msgid "Stereo" msgstr "Stereo" -#: picard/ui/infodialog.py:105 +#: picard/ui/infodialog.py:110 msgid "Channels:" msgstr "Κανάλια:" -#: picard/ui/infodialog.py:116 +#: picard/ui/infodialog.py:121 msgid "Album Info" msgstr "Πληροφορίες δίσκου" -#: picard/ui/infodialog.py:124 +#: picard/ui/infodialog.py:129 msgid "&Errors" msgstr "%Σφάλματα" -#: picard/ui/infodialog.py:134 picard/ui/ui_infodialog.py:77 +#: picard/ui/infodialog.py:139 picard/ui/ui_infodialog.py:73 msgid "&Info" msgstr "&Πληροφορίες" @@ -692,7 +581,7 @@ msgstr "Εκκρεμής αιτήματα" msgid "Title" msgstr "Τίτλος" -#: picard/ui/itemviews.py:95 picard/util/tags.py:88 +#: picard/ui/itemviews.py:95 picard/util/tags.py:86 msgid "Length" msgstr "Διάρκεια" @@ -717,8 +606,8 @@ msgid "Collections" msgstr "Συλλογές" #: picard/ui/itemviews.py:365 -msgid "&Plugins" -msgstr "&Πρόσθετα" +msgid "P&lugins" +msgstr "" #: picard/ui/itemviews.py:541 msgid "file view" @@ -740,12 +629,16 @@ msgstr "προβολή δίσκου" msgid "Contains albums and matched files" msgstr "Περιέχει άλμπουμ και ταιριασμένα αρχεία" -#: picard/ui/logview.py:91 +#: picard/ui/logview.py:109 msgid "Log" msgstr "Αρχείο καταγραφής" -#: picard/ui/logview.py:99 -msgid "Status History" +#: picard/ui/logview.py:113 +msgid "Debug mode" +msgstr "" + +#: picard/ui/logview.py:134 +msgid "Activity History" msgstr "" #: picard/ui/mainwindow.py:74 @@ -779,276 +672,309 @@ msgstr "Έτοιμο" #: picard/ui/mainwindow.py:220 msgid "" -"Picard listens on a port to integrate with your browser and downloads " -"release information when you click the \"Tagger\" buttons on the MusicBrainz" -" website" +"Picard listens on this port to integrate with your browser. When you " +"\"Search\" or \"Open in Browser\" from Picard, clicking the \"Tagger\" " +"button on the web page loads the release into Picard." msgstr "" -#: picard/ui/mainwindow.py:240 +#: picard/ui/mainwindow.py:243 #, python-format msgid " Listening on port %(port)d " msgstr "" -#: picard/ui/mainwindow.py:263 +#: picard/ui/mainwindow.py:299 msgid "Submission Error" msgstr "Σφάλμα υποβολής" -#: picard/ui/mainwindow.py:264 +#: picard/ui/mainwindow.py:300 msgid "" "You need to configure your AcoustID API key before you can submit " "fingerprints." msgstr "Πρέπει να ρυθμίσετε το κλειδί AcoustID API σας πριν να υποβάλετε αποτυπώματα." -#: picard/ui/mainwindow.py:269 +#: picard/ui/mainwindow.py:305 msgid "&Options..." msgstr "&Επιλογές..." -#: picard/ui/mainwindow.py:273 +#: picard/ui/mainwindow.py:309 msgid "&Cut" msgstr "&Αποκοπή" -#: picard/ui/mainwindow.py:278 +#: picard/ui/mainwindow.py:314 msgid "&Paste" msgstr "&Επικόλληση" -#: picard/ui/mainwindow.py:283 +#: picard/ui/mainwindow.py:319 msgid "&Help..." msgstr "&Βοήθεια..." -#: picard/ui/mainwindow.py:288 +#: picard/ui/mainwindow.py:323 msgid "&About..." msgstr "&Σχετικά..." -#: picard/ui/mainwindow.py:292 +#: picard/ui/mainwindow.py:327 msgid "&Donate..." msgstr "&Δωρεά..." -#: picard/ui/mainwindow.py:295 +#: picard/ui/mainwindow.py:330 msgid "&Report a Bug..." msgstr "&Αναφορά σφάλματος" -#: picard/ui/mainwindow.py:298 +#: picard/ui/mainwindow.py:333 msgid "&Support Forum..." msgstr "&Φόρουμ υποστήριξης" -#: picard/ui/mainwindow.py:301 +#: picard/ui/mainwindow.py:336 msgid "&Add Files..." msgstr "&Προσθήκη αρχείων..." -#: picard/ui/mainwindow.py:302 +#: picard/ui/mainwindow.py:337 msgid "Add files to the tagger" msgstr "Πρόσθεσε αρχεία" -#: picard/ui/mainwindow.py:307 +#: picard/ui/mainwindow.py:342 msgid "A&dd Folder..." msgstr "Προσ&θήκη καταλόγου..." -#: picard/ui/mainwindow.py:308 +#: picard/ui/mainwindow.py:343 msgid "Add a folder to the tagger" msgstr "Προσθήκη φακέλου" -#: picard/ui/mainwindow.py:310 +#: picard/ui/mainwindow.py:345 msgid "Ctrl+D" msgstr "Ctrl+D" -#: picard/ui/mainwindow.py:313 +#: picard/ui/mainwindow.py:348 msgid "&Save" msgstr "&Αποθήκευση" -#: picard/ui/mainwindow.py:314 +#: picard/ui/mainwindow.py:349 msgid "Save selected files" msgstr "Αποθήκευση επιλεγμένων αρχείων" -#: picard/ui/mainwindow.py:320 +#: picard/ui/mainwindow.py:355 msgid "S&ubmit" msgstr "&Υποβολή" -#: picard/ui/mainwindow.py:321 -msgid "Submit fingerprints" -msgstr "υποβολή αποτυπωμάτων" +#: picard/ui/mainwindow.py:356 +msgid "Submit acoustic fingerprints" +msgstr "" -#: picard/ui/mainwindow.py:325 +#: picard/ui/mainwindow.py:360 msgid "E&xit" msgstr "Έ&ξοδος" -#: picard/ui/mainwindow.py:328 +#: picard/ui/mainwindow.py:363 msgid "Ctrl+Q" msgstr "Ctrl+Q" -#: picard/ui/mainwindow.py:331 +#: picard/ui/mainwindow.py:366 msgid "&Remove" msgstr "&Αφαίρεση" -#: picard/ui/mainwindow.py:332 +#: picard/ui/mainwindow.py:367 msgid "Remove selected files/albums" msgstr "Αφαίρεση επιλεγμένων αρχείων/αλμπουμ" -#: picard/ui/mainwindow.py:336 +#: picard/ui/mainwindow.py:371 msgid "Lookup in &Browser" msgstr "Αναζήτηση στον &περιηγητή" -#: picard/ui/mainwindow.py:337 +#: picard/ui/mainwindow.py:372 msgid "Lookup selected item on MusicBrainz website" msgstr "Αναζήτηση του επιλεγμένου αντικειμένου στην ιστοσελίδα του MusicBrainz" -#: picard/ui/mainwindow.py:341 +#: picard/ui/mainwindow.py:376 msgid "File &Browser" msgstr "Εξερεύνηση αρχείων" -#: picard/ui/mainwindow.py:345 +#: picard/ui/mainwindow.py:380 msgid "Ctrl+B" msgstr "Ctrl+B" -#: picard/ui/mainwindow.py:348 +#: picard/ui/mainwindow.py:383 msgid "&Cover Art" msgstr "&Εξώφυλλο" -#: picard/ui/mainwindow.py:354 picard/ui/mainwindow.py:539 +#: picard/ui/mainwindow.py:389 picard/ui/mainwindow.py:591 msgid "Search" msgstr "Αναζήτηση" -#: picard/ui/mainwindow.py:357 -msgid "&CD Lookup..." -msgstr "&Αναζήτηση CD..." +#: picard/ui/mainwindow.py:392 +msgid "Lookup &CD..." +msgstr "" -#: picard/ui/mainwindow.py:358 picard/ui/mainwindow.py:359 -msgid "Lookup CD" -msgstr "Αναζήτηση CD" +#: picard/ui/mainwindow.py:393 +msgid "Lookup the details of the CD in your drive" +msgstr "" -#: picard/ui/mainwindow.py:361 +#: picard/ui/mainwindow.py:395 msgid "Ctrl+K" msgstr "Ctrl+K" -#: picard/ui/mainwindow.py:364 +#: picard/ui/mainwindow.py:398 msgid "&Scan" msgstr "&Σάρωση" -#: picard/ui/mainwindow.py:367 +#: picard/ui/mainwindow.py:401 msgid "Ctrl+Y" msgstr "Ctrl+Y" -#: picard/ui/mainwindow.py:370 +#: picard/ui/mainwindow.py:404 msgid "Cl&uster" msgstr "Ομ&άδες" -#: picard/ui/mainwindow.py:373 +#: picard/ui/mainwindow.py:407 msgid "Ctrl+U" msgstr "Ctrl+U" -#: picard/ui/mainwindow.py:376 +#: picard/ui/mainwindow.py:410 msgid "&Lookup" msgstr "&Αναζήτηση" -#: picard/ui/mainwindow.py:377 picard/ui/mainwindow.py:378 -msgid "Lookup metadata" -msgstr "Αναζήτηση μεταδεδομένων" +#: picard/ui/mainwindow.py:411 +msgid "Lookup selected items in MusicBrainz" +msgstr "" -#: picard/ui/mainwindow.py:381 +#: picard/ui/mainwindow.py:416 msgid "Ctrl+L" msgstr "Ctrl+L" -#: picard/ui/mainwindow.py:384 +#: picard/ui/mainwindow.py:419 msgid "&Info..." msgstr "&Πληροφορίες..." -#: picard/ui/mainwindow.py:387 +#: picard/ui/mainwindow.py:422 msgid "Ctrl+I" msgstr "Ctrl+I" -#: picard/ui/mainwindow.py:390 +#: picard/ui/mainwindow.py:425 msgid "&Refresh" msgstr "&Ανανέωση" -#: picard/ui/mainwindow.py:391 +#: picard/ui/mainwindow.py:426 msgid "Ctrl+R" msgstr "Ctrl+R" -#: picard/ui/mainwindow.py:394 +#: picard/ui/mainwindow.py:429 msgid "&Rename Files" msgstr "&Μετονομασία αρχείων" -#: picard/ui/mainwindow.py:399 +#: picard/ui/mainwindow.py:434 msgid "&Move Files" msgstr "&Μετακίνηση αρχείων" -#: picard/ui/mainwindow.py:404 +#: picard/ui/mainwindow.py:439 msgid "Save &Tags" msgstr "Αποθήκευση &ετικετών" -#: picard/ui/mainwindow.py:409 +#: picard/ui/mainwindow.py:444 msgid "Tags From &File Names..." msgstr "Ετικέτα από τα &ονόματα αρχείων..." -#: picard/ui/mainwindow.py:412 -msgid "View &Log..." -msgstr "Προβολή &καταγραφής..." - -#: picard/ui/mainwindow.py:415 -msgid "View Status &History..." +#: picard/ui/mainwindow.py:447 +msgid "&Open My Collections in Browser" msgstr "" -#: picard/ui/mainwindow.py:422 -msgid "&Open..." -msgstr "&Άνοιγμα..." +#: picard/ui/mainwindow.py:451 +msgid "View Error/Debug &Log" +msgstr "" -#: picard/ui/mainwindow.py:423 -msgid "Open the file" -msgstr "Άνοιγμα αρχείου" +#: picard/ui/mainwindow.py:454 +msgid "View Activity &History" +msgstr "" -#: picard/ui/mainwindow.py:426 -msgid "Open &Folder..." -msgstr "Άνοιγμα &φακέλου..." +#: picard/ui/mainwindow.py:461 +msgid "&Play file" +msgstr "" -#: picard/ui/mainwindow.py:427 -msgid "Open the containing folder" -msgstr "Άνοιγμα του φακέλου περιοεχομένων" +#: picard/ui/mainwindow.py:462 +msgid "Play the file in your default media player" +msgstr "" -#: picard/ui/mainwindow.py:448 +#: picard/ui/mainwindow.py:466 +msgid "Open Containing &Folder" +msgstr "" + +#: picard/ui/mainwindow.py:467 +msgid "Open the containing folder in your file explorer" +msgstr "" + +#: picard/ui/mainwindow.py:492 msgid "&File" msgstr "&Αρχείο" -#: picard/ui/mainwindow.py:456 +#: picard/ui/mainwindow.py:503 msgid "&Edit" msgstr "&Επεξεργασία" -#: picard/ui/mainwindow.py:462 +#: picard/ui/mainwindow.py:509 msgid "&View" msgstr "&Προβολή" -#: picard/ui/mainwindow.py:470 +#: picard/ui/mainwindow.py:515 msgid "&Options" msgstr "&Επιλογές" -#: picard/ui/mainwindow.py:476 +#: picard/ui/mainwindow.py:521 msgid "&Tools" msgstr "&Εργαλεία" -#: picard/ui/mainwindow.py:485 picard/ui/util.py:35 +#: picard/ui/mainwindow.py:532 picard/ui/util.py:35 msgid "&Help" msgstr "&Βοήθεια" -#: picard/ui/mainwindow.py:505 +#: picard/ui/mainwindow.py:553 msgid "Actions" msgstr "Ενέργειες" -#: picard/ui/mainwindow.py:608 +#: picard/ui/mainwindow.py:599 +msgid "Track" +msgstr "Κομμάτι" + +#: picard/ui/mainwindow.py:662 msgid "All Supported Formats" msgstr "Όλες οι υποστηριζόμενες μορφές" -#: picard/ui/mainwindow.py:705 +#: picard/ui/mainwindow.py:695 +#, python-format +msgid "Adding directory: '%(directory)s' ..." +msgstr "" + +#: picard/ui/mainwindow.py:702 +#, python-format +msgid "Adding multiple directories from '%(directory)s' ..." +msgstr "" + +#: picard/ui/mainwindow.py:767 msgid "Configuration Required" msgstr "Απαιτείται ρύθμιση" -#: picard/ui/mainwindow.py:706 +#: picard/ui/mainwindow.py:768 msgid "" "Audio fingerprinting is not yet configured. Would you like to configure it " "now?" msgstr "Τα αποτυπώματα ήχου δεν έχουν ρυθμιστεί ακόμα. Θέλετε να τα ρυθμίσετε τώρα;" -#: picard/ui/mainwindow.py:784 picard/ui/mainwindow.py:791 +#: picard/ui/mainwindow.py:848 #, python-format -msgid " (Error: %s)" -msgstr " (Σφάλμα: %s)" +msgid "%(filename)s (error: %(error)s)" +msgstr "" + +#: picard/ui/mainwindow.py:854 +#, python-format +msgid "%(filename)s" +msgstr "" + +#: picard/ui/mainwindow.py:864 +#, python-format +msgid "%(filename)s (%(similarity)d%%) (error: %(error)s)" +msgstr "" + +#: picard/ui/mainwindow.py:871 +#, python-format +msgid "%(filename)s (%(similarity)d%%)" +msgstr "" #: picard/ui/metadatabox.py:82 #, python-format @@ -1102,387 +1028,387 @@ msgid_plural "Use Original Values" msgstr[0] "Χρήση αρχική τιμής" msgstr[1] "Χρήση αρχικών τιμών" -#: picard/ui/passworddialog.py:37 +#: picard/ui/passworddialog.py:40 #, python-format msgid "" "The server %s requires you to login. Please enter your username and " "password." msgstr "Ο εξυπηρετητής %s απαιτεί να εισέλθετε στο σύστημα. Παρακαλούμε εισάγετε το όνομα χρήστη και τον κωδικό πρόσβασής σας." -#: picard/ui/passworddialog.py:75 +#: picard/ui/passworddialog.py:79 #, python-format msgid "" "The proxy %s requires you to login. Please enter your username and password." msgstr "Ο διαμεσολαβητής %s απαιτεί να εισαχθειτε στο σύστημα. Παρακαλούμε εισάγετε το όνομα χρήστη και τον κωδικό πρόσβασής σας." -#: picard/ui/tagsfromfilenames.py:55 picard/ui/tagsfromfilenames.py:100 +#: picard/ui/tagsfromfilenames.py:56 picard/ui/tagsfromfilenames.py:101 msgid "File Name" msgstr "Όνομα αρχείου" -#: picard/ui/ui_cdlookup.py:66 picard/ui/ui_options_cdlookup.py:55 -#: picard/ui/ui_options_cdlookup_select.py:62 picard/ui/options/cdlookup.py:38 +#: picard/ui/ui_cdlookup.py:53 picard/ui/ui_options_cdlookup.py:42 +#: picard/ui/ui_options_cdlookup_select.py:49 picard/ui/options/cdlookup.py:38 msgid "CD Lookup" msgstr "Αναζήτηση CD" -#: picard/ui/ui_cdlookup.py:67 +#: picard/ui/ui_cdlookup.py:54 msgid "The following releases on MusicBrainz match the CD:" msgstr "Οι ακόλουθες κυκλοφορίες στο MusicBrainz αντιστοιχούν στο CD:" -#: picard/ui/ui_cdlookup.py:68 +#: picard/ui/ui_cdlookup.py:55 msgid "OK" msgstr "OK" -#: picard/ui/ui_cdlookup.py:69 +#: picard/ui/ui_cdlookup.py:56 msgid "Lookup manually" msgstr "" -#: picard/ui/ui_cdlookup.py:70 +#: picard/ui/ui_cdlookup.py:57 msgid "Cancel" msgstr "Άκυρο" -#: picard/ui/ui_edittagdialog.py:101 +#: picard/ui/ui_edittagdialog.py:88 msgid "Edit Tag" msgstr "Επεξεργασία ετικέτας" -#: picard/ui/ui_edittagdialog.py:102 +#: picard/ui/ui_edittagdialog.py:89 msgid "Edit value" msgstr "Επεξεργασία τιμής" -#: picard/ui/ui_edittagdialog.py:103 +#: picard/ui/ui_edittagdialog.py:90 msgid "Add value" msgstr "Προσθήκη τιμής" -#: picard/ui/ui_edittagdialog.py:104 +#: picard/ui/ui_edittagdialog.py:91 msgid "Remove value" msgstr "Αφαίρεση τιμής" -#: picard/ui/ui_infodialog.py:78 +#: picard/ui/ui_infodialog.py:74 msgid "A&rtwork" msgstr "" -#: picard/ui/ui_infostatus.py:100 +#: picard/ui/ui_infostatus.py:96 msgid "Form" msgstr "" -#: picard/ui/ui_options.py:51 +#: picard/ui/ui_options.py:38 msgid "Options" msgstr "Επιλογές" -#: picard/ui/ui_options_advanced.py:46 +#: picard/ui/ui_options_advanced.py:42 msgid "Advanced options" msgstr "" -#: picard/ui/ui_options_advanced.py:47 +#: picard/ui/ui_options_advanced.py:43 msgid "Ignore file paths matching the following regular expression:" msgstr "" -#: picard/ui/ui_options_cdlookup.py:56 +#: picard/ui/ui_options_cdlookup.py:43 msgid "CD-ROM device to use for lookups:" msgstr "Συσκευή CD-ROM που θα χρησιμοποιηθεί για τις αναζητήσεις:" -#: picard/ui/ui_options_cdlookup_select.py:63 +#: picard/ui/ui_options_cdlookup_select.py:50 msgid "Default CD-ROM drive to use for lookups:" msgstr "Προκαθορισμένη συσκευή CD-ROM που χρησιμοποιείται για τις αναζητήσεις:" -#: picard/ui/ui_options_cover.py:145 +#: picard/ui/ui_options_cover.py:131 msgid "Location" msgstr "Τοποθεσία" -#: picard/ui/ui_options_cover.py:146 +#: picard/ui/ui_options_cover.py:132 msgid "Embed cover images into tags" msgstr "Ενσωμάτωση εξωφύλλου στις ετικέτες" -#: picard/ui/ui_options_cover.py:147 +#: picard/ui/ui_options_cover.py:133 msgid "Only embed a front image" msgstr "Ενσωμάτωση μόνο του εξωφύλλου" -#: picard/ui/ui_options_cover.py:148 +#: picard/ui/ui_options_cover.py:134 msgid "Save cover images as separate files" msgstr "Αποθήκευση εξωφύλλων ως ξεχωριστά αρχεία" -#: picard/ui/ui_options_cover.py:149 +#: picard/ui/ui_options_cover.py:135 msgid "Use the following file name for images:" msgstr "" -#: picard/ui/ui_options_cover.py:150 +#: picard/ui/ui_options_cover.py:136 msgid "Overwrite the file if it already exists" msgstr "Αντικατάσταση του αρχείου αν υπάρχει ήδη" -#: picard/ui/ui_options_cover.py:151 +#: picard/ui/ui_options_cover.py:137 msgid "Coverart Providers" msgstr "" -#: picard/ui/ui_options_cover.py:152 +#: picard/ui/ui_options_cover.py:138 msgid "Amazon" msgstr "Amazon" -#: picard/ui/ui_options_cover.py:153 picard/ui/ui_options_cover.py:155 +#: picard/ui/ui_options_cover.py:139 picard/ui/ui_options_cover.py:141 msgid "Cover Art Archive" msgstr "Cover Art Archive" -#: picard/ui/ui_options_cover.py:154 +#: picard/ui/ui_options_cover.py:140 msgid "Sites on the whitelist" msgstr "" -#: picard/ui/ui_options_cover.py:156 +#: picard/ui/ui_options_cover.py:142 msgid "Only use images of the following size:" msgstr "Χρήση εικόνων μόνο των παρακάτω διαστάσεων:" -#: picard/ui/ui_options_cover.py:157 +#: picard/ui/ui_options_cover.py:143 msgid "250 px" msgstr "250 px" -#: picard/ui/ui_options_cover.py:158 +#: picard/ui/ui_options_cover.py:144 msgid "500 px" msgstr "500 px" -#: picard/ui/ui_options_cover.py:159 +#: picard/ui/ui_options_cover.py:145 msgid "Full size" msgstr "Πλήρες μέγεθος" -#: picard/ui/ui_options_cover.py:160 +#: picard/ui/ui_options_cover.py:146 msgid "Download only images of the following types:" msgstr "" -#: picard/ui/ui_options_cover.py:161 +#: picard/ui/ui_options_cover.py:147 msgid "Download only approved images" msgstr "" -#: picard/ui/ui_options_cover.py:162 +#: picard/ui/ui_options_cover.py:148 msgid "" "Use the first image type as the filename. This will not change the filename " "of front images." msgstr "Χρήση του πρώτου τύπου εικόνας ως το όνομα αρχεία. Αυτό δεν θα αλλάξει το όνομα αρχείου των εξωφύλλων." -#: picard/ui/ui_options_fingerprinting.py:83 +#: picard/ui/ui_options_fingerprinting.py:70 msgid "Audio Fingerprinting" msgstr "Αποτυπώματα ήχου" -#: picard/ui/ui_options_fingerprinting.py:84 +#: picard/ui/ui_options_fingerprinting.py:71 msgid "Do not use audio fingerprinting" msgstr "" -#: picard/ui/ui_options_fingerprinting.py:85 +#: picard/ui/ui_options_fingerprinting.py:72 msgid "Use AcoustID" msgstr "Χρήση AcoustID" -#: picard/ui/ui_options_fingerprinting.py:86 +#: picard/ui/ui_options_fingerprinting.py:73 msgid "AcoustID Settings" msgstr "Ρυθμίσεις AcoustID" -#: picard/ui/ui_options_fingerprinting.py:87 +#: picard/ui/ui_options_fingerprinting.py:74 msgid "Fingerprint calculator:" msgstr "Υπολογιστής αποτυπώματος" -#: picard/ui/ui_options_fingerprinting.py:88 -#: picard/ui/ui_options_interface.py:88 picard/ui/ui_options_renaming.py:138 +#: picard/ui/ui_options_fingerprinting.py:75 +#: picard/ui/ui_options_interface.py:75 picard/ui/ui_options_renaming.py:134 msgid "Browse..." msgstr "Περιήγηση…" -#: picard/ui/ui_options_fingerprinting.py:89 +#: picard/ui/ui_options_fingerprinting.py:76 msgid "Download..." msgstr "Λήψη..." -#: picard/ui/ui_options_fingerprinting.py:90 +#: picard/ui/ui_options_fingerprinting.py:77 msgid "API key:" msgstr "Κλειδί API:" -#: picard/ui/ui_options_fingerprinting.py:91 +#: picard/ui/ui_options_fingerprinting.py:78 msgid "Get API key..." msgstr "Λήψη κλεδιού API..." -#: picard/ui/ui_options_folksonomy.py:115 picard/ui/options/folksonomy.py:28 +#: picard/ui/ui_options_folksonomy.py:102 picard/ui/options/folksonomy.py:28 msgid "Folksonomy Tags" msgstr "Συνεργατικές ετικέτες" -#: picard/ui/ui_options_folksonomy.py:117 +#: picard/ui/ui_options_folksonomy.py:104 msgid "Only use my tags" msgstr "Χρήση μόνο των ετικετών μου" -#: picard/ui/ui_options_folksonomy.py:120 +#: picard/ui/ui_options_folksonomy.py:107 msgid "Maximum number of tags:" msgstr "Μέγιστος αριθμός ετικετών:" -#: picard/ui/ui_options_general.py:92 +#: picard/ui/ui_options_general.py:88 msgid "MusicBrainz Server" msgstr "Εξυπηρετητής MusicBrainz " -#: picard/ui/ui_options_general.py:93 picard/ui/ui_options_network.py:123 +#: picard/ui/ui_options_general.py:89 picard/ui/ui_options_network.py:110 msgid "Port:" msgstr "Θύρα:" -#: picard/ui/ui_options_general.py:94 picard/ui/ui_options_network.py:124 +#: picard/ui/ui_options_general.py:90 picard/ui/ui_options_network.py:111 msgid "Server address:" msgstr "Διεύθυνση εξυπηρετητή" -#: picard/ui/ui_options_general.py:95 +#: picard/ui/ui_options_general.py:91 msgid "Account Information" msgstr "Πληροφορίες λογαριασμού" -#: picard/ui/ui_options_general.py:96 picard/ui/ui_options_network.py:121 -#: picard/ui/ui_passworddialog.py:74 +#: picard/ui/ui_options_general.py:92 picard/ui/ui_options_network.py:108 +#: picard/ui/ui_passworddialog.py:70 msgid "Password:" msgstr "Κωδικός πρόσβασης:" -#: picard/ui/ui_options_general.py:97 picard/ui/ui_options_network.py:122 -#: picard/ui/ui_passworddialog.py:73 +#: picard/ui/ui_options_general.py:93 picard/ui/ui_options_network.py:109 +#: picard/ui/ui_passworddialog.py:69 msgid "Username:" msgstr "Όνομα χρήστη:" -#: picard/ui/ui_options_general.py:98 picard/ui/options/general.py:31 +#: picard/ui/ui_options_general.py:94 picard/ui/options/general.py:31 msgid "General" msgstr "Γενικά" -#: picard/ui/ui_options_general.py:99 +#: picard/ui/ui_options_general.py:95 msgid "Automatically scan all new files" msgstr "Αυτόματη σάρωση όλων των νέων αρχείων" -#: picard/ui/ui_options_general.py:100 +#: picard/ui/ui_options_general.py:96 msgid "Ignore MBIDs when loading new files" msgstr "Παράβλεψη MBID κατά τη φόρτωση νέων αρχείων" -#: picard/ui/ui_options_interface.py:82 +#: picard/ui/ui_options_interface.py:69 msgid "Miscellaneous" msgstr "Διάφορα" -#: picard/ui/ui_options_interface.py:83 +#: picard/ui/ui_options_interface.py:70 msgid "Show text labels under icons" msgstr "Εμφάνιση κειμένου κάτω από τα εικονίδια" -#: picard/ui/ui_options_interface.py:84 +#: picard/ui/ui_options_interface.py:71 msgid "Allow selection of multiple directories" msgstr "Να επιτρέπεται η επιλογή πολλαπλών καταλόγων" -#: picard/ui/ui_options_interface.py:85 +#: picard/ui/ui_options_interface.py:72 msgid "Use advanced query syntax" msgstr "Χρήση προχωρημένης σύνταξης ερωτήματος" -#: picard/ui/ui_options_interface.py:86 +#: picard/ui/ui_options_interface.py:73 msgid "Show a quit confirmation dialog for unsaved changes" msgstr "Εμφάνιση διαλόγου επιβεβαίωσης εξόδου για τις μη αποθηκευμένες αλλαγές" -#: picard/ui/ui_options_interface.py:87 +#: picard/ui/ui_options_interface.py:74 msgid "Begin browsing in the following directory:" msgstr "" -#: picard/ui/ui_options_interface.py:89 +#: picard/ui/ui_options_interface.py:76 msgid "User interface language:" msgstr "Γλώσσα διεπαφής χρήστη:" -#: picard/ui/ui_options_matching.py:86 +#: picard/ui/ui_options_matching.py:73 msgid "Thresholds" msgstr "Κατώφλια" -#: picard/ui/ui_options_matching.py:87 +#: picard/ui/ui_options_matching.py:74 msgid "Minimal similarity for matching files to tracks:" msgstr "Ελάχιστη ομοιότητα για τα αρχεία που ταιριάζουν με τα κομμάτια:" -#: picard/ui/ui_options_matching.py:91 +#: picard/ui/ui_options_matching.py:78 msgid "Minimal similarity for file lookups:" msgstr "Ελάχιστη ομοιότητα για τις αναζητήσεις αρχείων:" -#: picard/ui/ui_options_matching.py:92 +#: picard/ui/ui_options_matching.py:79 msgid "Minimal similarity for cluster lookups:" msgstr "Ελάχιστη ομοιότητα για τις αναζητήσεις ομάδων:" -#: picard/ui/ui_options_metadata.py:114 picard/ui/options/metadata.py:29 +#: picard/ui/ui_options_metadata.py:101 picard/ui/options/metadata.py:29 msgid "Metadata" msgstr "Μεταδεδομένα" -#: picard/ui/ui_options_metadata.py:115 +#: picard/ui/ui_options_metadata.py:102 msgid "Translate artist names to this locale where possible:" msgstr "Μετάφραση των ονομάτων καλλιτεχνών σε αυτήν την τοπικότητα όπου είναι δυνατό:" -#: picard/ui/ui_options_metadata.py:116 +#: picard/ui/ui_options_metadata.py:103 msgid "Use standardized artist names" msgstr "Χρήση προτυποποιημένων ονομάτων καλλιτεχνών" -#: picard/ui/ui_options_metadata.py:117 +#: picard/ui/ui_options_metadata.py:104 msgid "Convert Unicode punctuation characters to ASCII" msgstr "Μετατροπή σημείων στίξης Unicode σε ASCII" -#: picard/ui/ui_options_metadata.py:118 +#: picard/ui/ui_options_metadata.py:105 msgid "Use release relationships" msgstr "Χρήση σχέσεων κυκλοφοριών" -#: picard/ui/ui_options_metadata.py:119 +#: picard/ui/ui_options_metadata.py:106 msgid "Use track relationships" msgstr "Χρήση σχέσεων κομματιών" -#: picard/ui/ui_options_metadata.py:120 +#: picard/ui/ui_options_metadata.py:107 msgid "Use folksonomy tags as genre" msgstr "Χρήση συνεργατικών ετικετών για είδος" -#: picard/ui/ui_options_metadata.py:121 +#: picard/ui/ui_options_metadata.py:108 msgid "Custom Fields" msgstr "Προσαρμοσμένα πεδία" -#: picard/ui/ui_options_metadata.py:122 +#: picard/ui/ui_options_metadata.py:109 msgid "Various artists:" msgstr "Διάφοροι καλλιτέχνες:" -#: picard/ui/ui_options_metadata.py:123 +#: picard/ui/ui_options_metadata.py:110 msgid "Non-album tracks:" msgstr "Κομμάτια εκτός άλμπουμ:" -#: picard/ui/ui_options_metadata.py:124 picard/ui/ui_options_metadata.py:125 -#: picard/ui/ui_options_renaming.py:147 +#: picard/ui/ui_options_metadata.py:111 picard/ui/ui_options_metadata.py:112 +#: picard/ui/ui_options_renaming.py:143 msgid "Default" msgstr "Προκαθορισμένο" -#: picard/ui/ui_options_network.py:120 +#: picard/ui/ui_options_network.py:107 msgid "Web Proxy" msgstr "Διαμεσολαβητής" -#: picard/ui/ui_options_network.py:125 +#: picard/ui/ui_options_network.py:112 msgid "Browser Integration" msgstr "" -#: picard/ui/ui_options_network.py:126 +#: picard/ui/ui_options_network.py:113 msgid "Default listening port:" msgstr "" -#: picard/ui/ui_options_network.py:127 +#: picard/ui/ui_options_network.py:114 msgid "Listen only on localhost" msgstr "" -#: picard/ui/ui_options_plugins.py:131 picard/ui/options/plugins.py:38 +#: picard/ui/ui_options_plugins.py:127 picard/ui/options/plugins.py:38 msgid "Plugins" msgstr "Πρόσθετα" -#: picard/ui/ui_options_plugins.py:132 picard/ui/options/plugins.py:122 +#: picard/ui/ui_options_plugins.py:128 picard/ui/options/plugins.py:122 msgid "Name" msgstr "Όνομα" -#: picard/ui/ui_options_plugins.py:133 picard/util/tags.py:39 +#: picard/ui/ui_options_plugins.py:129 msgid "Version" msgstr "Έκδοση" -#: picard/ui/ui_options_plugins.py:134 picard/ui/options/plugins.py:125 +#: picard/ui/ui_options_plugins.py:130 picard/ui/options/plugins.py:125 msgid "Author" msgstr "Συγγραφέας" -#: picard/ui/ui_options_plugins.py:135 +#: picard/ui/ui_options_plugins.py:131 msgid "Install plugin..." msgstr "Εγκατάσταση προσθέτου..." -#: picard/ui/ui_options_plugins.py:136 +#: picard/ui/ui_options_plugins.py:132 msgid "Open plugin folder" msgstr "Άνοιγμα φακέλου πρόσθετων" -#: picard/ui/ui_options_plugins.py:137 +#: picard/ui/ui_options_plugins.py:133 msgid "Download plugins" msgstr "Λήψη πρόσθετων" -#: picard/ui/ui_options_plugins.py:138 +#: picard/ui/ui_options_plugins.py:134 msgid "Details" msgstr "Λεπτομέρειες" -#: picard/ui/ui_options_ratings.py:53 +#: picard/ui/ui_options_ratings.py:49 msgid "Enable track ratings" msgstr "Ενεργοποίηση βαθμολογιών κομματιού" -#: picard/ui/ui_options_ratings.py:54 +#: picard/ui/ui_options_ratings.py:50 msgid "" "Picard saves the ratings together with an e-mail address identifying the " "user who did the rating. That way different ratings for different users can " @@ -1490,207 +1416,167 @@ msgid "" "your ratings." msgstr "Το Picard αποθηκεύει τις βαθμολογίες μαζί με τη διεύθυνση e-mail αναγνωρίζοντας το χρήστη που έκανε τη βαθμολόγηση. Με αυτόν τον τρόπο μπορούν να αποθηκευτούν στα αρχεία διαφορετικές βαθμολογίες από διαφορετικούς χρήστες. Παρακαλούμε καθορίστε τη διεύθυνση e-mail που επιθυμείτε να χρησιμοποιείσετε για τον αποθήκευση των βαθμολογιών σας." -#: picard/ui/ui_options_ratings.py:55 +#: picard/ui/ui_options_ratings.py:51 msgid "E-mail:" msgstr "E-mail:" -#: picard/ui/ui_options_ratings.py:56 +#: picard/ui/ui_options_ratings.py:52 msgid "Submit ratings to MusicBrainz" msgstr "Υποβολή βαθμολογιών στο MusicBrainz" -#: picard/ui/ui_options_releases.py:215 +#: picard/ui/ui_options_releases.py:104 msgid "Preferred release types" msgstr "Προτιμώμενοι τύποι κυκλοφορίας" -#: picard/ui/ui_options_releases.py:217 -msgid "Single" -msgstr "Single" - -#: picard/ui/ui_options_releases.py:218 -msgid "EP" -msgstr "EP" - -#: picard/ui/ui_options_releases.py:219 -msgid "Compilation" -msgstr "Συλλογή" - -#: picard/ui/ui_options_releases.py:220 -msgid "Soundtrack" -msgstr "Soundtrack" - -#: picard/ui/ui_options_releases.py:221 -msgid "Spokenword" -msgstr "Προφορικός λόγος" - -#: picard/ui/ui_options_releases.py:222 -msgid "Interview" -msgstr "Συνέντευξη" - -#: picard/ui/ui_options_releases.py:223 -msgid "Audiobook" -msgstr "Βιβλίο ήχου" - -#: picard/ui/ui_options_releases.py:224 -msgid "Live" -msgstr "Ζωντανή εκτέλεση" - -#: picard/ui/ui_options_releases.py:225 -msgid "Remix" -msgstr "Remix" - -#: picard/ui/ui_options_releases.py:227 -msgid "Reset all" -msgstr "Επαναφορά όλων" - -#: picard/ui/ui_options_releases.py:228 +#: picard/ui/ui_options_releases.py:105 msgid "Preferred release countries" msgstr "Προτιμώμενες χώρες κυκλοφορίας" -#: picard/ui/ui_options_releases.py:229 picard/ui/ui_options_releases.py:232 +#: picard/ui/ui_options_releases.py:106 picard/ui/ui_options_releases.py:109 msgid ">" msgstr ">" -#: picard/ui/ui_options_releases.py:230 picard/ui/ui_options_releases.py:233 +#: picard/ui/ui_options_releases.py:107 picard/ui/ui_options_releases.py:110 msgid "<" msgstr "<" -#: picard/ui/ui_options_releases.py:231 +#: picard/ui/ui_options_releases.py:108 msgid "Preferred release formats" msgstr "Προτιμώμενες μορφές κυκλοφορίας" -#: picard/ui/ui_options_renaming.py:134 +#: picard/ui/ui_options_renaming.py:130 msgid "Rename files when saving" msgstr "Μετονομασία αρχείων κατά την αποθήκευση" -#: picard/ui/ui_options_renaming.py:135 +#: picard/ui/ui_options_renaming.py:131 msgid "Replace non-ASCII characters" msgstr "Αντικατάσταση των μη-ASCII χαρακτήρων" -#: picard/ui/ui_options_renaming.py:136 +#: picard/ui/ui_options_renaming.py:132 msgid "Windows compatibility" msgstr "" -#: picard/ui/ui_options_renaming.py:137 +#: picard/ui/ui_options_renaming.py:133 msgid "Move files to this directory when saving:" msgstr "Μετακίνηση σε αυτό το φάκελο κατά την αποθήκευση:" -#: picard/ui/ui_options_renaming.py:139 +#: picard/ui/ui_options_renaming.py:135 msgid "Delete empty directories" msgstr "Διαγραφή κενών καταλόγων" -#: picard/ui/ui_options_renaming.py:140 +#: picard/ui/ui_options_renaming.py:136 msgid "Move additional files:" msgstr "Μετακίνηση επιπλέον αρχείων:" -#: picard/ui/ui_options_renaming.py:141 +#: picard/ui/ui_options_renaming.py:137 msgid "Name files like this" msgstr "Ονομασία αρχεία σαν αυτό" -#: picard/ui/ui_options_renaming.py:148 +#: picard/ui/ui_options_renaming.py:144 msgid "Examples" msgstr "Παραδείγματα" -#: picard/ui/ui_options_script.py:49 +#: picard/ui/ui_options_script.py:45 msgid "Tagger Script" msgstr "Σενάριο Ετικετοποίησης" -#: picard/ui/ui_options_tags.py:165 +#: picard/ui/ui_options_tags.py:152 msgid "Write tags to files" msgstr "Εγγραφή ετικετών στα αρχεία" -#: picard/ui/ui_options_tags.py:166 +#: picard/ui/ui_options_tags.py:153 msgid "Preserve timestamps of tagged files" msgstr "Διατήρηση χρονοσημάνσεων των ετικετοπιημένων αρχείων" -#: picard/ui/ui_options_tags.py:167 +#: picard/ui/ui_options_tags.py:154 msgid "Before Tagging" msgstr "" -#: picard/ui/ui_options_tags.py:168 +#: picard/ui/ui_options_tags.py:155 msgid "Clear existing tags" msgstr "Εκκαθάριση υπαρχόντων ετικετών" -#: picard/ui/ui_options_tags.py:169 +#: picard/ui/ui_options_tags.py:156 msgid "Remove ID3 tags from FLAC files" msgstr "Αφαίρεση ετικετών ID3 από αρχεία FLAC" -#: picard/ui/ui_options_tags.py:170 +#: picard/ui/ui_options_tags.py:157 msgid "Remove APEv2 tags from MP3 files" msgstr "Αφαίρεση ετικετών APEv2 από αρχεία MP3" -#: picard/ui/ui_options_tags.py:171 +#: picard/ui/ui_options_tags.py:158 msgid "" "Preserve these tags from being cleared or overwritten with MusicBrainz data:" msgstr "Διατήρηση αυτών των ετικετών από καθαρισμό ή αντικατάσταση με δεδομένα από το MusicBrainz:" -#: picard/ui/ui_options_tags.py:172 +#: picard/ui/ui_options_tags.py:159 msgid "Tags are separated by commas, and are case-sensitive." msgstr "" -#: picard/ui/ui_options_tags.py:173 +#: picard/ui/ui_options_tags.py:160 msgid "Tag Compatibility" msgstr "" -#: picard/ui/ui_options_tags.py:174 +#: picard/ui/ui_options_tags.py:161 msgid "ID3v2 Version" msgstr "" -#: picard/ui/ui_options_tags.py:175 +#: picard/ui/ui_options_tags.py:162 msgid "2.4" msgstr "2.4" -#: picard/ui/ui_options_tags.py:176 +#: picard/ui/ui_options_tags.py:163 msgid "2.3" msgstr "2.3" -#: picard/ui/ui_options_tags.py:177 +#: picard/ui/ui_options_tags.py:164 msgid "ID3v2 Text Encoding" msgstr "" -#: picard/ui/ui_options_tags.py:178 +#: picard/ui/ui_options_tags.py:165 msgid "UTF-8" msgstr "UTF-8" -#: picard/ui/ui_options_tags.py:179 +#: picard/ui/ui_options_tags.py:166 msgid "UTF-16" msgstr "UTF-16" -#: picard/ui/ui_options_tags.py:180 +#: picard/ui/ui_options_tags.py:167 msgid "ISO-8859-1" msgstr "ISO-8859-1" -#: picard/ui/ui_options_tags.py:181 +#: picard/ui/ui_options_tags.py:168 msgid "Join multiple ID3v2.3 tags with:" msgstr "Ένωση πολλαπλών ετικετών ID3 έκδοσης 2.3 με:" -#: picard/ui/ui_options_tags.py:182 +#: picard/ui/ui_options_tags.py:169 msgid "" "

Default is '/' to maintain compatibility with previous" " Picard releases.

New alternatives are ';_' or '_/_' or type your own." "

" msgstr "" -#: picard/ui/ui_options_tags.py:183 +#: picard/ui/ui_options_tags.py:170 msgid "Also include ID3v1 tags in the files" msgstr "Συμπερίληψη ετικετών ID3v1 στα αρχεία" -#: picard/ui/ui_passworddialog.py:72 +#: picard/ui/ui_passworddialog.py:68 msgid "Authentication required" msgstr "Απαιτείται έλεγχος ταυτότητας" -#: picard/ui/ui_passworddialog.py:75 +#: picard/ui/ui_passworddialog.py:71 msgid "Save username and password" msgstr "Αποθήκευση ονόματος χρήστη και κωδικού" -#: picard/ui/ui_tagsfromfilenames.py:54 +#: picard/ui/ui_tagsfromfilenames.py:50 msgid "Convert File Names to Tags" msgstr "Μετατροπή ονομάτων αρχείων σε ετικέτες" -#: picard/ui/ui_tagsfromfilenames.py:55 +#: picard/ui/ui_tagsfromfilenames.py:51 msgid "Replace underscores with spaces" msgstr "Αντικατάσταση κάτω παύλας με κενό" -#: picard/ui/ui_tagsfromfilenames.py:56 +#: picard/ui/ui_tagsfromfilenames.py:52 msgid "&Preview" msgstr "&Προεπισκόπηση" @@ -1746,7 +1632,11 @@ msgstr "Για προχωρημένους" msgid "Regex Error" msgstr "" -#: picard/ui/options/cover.py:63 +#: picard/ui/options/cover.py:44 +msgid "title" +msgstr "" + +#: picard/ui/options/cover.py:68 msgid "Cover Art" msgstr "Εξώφυλλο" @@ -1762,11 +1652,11 @@ msgstr "Διεπαφή χρήστη" msgid "System default" msgstr "Προεπιλογή συστήματος" -#: picard/ui/options/interface.py:96 +#: picard/ui/options/interface.py:98 msgid "Language changed" msgstr "Η γλώσσα άλλαξε" -#: picard/ui/options/interface.py:96 +#: picard/ui/options/interface.py:99 msgid "" "You have changed the interface language. You have to restart Picard in order" " for the change to take effect." @@ -1788,31 +1678,35 @@ msgstr "Αρχείο" msgid "Ratings" msgstr "Βαθμολογίες" -#: picard/ui/options/releases.py:33 +#: picard/ui/options/releases.py:87 msgid "Preferred Releases" msgstr "Προτιμώμενες κυκλοφορίες" +#: picard/ui/options/releases.py:121 +msgid "Reset all" +msgstr "Επαναφορά όλων" + #: picard/ui/options/renaming.py:37 msgid "File Naming" msgstr "" -#: picard/ui/options/renaming.py:184 +#: picard/ui/options/renaming.py:187 msgid "Error" msgstr "Σφάλμα" -#: picard/ui/options/renaming.py:184 +#: picard/ui/options/renaming.py:187 msgid "The location to move files to must not be empty." msgstr "Ο προορισμός μετακίνησης αρχείων δεν πρέπει να είναι κενός" -#: picard/ui/options/renaming.py:194 +#: picard/ui/options/renaming.py:197 msgid "The file naming format must not be empty." msgstr "Η μορφή ονομασία αρχείων δεν πρέπει να είναι κενή." -#: picard/ui/options/scripting.py:63 +#: picard/ui/options/scripting.py:99 msgid "Scripting" msgstr "" -#: picard/ui/options/scripting.py:95 +#: picard/ui/options/scripting.py:131 msgid "Script Error" msgstr "" @@ -1932,199 +1826,199 @@ msgstr "ASIN" msgid "Grouping" msgstr "Ομαδοποίηση" -#: picard/util/tags.py:40 +#: picard/util/tags.py:39 msgid "ISRC" msgstr "ISRC" -#: picard/util/tags.py:41 +#: picard/util/tags.py:40 msgid "Mood" msgstr "Διάθεση" -#: picard/util/tags.py:42 +#: picard/util/tags.py:41 msgid "BPM" msgstr "BPM" -#: picard/util/tags.py:43 +#: picard/util/tags.py:42 msgid "Copyright" msgstr "Πνευματικά δικαιώματα" -#: picard/util/tags.py:44 +#: picard/util/tags.py:43 msgid "License" msgstr "Άδεια χρήσης" -#: picard/util/tags.py:45 +#: picard/util/tags.py:44 msgid "Composer" msgstr "Συνθέτης" -#: picard/util/tags.py:46 +#: picard/util/tags.py:45 msgid "Writer" msgstr "Συγγραφέας" -#: picard/util/tags.py:47 +#: picard/util/tags.py:46 msgid "Conductor" msgstr "Διευθυντής ορχήστρας" -#: picard/util/tags.py:48 +#: picard/util/tags.py:47 msgid "Lyricist" msgstr "Στιχουργός" -#: picard/util/tags.py:49 +#: picard/util/tags.py:48 msgid "Arranger" msgstr "Ενορχηστρωτής" -#: picard/util/tags.py:50 +#: picard/util/tags.py:49 msgid "Producer" msgstr "Παραγωγός" -#: picard/util/tags.py:51 +#: picard/util/tags.py:50 msgid "Engineer" msgstr "Μηχανικός" -#: picard/util/tags.py:52 +#: picard/util/tags.py:51 msgid "Subtitle" msgstr "Υπότιτλος" -#: picard/util/tags.py:53 +#: picard/util/tags.py:52 msgid "Disc Subtitle" msgstr "Υπότιτλος δίσκου" -#: picard/util/tags.py:54 +#: picard/util/tags.py:53 msgid "Remixer" msgstr "Remixer" -#: picard/util/tags.py:55 +#: picard/util/tags.py:54 msgid "MusicBrainz Recording Id" msgstr "MusicBrainz Id ηχογράφησης" -#: picard/util/tags.py:56 +#: picard/util/tags.py:55 msgid "MusicBrainz Track Id" msgstr "" -#: picard/util/tags.py:57 +#: picard/util/tags.py:56 msgid "MusicBrainz Release Id" msgstr "MusicBrainz Id κυκλοφορίας" -#: picard/util/tags.py:58 +#: picard/util/tags.py:57 msgid "MusicBrainz Artist Id" msgstr "MusicBrainz Id καλλιτέχνη" -#: picard/util/tags.py:59 +#: picard/util/tags.py:58 msgid "MusicBrainz Release Artist Id" msgstr "" -#: picard/util/tags.py:60 +#: picard/util/tags.py:59 msgid "MusicBrainz Work Id" msgstr "MusicBrainz Id έργου" -#: picard/util/tags.py:61 +#: picard/util/tags.py:60 msgid "MusicBrainz Release Group Id" msgstr "" -#: picard/util/tags.py:62 +#: picard/util/tags.py:61 msgid "MusicBrainz Disc Id" msgstr "MusicBrainz Id δίσκου" -#: picard/util/tags.py:63 -msgid "MusicBrainz Sort Name" -msgstr "" - -#: picard/util/tags.py:64 +#: picard/util/tags.py:62 msgid "MusicIP PUID" msgstr "MusicIP PUID" -#: picard/util/tags.py:65 +#: picard/util/tags.py:63 msgid "MusicIP Fingerprint" msgstr "MusicIP Fingerprint" -#: picard/util/tags.py:66 +#: picard/util/tags.py:64 msgid "AcoustID" msgstr "AcoustID" -#: picard/util/tags.py:67 +#: picard/util/tags.py:65 msgid "AcoustID Fingerprint" msgstr "Αποτύπωμα AcoustID" -#: picard/util/tags.py:68 +#: picard/util/tags.py:66 msgid "Disc Id" msgstr "Disc Id" -#: picard/util/tags.py:69 -msgid "Website" -msgstr "Ιστοσελίδα" +#: picard/util/tags.py:67 +msgid "Artist Website" +msgstr "" -#: picard/util/tags.py:70 +#: picard/util/tags.py:68 msgid "Compilation (iTunes)" msgstr "" -#: picard/util/tags.py:71 +#: picard/util/tags.py:69 msgid "Comment" msgstr "Σχόλιο" -#: picard/util/tags.py:72 +#: picard/util/tags.py:70 msgid "Genre" msgstr "Είδος" -#: picard/util/tags.py:73 +#: picard/util/tags.py:71 msgid "Encoded By" msgstr "Κωδικοποιήθηκε από" -#: picard/util/tags.py:74 +#: picard/util/tags.py:72 +msgid "Encoder Settings" +msgstr "" + +#: picard/util/tags.py:73 msgid "Performer" msgstr "Εκτελεστής" -#: picard/util/tags.py:75 +#: picard/util/tags.py:74 msgid "Release Type" msgstr "Τύπος κυκλοφορίας" -#: picard/util/tags.py:76 +#: picard/util/tags.py:75 msgid "Release Status" msgstr "Κατάσταση κυκλοφορίας" -#: picard/util/tags.py:77 +#: picard/util/tags.py:76 msgid "Release Country" msgstr "Χώρα κυκλοφορίας" -#: picard/util/tags.py:78 +#: picard/util/tags.py:77 msgid "Record Label" msgstr "Δισκογραφική εταιρεία" -#: picard/util/tags.py:80 +#: picard/util/tags.py:79 msgid "Catalog Number" msgstr "Αριθμός καταλόγου" -#: picard/util/tags.py:82 +#: picard/util/tags.py:80 msgid "DJ-Mixer" msgstr "DJ-Mixer" -#: picard/util/tags.py:83 +#: picard/util/tags.py:81 msgid "Media" msgstr "Μέσα" -#: picard/util/tags.py:84 +#: picard/util/tags.py:82 msgid "Lyrics" msgstr "Στίχοι" -#: picard/util/tags.py:85 +#: picard/util/tags.py:83 msgid "Mixer" msgstr "Mixer" -#: picard/util/tags.py:86 +#: picard/util/tags.py:84 msgid "Language" msgstr "Γλώσσα" -#: picard/util/tags.py:87 +#: picard/util/tags.py:85 msgid "Script" msgstr "Γραφή" -#: picard/util/tags.py:89 +#: picard/util/tags.py:87 msgid "Rating" msgstr "Βαθμολογία" -#: picard/util/tags.py:90 +#: picard/util/tags.py:88 msgid "Artists" msgstr "" -#: picard/util/tags.py:91 +#: picard/util/tags.py:89 msgid "Work" msgstr "" diff --git a/po/en_CA.po b/po/en_CA.po index 95bb6870f..cfdf4687d 100644 --- a/po/en_CA.po +++ b/po/en_CA.po @@ -11,8 +11,8 @@ msgid "" msgstr "" "Project-Id-Version: MusicBrainz\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2014-03-20 11:12+0100\n" -"PO-Revision-Date: 2014-03-21 08:44+0000\n" +"POT-Creation-Date: 2014-05-03 17:28+0200\n" +"PO-Revision-Date: 2014-05-04 08:44+0000\n" "Last-Translator: nikki\n" "Language-Team: English (Canada) (http://www.transifex.com/projects/p/musicbrainz/language/en_CA/)\n" "MIME-Version: 1.0\n" @@ -22,6 +22,10 @@ msgstr "" "Language: en_CA\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" +#: contrib/plugins/albumartist_website.py:3 +msgid "Album Artist Website" +msgstr "" + #: contrib/plugins/no_release.py:50 msgid "Enable plugin for all releases by default" msgstr "Enable plugin for all releases by default" @@ -34,63 +38,55 @@ msgstr "Tags to strip (comma-separated)" msgid "Remove specific release information..." msgstr "Remove specific release information..." -#: contrib/plugins/open_in_gui.py:32 -msgid "Open Error" -msgstr "Open Error" +#: contrib/plugins/standardise_performers.py:3 +msgid "Standardise Performers" +msgstr "" -#: contrib/plugins/open_in_gui.py:32 -#, python-format -msgid "" -"Error while opening file:\n" -"\n" -"%s" -msgstr "Error while opening file:\n\n%s" - -#: contrib/plugins/lastfm/ui_options_lastfm.py:117 +#: contrib/plugins/lastfm/ui_options_lastfm.py:99 msgid "Last.fm" msgstr "Last.fm" -#: contrib/plugins/lastfm/ui_options_lastfm.py:118 +#: contrib/plugins/lastfm/ui_options_lastfm.py:100 msgid "Use track tags" msgstr "Use track tags" -#: contrib/plugins/lastfm/ui_options_lastfm.py:119 +#: contrib/plugins/lastfm/ui_options_lastfm.py:101 msgid "Use artist tags" msgstr "Use artist tags" -#: contrib/plugins/lastfm/ui_options_lastfm.py:120 +#: contrib/plugins/lastfm/ui_options_lastfm.py:102 #: picard/ui/options/tags.py:30 msgid "Tags" msgstr "Tags" -#: contrib/plugins/lastfm/ui_options_lastfm.py:121 -#: picard/ui/ui_options_folksonomy.py:116 +#: contrib/plugins/lastfm/ui_options_lastfm.py:103 +#: picard/ui/ui_options_folksonomy.py:103 msgid "Ignore tags:" msgstr "Ignore tags:" -#: contrib/plugins/lastfm/ui_options_lastfm.py:122 -#: picard/ui/ui_options_folksonomy.py:121 +#: contrib/plugins/lastfm/ui_options_lastfm.py:104 +#: picard/ui/ui_options_folksonomy.py:108 msgid "Join multiple tags with:" msgstr "Join multiple tags with:" -#: contrib/plugins/lastfm/ui_options_lastfm.py:123 -#: picard/ui/ui_options_folksonomy.py:122 +#: contrib/plugins/lastfm/ui_options_lastfm.py:105 +#: picard/ui/ui_options_folksonomy.py:109 msgid " / " msgstr " / " -#: contrib/plugins/lastfm/ui_options_lastfm.py:124 -#: picard/ui/ui_options_folksonomy.py:123 +#: contrib/plugins/lastfm/ui_options_lastfm.py:106 +#: picard/ui/ui_options_folksonomy.py:110 msgid ", " msgstr ", " -#: contrib/plugins/lastfm/ui_options_lastfm.py:125 -#: picard/ui/ui_options_folksonomy.py:118 +#: contrib/plugins/lastfm/ui_options_lastfm.py:107 +#: picard/ui/ui_options_folksonomy.py:105 msgid "Minimal tag usage:" msgstr "Minimal tag usage:" -#: contrib/plugins/lastfm/ui_options_lastfm.py:126 -#: picard/ui/ui_options_folksonomy.py:119 picard/ui/ui_options_matching.py:88 -#: picard/ui/ui_options_matching.py:89 picard/ui/ui_options_matching.py:90 +#: contrib/plugins/lastfm/ui_options_lastfm.py:108 +#: picard/ui/ui_options_folksonomy.py:106 picard/ui/ui_options_matching.py:75 +#: picard/ui/ui_options_matching.py:76 picard/ui/ui_options_matching.py:77 msgid " %" msgstr " %" @@ -98,420 +94,307 @@ msgstr " %" msgid "Calculate replay &gain..." msgstr "Calculate Replay&Gain" -#: contrib/plugins/replaygain/__init__.py:66 +#: contrib/plugins/replaygain/__init__.py:67 #, python-format -msgid "Calculating replay gain for \"%s\"..." -msgstr "Calculating ReplayGain for “%s”…" +msgid "Calculating replay gain for \"%(filename)s\"..." +msgstr "" -#: contrib/plugins/replaygain/__init__.py:71 +#: contrib/plugins/replaygain/__init__.py:75 #, python-format -msgid "Replay gain for \"%s\" successfully calculated." -msgstr "ReplayGain for “%s” successfully calculated." +msgid "Replay gain for \"%(filename)s\" successfully calculated." +msgstr "" -#: contrib/plugins/replaygain/__init__.py:73 +#: contrib/plugins/replaygain/__init__.py:80 #, python-format -msgid "Could not calculate replay gain for \"%s\"." -msgstr "Could not calculate ReplayGain for “%s”." +msgid "Could not calculate replay gain for \"%(filename)s\"." +msgstr "" -#: contrib/plugins/replaygain/__init__.py:76 +#: contrib/plugins/replaygain/__init__.py:85 msgid "Calculate album &gain..." msgstr "Calculate ReplayGain album &gain…" -#: contrib/plugins/replaygain/__init__.py:103 -#: contrib/plugins/replaygain/__init__.py:111 +#: contrib/plugins/replaygain/__init__.py:113 +#: contrib/plugins/replaygain/__init__.py:124 #, python-format -msgid "Calculating album gain for \"%s\"..." -msgstr "Calculating ReplayGain album gain for “%s”…" - -#: contrib/plugins/replaygain/__init__.py:119 -#, python-format -msgid "Album gain for \"%s\" successfully calculated." -msgstr "ReplayGain album gain for “%s” successfully calculated." - -#: contrib/plugins/replaygain/__init__.py:121 -#, python-format -msgid "Could not calculate album gain for \"%s\"." -msgstr "Could not calculate ReplayGain album gain for “%s”." - -#: picard/acoustid.py:102 -#, python-format -msgid "AcoustID lookup network error for '%s'!" +msgid "Calculating album gain for \"%(album)s\"..." msgstr "" -#: picard/acoustid.py:117 +#: contrib/plugins/replaygain/__init__.py:135 #, python-format -msgid "AcoustID lookup failed for '%s'!" +msgid "Album gain for \"%(album)s\" successfully calculated." msgstr "" -#: picard/acoustid.py:128 +#: contrib/plugins/replaygain/__init__.py:140 #, python-format -msgid "Acoustid lookup returned no result for file '%s'" +msgid "Could not calculate album gain for \"%(album)s\"." msgstr "" -#: picard/acoustid.py:132 -#, python-format -msgid "Looking up the fingerprint for file %s..." -msgstr "Looking up the fingerprint for file %s..." - -#: picard/acoustidmanager.py:78 -msgid "Submitting AcoustIDs..." -msgstr "Submitting AcoustIDs..." - -#: picard/acoustidmanager.py:83 -#, python-format -msgid "AcoustID submission failed with error '%s'" +#: contrib/plugins/replaygain/ui_options_replaygain.py:59 +msgid "Replay Gain" msgstr "" -#: picard/acoustidmanager.py:85 +#: contrib/plugins/replaygain/ui_options_replaygain.py:60 +msgid "Path to VorbisGain:" +msgstr "" + +#: contrib/plugins/replaygain/ui_options_replaygain.py:61 +msgid "Path to MP3Gain:" +msgstr "" + +#: contrib/plugins/replaygain/ui_options_replaygain.py:62 +msgid "Path to metaflac:" +msgstr "" + +#: contrib/plugins/replaygain/ui_options_replaygain.py:63 +msgid "Path to wvgain:" +msgstr "" + +#: contrib/plugins/viewvariables/__init__.py:42 +#, python-format +msgid "File: %s" +msgstr "" + +#: contrib/plugins/viewvariables/__init__.py:47 +#, python-format +msgid "Track: %s %s " +msgstr "" + +#: contrib/plugins/viewvariables/__init__.py:49 +msgid "Variables" +msgstr "" + +#: contrib/plugins/viewvariables/__init__.py:69 +msgid "File variables" +msgstr "" + +#: contrib/plugins/viewvariables/__init__.py:74 +msgid "Hidden variables" +msgstr "" + +#: contrib/plugins/viewvariables/__init__.py:79 +msgid "Tag variables" +msgstr "" + +#: contrib/plugins/viewvariables/ui_variables_dialog.py:73 +msgid "Variable" +msgstr "" + +#: contrib/plugins/viewvariables/ui_variables_dialog.py:75 +msgid "Value" +msgstr "" + +#: picard/acoustid.py:109 +#, python-format +msgid "AcoustID lookup network error for '%(filename)s'!" +msgstr "" + +#: picard/acoustid.py:133 +#, python-format +msgid "AcoustID lookup failed for '%(filename)s'!" +msgstr "" + +#: picard/acoustid.py:155 +#, python-format +msgid "AcoustID lookup returned no result for file '%(filename)s'" +msgstr "" + +#: picard/acoustid.py:166 +#, python-format +msgid "Looking up the fingerprint for file '%(filename)s' ..." +msgstr "" + +#: picard/acoustidmanager.py:80 +msgid "Submitting AcoustIDs ..." +msgstr "" + +#: picard/acoustidmanager.py:94 +#, python-format +msgid "AcoustID submission failed with error '%(error)s'" +msgstr "" + +#: picard/acoustidmanager.py:102 msgid "AcoustIDs successfully submitted." msgstr "" -#: picard/album.py:64 picard/cluster.py:234 +#: picard/album.py:65 picard/cluster.py:255 msgid "Unmatched Files" msgstr "Unmatched Files" -#: picard/album.py:187 +#: picard/album.py:188 #, python-format msgid "[could not load album %s]" msgstr "[could not load album %s]" -#: picard/album.py:272 +#: picard/album.py:277 #, python-format -msgid "Album %s loaded" -msgstr "Album %s loaded" +msgid "Album %(id)s loaded: %(artist)s - %(album)s" +msgstr "" -#: picard/album.py:288 +#: picard/album.py:294 +#, python-format +msgid "Loading album %(id)s ..." +msgstr "" + +#: picard/album.py:303 msgid "[loading album information]" msgstr "[loading album information]" -#: picard/album.py:463 +#: picard/album.py:478 #, python-format msgid "; %i image" msgid_plural "; %i images" msgstr[0] "; %i image" msgstr[1] "; %i images" -#: picard/cluster.py:150 picard/cluster.py:159 +#: picard/cluster.py:155 picard/cluster.py:168 #, python-format -msgid "No matching releases for cluster %s" -msgstr "No matching releases for cluster %s" +msgid "No matching releases for cluster %(album)s" +msgstr "" -#: picard/cluster.py:161 +#: picard/cluster.py:174 #, python-format -msgid "Cluster %s identified!" -msgstr "Cluster %s identified!" +msgid "Cluster %(album)s identified!" +msgstr "" -#: picard/cluster.py:168 +#: picard/cluster.py:185 #, python-format -msgid "Looking up the metadata for cluster %s..." -msgstr "Looking up the metadata for cluster %s..." +msgid "Looking up the metadata for cluster %(album)s..." +msgstr "" -#: picard/collection.py:60 +#: picard/collection.py:64 #, python-format -msgid "Added %i release to collection \"%s\"" -msgid_plural "Added %i releases to collection \"%s\"" -msgstr[0] "Added %i release to collection “%s”" -msgstr[1] "Added %i releases to collection “%s”" +msgid "Added %(count)i release to collection \"%(name)s\"" +msgid_plural "Added %(count)i releases to collection \"%(name)s\"" +msgstr[0] "" +msgstr[1] "" -#: picard/collection.py:72 +#: picard/collection.py:86 #, python-format -msgid "Removed %i release from collection \"%s\"" -msgid_plural "Removed %i releases from collection \"%s\"" -msgstr[0] "Removed %i release from collection “%s”" -msgstr[1] "Removed %i releases from collection “%s”" +msgid "Removed %(count)i release from collection \"%(name)s\"" +msgid_plural "Removed %(count)i releases from collection \"%(name)s\"" +msgstr[0] "" +msgstr[1] "" -#: picard/collection.py:81 +#: picard/collection.py:100 #, python-format -msgid "Error loading collections: %s" -msgstr "Error loading collections: %s" +msgid "Error loading collections: %(error)s" +msgstr "" -#: picard/config_upgrade.py:57 picard/config_upgrade.py:70 +#: picard/config_upgrade.py:58 picard/config_upgrade.py:71 msgid "Various Artists file naming scheme removal" msgstr "Various Artists file naming scheme removal" -#: picard/config_upgrade.py:58 +#: picard/config_upgrade.py:59 msgid "" "The separate file naming scheme for various artists albums has been removed in this version of Picard.\n" "Your file naming scheme has automatically been merged with that of single artist albums." msgstr "The separate file naming scheme for various artists albums has been removed in this version of Picard.\nYour file naming scheme has automatically been merged with that of single artist albums." -#: picard/config_upgrade.py:71 +#: picard/config_upgrade.py:72 msgid "" "The separate file naming scheme for various artists albums has been removed in this version of Picard.\n" "You currently do not use this option, but have a separate file naming scheme defined.\n" "Do you want to remove it or merge it with your file naming scheme for single artist albums?" msgstr "The separate file naming scheme for various artists albums has been removed in this version of Picard.\nYou currently do not use this option, but have a separate file naming scheme defined.\nDo you want to remove it or merge it with your file naming scheme for single artist albums?" -#: picard/config_upgrade.py:77 +#: picard/config_upgrade.py:78 msgid "Merge" msgstr "Merge" -#: picard/config_upgrade.py:77 picard/ui/metadatabox.py:254 +#: picard/config_upgrade.py:78 picard/ui/metadatabox.py:254 msgid "Remove" msgstr "Remove" -#: picard/const.py:67 -msgid "CD" -msgstr "CD" - -#: picard/const.py:68 -msgid "CD-R" -msgstr "CD-R" - -#: picard/const.py:69 -msgid "HDCD" -msgstr "HDCD" - -#: picard/const.py:70 -msgid "8cm CD" -msgstr "8cm CD" - -#: picard/const.py:71 -msgid "Vinyl" -msgstr "Vinyl" - -#: picard/const.py:72 -msgid "7\" Vinyl" -msgstr "7″ Vinyl" - -#: picard/const.py:73 -msgid "10\" Vinyl" -msgstr "10″ VInyl" - -#: picard/const.py:74 -msgid "12\" Vinyl" -msgstr "12″ Vinyl" - -#: picard/const.py:75 -msgid "Digital Media" -msgstr "Digital Media" - -#: picard/const.py:76 -msgid "USB Flash Drive" -msgstr "USB Flash Drive" - -#: picard/const.py:77 -msgid "slotMusic" -msgstr "slotMusic" - -#: picard/const.py:78 -msgid "Cassette" -msgstr "Cassette" - -#: picard/const.py:79 -msgid "DVD" -msgstr "DVD" - -#: picard/const.py:80 -msgid "DVD-Audio" -msgstr "DVD-Audio" - -#: picard/const.py:81 -msgid "DVD-Video" -msgstr "DVD-Video" - -#: picard/const.py:82 -msgid "SACD" -msgstr "SACD" - -#: picard/const.py:83 -msgid "DualDisc" -msgstr "DualDisc" - -#: picard/const.py:84 -msgid "MiniDisc" -msgstr "MiniDisc" - -#: picard/const.py:85 -msgid "Blu-ray" -msgstr "Blu-ray" - -#: picard/const.py:86 -msgid "HD-DVD" -msgstr "HD-DVD" - -#: picard/const.py:87 -msgid "Videotape" -msgstr "Videotape" - -#: picard/const.py:88 -msgid "VHS" -msgstr "VHS" - -#: picard/const.py:89 -msgid "Betamax" -msgstr "Betamax" - #: picard/const.py:90 -msgid "VCD" -msgstr "VCD" - -#: picard/const.py:91 -msgid "SVCD" -msgstr "SVCD" - -#: picard/const.py:92 -msgid "UMD" -msgstr "UMD" - -#: picard/const.py:93 picard/coverartarchive.py:33 -#: picard/ui/ui_options_releases.py:226 -msgid "Other" -msgstr "Other" - -#: picard/const.py:94 -msgid "LaserDisc" -msgstr "LaserDisc" - -#: picard/const.py:95 -msgid "Cartridge" -msgstr "Cartridge" - -#: picard/const.py:96 -msgid "Reel-to-reel" -msgstr "Reel-to-reel" - -#: picard/const.py:97 -msgid "DAT" -msgstr "DAT" - -#: picard/const.py:98 -msgid "Wax Cylinder" -msgstr "Wax Cylinder" - -#: picard/const.py:99 -msgid "Piano Roll" -msgstr "Piano Roll" - -#: picard/const.py:100 -msgid "DCC" -msgstr "DCC" - -#: picard/const.py:115 msgid "Danish" msgstr "Danish" -#: picard/const.py:116 +#: picard/const.py:91 msgid "German" msgstr "German" -#: picard/const.py:118 +#: picard/const.py:93 msgid "English" msgstr "English" -#: picard/const.py:119 +#: picard/const.py:94 msgid "English (Canada)" msgstr "English (Canada)" -#: picard/const.py:120 +#: picard/const.py:95 msgid "English (UK)" msgstr "English (UK)" -#: picard/const.py:122 +#: picard/const.py:97 msgid "Spanish" msgstr "Spanish" -#: picard/const.py:123 +#: picard/const.py:98 msgid "Estonian" msgstr "Estonian" -#: picard/const.py:125 +#: picard/const.py:100 msgid "Finnish" msgstr "Finnish" -#: picard/const.py:127 +#: picard/const.py:102 msgid "French" msgstr "French" -#: picard/const.py:136 +#: picard/const.py:111 msgid "Italian" msgstr "Italian" -#: picard/const.py:143 +#: picard/const.py:118 msgid "Dutch" msgstr "Dutch" -#: picard/const.py:145 +#: picard/const.py:120 msgid "Polish" msgstr "Polish" -#: picard/const.py:147 +#: picard/const.py:122 msgid "Brazilian Portuguese" msgstr "Brazilian Portuguese" -#: picard/const.py:154 +#: picard/const.py:129 msgid "Swedish" msgstr "Swedish" -#: picard/coverart.py:84 +#: picard/coverart.py:85 #, python-format -msgid "Coverart %s downloaded" -msgstr "Cover art %s downloaded" +msgid "Cover art of type '%(type)s' downloaded for %(albumid)s from %(host)s" +msgstr "" -#: picard/coverart.py:240 +#: picard/coverart.py:256 #, python-format -msgid "Downloading http://%s:%i%s" -msgstr "Downloading http://%s:%i%s" - -#: picard/coverartarchive.py:24 -msgid "Front" -msgstr "Front" - -#: picard/coverartarchive.py:25 -msgid "Back" -msgstr "Back" - -#: picard/coverartarchive.py:26 -msgid "Booklet" -msgstr "Booklet" - -#: picard/coverartarchive.py:27 -msgid "Medium" -msgstr "Medium" - -#: picard/coverartarchive.py:28 -msgid "Tray" -msgstr "Tray" - -#: picard/coverartarchive.py:29 -msgid "Obi" -msgstr "Obi" +msgid "" +"Downloading cover art of type '%(type)s' for %(albumid)s from %(host)s .." +msgstr "" #: picard/coverartarchive.py:30 -msgid "Spine" -msgstr "Spine" - -#: picard/coverartarchive.py:31 picard/ui/mainwindow.py:546 -msgid "Track" -msgstr "Track" - -#: picard/coverartarchive.py:32 -msgid "Sticker" -msgstr "Sticker" - -#: picard/coverartarchive.py:34 msgid "Unknown" msgstr "Unknown" -#: picard/file.py:536 +#: picard/file.py:494 #, python-format -msgid "No matching tracks for file %s" -msgstr "No matching tracks for file %s" +msgid "No matching tracks for file '%(filename)s'" +msgstr "" -#: picard/file.py:548 +#: picard/file.py:510 #, python-format -msgid "No matching tracks above the threshold for file %s" -msgstr "No matching tracks above the threshold for file %s" +msgid "No matching tracks above the threshold for file '%(filename)s'" +msgstr "" -#: picard/file.py:551 +#: picard/file.py:517 #, python-format -msgid "File %s identified!" -msgstr "File %s identified!" +msgid "File '%(filename)s' identified!" +msgstr "" -#: picard/file.py:567 +#: picard/file.py:537 #, python-format -msgid "Looking up the metadata for file %s..." -msgstr "Looking up the metadata for file %s…" +msgid "Looking up the metadata for file %(filename)s ..." +msgstr "" #: picard/releasegroup.py:53 msgid "Tracks" @@ -521,11 +404,11 @@ msgstr "" msgid "Year" msgstr "" -#: picard/releasegroup.py:55 picard/ui/cdlookup.py:34 +#: picard/releasegroup.py:55 picard/ui/cdlookup.py:35 msgid "Country" msgstr "Country" -#: picard/releasegroup.py:56 picard/util/tags.py:81 +#: picard/releasegroup.py:56 msgid "Format" msgstr "Format" @@ -545,16 +428,23 @@ msgstr "[no barcode]" msgid "[no release info]" msgstr "[no release info]" -#: picard/tagger.py:316 +#: picard/tagger.py:370 #, python-format -msgid "Loading directory %s" -msgstr "Loading directory %s" +msgid "Adding %(count)d file from '%(directory)s' ..." +msgid_plural "Adding %(count)d files from '%(directory)s' ..." +msgstr[0] "" +msgstr[1] "" -#: picard/tagger.py:452 +#: picard/tagger.py:512 +#, python-format +msgid "Removing album %(id)s: %(artist)s - %(album)s" +msgstr "" + +#: picard/tagger.py:528 msgid "CD Lookup Error" msgstr "CD Lookup Error" -#: picard/tagger.py:453 +#: picard/tagger.py:529 #, python-format msgid "" "Error while reading CD:\n" @@ -562,44 +452,43 @@ msgid "" "%s" msgstr "Error while reading CD:\n\n%s" -#: picard/ui/cdlookup.py:34 picard/ui/mainwindow.py:544 -#: picard/ui/ui_options_releases.py:216 picard/util/tags.py:21 +#: picard/ui/cdlookup.py:35 picard/ui/mainwindow.py:597 picard/util/tags.py:21 msgid "Album" msgstr "Album" -#: picard/ui/cdlookup.py:34 picard/ui/itemviews.py:96 -#: picard/ui/mainwindow.py:545 picard/util/tags.py:22 +#: picard/ui/cdlookup.py:35 picard/ui/itemviews.py:96 +#: picard/ui/mainwindow.py:598 picard/util/tags.py:22 msgid "Artist" msgstr "Artist" -#: picard/ui/cdlookup.py:34 picard/util/tags.py:24 +#: picard/ui/cdlookup.py:35 picard/util/tags.py:24 msgid "Date" msgstr "Date" -#: picard/ui/cdlookup.py:35 +#: picard/ui/cdlookup.py:36 msgid "Labels" msgstr "Labels" -#: picard/ui/cdlookup.py:35 +#: picard/ui/cdlookup.py:36 msgid "Catalog #s" msgstr "Catalogue #s" -#: picard/ui/cdlookup.py:35 picard/util/tags.py:79 +#: picard/ui/cdlookup.py:36 picard/util/tags.py:78 msgid "Barcode" msgstr "Barcode" -#: picard/ui/collectionmenu.py:31 +#: picard/ui/collectionmenu.py:42 msgid "Refresh List" msgstr "Refresh List" -#: picard/ui/collectionmenu.py:92 +#: picard/ui/collectionmenu.py:86 #, python-format msgid "%s (%i release)" msgid_plural "%s (%i releases)" msgstr[0] "%s (%i release)" msgstr[1] "%s (%i releases)" -#: picard/ui/coverartbox.py:142 +#: picard/ui/coverartbox.py:141 msgid "View release on MusicBrainz" msgstr "View release on MusicBrainz" @@ -615,59 +504,59 @@ msgstr "Show &Hidden Files" msgid "&Set as starting directory" msgstr "&Set as starting directory" -#: picard/ui/infodialog.py:36 picard/ui/infodialog.py:75 +#: picard/ui/infodialog.py:37 picard/ui/infodialog.py:80 msgid "Info" msgstr "Info" -#: picard/ui/infodialog.py:80 +#: picard/ui/infodialog.py:85 msgid "Filename:" msgstr "Filename:" -#: picard/ui/infodialog.py:82 +#: picard/ui/infodialog.py:87 msgid "Format:" msgstr "Format:" -#: picard/ui/infodialog.py:86 +#: picard/ui/infodialog.py:91 msgid "Size:" msgstr "Size:" -#: picard/ui/infodialog.py:90 +#: picard/ui/infodialog.py:95 msgid "Length:" msgstr "Length:" -#: picard/ui/infodialog.py:92 +#: picard/ui/infodialog.py:97 msgid "Bitrate:" msgstr "Bitrate:" -#: picard/ui/infodialog.py:94 +#: picard/ui/infodialog.py:99 msgid "Sample rate:" msgstr "Sample rate:" -#: picard/ui/infodialog.py:96 +#: picard/ui/infodialog.py:101 msgid "Bits per sample:" msgstr "Bits per sample:" -#: picard/ui/infodialog.py:100 +#: picard/ui/infodialog.py:105 msgid "Mono" msgstr "Mono" -#: picard/ui/infodialog.py:102 +#: picard/ui/infodialog.py:107 msgid "Stereo" msgstr "Stereo" -#: picard/ui/infodialog.py:105 +#: picard/ui/infodialog.py:110 msgid "Channels:" msgstr "Channels:" -#: picard/ui/infodialog.py:116 +#: picard/ui/infodialog.py:121 msgid "Album Info" msgstr "Album Info" -#: picard/ui/infodialog.py:124 +#: picard/ui/infodialog.py:129 msgid "&Errors" msgstr "&Errors" -#: picard/ui/infodialog.py:134 picard/ui/ui_infodialog.py:77 +#: picard/ui/infodialog.py:139 picard/ui/ui_infodialog.py:73 msgid "&Info" msgstr "&Info" @@ -691,7 +580,7 @@ msgstr "Pending requests" msgid "Title" msgstr "Title" -#: picard/ui/itemviews.py:95 picard/util/tags.py:88 +#: picard/ui/itemviews.py:95 picard/util/tags.py:86 msgid "Length" msgstr "Length" @@ -716,8 +605,8 @@ msgid "Collections" msgstr "Collections" #: picard/ui/itemviews.py:365 -msgid "&Plugins" -msgstr "&Plugins" +msgid "P&lugins" +msgstr "" #: picard/ui/itemviews.py:541 msgid "file view" @@ -739,13 +628,17 @@ msgstr "album view" msgid "Contains albums and matched files" msgstr "Contains albums and matched files" -#: picard/ui/logview.py:91 +#: picard/ui/logview.py:109 msgid "Log" msgstr "Log" -#: picard/ui/logview.py:99 -msgid "Status History" -msgstr "Status History" +#: picard/ui/logview.py:113 +msgid "Debug mode" +msgstr "" + +#: picard/ui/logview.py:134 +msgid "Activity History" +msgstr "" #: picard/ui/mainwindow.py:74 msgid "MusicBrainz Picard" @@ -778,276 +671,309 @@ msgstr "Ready" #: picard/ui/mainwindow.py:220 msgid "" -"Picard listens on a port to integrate with your browser and downloads " -"release information when you click the \"Tagger\" buttons on the MusicBrainz" -" website" -msgstr "Picard listens on a port to integrate with your browser and downloads release information when you click the “Tagger” buttons on the MusicBrainz website" +"Picard listens on this port to integrate with your browser. When you " +"\"Search\" or \"Open in Browser\" from Picard, clicking the \"Tagger\" " +"button on the web page loads the release into Picard." +msgstr "" -#: picard/ui/mainwindow.py:240 +#: picard/ui/mainwindow.py:243 #, python-format msgid " Listening on port %(port)d " msgstr " Listening on port %(port)d " -#: picard/ui/mainwindow.py:263 +#: picard/ui/mainwindow.py:299 msgid "Submission Error" msgstr "Submission Error" -#: picard/ui/mainwindow.py:264 +#: picard/ui/mainwindow.py:300 msgid "" "You need to configure your AcoustID API key before you can submit " "fingerprints." msgstr "You need to configure your AcoustID API key before you can submit fingerprints." -#: picard/ui/mainwindow.py:269 +#: picard/ui/mainwindow.py:305 msgid "&Options..." msgstr "&Options..." -#: picard/ui/mainwindow.py:273 +#: picard/ui/mainwindow.py:309 msgid "&Cut" msgstr "&Cut" -#: picard/ui/mainwindow.py:278 +#: picard/ui/mainwindow.py:314 msgid "&Paste" msgstr "&Paste" -#: picard/ui/mainwindow.py:283 +#: picard/ui/mainwindow.py:319 msgid "&Help..." msgstr "&Help..." -#: picard/ui/mainwindow.py:288 +#: picard/ui/mainwindow.py:323 msgid "&About..." msgstr "&About..." -#: picard/ui/mainwindow.py:292 +#: picard/ui/mainwindow.py:327 msgid "&Donate..." msgstr "&Donate..." -#: picard/ui/mainwindow.py:295 +#: picard/ui/mainwindow.py:330 msgid "&Report a Bug..." msgstr "&Report a Bug..." -#: picard/ui/mainwindow.py:298 +#: picard/ui/mainwindow.py:333 msgid "&Support Forum..." msgstr "&Support Forum..." -#: picard/ui/mainwindow.py:301 +#: picard/ui/mainwindow.py:336 msgid "&Add Files..." msgstr "&Add Files..." -#: picard/ui/mainwindow.py:302 +#: picard/ui/mainwindow.py:337 msgid "Add files to the tagger" msgstr "Add files to the tagger" -#: picard/ui/mainwindow.py:307 +#: picard/ui/mainwindow.py:342 msgid "A&dd Folder..." msgstr "A&dd Folder..." -#: picard/ui/mainwindow.py:308 +#: picard/ui/mainwindow.py:343 msgid "Add a folder to the tagger" msgstr "Add a folder to the tagger" -#: picard/ui/mainwindow.py:310 +#: picard/ui/mainwindow.py:345 msgid "Ctrl+D" msgstr "Ctrl+D" -#: picard/ui/mainwindow.py:313 +#: picard/ui/mainwindow.py:348 msgid "&Save" msgstr "&Save" -#: picard/ui/mainwindow.py:314 +#: picard/ui/mainwindow.py:349 msgid "Save selected files" msgstr "Save selected files" -#: picard/ui/mainwindow.py:320 +#: picard/ui/mainwindow.py:355 msgid "S&ubmit" msgstr "S&ubmit" -#: picard/ui/mainwindow.py:321 -msgid "Submit fingerprints" -msgstr "Submit fingerprints" +#: picard/ui/mainwindow.py:356 +msgid "Submit acoustic fingerprints" +msgstr "" -#: picard/ui/mainwindow.py:325 +#: picard/ui/mainwindow.py:360 msgid "E&xit" msgstr "E&xit" -#: picard/ui/mainwindow.py:328 +#: picard/ui/mainwindow.py:363 msgid "Ctrl+Q" msgstr "Ctrl+Q" -#: picard/ui/mainwindow.py:331 +#: picard/ui/mainwindow.py:366 msgid "&Remove" msgstr "&Remove" -#: picard/ui/mainwindow.py:332 +#: picard/ui/mainwindow.py:367 msgid "Remove selected files/albums" msgstr "Remove selected files/albums" -#: picard/ui/mainwindow.py:336 +#: picard/ui/mainwindow.py:371 msgid "Lookup in &Browser" msgstr "Lookup in &Browser" -#: picard/ui/mainwindow.py:337 +#: picard/ui/mainwindow.py:372 msgid "Lookup selected item on MusicBrainz website" msgstr "Lookup selected item on MusicBrainz website" -#: picard/ui/mainwindow.py:341 +#: picard/ui/mainwindow.py:376 msgid "File &Browser" msgstr "File &Browser" -#: picard/ui/mainwindow.py:345 +#: picard/ui/mainwindow.py:380 msgid "Ctrl+B" msgstr "Ctrl+B" -#: picard/ui/mainwindow.py:348 +#: picard/ui/mainwindow.py:383 msgid "&Cover Art" msgstr "&Cover Art" -#: picard/ui/mainwindow.py:354 picard/ui/mainwindow.py:539 +#: picard/ui/mainwindow.py:389 picard/ui/mainwindow.py:591 msgid "Search" msgstr "Search" -#: picard/ui/mainwindow.py:357 -msgid "&CD Lookup..." -msgstr "&CD Lookup..." +#: picard/ui/mainwindow.py:392 +msgid "Lookup &CD..." +msgstr "" -#: picard/ui/mainwindow.py:358 picard/ui/mainwindow.py:359 -msgid "Lookup CD" -msgstr "Lookup CD" +#: picard/ui/mainwindow.py:393 +msgid "Lookup the details of the CD in your drive" +msgstr "" -#: picard/ui/mainwindow.py:361 +#: picard/ui/mainwindow.py:395 msgid "Ctrl+K" msgstr "Ctrl+K" -#: picard/ui/mainwindow.py:364 +#: picard/ui/mainwindow.py:398 msgid "&Scan" msgstr "&Scan" -#: picard/ui/mainwindow.py:367 +#: picard/ui/mainwindow.py:401 msgid "Ctrl+Y" msgstr "Ctrl+Y" -#: picard/ui/mainwindow.py:370 +#: picard/ui/mainwindow.py:404 msgid "Cl&uster" msgstr "Cl&uster" -#: picard/ui/mainwindow.py:373 +#: picard/ui/mainwindow.py:407 msgid "Ctrl+U" msgstr "Ctrl+U" -#: picard/ui/mainwindow.py:376 +#: picard/ui/mainwindow.py:410 msgid "&Lookup" msgstr "&Lookup" -#: picard/ui/mainwindow.py:377 picard/ui/mainwindow.py:378 -msgid "Lookup metadata" -msgstr "Lookup metadata" +#: picard/ui/mainwindow.py:411 +msgid "Lookup selected items in MusicBrainz" +msgstr "" -#: picard/ui/mainwindow.py:381 +#: picard/ui/mainwindow.py:416 msgid "Ctrl+L" msgstr "Ctrl+L" -#: picard/ui/mainwindow.py:384 +#: picard/ui/mainwindow.py:419 msgid "&Info..." msgstr "&Info..." -#: picard/ui/mainwindow.py:387 +#: picard/ui/mainwindow.py:422 msgid "Ctrl+I" msgstr "Ctrl+I" -#: picard/ui/mainwindow.py:390 +#: picard/ui/mainwindow.py:425 msgid "&Refresh" msgstr "&Refresh" -#: picard/ui/mainwindow.py:391 +#: picard/ui/mainwindow.py:426 msgid "Ctrl+R" msgstr "Ctrl+R" -#: picard/ui/mainwindow.py:394 +#: picard/ui/mainwindow.py:429 msgid "&Rename Files" msgstr "&Rename Files" -#: picard/ui/mainwindow.py:399 +#: picard/ui/mainwindow.py:434 msgid "&Move Files" msgstr "&Move Files" -#: picard/ui/mainwindow.py:404 +#: picard/ui/mainwindow.py:439 msgid "Save &Tags" msgstr "Save &Tags" -#: picard/ui/mainwindow.py:409 +#: picard/ui/mainwindow.py:444 msgid "Tags From &File Names..." msgstr "Tags From &File Names..." -#: picard/ui/mainwindow.py:412 -msgid "View &Log..." -msgstr "View &Log..." +#: picard/ui/mainwindow.py:447 +msgid "&Open My Collections in Browser" +msgstr "" -#: picard/ui/mainwindow.py:415 -msgid "View Status &History..." -msgstr "View Status &History..." +#: picard/ui/mainwindow.py:451 +msgid "View Error/Debug &Log" +msgstr "" -#: picard/ui/mainwindow.py:422 -msgid "&Open..." -msgstr "&Open..." +#: picard/ui/mainwindow.py:454 +msgid "View Activity &History" +msgstr "" -#: picard/ui/mainwindow.py:423 -msgid "Open the file" -msgstr "Open the file" +#: picard/ui/mainwindow.py:461 +msgid "&Play file" +msgstr "" -#: picard/ui/mainwindow.py:426 -msgid "Open &Folder..." -msgstr "Open &Folder..." +#: picard/ui/mainwindow.py:462 +msgid "Play the file in your default media player" +msgstr "" -#: picard/ui/mainwindow.py:427 -msgid "Open the containing folder" -msgstr "Open the containing folder" +#: picard/ui/mainwindow.py:466 +msgid "Open Containing &Folder" +msgstr "" -#: picard/ui/mainwindow.py:448 +#: picard/ui/mainwindow.py:467 +msgid "Open the containing folder in your file explorer" +msgstr "" + +#: picard/ui/mainwindow.py:492 msgid "&File" msgstr "&File" -#: picard/ui/mainwindow.py:456 +#: picard/ui/mainwindow.py:503 msgid "&Edit" msgstr "&Edit" -#: picard/ui/mainwindow.py:462 +#: picard/ui/mainwindow.py:509 msgid "&View" msgstr "&View" -#: picard/ui/mainwindow.py:470 +#: picard/ui/mainwindow.py:515 msgid "&Options" msgstr "&Options" -#: picard/ui/mainwindow.py:476 +#: picard/ui/mainwindow.py:521 msgid "&Tools" msgstr "&Tools" -#: picard/ui/mainwindow.py:485 picard/ui/util.py:35 +#: picard/ui/mainwindow.py:532 picard/ui/util.py:35 msgid "&Help" msgstr "&Help" -#: picard/ui/mainwindow.py:505 +#: picard/ui/mainwindow.py:553 msgid "Actions" msgstr "Actions" -#: picard/ui/mainwindow.py:608 +#: picard/ui/mainwindow.py:599 +msgid "Track" +msgstr "Track" + +#: picard/ui/mainwindow.py:662 msgid "All Supported Formats" msgstr "All Supported Formats" -#: picard/ui/mainwindow.py:705 +#: picard/ui/mainwindow.py:695 +#, python-format +msgid "Adding directory: '%(directory)s' ..." +msgstr "" + +#: picard/ui/mainwindow.py:702 +#, python-format +msgid "Adding multiple directories from '%(directory)s' ..." +msgstr "" + +#: picard/ui/mainwindow.py:767 msgid "Configuration Required" msgstr "Configuration Required" -#: picard/ui/mainwindow.py:706 +#: picard/ui/mainwindow.py:768 msgid "" "Audio fingerprinting is not yet configured. Would you like to configure it " "now?" msgstr "Audio fingerprinting is not yet configured. Would you like to configure it now?" -#: picard/ui/mainwindow.py:784 picard/ui/mainwindow.py:791 +#: picard/ui/mainwindow.py:848 #, python-format -msgid " (Error: %s)" -msgstr " (Error: %s)" +msgid "%(filename)s (error: %(error)s)" +msgstr "" + +#: picard/ui/mainwindow.py:854 +#, python-format +msgid "%(filename)s" +msgstr "" + +#: picard/ui/mainwindow.py:864 +#, python-format +msgid "%(filename)s (%(similarity)d%%) (error: %(error)s)" +msgstr "" + +#: picard/ui/mainwindow.py:871 +#, python-format +msgid "%(filename)s (%(similarity)d%%)" +msgstr "" #: picard/ui/metadatabox.py:82 #, python-format @@ -1101,387 +1027,387 @@ msgid_plural "Use Original Values" msgstr[0] "" msgstr[1] "Use Original Value" -#: picard/ui/passworddialog.py:37 +#: picard/ui/passworddialog.py:40 #, python-format msgid "" "The server %s requires you to login. Please enter your username and " "password." msgstr "The server %s requires you to login. Please enter your username and password." -#: picard/ui/passworddialog.py:75 +#: picard/ui/passworddialog.py:79 #, python-format msgid "" "The proxy %s requires you to login. Please enter your username and password." msgstr "The proxy %s requires you to login. Please enter your username and password." -#: picard/ui/tagsfromfilenames.py:55 picard/ui/tagsfromfilenames.py:100 +#: picard/ui/tagsfromfilenames.py:56 picard/ui/tagsfromfilenames.py:101 msgid "File Name" msgstr "File Name" -#: picard/ui/ui_cdlookup.py:66 picard/ui/ui_options_cdlookup.py:55 -#: picard/ui/ui_options_cdlookup_select.py:62 picard/ui/options/cdlookup.py:38 +#: picard/ui/ui_cdlookup.py:53 picard/ui/ui_options_cdlookup.py:42 +#: picard/ui/ui_options_cdlookup_select.py:49 picard/ui/options/cdlookup.py:38 msgid "CD Lookup" msgstr "CD Lookup" -#: picard/ui/ui_cdlookup.py:67 +#: picard/ui/ui_cdlookup.py:54 msgid "The following releases on MusicBrainz match the CD:" msgstr "The following releases on MusicBrainz match the CD:" -#: picard/ui/ui_cdlookup.py:68 +#: picard/ui/ui_cdlookup.py:55 msgid "OK" msgstr "OK" -#: picard/ui/ui_cdlookup.py:69 +#: picard/ui/ui_cdlookup.py:56 msgid "Lookup manually" msgstr "Lookup manually" -#: picard/ui/ui_cdlookup.py:70 +#: picard/ui/ui_cdlookup.py:57 msgid "Cancel" msgstr "Cancel" -#: picard/ui/ui_edittagdialog.py:101 +#: picard/ui/ui_edittagdialog.py:88 msgid "Edit Tag" msgstr "Edit Tag" -#: picard/ui/ui_edittagdialog.py:102 +#: picard/ui/ui_edittagdialog.py:89 msgid "Edit value" msgstr "Edit value" -#: picard/ui/ui_edittagdialog.py:103 +#: picard/ui/ui_edittagdialog.py:90 msgid "Add value" msgstr "Add value" -#: picard/ui/ui_edittagdialog.py:104 +#: picard/ui/ui_edittagdialog.py:91 msgid "Remove value" msgstr "Remove value" -#: picard/ui/ui_infodialog.py:78 +#: picard/ui/ui_infodialog.py:74 msgid "A&rtwork" msgstr "A&rtwork" -#: picard/ui/ui_infostatus.py:100 +#: picard/ui/ui_infostatus.py:96 msgid "Form" msgstr "Form" -#: picard/ui/ui_options.py:51 +#: picard/ui/ui_options.py:38 msgid "Options" msgstr "Options" -#: picard/ui/ui_options_advanced.py:46 +#: picard/ui/ui_options_advanced.py:42 msgid "Advanced options" msgstr "" -#: picard/ui/ui_options_advanced.py:47 +#: picard/ui/ui_options_advanced.py:43 msgid "Ignore file paths matching the following regular expression:" msgstr "" -#: picard/ui/ui_options_cdlookup.py:56 +#: picard/ui/ui_options_cdlookup.py:43 msgid "CD-ROM device to use for lookups:" msgstr "CD-ROM device to use for lookups:" -#: picard/ui/ui_options_cdlookup_select.py:63 +#: picard/ui/ui_options_cdlookup_select.py:50 msgid "Default CD-ROM drive to use for lookups:" msgstr "Default CD-ROM drive to use for lookups:" -#: picard/ui/ui_options_cover.py:145 +#: picard/ui/ui_options_cover.py:131 msgid "Location" msgstr "Location" -#: picard/ui/ui_options_cover.py:146 +#: picard/ui/ui_options_cover.py:132 msgid "Embed cover images into tags" msgstr "Embed cover images into tags" -#: picard/ui/ui_options_cover.py:147 +#: picard/ui/ui_options_cover.py:133 msgid "Only embed a front image" msgstr "Only embed a front image" -#: picard/ui/ui_options_cover.py:148 +#: picard/ui/ui_options_cover.py:134 msgid "Save cover images as separate files" msgstr "Save cover images as separate files" -#: picard/ui/ui_options_cover.py:149 +#: picard/ui/ui_options_cover.py:135 msgid "Use the following file name for images:" msgstr "Use the following file name for images:" -#: picard/ui/ui_options_cover.py:150 +#: picard/ui/ui_options_cover.py:136 msgid "Overwrite the file if it already exists" msgstr "Overwrite the file if it already exists" -#: picard/ui/ui_options_cover.py:151 +#: picard/ui/ui_options_cover.py:137 msgid "Coverart Providers" msgstr "Cover art Providers" -#: picard/ui/ui_options_cover.py:152 +#: picard/ui/ui_options_cover.py:138 msgid "Amazon" msgstr "Amazon" -#: picard/ui/ui_options_cover.py:153 picard/ui/ui_options_cover.py:155 +#: picard/ui/ui_options_cover.py:139 picard/ui/ui_options_cover.py:141 msgid "Cover Art Archive" msgstr "Cover Art Archive" -#: picard/ui/ui_options_cover.py:154 +#: picard/ui/ui_options_cover.py:140 msgid "Sites on the whitelist" msgstr "Sites on the whitelist" -#: picard/ui/ui_options_cover.py:156 +#: picard/ui/ui_options_cover.py:142 msgid "Only use images of the following size:" msgstr "Only use images of the following size:" -#: picard/ui/ui_options_cover.py:157 +#: picard/ui/ui_options_cover.py:143 msgid "250 px" msgstr "250 px" -#: picard/ui/ui_options_cover.py:158 +#: picard/ui/ui_options_cover.py:144 msgid "500 px" msgstr "500 px" -#: picard/ui/ui_options_cover.py:159 +#: picard/ui/ui_options_cover.py:145 msgid "Full size" msgstr "Full size" -#: picard/ui/ui_options_cover.py:160 +#: picard/ui/ui_options_cover.py:146 msgid "Download only images of the following types:" msgstr "Download only images of the following types:" -#: picard/ui/ui_options_cover.py:161 +#: picard/ui/ui_options_cover.py:147 msgid "Download only approved images" msgstr "Download only approved images" -#: picard/ui/ui_options_cover.py:162 +#: picard/ui/ui_options_cover.py:148 msgid "" "Use the first image type as the filename. This will not change the filename " "of front images." msgstr "Use the first image type as the filename. This will not change the filename of front images." -#: picard/ui/ui_options_fingerprinting.py:83 +#: picard/ui/ui_options_fingerprinting.py:70 msgid "Audio Fingerprinting" msgstr "Audio Fingerprinting" -#: picard/ui/ui_options_fingerprinting.py:84 +#: picard/ui/ui_options_fingerprinting.py:71 msgid "Do not use audio fingerprinting" msgstr "Do not use audio fingerprinting" -#: picard/ui/ui_options_fingerprinting.py:85 +#: picard/ui/ui_options_fingerprinting.py:72 msgid "Use AcoustID" msgstr "Use AcoustID" -#: picard/ui/ui_options_fingerprinting.py:86 +#: picard/ui/ui_options_fingerprinting.py:73 msgid "AcoustID Settings" msgstr "AcoustID Settings" -#: picard/ui/ui_options_fingerprinting.py:87 +#: picard/ui/ui_options_fingerprinting.py:74 msgid "Fingerprint calculator:" msgstr "Fingerprint calculator:" -#: picard/ui/ui_options_fingerprinting.py:88 -#: picard/ui/ui_options_interface.py:88 picard/ui/ui_options_renaming.py:138 +#: picard/ui/ui_options_fingerprinting.py:75 +#: picard/ui/ui_options_interface.py:75 picard/ui/ui_options_renaming.py:134 msgid "Browse..." msgstr "Browse..." -#: picard/ui/ui_options_fingerprinting.py:89 +#: picard/ui/ui_options_fingerprinting.py:76 msgid "Download..." msgstr "Download..." -#: picard/ui/ui_options_fingerprinting.py:90 +#: picard/ui/ui_options_fingerprinting.py:77 msgid "API key:" msgstr "API key:" -#: picard/ui/ui_options_fingerprinting.py:91 +#: picard/ui/ui_options_fingerprinting.py:78 msgid "Get API key..." msgstr "Get API key..." -#: picard/ui/ui_options_folksonomy.py:115 picard/ui/options/folksonomy.py:28 +#: picard/ui/ui_options_folksonomy.py:102 picard/ui/options/folksonomy.py:28 msgid "Folksonomy Tags" msgstr "Folksonomy Tags" -#: picard/ui/ui_options_folksonomy.py:117 +#: picard/ui/ui_options_folksonomy.py:104 msgid "Only use my tags" msgstr "Only use my tags" -#: picard/ui/ui_options_folksonomy.py:120 +#: picard/ui/ui_options_folksonomy.py:107 msgid "Maximum number of tags:" msgstr "Maximum number of tags:" -#: picard/ui/ui_options_general.py:92 +#: picard/ui/ui_options_general.py:88 msgid "MusicBrainz Server" msgstr "MusicBrainz Server" -#: picard/ui/ui_options_general.py:93 picard/ui/ui_options_network.py:123 +#: picard/ui/ui_options_general.py:89 picard/ui/ui_options_network.py:110 msgid "Port:" msgstr "Port:" -#: picard/ui/ui_options_general.py:94 picard/ui/ui_options_network.py:124 +#: picard/ui/ui_options_general.py:90 picard/ui/ui_options_network.py:111 msgid "Server address:" msgstr "Server address:" -#: picard/ui/ui_options_general.py:95 +#: picard/ui/ui_options_general.py:91 msgid "Account Information" msgstr "Account Information" -#: picard/ui/ui_options_general.py:96 picard/ui/ui_options_network.py:121 -#: picard/ui/ui_passworddialog.py:74 +#: picard/ui/ui_options_general.py:92 picard/ui/ui_options_network.py:108 +#: picard/ui/ui_passworddialog.py:70 msgid "Password:" msgstr "Password:" -#: picard/ui/ui_options_general.py:97 picard/ui/ui_options_network.py:122 -#: picard/ui/ui_passworddialog.py:73 +#: picard/ui/ui_options_general.py:93 picard/ui/ui_options_network.py:109 +#: picard/ui/ui_passworddialog.py:69 msgid "Username:" msgstr "Username:" -#: picard/ui/ui_options_general.py:98 picard/ui/options/general.py:31 +#: picard/ui/ui_options_general.py:94 picard/ui/options/general.py:31 msgid "General" msgstr "General" -#: picard/ui/ui_options_general.py:99 +#: picard/ui/ui_options_general.py:95 msgid "Automatically scan all new files" msgstr "Automatically scan all new files" -#: picard/ui/ui_options_general.py:100 +#: picard/ui/ui_options_general.py:96 msgid "Ignore MBIDs when loading new files" msgstr "Ignore MBIDs when loading new files" -#: picard/ui/ui_options_interface.py:82 +#: picard/ui/ui_options_interface.py:69 msgid "Miscellaneous" msgstr "Miscellaneous" -#: picard/ui/ui_options_interface.py:83 +#: picard/ui/ui_options_interface.py:70 msgid "Show text labels under icons" msgstr "Show text labels under icons" -#: picard/ui/ui_options_interface.py:84 +#: picard/ui/ui_options_interface.py:71 msgid "Allow selection of multiple directories" msgstr "Allow selection of multiple directories" -#: picard/ui/ui_options_interface.py:85 +#: picard/ui/ui_options_interface.py:72 msgid "Use advanced query syntax" msgstr "Use advanced query syntax" -#: picard/ui/ui_options_interface.py:86 +#: picard/ui/ui_options_interface.py:73 msgid "Show a quit confirmation dialog for unsaved changes" msgstr "Show a quit confirmation dialog for unsaved changes" -#: picard/ui/ui_options_interface.py:87 +#: picard/ui/ui_options_interface.py:74 msgid "Begin browsing in the following directory:" msgstr "Begin browsing in the following directory:" -#: picard/ui/ui_options_interface.py:89 +#: picard/ui/ui_options_interface.py:76 msgid "User interface language:" msgstr "User interface language:" -#: picard/ui/ui_options_matching.py:86 +#: picard/ui/ui_options_matching.py:73 msgid "Thresholds" msgstr "Thresholds" -#: picard/ui/ui_options_matching.py:87 +#: picard/ui/ui_options_matching.py:74 msgid "Minimal similarity for matching files to tracks:" msgstr "Minimal similarity for matching files to tracks:" -#: picard/ui/ui_options_matching.py:91 +#: picard/ui/ui_options_matching.py:78 msgid "Minimal similarity for file lookups:" msgstr "Minimal similarity for file lookups:" -#: picard/ui/ui_options_matching.py:92 +#: picard/ui/ui_options_matching.py:79 msgid "Minimal similarity for cluster lookups:" msgstr "Minimal similarity for cluster lookups:" -#: picard/ui/ui_options_metadata.py:114 picard/ui/options/metadata.py:29 +#: picard/ui/ui_options_metadata.py:101 picard/ui/options/metadata.py:29 msgid "Metadata" msgstr "Metadata" -#: picard/ui/ui_options_metadata.py:115 +#: picard/ui/ui_options_metadata.py:102 msgid "Translate artist names to this locale where possible:" msgstr "Translate artist names to this locale where possible:" -#: picard/ui/ui_options_metadata.py:116 +#: picard/ui/ui_options_metadata.py:103 msgid "Use standardized artist names" msgstr "Use standardized artist names" -#: picard/ui/ui_options_metadata.py:117 +#: picard/ui/ui_options_metadata.py:104 msgid "Convert Unicode punctuation characters to ASCII" msgstr "Convert Unicode punctuation characters to ASCII" -#: picard/ui/ui_options_metadata.py:118 +#: picard/ui/ui_options_metadata.py:105 msgid "Use release relationships" msgstr "Use release relationships" -#: picard/ui/ui_options_metadata.py:119 +#: picard/ui/ui_options_metadata.py:106 msgid "Use track relationships" msgstr "Use track relationships" -#: picard/ui/ui_options_metadata.py:120 +#: picard/ui/ui_options_metadata.py:107 msgid "Use folksonomy tags as genre" msgstr "Use folksonomy tags as genre" -#: picard/ui/ui_options_metadata.py:121 +#: picard/ui/ui_options_metadata.py:108 msgid "Custom Fields" msgstr "Custom Fields" -#: picard/ui/ui_options_metadata.py:122 +#: picard/ui/ui_options_metadata.py:109 msgid "Various artists:" msgstr "Various artists:" -#: picard/ui/ui_options_metadata.py:123 +#: picard/ui/ui_options_metadata.py:110 msgid "Non-album tracks:" msgstr "Non-album tracks:" -#: picard/ui/ui_options_metadata.py:124 picard/ui/ui_options_metadata.py:125 -#: picard/ui/ui_options_renaming.py:147 +#: picard/ui/ui_options_metadata.py:111 picard/ui/ui_options_metadata.py:112 +#: picard/ui/ui_options_renaming.py:143 msgid "Default" msgstr "Default" -#: picard/ui/ui_options_network.py:120 +#: picard/ui/ui_options_network.py:107 msgid "Web Proxy" msgstr "Web Proxy" -#: picard/ui/ui_options_network.py:125 +#: picard/ui/ui_options_network.py:112 msgid "Browser Integration" msgstr "Browser Integration" -#: picard/ui/ui_options_network.py:126 +#: picard/ui/ui_options_network.py:113 msgid "Default listening port:" msgstr "Default listening port:" -#: picard/ui/ui_options_network.py:127 +#: picard/ui/ui_options_network.py:114 msgid "Listen only on localhost" msgstr "Listen only on localhost" -#: picard/ui/ui_options_plugins.py:131 picard/ui/options/plugins.py:38 +#: picard/ui/ui_options_plugins.py:127 picard/ui/options/plugins.py:38 msgid "Plugins" msgstr "Plugins" -#: picard/ui/ui_options_plugins.py:132 picard/ui/options/plugins.py:122 +#: picard/ui/ui_options_plugins.py:128 picard/ui/options/plugins.py:122 msgid "Name" msgstr "Name" -#: picard/ui/ui_options_plugins.py:133 picard/util/tags.py:39 +#: picard/ui/ui_options_plugins.py:129 msgid "Version" msgstr "Version" -#: picard/ui/ui_options_plugins.py:134 picard/ui/options/plugins.py:125 +#: picard/ui/ui_options_plugins.py:130 picard/ui/options/plugins.py:125 msgid "Author" msgstr "Author" -#: picard/ui/ui_options_plugins.py:135 +#: picard/ui/ui_options_plugins.py:131 msgid "Install plugin..." msgstr "Install plugin..." -#: picard/ui/ui_options_plugins.py:136 +#: picard/ui/ui_options_plugins.py:132 msgid "Open plugin folder" msgstr "Open plugin folder" -#: picard/ui/ui_options_plugins.py:137 +#: picard/ui/ui_options_plugins.py:133 msgid "Download plugins" msgstr "Download plugins" -#: picard/ui/ui_options_plugins.py:138 +#: picard/ui/ui_options_plugins.py:134 msgid "Details" msgstr "Details" -#: picard/ui/ui_options_ratings.py:53 +#: picard/ui/ui_options_ratings.py:49 msgid "Enable track ratings" msgstr "Enable track ratings" -#: picard/ui/ui_options_ratings.py:54 +#: picard/ui/ui_options_ratings.py:50 msgid "" "Picard saves the ratings together with an e-mail address identifying the " "user who did the rating. That way different ratings for different users can " @@ -1489,207 +1415,167 @@ msgid "" "your ratings." msgstr "Picard saves the ratings together with an e-mail address identifying the user who did the rating. That way different ratings for different users can be stored in the files. Please specify the e-mail you want to use to save your ratings." -#: picard/ui/ui_options_ratings.py:55 +#: picard/ui/ui_options_ratings.py:51 msgid "E-mail:" msgstr "E-mail:" -#: picard/ui/ui_options_ratings.py:56 +#: picard/ui/ui_options_ratings.py:52 msgid "Submit ratings to MusicBrainz" msgstr "Submit ratings to MusicBrainz" -#: picard/ui/ui_options_releases.py:215 +#: picard/ui/ui_options_releases.py:104 msgid "Preferred release types" msgstr "Preferred release types" -#: picard/ui/ui_options_releases.py:217 -msgid "Single" -msgstr "Single" - -#: picard/ui/ui_options_releases.py:218 -msgid "EP" -msgstr "EP" - -#: picard/ui/ui_options_releases.py:219 -msgid "Compilation" -msgstr "Compilation" - -#: picard/ui/ui_options_releases.py:220 -msgid "Soundtrack" -msgstr "Soundtrack" - -#: picard/ui/ui_options_releases.py:221 -msgid "Spokenword" -msgstr "Spokenword" - -#: picard/ui/ui_options_releases.py:222 -msgid "Interview" -msgstr "Interview" - -#: picard/ui/ui_options_releases.py:223 -msgid "Audiobook" -msgstr "Audiobook" - -#: picard/ui/ui_options_releases.py:224 -msgid "Live" -msgstr "Live" - -#: picard/ui/ui_options_releases.py:225 -msgid "Remix" -msgstr "Remix" - -#: picard/ui/ui_options_releases.py:227 -msgid "Reset all" -msgstr "Reset all" - -#: picard/ui/ui_options_releases.py:228 +#: picard/ui/ui_options_releases.py:105 msgid "Preferred release countries" msgstr "Preferred release countries" -#: picard/ui/ui_options_releases.py:229 picard/ui/ui_options_releases.py:232 +#: picard/ui/ui_options_releases.py:106 picard/ui/ui_options_releases.py:109 msgid ">" msgstr "→" -#: picard/ui/ui_options_releases.py:230 picard/ui/ui_options_releases.py:233 +#: picard/ui/ui_options_releases.py:107 picard/ui/ui_options_releases.py:110 msgid "<" msgstr "←" -#: picard/ui/ui_options_releases.py:231 +#: picard/ui/ui_options_releases.py:108 msgid "Preferred release formats" msgstr "Preferred release formats" -#: picard/ui/ui_options_renaming.py:134 +#: picard/ui/ui_options_renaming.py:130 msgid "Rename files when saving" msgstr "Rename files when saving" -#: picard/ui/ui_options_renaming.py:135 +#: picard/ui/ui_options_renaming.py:131 msgid "Replace non-ASCII characters" msgstr "Replace non-ASCII characters" -#: picard/ui/ui_options_renaming.py:136 +#: picard/ui/ui_options_renaming.py:132 msgid "Windows compatibility" msgstr "Windows compatibility" -#: picard/ui/ui_options_renaming.py:137 +#: picard/ui/ui_options_renaming.py:133 msgid "Move files to this directory when saving:" msgstr "Move files to this directory when saving:" -#: picard/ui/ui_options_renaming.py:139 +#: picard/ui/ui_options_renaming.py:135 msgid "Delete empty directories" msgstr "Delete empty directories" -#: picard/ui/ui_options_renaming.py:140 +#: picard/ui/ui_options_renaming.py:136 msgid "Move additional files:" msgstr "Move additional files:" -#: picard/ui/ui_options_renaming.py:141 +#: picard/ui/ui_options_renaming.py:137 msgid "Name files like this" msgstr "Name files like this" -#: picard/ui/ui_options_renaming.py:148 +#: picard/ui/ui_options_renaming.py:144 msgid "Examples" msgstr "Examples" -#: picard/ui/ui_options_script.py:49 +#: picard/ui/ui_options_script.py:45 msgid "Tagger Script" msgstr "Tagger Script" -#: picard/ui/ui_options_tags.py:165 +#: picard/ui/ui_options_tags.py:152 msgid "Write tags to files" msgstr "Write tags to files" -#: picard/ui/ui_options_tags.py:166 +#: picard/ui/ui_options_tags.py:153 msgid "Preserve timestamps of tagged files" msgstr "Preserve timestamps of tagged files" -#: picard/ui/ui_options_tags.py:167 +#: picard/ui/ui_options_tags.py:154 msgid "Before Tagging" msgstr "" -#: picard/ui/ui_options_tags.py:168 +#: picard/ui/ui_options_tags.py:155 msgid "Clear existing tags" msgstr "Clear existing tags" -#: picard/ui/ui_options_tags.py:169 +#: picard/ui/ui_options_tags.py:156 msgid "Remove ID3 tags from FLAC files" msgstr "Remove ID3 tags from FLAC files" -#: picard/ui/ui_options_tags.py:170 +#: picard/ui/ui_options_tags.py:157 msgid "Remove APEv2 tags from MP3 files" msgstr "Remove APEv2 tags from MP3 files" -#: picard/ui/ui_options_tags.py:171 +#: picard/ui/ui_options_tags.py:158 msgid "" "Preserve these tags from being cleared or overwritten with MusicBrainz data:" msgstr "Preserve these tags from being cleared or overwritten with MusicBrainz data:" -#: picard/ui/ui_options_tags.py:172 +#: picard/ui/ui_options_tags.py:159 msgid "Tags are separated by commas, and are case-sensitive." msgstr "Tags are separated by commas, and are case-sensitive." -#: picard/ui/ui_options_tags.py:173 +#: picard/ui/ui_options_tags.py:160 msgid "Tag Compatibility" msgstr "" -#: picard/ui/ui_options_tags.py:174 +#: picard/ui/ui_options_tags.py:161 msgid "ID3v2 Version" msgstr "" -#: picard/ui/ui_options_tags.py:175 +#: picard/ui/ui_options_tags.py:162 msgid "2.4" msgstr "2.4" -#: picard/ui/ui_options_tags.py:176 +#: picard/ui/ui_options_tags.py:163 msgid "2.3" msgstr "2.3" -#: picard/ui/ui_options_tags.py:177 +#: picard/ui/ui_options_tags.py:164 msgid "ID3v2 Text Encoding" msgstr "" -#: picard/ui/ui_options_tags.py:178 +#: picard/ui/ui_options_tags.py:165 msgid "UTF-8" msgstr "UTF-8" -#: picard/ui/ui_options_tags.py:179 +#: picard/ui/ui_options_tags.py:166 msgid "UTF-16" msgstr "UTF-16" -#: picard/ui/ui_options_tags.py:180 +#: picard/ui/ui_options_tags.py:167 msgid "ISO-8859-1" msgstr "ISO-8859-1" -#: picard/ui/ui_options_tags.py:181 +#: picard/ui/ui_options_tags.py:168 msgid "Join multiple ID3v2.3 tags with:" msgstr "Join multiple ID3v2.3 tags with:" -#: picard/ui/ui_options_tags.py:182 +#: picard/ui/ui_options_tags.py:169 msgid "" "

Default is '/' to maintain compatibility with previous" " Picard releases.

New alternatives are ';_' or '_/_' or type your own." "

" msgstr "

Default is ‘/’ to maintain compatibility with previous Picard releases.

New alternatives are ‘;_’ or ‘_/_’ or type your own.

" -#: picard/ui/ui_options_tags.py:183 +#: picard/ui/ui_options_tags.py:170 msgid "Also include ID3v1 tags in the files" msgstr "Also include ID3v1 tags in the files" -#: picard/ui/ui_passworddialog.py:72 +#: picard/ui/ui_passworddialog.py:68 msgid "Authentication required" msgstr "Authentication required" -#: picard/ui/ui_passworddialog.py:75 +#: picard/ui/ui_passworddialog.py:71 msgid "Save username and password" msgstr "Save username and password" -#: picard/ui/ui_tagsfromfilenames.py:54 +#: picard/ui/ui_tagsfromfilenames.py:50 msgid "Convert File Names to Tags" msgstr "Convert File Names to Tags" -#: picard/ui/ui_tagsfromfilenames.py:55 +#: picard/ui/ui_tagsfromfilenames.py:51 msgid "Replace underscores with spaces" msgstr "Replace underscores with spaces" -#: picard/ui/ui_tagsfromfilenames.py:56 +#: picard/ui/ui_tagsfromfilenames.py:52 msgid "&Preview" msgstr "&Preview" @@ -1745,7 +1631,11 @@ msgstr "Advanced" msgid "Regex Error" msgstr "" -#: picard/ui/options/cover.py:63 +#: picard/ui/options/cover.py:44 +msgid "title" +msgstr "" + +#: picard/ui/options/cover.py:68 msgid "Cover Art" msgstr "Cover Art" @@ -1761,11 +1651,11 @@ msgstr "User Interface" msgid "System default" msgstr "System default" -#: picard/ui/options/interface.py:96 +#: picard/ui/options/interface.py:98 msgid "Language changed" msgstr "Language changed" -#: picard/ui/options/interface.py:96 +#: picard/ui/options/interface.py:99 msgid "" "You have changed the interface language. You have to restart Picard in order" " for the change to take effect." @@ -1787,31 +1677,35 @@ msgstr "File" msgid "Ratings" msgstr "Ratings" -#: picard/ui/options/releases.py:33 +#: picard/ui/options/releases.py:87 msgid "Preferred Releases" msgstr "Preferred Releases" +#: picard/ui/options/releases.py:121 +msgid "Reset all" +msgstr "Reset all" + #: picard/ui/options/renaming.py:37 msgid "File Naming" msgstr "" -#: picard/ui/options/renaming.py:184 +#: picard/ui/options/renaming.py:187 msgid "Error" msgstr "Error" -#: picard/ui/options/renaming.py:184 +#: picard/ui/options/renaming.py:187 msgid "The location to move files to must not be empty." msgstr "The location to move files to must not be empty." -#: picard/ui/options/renaming.py:194 +#: picard/ui/options/renaming.py:197 msgid "The file naming format must not be empty." msgstr "The file naming format must not be empty." -#: picard/ui/options/scripting.py:63 +#: picard/ui/options/scripting.py:99 msgid "Scripting" msgstr "Scripting" -#: picard/ui/options/scripting.py:95 +#: picard/ui/options/scripting.py:131 msgid "Script Error" msgstr "Script Error" @@ -1931,199 +1825,199 @@ msgstr "ASIN" msgid "Grouping" msgstr "Grouping" -#: picard/util/tags.py:40 +#: picard/util/tags.py:39 msgid "ISRC" msgstr "ISRC" -#: picard/util/tags.py:41 +#: picard/util/tags.py:40 msgid "Mood" msgstr "Mood" -#: picard/util/tags.py:42 +#: picard/util/tags.py:41 msgid "BPM" msgstr "BPM" -#: picard/util/tags.py:43 +#: picard/util/tags.py:42 msgid "Copyright" msgstr "Copyright" -#: picard/util/tags.py:44 +#: picard/util/tags.py:43 msgid "License" msgstr "License" -#: picard/util/tags.py:45 +#: picard/util/tags.py:44 msgid "Composer" msgstr "Composer" -#: picard/util/tags.py:46 +#: picard/util/tags.py:45 msgid "Writer" msgstr "Writer" -#: picard/util/tags.py:47 +#: picard/util/tags.py:46 msgid "Conductor" msgstr "Conductor" -#: picard/util/tags.py:48 +#: picard/util/tags.py:47 msgid "Lyricist" msgstr "Lyricist" -#: picard/util/tags.py:49 +#: picard/util/tags.py:48 msgid "Arranger" msgstr "Arranger" -#: picard/util/tags.py:50 +#: picard/util/tags.py:49 msgid "Producer" msgstr "Producer" -#: picard/util/tags.py:51 +#: picard/util/tags.py:50 msgid "Engineer" msgstr "Engineer" -#: picard/util/tags.py:52 +#: picard/util/tags.py:51 msgid "Subtitle" msgstr "Subtitle" -#: picard/util/tags.py:53 +#: picard/util/tags.py:52 msgid "Disc Subtitle" msgstr "Disc Subtitle" -#: picard/util/tags.py:54 +#: picard/util/tags.py:53 msgid "Remixer" msgstr "Remixer" -#: picard/util/tags.py:55 +#: picard/util/tags.py:54 msgid "MusicBrainz Recording Id" msgstr "MusicBrainz Recording Id" -#: picard/util/tags.py:56 +#: picard/util/tags.py:55 msgid "MusicBrainz Track Id" msgstr "MusicBrainz Track Id" -#: picard/util/tags.py:57 +#: picard/util/tags.py:56 msgid "MusicBrainz Release Id" msgstr "MusicBrainz Release Id" -#: picard/util/tags.py:58 +#: picard/util/tags.py:57 msgid "MusicBrainz Artist Id" msgstr "MusicBrainz Artist Id" -#: picard/util/tags.py:59 +#: picard/util/tags.py:58 msgid "MusicBrainz Release Artist Id" msgstr "MusicBrainz Release Artist Id" -#: picard/util/tags.py:60 +#: picard/util/tags.py:59 msgid "MusicBrainz Work Id" msgstr "MusicBrainz Work Id" -#: picard/util/tags.py:61 +#: picard/util/tags.py:60 msgid "MusicBrainz Release Group Id" msgstr "MusicBrainz Release Group Id" -#: picard/util/tags.py:62 +#: picard/util/tags.py:61 msgid "MusicBrainz Disc Id" msgstr "MusicBrainz Disc Id" -#: picard/util/tags.py:63 -msgid "MusicBrainz Sort Name" -msgstr "MusicBrainz Sort Name" - -#: picard/util/tags.py:64 +#: picard/util/tags.py:62 msgid "MusicIP PUID" msgstr "MusicIP PUID" -#: picard/util/tags.py:65 +#: picard/util/tags.py:63 msgid "MusicIP Fingerprint" msgstr "MusicIP Fingerprint" -#: picard/util/tags.py:66 +#: picard/util/tags.py:64 msgid "AcoustID" msgstr "AcoustID" -#: picard/util/tags.py:67 +#: picard/util/tags.py:65 msgid "AcoustID Fingerprint" msgstr "AcoustID Fingerprint" -#: picard/util/tags.py:68 +#: picard/util/tags.py:66 msgid "Disc Id" msgstr "Disc Id" -#: picard/util/tags.py:69 -msgid "Website" -msgstr "Website" +#: picard/util/tags.py:67 +msgid "Artist Website" +msgstr "" -#: picard/util/tags.py:70 +#: picard/util/tags.py:68 msgid "Compilation (iTunes)" msgstr "Compilation (iTunes)" -#: picard/util/tags.py:71 +#: picard/util/tags.py:69 msgid "Comment" msgstr "Comment" -#: picard/util/tags.py:72 +#: picard/util/tags.py:70 msgid "Genre" msgstr "Genre" -#: picard/util/tags.py:73 +#: picard/util/tags.py:71 msgid "Encoded By" msgstr "Encoded By" -#: picard/util/tags.py:74 +#: picard/util/tags.py:72 +msgid "Encoder Settings" +msgstr "" + +#: picard/util/tags.py:73 msgid "Performer" msgstr "Performer" -#: picard/util/tags.py:75 +#: picard/util/tags.py:74 msgid "Release Type" msgstr "Release Type" -#: picard/util/tags.py:76 +#: picard/util/tags.py:75 msgid "Release Status" msgstr "Release Status" -#: picard/util/tags.py:77 +#: picard/util/tags.py:76 msgid "Release Country" msgstr "Release Country" -#: picard/util/tags.py:78 +#: picard/util/tags.py:77 msgid "Record Label" msgstr "Record Label" -#: picard/util/tags.py:80 +#: picard/util/tags.py:79 msgid "Catalog Number" msgstr "Catalogue Number" -#: picard/util/tags.py:82 +#: picard/util/tags.py:80 msgid "DJ-Mixer" msgstr "DJ-Mixer" -#: picard/util/tags.py:83 +#: picard/util/tags.py:81 msgid "Media" msgstr "Media" -#: picard/util/tags.py:84 +#: picard/util/tags.py:82 msgid "Lyrics" msgstr "Lyrics" -#: picard/util/tags.py:85 +#: picard/util/tags.py:83 msgid "Mixer" msgstr "Mixer" -#: picard/util/tags.py:86 +#: picard/util/tags.py:84 msgid "Language" msgstr "Language" -#: picard/util/tags.py:87 +#: picard/util/tags.py:85 msgid "Script" msgstr "Script" -#: picard/util/tags.py:89 +#: picard/util/tags.py:87 msgid "Rating" msgstr "Rating" -#: picard/util/tags.py:90 +#: picard/util/tags.py:88 msgid "Artists" msgstr "" -#: picard/util/tags.py:91 +#: picard/util/tags.py:89 msgid "Work" msgstr "" diff --git a/po/en_GB.po b/po/en_GB.po index bd425949b..71038d4db 100644 --- a/po/en_GB.po +++ b/po/en_GB.po @@ -10,8 +10,8 @@ msgid "" msgstr "" "Project-Id-Version: MusicBrainz\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2014-03-20 11:12+0100\n" -"PO-Revision-Date: 2014-03-21 08:44+0000\n" +"POT-Creation-Date: 2014-05-03 17:28+0200\n" +"PO-Revision-Date: 2014-05-04 08:44+0000\n" "Last-Translator: nikki\n" "Language-Team: English (United Kingdom) (http://www.transifex.com/projects/p/musicbrainz/language/en_GB/)\n" "MIME-Version: 1.0\n" @@ -21,6 +21,10 @@ msgstr "" "Language: en_GB\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" +#: contrib/plugins/albumartist_website.py:3 +msgid "Album Artist Website" +msgstr "" + #: contrib/plugins/no_release.py:50 msgid "Enable plugin for all releases by default" msgstr "Enable plugin for all releases by default" @@ -33,63 +37,55 @@ msgstr "Tags to strip (comma-separated)" msgid "Remove specific release information..." msgstr "Remove specific release information..." -#: contrib/plugins/open_in_gui.py:32 -msgid "Open Error" -msgstr "Open Error" +#: contrib/plugins/standardise_performers.py:3 +msgid "Standardise Performers" +msgstr "" -#: contrib/plugins/open_in_gui.py:32 -#, python-format -msgid "" -"Error while opening file:\n" -"\n" -"%s" -msgstr "Error while opening file:\n\n%s" - -#: contrib/plugins/lastfm/ui_options_lastfm.py:117 +#: contrib/plugins/lastfm/ui_options_lastfm.py:99 msgid "Last.fm" msgstr "Last.fm" -#: contrib/plugins/lastfm/ui_options_lastfm.py:118 +#: contrib/plugins/lastfm/ui_options_lastfm.py:100 msgid "Use track tags" msgstr "Use track tags" -#: contrib/plugins/lastfm/ui_options_lastfm.py:119 +#: contrib/plugins/lastfm/ui_options_lastfm.py:101 msgid "Use artist tags" msgstr "Use artist tags" -#: contrib/plugins/lastfm/ui_options_lastfm.py:120 +#: contrib/plugins/lastfm/ui_options_lastfm.py:102 #: picard/ui/options/tags.py:30 msgid "Tags" msgstr "Tags" -#: contrib/plugins/lastfm/ui_options_lastfm.py:121 -#: picard/ui/ui_options_folksonomy.py:116 +#: contrib/plugins/lastfm/ui_options_lastfm.py:103 +#: picard/ui/ui_options_folksonomy.py:103 msgid "Ignore tags:" msgstr "Ignore tags:" -#: contrib/plugins/lastfm/ui_options_lastfm.py:122 -#: picard/ui/ui_options_folksonomy.py:121 +#: contrib/plugins/lastfm/ui_options_lastfm.py:104 +#: picard/ui/ui_options_folksonomy.py:108 msgid "Join multiple tags with:" msgstr "Join multiple tags with:" -#: contrib/plugins/lastfm/ui_options_lastfm.py:123 -#: picard/ui/ui_options_folksonomy.py:122 +#: contrib/plugins/lastfm/ui_options_lastfm.py:105 +#: picard/ui/ui_options_folksonomy.py:109 msgid " / " msgstr " / " -#: contrib/plugins/lastfm/ui_options_lastfm.py:124 -#: picard/ui/ui_options_folksonomy.py:123 +#: contrib/plugins/lastfm/ui_options_lastfm.py:106 +#: picard/ui/ui_options_folksonomy.py:110 msgid ", " msgstr ", " -#: contrib/plugins/lastfm/ui_options_lastfm.py:125 -#: picard/ui/ui_options_folksonomy.py:118 +#: contrib/plugins/lastfm/ui_options_lastfm.py:107 +#: picard/ui/ui_options_folksonomy.py:105 msgid "Minimal tag usage:" msgstr "Minimal tag usage:" -#: contrib/plugins/lastfm/ui_options_lastfm.py:126 -#: picard/ui/ui_options_folksonomy.py:119 picard/ui/ui_options_matching.py:88 -#: picard/ui/ui_options_matching.py:89 picard/ui/ui_options_matching.py:90 +#: contrib/plugins/lastfm/ui_options_lastfm.py:108 +#: picard/ui/ui_options_folksonomy.py:106 picard/ui/ui_options_matching.py:75 +#: picard/ui/ui_options_matching.py:76 picard/ui/ui_options_matching.py:77 msgid " %" msgstr " %" @@ -97,420 +93,307 @@ msgstr " %" msgid "Calculate replay &gain..." msgstr "Calculate replay &gain..." -#: contrib/plugins/replaygain/__init__.py:66 +#: contrib/plugins/replaygain/__init__.py:67 #, python-format -msgid "Calculating replay gain for \"%s\"..." -msgstr "Calculating replay gain for \"%s\"..." +msgid "Calculating replay gain for \"%(filename)s\"..." +msgstr "" -#: contrib/plugins/replaygain/__init__.py:71 +#: contrib/plugins/replaygain/__init__.py:75 #, python-format -msgid "Replay gain for \"%s\" successfully calculated." -msgstr "Replay gain for \"%s\" successfully calculated." +msgid "Replay gain for \"%(filename)s\" successfully calculated." +msgstr "" -#: contrib/plugins/replaygain/__init__.py:73 +#: contrib/plugins/replaygain/__init__.py:80 #, python-format -msgid "Could not calculate replay gain for \"%s\"." -msgstr "Could not calculate replay gain for \"%s\"." +msgid "Could not calculate replay gain for \"%(filename)s\"." +msgstr "" -#: contrib/plugins/replaygain/__init__.py:76 +#: contrib/plugins/replaygain/__init__.py:85 msgid "Calculate album &gain..." msgstr "Calculate album &gain..." -#: contrib/plugins/replaygain/__init__.py:103 -#: contrib/plugins/replaygain/__init__.py:111 +#: contrib/plugins/replaygain/__init__.py:113 +#: contrib/plugins/replaygain/__init__.py:124 #, python-format -msgid "Calculating album gain for \"%s\"..." -msgstr "Calculating album gain for \"%s\"..." - -#: contrib/plugins/replaygain/__init__.py:119 -#, python-format -msgid "Album gain for \"%s\" successfully calculated." -msgstr "Album gain for \"%s\" successfully calculated." - -#: contrib/plugins/replaygain/__init__.py:121 -#, python-format -msgid "Could not calculate album gain for \"%s\"." -msgstr "Could not calculate album gain for \"%s\"." - -#: picard/acoustid.py:102 -#, python-format -msgid "AcoustID lookup network error for '%s'!" +msgid "Calculating album gain for \"%(album)s\"..." msgstr "" -#: picard/acoustid.py:117 +#: contrib/plugins/replaygain/__init__.py:135 #, python-format -msgid "AcoustID lookup failed for '%s'!" +msgid "Album gain for \"%(album)s\" successfully calculated." msgstr "" -#: picard/acoustid.py:128 +#: contrib/plugins/replaygain/__init__.py:140 #, python-format -msgid "Acoustid lookup returned no result for file '%s'" +msgid "Could not calculate album gain for \"%(album)s\"." msgstr "" -#: picard/acoustid.py:132 -#, python-format -msgid "Looking up the fingerprint for file %s..." -msgstr "Looking up the fingerprint for file %s..." - -#: picard/acoustidmanager.py:78 -msgid "Submitting AcoustIDs..." -msgstr "Submitting AcoustIDs..." - -#: picard/acoustidmanager.py:83 -#, python-format -msgid "AcoustID submission failed with error '%s'" +#: contrib/plugins/replaygain/ui_options_replaygain.py:59 +msgid "Replay Gain" msgstr "" -#: picard/acoustidmanager.py:85 +#: contrib/plugins/replaygain/ui_options_replaygain.py:60 +msgid "Path to VorbisGain:" +msgstr "" + +#: contrib/plugins/replaygain/ui_options_replaygain.py:61 +msgid "Path to MP3Gain:" +msgstr "" + +#: contrib/plugins/replaygain/ui_options_replaygain.py:62 +msgid "Path to metaflac:" +msgstr "" + +#: contrib/plugins/replaygain/ui_options_replaygain.py:63 +msgid "Path to wvgain:" +msgstr "" + +#: contrib/plugins/viewvariables/__init__.py:42 +#, python-format +msgid "File: %s" +msgstr "" + +#: contrib/plugins/viewvariables/__init__.py:47 +#, python-format +msgid "Track: %s %s " +msgstr "" + +#: contrib/plugins/viewvariables/__init__.py:49 +msgid "Variables" +msgstr "" + +#: contrib/plugins/viewvariables/__init__.py:69 +msgid "File variables" +msgstr "" + +#: contrib/plugins/viewvariables/__init__.py:74 +msgid "Hidden variables" +msgstr "" + +#: contrib/plugins/viewvariables/__init__.py:79 +msgid "Tag variables" +msgstr "" + +#: contrib/plugins/viewvariables/ui_variables_dialog.py:73 +msgid "Variable" +msgstr "" + +#: contrib/plugins/viewvariables/ui_variables_dialog.py:75 +msgid "Value" +msgstr "" + +#: picard/acoustid.py:109 +#, python-format +msgid "AcoustID lookup network error for '%(filename)s'!" +msgstr "" + +#: picard/acoustid.py:133 +#, python-format +msgid "AcoustID lookup failed for '%(filename)s'!" +msgstr "" + +#: picard/acoustid.py:155 +#, python-format +msgid "AcoustID lookup returned no result for file '%(filename)s'" +msgstr "" + +#: picard/acoustid.py:166 +#, python-format +msgid "Looking up the fingerprint for file '%(filename)s' ..." +msgstr "" + +#: picard/acoustidmanager.py:80 +msgid "Submitting AcoustIDs ..." +msgstr "" + +#: picard/acoustidmanager.py:94 +#, python-format +msgid "AcoustID submission failed with error '%(error)s'" +msgstr "" + +#: picard/acoustidmanager.py:102 msgid "AcoustIDs successfully submitted." msgstr "" -#: picard/album.py:64 picard/cluster.py:234 +#: picard/album.py:65 picard/cluster.py:255 msgid "Unmatched Files" msgstr "Unmatched Files" -#: picard/album.py:187 +#: picard/album.py:188 #, python-format msgid "[could not load album %s]" msgstr "[could not load album %s]" -#: picard/album.py:272 +#: picard/album.py:277 #, python-format -msgid "Album %s loaded" -msgstr "Album %s loaded" +msgid "Album %(id)s loaded: %(artist)s - %(album)s" +msgstr "" -#: picard/album.py:288 +#: picard/album.py:294 +#, python-format +msgid "Loading album %(id)s ..." +msgstr "" + +#: picard/album.py:303 msgid "[loading album information]" msgstr "[loading album information]" -#: picard/album.py:463 +#: picard/album.py:478 #, python-format msgid "; %i image" msgid_plural "; %i images" msgstr[0] "; %i image" msgstr[1] "; %i images" -#: picard/cluster.py:150 picard/cluster.py:159 +#: picard/cluster.py:155 picard/cluster.py:168 #, python-format -msgid "No matching releases for cluster %s" -msgstr "No matching releases for cluster %s" - -#: picard/cluster.py:161 -#, python-format -msgid "Cluster %s identified!" -msgstr "Cluster %s identified!" - -#: picard/cluster.py:168 -#, python-format -msgid "Looking up the metadata for cluster %s..." -msgstr "Looking up the metadata for cluster %s..." - -#: picard/collection.py:60 -#, python-format -msgid "Added %i release to collection \"%s\"" -msgid_plural "Added %i releases to collection \"%s\"" -msgstr[0] "" -msgstr[1] "" - -#: picard/collection.py:72 -#, python-format -msgid "Removed %i release from collection \"%s\"" -msgid_plural "Removed %i releases from collection \"%s\"" -msgstr[0] "" -msgstr[1] "" - -#: picard/collection.py:81 -#, python-format -msgid "Error loading collections: %s" +msgid "No matching releases for cluster %(album)s" msgstr "" -#: picard/config_upgrade.py:57 picard/config_upgrade.py:70 +#: picard/cluster.py:174 +#, python-format +msgid "Cluster %(album)s identified!" +msgstr "" + +#: picard/cluster.py:185 +#, python-format +msgid "Looking up the metadata for cluster %(album)s..." +msgstr "" + +#: picard/collection.py:64 +#, python-format +msgid "Added %(count)i release to collection \"%(name)s\"" +msgid_plural "Added %(count)i releases to collection \"%(name)s\"" +msgstr[0] "" +msgstr[1] "" + +#: picard/collection.py:86 +#, python-format +msgid "Removed %(count)i release from collection \"%(name)s\"" +msgid_plural "Removed %(count)i releases from collection \"%(name)s\"" +msgstr[0] "" +msgstr[1] "" + +#: picard/collection.py:100 +#, python-format +msgid "Error loading collections: %(error)s" +msgstr "" + +#: picard/config_upgrade.py:58 picard/config_upgrade.py:71 msgid "Various Artists file naming scheme removal" msgstr "Various Artists file naming scheme removal" -#: picard/config_upgrade.py:58 +#: picard/config_upgrade.py:59 msgid "" "The separate file naming scheme for various artists albums has been removed in this version of Picard.\n" "Your file naming scheme has automatically been merged with that of single artist albums." msgstr "" -#: picard/config_upgrade.py:71 +#: picard/config_upgrade.py:72 msgid "" "The separate file naming scheme for various artists albums has been removed in this version of Picard.\n" "You currently do not use this option, but have a separate file naming scheme defined.\n" "Do you want to remove it or merge it with your file naming scheme for single artist albums?" msgstr "" -#: picard/config_upgrade.py:77 +#: picard/config_upgrade.py:78 msgid "Merge" msgstr "Merge" -#: picard/config_upgrade.py:77 picard/ui/metadatabox.py:254 +#: picard/config_upgrade.py:78 picard/ui/metadatabox.py:254 msgid "Remove" msgstr "Remove" -#: picard/const.py:67 -msgid "CD" -msgstr "CD" - -#: picard/const.py:68 -msgid "CD-R" -msgstr "CD-R" - -#: picard/const.py:69 -msgid "HDCD" -msgstr "HDCD" - -#: picard/const.py:70 -msgid "8cm CD" -msgstr "8cm CD" - -#: picard/const.py:71 -msgid "Vinyl" -msgstr "Vinyl" - -#: picard/const.py:72 -msgid "7\" Vinyl" -msgstr "7\" Vinyl" - -#: picard/const.py:73 -msgid "10\" Vinyl" -msgstr "10\" Vinyl" - -#: picard/const.py:74 -msgid "12\" Vinyl" -msgstr "12\" Vinyl" - -#: picard/const.py:75 -msgid "Digital Media" -msgstr "Digital Media" - -#: picard/const.py:76 -msgid "USB Flash Drive" -msgstr "USB Flash Drive" - -#: picard/const.py:77 -msgid "slotMusic" -msgstr "slotMusic" - -#: picard/const.py:78 -msgid "Cassette" -msgstr "Cassette" - -#: picard/const.py:79 -msgid "DVD" -msgstr "DVD" - -#: picard/const.py:80 -msgid "DVD-Audio" -msgstr "DVD-Audio" - -#: picard/const.py:81 -msgid "DVD-Video" -msgstr "DVD-Video" - -#: picard/const.py:82 -msgid "SACD" -msgstr "SACD" - -#: picard/const.py:83 -msgid "DualDisc" -msgstr "DualDisc" - -#: picard/const.py:84 -msgid "MiniDisc" -msgstr "MiniDisc" - -#: picard/const.py:85 -msgid "Blu-ray" -msgstr "Blu-ray" - -#: picard/const.py:86 -msgid "HD-DVD" -msgstr "HD-DVD" - -#: picard/const.py:87 -msgid "Videotape" -msgstr "Videotape" - -#: picard/const.py:88 -msgid "VHS" -msgstr "VHS" - -#: picard/const.py:89 -msgid "Betamax" -msgstr "Betamax" - #: picard/const.py:90 -msgid "VCD" -msgstr "VCD" - -#: picard/const.py:91 -msgid "SVCD" -msgstr "SVCD" - -#: picard/const.py:92 -msgid "UMD" -msgstr "UMD" - -#: picard/const.py:93 picard/coverartarchive.py:33 -#: picard/ui/ui_options_releases.py:226 -msgid "Other" -msgstr "Other" - -#: picard/const.py:94 -msgid "LaserDisc" -msgstr "LaserDisc" - -#: picard/const.py:95 -msgid "Cartridge" -msgstr "Cartridge" - -#: picard/const.py:96 -msgid "Reel-to-reel" -msgstr "Reel-to-reel" - -#: picard/const.py:97 -msgid "DAT" -msgstr "DAT" - -#: picard/const.py:98 -msgid "Wax Cylinder" -msgstr "Wax Cylinder" - -#: picard/const.py:99 -msgid "Piano Roll" -msgstr "Piano Roll" - -#: picard/const.py:100 -msgid "DCC" -msgstr "DCC" - -#: picard/const.py:115 msgid "Danish" msgstr "Danish" -#: picard/const.py:116 +#: picard/const.py:91 msgid "German" msgstr "German" -#: picard/const.py:118 +#: picard/const.py:93 msgid "English" msgstr "English" -#: picard/const.py:119 +#: picard/const.py:94 msgid "English (Canada)" msgstr "English (Canada)" -#: picard/const.py:120 +#: picard/const.py:95 msgid "English (UK)" msgstr "English (UK)" -#: picard/const.py:122 +#: picard/const.py:97 msgid "Spanish" msgstr "Spanish" -#: picard/const.py:123 +#: picard/const.py:98 msgid "Estonian" msgstr "Estonian" -#: picard/const.py:125 +#: picard/const.py:100 msgid "Finnish" msgstr "Finnish" -#: picard/const.py:127 +#: picard/const.py:102 msgid "French" msgstr "French" -#: picard/const.py:136 +#: picard/const.py:111 msgid "Italian" msgstr "Italian" -#: picard/const.py:143 +#: picard/const.py:118 msgid "Dutch" msgstr "Dutch" -#: picard/const.py:145 +#: picard/const.py:120 msgid "Polish" msgstr "Polish" -#: picard/const.py:147 +#: picard/const.py:122 msgid "Brazilian Portuguese" msgstr "Brazilian Portuguese" -#: picard/const.py:154 +#: picard/const.py:129 msgid "Swedish" msgstr "Swedish" -#: picard/coverart.py:84 +#: picard/coverart.py:85 #, python-format -msgid "Coverart %s downloaded" -msgstr "Coverart %s downloaded" +msgid "Cover art of type '%(type)s' downloaded for %(albumid)s from %(host)s" +msgstr "" -#: picard/coverart.py:240 +#: picard/coverart.py:256 #, python-format -msgid "Downloading http://%s:%i%s" -msgstr "Downloading http://%s:%i%s" - -#: picard/coverartarchive.py:24 -msgid "Front" -msgstr "" - -#: picard/coverartarchive.py:25 -msgid "Back" -msgstr "" - -#: picard/coverartarchive.py:26 -msgid "Booklet" -msgstr "" - -#: picard/coverartarchive.py:27 -msgid "Medium" -msgstr "" - -#: picard/coverartarchive.py:28 -msgid "Tray" -msgstr "" - -#: picard/coverartarchive.py:29 -msgid "Obi" +msgid "" +"Downloading cover art of type '%(type)s' for %(albumid)s from %(host)s .." msgstr "" #: picard/coverartarchive.py:30 -msgid "Spine" -msgstr "" - -#: picard/coverartarchive.py:31 picard/ui/mainwindow.py:546 -msgid "Track" -msgstr "Track" - -#: picard/coverartarchive.py:32 -msgid "Sticker" -msgstr "" - -#: picard/coverartarchive.py:34 msgid "Unknown" msgstr "" -#: picard/file.py:536 +#: picard/file.py:494 #, python-format -msgid "No matching tracks for file %s" -msgstr "No matching tracks for file %s" +msgid "No matching tracks for file '%(filename)s'" +msgstr "" -#: picard/file.py:548 +#: picard/file.py:510 #, python-format -msgid "No matching tracks above the threshold for file %s" -msgstr "No matching tracks above the threshold for file %s" +msgid "No matching tracks above the threshold for file '%(filename)s'" +msgstr "" -#: picard/file.py:551 +#: picard/file.py:517 #, python-format -msgid "File %s identified!" -msgstr "File %s identified!" +msgid "File '%(filename)s' identified!" +msgstr "" -#: picard/file.py:567 +#: picard/file.py:537 #, python-format -msgid "Looking up the metadata for file %s..." -msgstr "Looking up the metadata for file %s..." +msgid "Looking up the metadata for file %(filename)s ..." +msgstr "" #: picard/releasegroup.py:53 msgid "Tracks" @@ -520,11 +403,11 @@ msgstr "" msgid "Year" msgstr "" -#: picard/releasegroup.py:55 picard/ui/cdlookup.py:34 +#: picard/releasegroup.py:55 picard/ui/cdlookup.py:35 msgid "Country" msgstr "Country" -#: picard/releasegroup.py:56 picard/util/tags.py:81 +#: picard/releasegroup.py:56 msgid "Format" msgstr "Format" @@ -544,16 +427,23 @@ msgstr "" msgid "[no release info]" msgstr "[no release info]" -#: picard/tagger.py:316 +#: picard/tagger.py:370 #, python-format -msgid "Loading directory %s" -msgstr "Loading directory %s" +msgid "Adding %(count)d file from '%(directory)s' ..." +msgid_plural "Adding %(count)d files from '%(directory)s' ..." +msgstr[0] "" +msgstr[1] "" -#: picard/tagger.py:452 +#: picard/tagger.py:512 +#, python-format +msgid "Removing album %(id)s: %(artist)s - %(album)s" +msgstr "" + +#: picard/tagger.py:528 msgid "CD Lookup Error" msgstr "CD Lookup Error" -#: picard/tagger.py:453 +#: picard/tagger.py:529 #, python-format msgid "" "Error while reading CD:\n" @@ -561,44 +451,43 @@ msgid "" "%s" msgstr "Error while reading CD:\n\n%s" -#: picard/ui/cdlookup.py:34 picard/ui/mainwindow.py:544 -#: picard/ui/ui_options_releases.py:216 picard/util/tags.py:21 +#: picard/ui/cdlookup.py:35 picard/ui/mainwindow.py:597 picard/util/tags.py:21 msgid "Album" msgstr "Album" -#: picard/ui/cdlookup.py:34 picard/ui/itemviews.py:96 -#: picard/ui/mainwindow.py:545 picard/util/tags.py:22 +#: picard/ui/cdlookup.py:35 picard/ui/itemviews.py:96 +#: picard/ui/mainwindow.py:598 picard/util/tags.py:22 msgid "Artist" msgstr "Artist" -#: picard/ui/cdlookup.py:34 picard/util/tags.py:24 +#: picard/ui/cdlookup.py:35 picard/util/tags.py:24 msgid "Date" msgstr "Date" -#: picard/ui/cdlookup.py:35 +#: picard/ui/cdlookup.py:36 msgid "Labels" msgstr "Labels" -#: picard/ui/cdlookup.py:35 +#: picard/ui/cdlookup.py:36 msgid "Catalog #s" msgstr "Catalogue #s" -#: picard/ui/cdlookup.py:35 picard/util/tags.py:79 +#: picard/ui/cdlookup.py:36 picard/util/tags.py:78 msgid "Barcode" msgstr "Barcode" -#: picard/ui/collectionmenu.py:31 +#: picard/ui/collectionmenu.py:42 msgid "Refresh List" msgstr "" -#: picard/ui/collectionmenu.py:92 +#: picard/ui/collectionmenu.py:86 #, python-format msgid "%s (%i release)" msgid_plural "%s (%i releases)" msgstr[0] "" msgstr[1] "" -#: picard/ui/coverartbox.py:142 +#: picard/ui/coverartbox.py:141 msgid "View release on MusicBrainz" msgstr "View release on MusicBrainz" @@ -614,59 +503,59 @@ msgstr "Show &Hidden Files" msgid "&Set as starting directory" msgstr "" -#: picard/ui/infodialog.py:36 picard/ui/infodialog.py:75 +#: picard/ui/infodialog.py:37 picard/ui/infodialog.py:80 msgid "Info" msgstr "Info" -#: picard/ui/infodialog.py:80 +#: picard/ui/infodialog.py:85 msgid "Filename:" msgstr "Filename:" -#: picard/ui/infodialog.py:82 +#: picard/ui/infodialog.py:87 msgid "Format:" msgstr "Format:" -#: picard/ui/infodialog.py:86 +#: picard/ui/infodialog.py:91 msgid "Size:" msgstr "Size:" -#: picard/ui/infodialog.py:90 +#: picard/ui/infodialog.py:95 msgid "Length:" msgstr "Length:" -#: picard/ui/infodialog.py:92 +#: picard/ui/infodialog.py:97 msgid "Bitrate:" msgstr "Bitrate:" -#: picard/ui/infodialog.py:94 +#: picard/ui/infodialog.py:99 msgid "Sample rate:" msgstr "Sample rate:" -#: picard/ui/infodialog.py:96 +#: picard/ui/infodialog.py:101 msgid "Bits per sample:" msgstr "Bits per sample:" -#: picard/ui/infodialog.py:100 +#: picard/ui/infodialog.py:105 msgid "Mono" msgstr "Mono" -#: picard/ui/infodialog.py:102 +#: picard/ui/infodialog.py:107 msgid "Stereo" msgstr "Stereo" -#: picard/ui/infodialog.py:105 +#: picard/ui/infodialog.py:110 msgid "Channels:" msgstr "Channels:" -#: picard/ui/infodialog.py:116 +#: picard/ui/infodialog.py:121 msgid "Album Info" msgstr "" -#: picard/ui/infodialog.py:124 +#: picard/ui/infodialog.py:129 msgid "&Errors" msgstr "" -#: picard/ui/infodialog.py:134 picard/ui/ui_infodialog.py:77 +#: picard/ui/infodialog.py:139 picard/ui/ui_infodialog.py:73 msgid "&Info" msgstr "&Info" @@ -690,7 +579,7 @@ msgstr "" msgid "Title" msgstr "Title" -#: picard/ui/itemviews.py:95 picard/util/tags.py:88 +#: picard/ui/itemviews.py:95 picard/util/tags.py:86 msgid "Length" msgstr "Length" @@ -715,8 +604,8 @@ msgid "Collections" msgstr "" #: picard/ui/itemviews.py:365 -msgid "&Plugins" -msgstr "&Plugins" +msgid "P&lugins" +msgstr "" #: picard/ui/itemviews.py:541 msgid "file view" @@ -738,12 +627,16 @@ msgstr "" msgid "Contains albums and matched files" msgstr "" -#: picard/ui/logview.py:91 +#: picard/ui/logview.py:109 msgid "Log" msgstr "Log" -#: picard/ui/logview.py:99 -msgid "Status History" +#: picard/ui/logview.py:113 +msgid "Debug mode" +msgstr "" + +#: picard/ui/logview.py:134 +msgid "Activity History" msgstr "" #: picard/ui/mainwindow.py:74 @@ -777,276 +670,309 @@ msgstr "Ready" #: picard/ui/mainwindow.py:220 msgid "" -"Picard listens on a port to integrate with your browser and downloads " -"release information when you click the \"Tagger\" buttons on the MusicBrainz" -" website" -msgstr "Picard listens on a port to integrate with your browser and downloads release information when you click the \"Tagger\" buttons on the MusicBrainz website" +"Picard listens on this port to integrate with your browser. When you " +"\"Search\" or \"Open in Browser\" from Picard, clicking the \"Tagger\" " +"button on the web page loads the release into Picard." +msgstr "" -#: picard/ui/mainwindow.py:240 +#: picard/ui/mainwindow.py:243 #, python-format msgid " Listening on port %(port)d " msgstr " Listening on port %(port)d " -#: picard/ui/mainwindow.py:263 +#: picard/ui/mainwindow.py:299 msgid "Submission Error" msgstr "Submission Error" -#: picard/ui/mainwindow.py:264 +#: picard/ui/mainwindow.py:300 msgid "" "You need to configure your AcoustID API key before you can submit " "fingerprints." msgstr "You need to configure your AcoustID API key before you can submit fingerprints." -#: picard/ui/mainwindow.py:269 +#: picard/ui/mainwindow.py:305 msgid "&Options..." msgstr "&Options..." -#: picard/ui/mainwindow.py:273 +#: picard/ui/mainwindow.py:309 msgid "&Cut" msgstr "&Cut" -#: picard/ui/mainwindow.py:278 +#: picard/ui/mainwindow.py:314 msgid "&Paste" msgstr "&Paste" -#: picard/ui/mainwindow.py:283 +#: picard/ui/mainwindow.py:319 msgid "&Help..." msgstr "&Help..." -#: picard/ui/mainwindow.py:288 +#: picard/ui/mainwindow.py:323 msgid "&About..." msgstr "&About..." -#: picard/ui/mainwindow.py:292 +#: picard/ui/mainwindow.py:327 msgid "&Donate..." msgstr "&Donate..." -#: picard/ui/mainwindow.py:295 +#: picard/ui/mainwindow.py:330 msgid "&Report a Bug..." msgstr "&Report a Bug..." -#: picard/ui/mainwindow.py:298 +#: picard/ui/mainwindow.py:333 msgid "&Support Forum..." msgstr "&Support Forum..." -#: picard/ui/mainwindow.py:301 +#: picard/ui/mainwindow.py:336 msgid "&Add Files..." msgstr "&Add Files..." -#: picard/ui/mainwindow.py:302 +#: picard/ui/mainwindow.py:337 msgid "Add files to the tagger" msgstr "Add files to the tagger" -#: picard/ui/mainwindow.py:307 +#: picard/ui/mainwindow.py:342 msgid "A&dd Folder..." msgstr "A&dd Folder..." -#: picard/ui/mainwindow.py:308 +#: picard/ui/mainwindow.py:343 msgid "Add a folder to the tagger" msgstr "Add a folder to the tagger" -#: picard/ui/mainwindow.py:310 +#: picard/ui/mainwindow.py:345 msgid "Ctrl+D" msgstr "Ctrl+D" -#: picard/ui/mainwindow.py:313 +#: picard/ui/mainwindow.py:348 msgid "&Save" msgstr "&Save" -#: picard/ui/mainwindow.py:314 +#: picard/ui/mainwindow.py:349 msgid "Save selected files" msgstr "Save selected files" -#: picard/ui/mainwindow.py:320 +#: picard/ui/mainwindow.py:355 msgid "S&ubmit" msgstr "S&ubmit" -#: picard/ui/mainwindow.py:321 -msgid "Submit fingerprints" -msgstr "Submit fingerprints" +#: picard/ui/mainwindow.py:356 +msgid "Submit acoustic fingerprints" +msgstr "" -#: picard/ui/mainwindow.py:325 +#: picard/ui/mainwindow.py:360 msgid "E&xit" msgstr "E&xit" -#: picard/ui/mainwindow.py:328 +#: picard/ui/mainwindow.py:363 msgid "Ctrl+Q" msgstr "Ctrl+Q" -#: picard/ui/mainwindow.py:331 +#: picard/ui/mainwindow.py:366 msgid "&Remove" msgstr "&Remove" -#: picard/ui/mainwindow.py:332 +#: picard/ui/mainwindow.py:367 msgid "Remove selected files/albums" msgstr "Remove selected files/albums" -#: picard/ui/mainwindow.py:336 +#: picard/ui/mainwindow.py:371 msgid "Lookup in &Browser" msgstr "Lookup in &Browser" -#: picard/ui/mainwindow.py:337 +#: picard/ui/mainwindow.py:372 msgid "Lookup selected item on MusicBrainz website" msgstr "Lookup selected item on MusicBrainz website" -#: picard/ui/mainwindow.py:341 +#: picard/ui/mainwindow.py:376 msgid "File &Browser" msgstr "File &Browser" -#: picard/ui/mainwindow.py:345 +#: picard/ui/mainwindow.py:380 msgid "Ctrl+B" msgstr "Ctrl+B" -#: picard/ui/mainwindow.py:348 +#: picard/ui/mainwindow.py:383 msgid "&Cover Art" msgstr "&Cover Art" -#: picard/ui/mainwindow.py:354 picard/ui/mainwindow.py:539 +#: picard/ui/mainwindow.py:389 picard/ui/mainwindow.py:591 msgid "Search" msgstr "Search" -#: picard/ui/mainwindow.py:357 -msgid "&CD Lookup..." -msgstr "&CD Lookup..." +#: picard/ui/mainwindow.py:392 +msgid "Lookup &CD..." +msgstr "" -#: picard/ui/mainwindow.py:358 picard/ui/mainwindow.py:359 -msgid "Lookup CD" -msgstr "Lookup CD" +#: picard/ui/mainwindow.py:393 +msgid "Lookup the details of the CD in your drive" +msgstr "" -#: picard/ui/mainwindow.py:361 +#: picard/ui/mainwindow.py:395 msgid "Ctrl+K" msgstr "Ctrl+K" -#: picard/ui/mainwindow.py:364 +#: picard/ui/mainwindow.py:398 msgid "&Scan" msgstr "&Scan" -#: picard/ui/mainwindow.py:367 +#: picard/ui/mainwindow.py:401 msgid "Ctrl+Y" msgstr "Ctrl+Y" -#: picard/ui/mainwindow.py:370 +#: picard/ui/mainwindow.py:404 msgid "Cl&uster" msgstr "Cl&uster" -#: picard/ui/mainwindow.py:373 +#: picard/ui/mainwindow.py:407 msgid "Ctrl+U" msgstr "Ctrl+U" -#: picard/ui/mainwindow.py:376 +#: picard/ui/mainwindow.py:410 msgid "&Lookup" msgstr "&Lookup" -#: picard/ui/mainwindow.py:377 picard/ui/mainwindow.py:378 -msgid "Lookup metadata" -msgstr "Lookup metadata" +#: picard/ui/mainwindow.py:411 +msgid "Lookup selected items in MusicBrainz" +msgstr "" -#: picard/ui/mainwindow.py:381 +#: picard/ui/mainwindow.py:416 msgid "Ctrl+L" msgstr "Ctrl+L" -#: picard/ui/mainwindow.py:384 +#: picard/ui/mainwindow.py:419 msgid "&Info..." msgstr "&Info..." -#: picard/ui/mainwindow.py:387 +#: picard/ui/mainwindow.py:422 msgid "Ctrl+I" msgstr "Ctrl+I" -#: picard/ui/mainwindow.py:390 +#: picard/ui/mainwindow.py:425 msgid "&Refresh" msgstr "&Refresh" -#: picard/ui/mainwindow.py:391 +#: picard/ui/mainwindow.py:426 msgid "Ctrl+R" msgstr "Ctrl+R" -#: picard/ui/mainwindow.py:394 +#: picard/ui/mainwindow.py:429 msgid "&Rename Files" msgstr "&Rename Files" -#: picard/ui/mainwindow.py:399 +#: picard/ui/mainwindow.py:434 msgid "&Move Files" msgstr "&Move Files" -#: picard/ui/mainwindow.py:404 +#: picard/ui/mainwindow.py:439 msgid "Save &Tags" msgstr "Save &Tags" -#: picard/ui/mainwindow.py:409 +#: picard/ui/mainwindow.py:444 msgid "Tags From &File Names..." msgstr "Tags From &File Names..." -#: picard/ui/mainwindow.py:412 -msgid "View &Log..." -msgstr "View &Log..." - -#: picard/ui/mainwindow.py:415 -msgid "View Status &History..." +#: picard/ui/mainwindow.py:447 +msgid "&Open My Collections in Browser" msgstr "" -#: picard/ui/mainwindow.py:422 -msgid "&Open..." -msgstr "&Open..." +#: picard/ui/mainwindow.py:451 +msgid "View Error/Debug &Log" +msgstr "" -#: picard/ui/mainwindow.py:423 -msgid "Open the file" -msgstr "Open the file" +#: picard/ui/mainwindow.py:454 +msgid "View Activity &History" +msgstr "" -#: picard/ui/mainwindow.py:426 -msgid "Open &Folder..." -msgstr "Open &Folder..." +#: picard/ui/mainwindow.py:461 +msgid "&Play file" +msgstr "" -#: picard/ui/mainwindow.py:427 -msgid "Open the containing folder" -msgstr "Open the containing folder" +#: picard/ui/mainwindow.py:462 +msgid "Play the file in your default media player" +msgstr "" -#: picard/ui/mainwindow.py:448 +#: picard/ui/mainwindow.py:466 +msgid "Open Containing &Folder" +msgstr "" + +#: picard/ui/mainwindow.py:467 +msgid "Open the containing folder in your file explorer" +msgstr "" + +#: picard/ui/mainwindow.py:492 msgid "&File" msgstr "&File" -#: picard/ui/mainwindow.py:456 +#: picard/ui/mainwindow.py:503 msgid "&Edit" msgstr "&Edit" -#: picard/ui/mainwindow.py:462 +#: picard/ui/mainwindow.py:509 msgid "&View" msgstr "&View" -#: picard/ui/mainwindow.py:470 +#: picard/ui/mainwindow.py:515 msgid "&Options" msgstr "&Options" -#: picard/ui/mainwindow.py:476 +#: picard/ui/mainwindow.py:521 msgid "&Tools" msgstr "&Tools" -#: picard/ui/mainwindow.py:485 picard/ui/util.py:35 +#: picard/ui/mainwindow.py:532 picard/ui/util.py:35 msgid "&Help" msgstr "&Help" -#: picard/ui/mainwindow.py:505 +#: picard/ui/mainwindow.py:553 msgid "Actions" msgstr "" -#: picard/ui/mainwindow.py:608 +#: picard/ui/mainwindow.py:599 +msgid "Track" +msgstr "Track" + +#: picard/ui/mainwindow.py:662 msgid "All Supported Formats" msgstr "All Supported Formats" -#: picard/ui/mainwindow.py:705 +#: picard/ui/mainwindow.py:695 +#, python-format +msgid "Adding directory: '%(directory)s' ..." +msgstr "" + +#: picard/ui/mainwindow.py:702 +#, python-format +msgid "Adding multiple directories from '%(directory)s' ..." +msgstr "" + +#: picard/ui/mainwindow.py:767 msgid "Configuration Required" msgstr "Configuration Required" -#: picard/ui/mainwindow.py:706 +#: picard/ui/mainwindow.py:768 msgid "" "Audio fingerprinting is not yet configured. Would you like to configure it " "now?" msgstr "Audio fingerprinting is not yet configured. Would you like to configure it now?" -#: picard/ui/mainwindow.py:784 picard/ui/mainwindow.py:791 +#: picard/ui/mainwindow.py:848 #, python-format -msgid " (Error: %s)" -msgstr " (Error: %s)" +msgid "%(filename)s (error: %(error)s)" +msgstr "" + +#: picard/ui/mainwindow.py:854 +#, python-format +msgid "%(filename)s" +msgstr "" + +#: picard/ui/mainwindow.py:864 +#, python-format +msgid "%(filename)s (%(similarity)d%%) (error: %(error)s)" +msgstr "" + +#: picard/ui/mainwindow.py:871 +#, python-format +msgid "%(filename)s (%(similarity)d%%)" +msgstr "" #: picard/ui/metadatabox.py:82 #, python-format @@ -1100,387 +1026,387 @@ msgid_plural "Use Original Values" msgstr[0] "" msgstr[1] "Use Original Value" -#: picard/ui/passworddialog.py:37 +#: picard/ui/passworddialog.py:40 #, python-format msgid "" "The server %s requires you to login. Please enter your username and " "password." msgstr "The server %s requires you to login. Please enter your username and password." -#: picard/ui/passworddialog.py:75 +#: picard/ui/passworddialog.py:79 #, python-format msgid "" "The proxy %s requires you to login. Please enter your username and password." msgstr "The proxy %s requires you to login. Please enter your username and password." -#: picard/ui/tagsfromfilenames.py:55 picard/ui/tagsfromfilenames.py:100 +#: picard/ui/tagsfromfilenames.py:56 picard/ui/tagsfromfilenames.py:101 msgid "File Name" msgstr "File Name" -#: picard/ui/ui_cdlookup.py:66 picard/ui/ui_options_cdlookup.py:55 -#: picard/ui/ui_options_cdlookup_select.py:62 picard/ui/options/cdlookup.py:38 +#: picard/ui/ui_cdlookup.py:53 picard/ui/ui_options_cdlookup.py:42 +#: picard/ui/ui_options_cdlookup_select.py:49 picard/ui/options/cdlookup.py:38 msgid "CD Lookup" msgstr "CD Lookup" -#: picard/ui/ui_cdlookup.py:67 +#: picard/ui/ui_cdlookup.py:54 msgid "The following releases on MusicBrainz match the CD:" msgstr "The following releases on MusicBrainz match the CD:" -#: picard/ui/ui_cdlookup.py:68 +#: picard/ui/ui_cdlookup.py:55 msgid "OK" msgstr "OK" -#: picard/ui/ui_cdlookup.py:69 +#: picard/ui/ui_cdlookup.py:56 msgid "Lookup manually" msgstr "" -#: picard/ui/ui_cdlookup.py:70 +#: picard/ui/ui_cdlookup.py:57 msgid "Cancel" msgstr "Cancel" -#: picard/ui/ui_edittagdialog.py:101 +#: picard/ui/ui_edittagdialog.py:88 msgid "Edit Tag" msgstr "Edit Tag" -#: picard/ui/ui_edittagdialog.py:102 +#: picard/ui/ui_edittagdialog.py:89 msgid "Edit value" msgstr "Edit value" -#: picard/ui/ui_edittagdialog.py:103 +#: picard/ui/ui_edittagdialog.py:90 msgid "Add value" msgstr "Add value" -#: picard/ui/ui_edittagdialog.py:104 +#: picard/ui/ui_edittagdialog.py:91 msgid "Remove value" msgstr "Remove value" -#: picard/ui/ui_infodialog.py:78 +#: picard/ui/ui_infodialog.py:74 msgid "A&rtwork" msgstr "A&rtwork" -#: picard/ui/ui_infostatus.py:100 +#: picard/ui/ui_infostatus.py:96 msgid "Form" msgstr "" -#: picard/ui/ui_options.py:51 +#: picard/ui/ui_options.py:38 msgid "Options" msgstr "Options" -#: picard/ui/ui_options_advanced.py:46 +#: picard/ui/ui_options_advanced.py:42 msgid "Advanced options" msgstr "" -#: picard/ui/ui_options_advanced.py:47 +#: picard/ui/ui_options_advanced.py:43 msgid "Ignore file paths matching the following regular expression:" msgstr "" -#: picard/ui/ui_options_cdlookup.py:56 +#: picard/ui/ui_options_cdlookup.py:43 msgid "CD-ROM device to use for lookups:" msgstr "CD-ROM device to use for lookups:" -#: picard/ui/ui_options_cdlookup_select.py:63 +#: picard/ui/ui_options_cdlookup_select.py:50 msgid "Default CD-ROM drive to use for lookups:" msgstr "Default CD-ROM drive to use for lookups:" -#: picard/ui/ui_options_cover.py:145 +#: picard/ui/ui_options_cover.py:131 msgid "Location" msgstr "Location" -#: picard/ui/ui_options_cover.py:146 +#: picard/ui/ui_options_cover.py:132 msgid "Embed cover images into tags" msgstr "Embed cover images into tags" -#: picard/ui/ui_options_cover.py:147 +#: picard/ui/ui_options_cover.py:133 msgid "Only embed a front image" msgstr "" -#: picard/ui/ui_options_cover.py:148 +#: picard/ui/ui_options_cover.py:134 msgid "Save cover images as separate files" msgstr "Save cover images as separate files" -#: picard/ui/ui_options_cover.py:149 +#: picard/ui/ui_options_cover.py:135 msgid "Use the following file name for images:" msgstr "Use the following file name for images:" -#: picard/ui/ui_options_cover.py:150 +#: picard/ui/ui_options_cover.py:136 msgid "Overwrite the file if it already exists" msgstr "Overwrite the file if it already exists" -#: picard/ui/ui_options_cover.py:151 +#: picard/ui/ui_options_cover.py:137 msgid "Coverart Providers" msgstr "Coverart Providers" -#: picard/ui/ui_options_cover.py:152 +#: picard/ui/ui_options_cover.py:138 msgid "Amazon" msgstr "Amazon" -#: picard/ui/ui_options_cover.py:153 picard/ui/ui_options_cover.py:155 +#: picard/ui/ui_options_cover.py:139 picard/ui/ui_options_cover.py:141 msgid "Cover Art Archive" msgstr "Cover Art Archive" -#: picard/ui/ui_options_cover.py:154 +#: picard/ui/ui_options_cover.py:140 msgid "Sites on the whitelist" msgstr "Sites on the whitelist" -#: picard/ui/ui_options_cover.py:156 +#: picard/ui/ui_options_cover.py:142 msgid "Only use images of the following size:" msgstr "Only use images of the following size:" -#: picard/ui/ui_options_cover.py:157 +#: picard/ui/ui_options_cover.py:143 msgid "250 px" msgstr "250 px" -#: picard/ui/ui_options_cover.py:158 +#: picard/ui/ui_options_cover.py:144 msgid "500 px" msgstr "500 px" -#: picard/ui/ui_options_cover.py:159 +#: picard/ui/ui_options_cover.py:145 msgid "Full size" msgstr "Full size" -#: picard/ui/ui_options_cover.py:160 +#: picard/ui/ui_options_cover.py:146 msgid "Download only images of the following types:" msgstr "Download only images of the following types:" -#: picard/ui/ui_options_cover.py:161 +#: picard/ui/ui_options_cover.py:147 msgid "Download only approved images" msgstr "Download only approved images" -#: picard/ui/ui_options_cover.py:162 +#: picard/ui/ui_options_cover.py:148 msgid "" "Use the first image type as the filename. This will not change the filename " "of front images." msgstr "Use the first image type as the filename. This will not change the filename of front images." -#: picard/ui/ui_options_fingerprinting.py:83 +#: picard/ui/ui_options_fingerprinting.py:70 msgid "Audio Fingerprinting" msgstr "Audio Fingerprinting" -#: picard/ui/ui_options_fingerprinting.py:84 +#: picard/ui/ui_options_fingerprinting.py:71 msgid "Do not use audio fingerprinting" msgstr "Do not use audio fingerprinting" -#: picard/ui/ui_options_fingerprinting.py:85 +#: picard/ui/ui_options_fingerprinting.py:72 msgid "Use AcoustID" msgstr "Use AcoustID" -#: picard/ui/ui_options_fingerprinting.py:86 +#: picard/ui/ui_options_fingerprinting.py:73 msgid "AcoustID Settings" msgstr "AcoustID Settings" -#: picard/ui/ui_options_fingerprinting.py:87 +#: picard/ui/ui_options_fingerprinting.py:74 msgid "Fingerprint calculator:" msgstr "Fingerprint calculator:" -#: picard/ui/ui_options_fingerprinting.py:88 -#: picard/ui/ui_options_interface.py:88 picard/ui/ui_options_renaming.py:138 +#: picard/ui/ui_options_fingerprinting.py:75 +#: picard/ui/ui_options_interface.py:75 picard/ui/ui_options_renaming.py:134 msgid "Browse..." msgstr "Browse..." -#: picard/ui/ui_options_fingerprinting.py:89 +#: picard/ui/ui_options_fingerprinting.py:76 msgid "Download..." msgstr "Download..." -#: picard/ui/ui_options_fingerprinting.py:90 +#: picard/ui/ui_options_fingerprinting.py:77 msgid "API key:" msgstr "API key:" -#: picard/ui/ui_options_fingerprinting.py:91 +#: picard/ui/ui_options_fingerprinting.py:78 msgid "Get API key..." msgstr "Get API key..." -#: picard/ui/ui_options_folksonomy.py:115 picard/ui/options/folksonomy.py:28 +#: picard/ui/ui_options_folksonomy.py:102 picard/ui/options/folksonomy.py:28 msgid "Folksonomy Tags" msgstr "Folksonomy Tags" -#: picard/ui/ui_options_folksonomy.py:117 +#: picard/ui/ui_options_folksonomy.py:104 msgid "Only use my tags" msgstr "Only use my tags" -#: picard/ui/ui_options_folksonomy.py:120 +#: picard/ui/ui_options_folksonomy.py:107 msgid "Maximum number of tags:" msgstr "Maximum number of tags:" -#: picard/ui/ui_options_general.py:92 +#: picard/ui/ui_options_general.py:88 msgid "MusicBrainz Server" msgstr "MusicBrainz Server" -#: picard/ui/ui_options_general.py:93 picard/ui/ui_options_network.py:123 +#: picard/ui/ui_options_general.py:89 picard/ui/ui_options_network.py:110 msgid "Port:" msgstr "Port:" -#: picard/ui/ui_options_general.py:94 picard/ui/ui_options_network.py:124 +#: picard/ui/ui_options_general.py:90 picard/ui/ui_options_network.py:111 msgid "Server address:" msgstr "Server address:" -#: picard/ui/ui_options_general.py:95 +#: picard/ui/ui_options_general.py:91 msgid "Account Information" msgstr "Account Information" -#: picard/ui/ui_options_general.py:96 picard/ui/ui_options_network.py:121 -#: picard/ui/ui_passworddialog.py:74 +#: picard/ui/ui_options_general.py:92 picard/ui/ui_options_network.py:108 +#: picard/ui/ui_passworddialog.py:70 msgid "Password:" msgstr "Password:" -#: picard/ui/ui_options_general.py:97 picard/ui/ui_options_network.py:122 -#: picard/ui/ui_passworddialog.py:73 +#: picard/ui/ui_options_general.py:93 picard/ui/ui_options_network.py:109 +#: picard/ui/ui_passworddialog.py:69 msgid "Username:" msgstr "Username:" -#: picard/ui/ui_options_general.py:98 picard/ui/options/general.py:31 +#: picard/ui/ui_options_general.py:94 picard/ui/options/general.py:31 msgid "General" msgstr "General" -#: picard/ui/ui_options_general.py:99 +#: picard/ui/ui_options_general.py:95 msgid "Automatically scan all new files" msgstr "Automatically scan all new files" -#: picard/ui/ui_options_general.py:100 +#: picard/ui/ui_options_general.py:96 msgid "Ignore MBIDs when loading new files" msgstr "Ignore MBIDs when loading new files" -#: picard/ui/ui_options_interface.py:82 +#: picard/ui/ui_options_interface.py:69 msgid "Miscellaneous" msgstr "Miscellaneous" -#: picard/ui/ui_options_interface.py:83 +#: picard/ui/ui_options_interface.py:70 msgid "Show text labels under icons" msgstr "Show text labels under icons" -#: picard/ui/ui_options_interface.py:84 +#: picard/ui/ui_options_interface.py:71 msgid "Allow selection of multiple directories" msgstr "Allow selection of multiple directories" -#: picard/ui/ui_options_interface.py:85 +#: picard/ui/ui_options_interface.py:72 msgid "Use advanced query syntax" msgstr "Use advanced query syntax" -#: picard/ui/ui_options_interface.py:86 +#: picard/ui/ui_options_interface.py:73 msgid "Show a quit confirmation dialog for unsaved changes" msgstr "Show a quit confirmation dialogue for unsaved changes" -#: picard/ui/ui_options_interface.py:87 +#: picard/ui/ui_options_interface.py:74 msgid "Begin browsing in the following directory:" msgstr "" -#: picard/ui/ui_options_interface.py:89 +#: picard/ui/ui_options_interface.py:76 msgid "User interface language:" msgstr "User interface language:" -#: picard/ui/ui_options_matching.py:86 +#: picard/ui/ui_options_matching.py:73 msgid "Thresholds" msgstr "Thresholds" -#: picard/ui/ui_options_matching.py:87 +#: picard/ui/ui_options_matching.py:74 msgid "Minimal similarity for matching files to tracks:" msgstr "Minimal similarity for matching files to tracks:" -#: picard/ui/ui_options_matching.py:91 +#: picard/ui/ui_options_matching.py:78 msgid "Minimal similarity for file lookups:" msgstr "Minimal similarity for file lookups:" -#: picard/ui/ui_options_matching.py:92 +#: picard/ui/ui_options_matching.py:79 msgid "Minimal similarity for cluster lookups:" msgstr "Minimal similarity for cluster lookups:" -#: picard/ui/ui_options_metadata.py:114 picard/ui/options/metadata.py:29 +#: picard/ui/ui_options_metadata.py:101 picard/ui/options/metadata.py:29 msgid "Metadata" msgstr "Metadata" -#: picard/ui/ui_options_metadata.py:115 +#: picard/ui/ui_options_metadata.py:102 msgid "Translate artist names to this locale where possible:" msgstr "Translate artist names to this locale where possible:" -#: picard/ui/ui_options_metadata.py:116 +#: picard/ui/ui_options_metadata.py:103 msgid "Use standardized artist names" msgstr "Use standardised artist names" -#: picard/ui/ui_options_metadata.py:117 +#: picard/ui/ui_options_metadata.py:104 msgid "Convert Unicode punctuation characters to ASCII" msgstr "Convert Unicode punctuation characters to ASCII" -#: picard/ui/ui_options_metadata.py:118 +#: picard/ui/ui_options_metadata.py:105 msgid "Use release relationships" msgstr "Use release relationships" -#: picard/ui/ui_options_metadata.py:119 +#: picard/ui/ui_options_metadata.py:106 msgid "Use track relationships" msgstr "Use track relationships" -#: picard/ui/ui_options_metadata.py:120 +#: picard/ui/ui_options_metadata.py:107 msgid "Use folksonomy tags as genre" msgstr "Use folksonomy tags as genre" -#: picard/ui/ui_options_metadata.py:121 +#: picard/ui/ui_options_metadata.py:108 msgid "Custom Fields" msgstr "Custom Fields" -#: picard/ui/ui_options_metadata.py:122 +#: picard/ui/ui_options_metadata.py:109 msgid "Various artists:" msgstr "Various artists:" -#: picard/ui/ui_options_metadata.py:123 +#: picard/ui/ui_options_metadata.py:110 msgid "Non-album tracks:" msgstr "Non-album tracks:" -#: picard/ui/ui_options_metadata.py:124 picard/ui/ui_options_metadata.py:125 -#: picard/ui/ui_options_renaming.py:147 +#: picard/ui/ui_options_metadata.py:111 picard/ui/ui_options_metadata.py:112 +#: picard/ui/ui_options_renaming.py:143 msgid "Default" msgstr "Default" -#: picard/ui/ui_options_network.py:120 +#: picard/ui/ui_options_network.py:107 msgid "Web Proxy" msgstr "Web Proxy" -#: picard/ui/ui_options_network.py:125 +#: picard/ui/ui_options_network.py:112 msgid "Browser Integration" msgstr "" -#: picard/ui/ui_options_network.py:126 +#: picard/ui/ui_options_network.py:113 msgid "Default listening port:" msgstr "" -#: picard/ui/ui_options_network.py:127 +#: picard/ui/ui_options_network.py:114 msgid "Listen only on localhost" msgstr "" -#: picard/ui/ui_options_plugins.py:131 picard/ui/options/plugins.py:38 +#: picard/ui/ui_options_plugins.py:127 picard/ui/options/plugins.py:38 msgid "Plugins" msgstr "Plugins" -#: picard/ui/ui_options_plugins.py:132 picard/ui/options/plugins.py:122 +#: picard/ui/ui_options_plugins.py:128 picard/ui/options/plugins.py:122 msgid "Name" msgstr "Name" -#: picard/ui/ui_options_plugins.py:133 picard/util/tags.py:39 +#: picard/ui/ui_options_plugins.py:129 msgid "Version" msgstr "Version" -#: picard/ui/ui_options_plugins.py:134 picard/ui/options/plugins.py:125 +#: picard/ui/ui_options_plugins.py:130 picard/ui/options/plugins.py:125 msgid "Author" msgstr "Author" -#: picard/ui/ui_options_plugins.py:135 +#: picard/ui/ui_options_plugins.py:131 msgid "Install plugin..." msgstr "Install plugin..." -#: picard/ui/ui_options_plugins.py:136 +#: picard/ui/ui_options_plugins.py:132 msgid "Open plugin folder" msgstr "Open plugin folder" -#: picard/ui/ui_options_plugins.py:137 +#: picard/ui/ui_options_plugins.py:133 msgid "Download plugins" msgstr "Download plugins" -#: picard/ui/ui_options_plugins.py:138 +#: picard/ui/ui_options_plugins.py:134 msgid "Details" msgstr "Details" -#: picard/ui/ui_options_ratings.py:53 +#: picard/ui/ui_options_ratings.py:49 msgid "Enable track ratings" msgstr "Enable track ratings" -#: picard/ui/ui_options_ratings.py:54 +#: picard/ui/ui_options_ratings.py:50 msgid "" "Picard saves the ratings together with an e-mail address identifying the " "user who did the rating. That way different ratings for different users can " @@ -1488,207 +1414,167 @@ msgid "" "your ratings." msgstr "Picard saves the ratings together with an e-mail address identifying the user who did the rating. That way different ratings for different users can be stored in the files. Please specify the e-mail you want to use to save your ratings." -#: picard/ui/ui_options_ratings.py:55 +#: picard/ui/ui_options_ratings.py:51 msgid "E-mail:" msgstr "E-mail:" -#: picard/ui/ui_options_ratings.py:56 +#: picard/ui/ui_options_ratings.py:52 msgid "Submit ratings to MusicBrainz" msgstr "Submit ratings to MusicBrainz" -#: picard/ui/ui_options_releases.py:215 +#: picard/ui/ui_options_releases.py:104 msgid "Preferred release types" msgstr "Preferred release types" -#: picard/ui/ui_options_releases.py:217 -msgid "Single" -msgstr "Single" - -#: picard/ui/ui_options_releases.py:218 -msgid "EP" -msgstr "EP" - -#: picard/ui/ui_options_releases.py:219 -msgid "Compilation" -msgstr "Compilation" - -#: picard/ui/ui_options_releases.py:220 -msgid "Soundtrack" -msgstr "Soundtrack" - -#: picard/ui/ui_options_releases.py:221 -msgid "Spokenword" -msgstr "Spokenword" - -#: picard/ui/ui_options_releases.py:222 -msgid "Interview" -msgstr "Interview" - -#: picard/ui/ui_options_releases.py:223 -msgid "Audiobook" -msgstr "Audiobook" - -#: picard/ui/ui_options_releases.py:224 -msgid "Live" -msgstr "Live" - -#: picard/ui/ui_options_releases.py:225 -msgid "Remix" -msgstr "Remix" - -#: picard/ui/ui_options_releases.py:227 -msgid "Reset all" -msgstr "Reset all" - -#: picard/ui/ui_options_releases.py:228 +#: picard/ui/ui_options_releases.py:105 msgid "Preferred release countries" msgstr "Preferred release countries" -#: picard/ui/ui_options_releases.py:229 picard/ui/ui_options_releases.py:232 +#: picard/ui/ui_options_releases.py:106 picard/ui/ui_options_releases.py:109 msgid ">" msgstr ">" -#: picard/ui/ui_options_releases.py:230 picard/ui/ui_options_releases.py:233 +#: picard/ui/ui_options_releases.py:107 picard/ui/ui_options_releases.py:110 msgid "<" msgstr "<" -#: picard/ui/ui_options_releases.py:231 +#: picard/ui/ui_options_releases.py:108 msgid "Preferred release formats" msgstr "Preferred release formats" -#: picard/ui/ui_options_renaming.py:134 +#: picard/ui/ui_options_renaming.py:130 msgid "Rename files when saving" msgstr "Rename files when saving" -#: picard/ui/ui_options_renaming.py:135 +#: picard/ui/ui_options_renaming.py:131 msgid "Replace non-ASCII characters" msgstr "Replace non-ASCII characters" -#: picard/ui/ui_options_renaming.py:136 +#: picard/ui/ui_options_renaming.py:132 msgid "Windows compatibility" msgstr "" -#: picard/ui/ui_options_renaming.py:137 +#: picard/ui/ui_options_renaming.py:133 msgid "Move files to this directory when saving:" msgstr "Move files to this directory when saving:" -#: picard/ui/ui_options_renaming.py:139 +#: picard/ui/ui_options_renaming.py:135 msgid "Delete empty directories" msgstr "Delete empty directories" -#: picard/ui/ui_options_renaming.py:140 +#: picard/ui/ui_options_renaming.py:136 msgid "Move additional files:" msgstr "Move additional files:" -#: picard/ui/ui_options_renaming.py:141 +#: picard/ui/ui_options_renaming.py:137 msgid "Name files like this" msgstr "Name files like this" -#: picard/ui/ui_options_renaming.py:148 +#: picard/ui/ui_options_renaming.py:144 msgid "Examples" msgstr "Examples" -#: picard/ui/ui_options_script.py:49 +#: picard/ui/ui_options_script.py:45 msgid "Tagger Script" msgstr "Tagger Script" -#: picard/ui/ui_options_tags.py:165 +#: picard/ui/ui_options_tags.py:152 msgid "Write tags to files" msgstr "Write tags to files" -#: picard/ui/ui_options_tags.py:166 +#: picard/ui/ui_options_tags.py:153 msgid "Preserve timestamps of tagged files" msgstr "Preserve timestamps of tagged files" -#: picard/ui/ui_options_tags.py:167 +#: picard/ui/ui_options_tags.py:154 msgid "Before Tagging" msgstr "" -#: picard/ui/ui_options_tags.py:168 +#: picard/ui/ui_options_tags.py:155 msgid "Clear existing tags" msgstr "Clear existing tags" -#: picard/ui/ui_options_tags.py:169 +#: picard/ui/ui_options_tags.py:156 msgid "Remove ID3 tags from FLAC files" msgstr "Remove ID3 tags from FLAC files" -#: picard/ui/ui_options_tags.py:170 +#: picard/ui/ui_options_tags.py:157 msgid "Remove APEv2 tags from MP3 files" msgstr "Remove APEv2 tags from MP3 files" -#: picard/ui/ui_options_tags.py:171 +#: picard/ui/ui_options_tags.py:158 msgid "" "Preserve these tags from being cleared or overwritten with MusicBrainz data:" msgstr "Preserve these tags from being cleared or overwritten with MusicBrainz data:" -#: picard/ui/ui_options_tags.py:172 +#: picard/ui/ui_options_tags.py:159 msgid "Tags are separated by commas, and are case-sensitive." msgstr "" -#: picard/ui/ui_options_tags.py:173 +#: picard/ui/ui_options_tags.py:160 msgid "Tag Compatibility" msgstr "" -#: picard/ui/ui_options_tags.py:174 +#: picard/ui/ui_options_tags.py:161 msgid "ID3v2 Version" msgstr "" -#: picard/ui/ui_options_tags.py:175 +#: picard/ui/ui_options_tags.py:162 msgid "2.4" msgstr "2.4" -#: picard/ui/ui_options_tags.py:176 +#: picard/ui/ui_options_tags.py:163 msgid "2.3" msgstr "2.3" -#: picard/ui/ui_options_tags.py:177 +#: picard/ui/ui_options_tags.py:164 msgid "ID3v2 Text Encoding" msgstr "" -#: picard/ui/ui_options_tags.py:178 +#: picard/ui/ui_options_tags.py:165 msgid "UTF-8" msgstr "UTF-8" -#: picard/ui/ui_options_tags.py:179 +#: picard/ui/ui_options_tags.py:166 msgid "UTF-16" msgstr "UTF-16" -#: picard/ui/ui_options_tags.py:180 +#: picard/ui/ui_options_tags.py:167 msgid "ISO-8859-1" msgstr "ISO-8859-1" -#: picard/ui/ui_options_tags.py:181 +#: picard/ui/ui_options_tags.py:168 msgid "Join multiple ID3v2.3 tags with:" msgstr "" -#: picard/ui/ui_options_tags.py:182 +#: picard/ui/ui_options_tags.py:169 msgid "" "

Default is '/' to maintain compatibility with previous" " Picard releases.

New alternatives are ';_' or '_/_' or type your own." "

" msgstr "" -#: picard/ui/ui_options_tags.py:183 +#: picard/ui/ui_options_tags.py:170 msgid "Also include ID3v1 tags in the files" msgstr "Also include ID3v1 tags in the files" -#: picard/ui/ui_passworddialog.py:72 +#: picard/ui/ui_passworddialog.py:68 msgid "Authentication required" msgstr "Authentication required" -#: picard/ui/ui_passworddialog.py:75 +#: picard/ui/ui_passworddialog.py:71 msgid "Save username and password" msgstr "Save username and password" -#: picard/ui/ui_tagsfromfilenames.py:54 +#: picard/ui/ui_tagsfromfilenames.py:50 msgid "Convert File Names to Tags" msgstr "Convert File Names to Tags" -#: picard/ui/ui_tagsfromfilenames.py:55 +#: picard/ui/ui_tagsfromfilenames.py:51 msgid "Replace underscores with spaces" msgstr "Replace underscores with spaces" -#: picard/ui/ui_tagsfromfilenames.py:56 +#: picard/ui/ui_tagsfromfilenames.py:52 msgid "&Preview" msgstr "&Preview" @@ -1744,7 +1630,11 @@ msgstr "Advanced" msgid "Regex Error" msgstr "" -#: picard/ui/options/cover.py:63 +#: picard/ui/options/cover.py:44 +msgid "title" +msgstr "" + +#: picard/ui/options/cover.py:68 msgid "Cover Art" msgstr "Cover Art" @@ -1760,11 +1650,11 @@ msgstr "User Interface" msgid "System default" msgstr "System default" -#: picard/ui/options/interface.py:96 +#: picard/ui/options/interface.py:98 msgid "Language changed" msgstr "Language changed" -#: picard/ui/options/interface.py:96 +#: picard/ui/options/interface.py:99 msgid "" "You have changed the interface language. You have to restart Picard in order" " for the change to take effect." @@ -1786,31 +1676,35 @@ msgstr "File" msgid "Ratings" msgstr "Ratings" -#: picard/ui/options/releases.py:33 +#: picard/ui/options/releases.py:87 msgid "Preferred Releases" msgstr "Preferred Releases" +#: picard/ui/options/releases.py:121 +msgid "Reset all" +msgstr "Reset all" + #: picard/ui/options/renaming.py:37 msgid "File Naming" msgstr "" -#: picard/ui/options/renaming.py:184 +#: picard/ui/options/renaming.py:187 msgid "Error" msgstr "Error" -#: picard/ui/options/renaming.py:184 +#: picard/ui/options/renaming.py:187 msgid "The location to move files to must not be empty." msgstr "The location to move files to must not be empty." -#: picard/ui/options/renaming.py:194 +#: picard/ui/options/renaming.py:197 msgid "The file naming format must not be empty." msgstr "The file naming format must not be empty." -#: picard/ui/options/scripting.py:63 +#: picard/ui/options/scripting.py:99 msgid "Scripting" msgstr "Scripting" -#: picard/ui/options/scripting.py:95 +#: picard/ui/options/scripting.py:131 msgid "Script Error" msgstr "Script Error" @@ -1930,199 +1824,199 @@ msgstr "ASIN" msgid "Grouping" msgstr "Grouping" -#: picard/util/tags.py:40 +#: picard/util/tags.py:39 msgid "ISRC" msgstr "ISRC" -#: picard/util/tags.py:41 +#: picard/util/tags.py:40 msgid "Mood" msgstr "Mood" -#: picard/util/tags.py:42 +#: picard/util/tags.py:41 msgid "BPM" msgstr "BPM" -#: picard/util/tags.py:43 +#: picard/util/tags.py:42 msgid "Copyright" msgstr "Copyright" -#: picard/util/tags.py:44 +#: picard/util/tags.py:43 msgid "License" msgstr "Licence" -#: picard/util/tags.py:45 +#: picard/util/tags.py:44 msgid "Composer" msgstr "Composer" -#: picard/util/tags.py:46 +#: picard/util/tags.py:45 msgid "Writer" msgstr "Writer" -#: picard/util/tags.py:47 +#: picard/util/tags.py:46 msgid "Conductor" msgstr "Conductor" -#: picard/util/tags.py:48 +#: picard/util/tags.py:47 msgid "Lyricist" msgstr "Lyricist" -#: picard/util/tags.py:49 +#: picard/util/tags.py:48 msgid "Arranger" msgstr "Arranger" -#: picard/util/tags.py:50 +#: picard/util/tags.py:49 msgid "Producer" msgstr "Producer" -#: picard/util/tags.py:51 +#: picard/util/tags.py:50 msgid "Engineer" msgstr "Engineer" -#: picard/util/tags.py:52 +#: picard/util/tags.py:51 msgid "Subtitle" msgstr "Subtitle" -#: picard/util/tags.py:53 +#: picard/util/tags.py:52 msgid "Disc Subtitle" msgstr "Disc Subtitle" -#: picard/util/tags.py:54 +#: picard/util/tags.py:53 msgid "Remixer" msgstr "Remixer" -#: picard/util/tags.py:55 +#: picard/util/tags.py:54 msgid "MusicBrainz Recording Id" msgstr "MusicBrainz Recording Id" -#: picard/util/tags.py:56 +#: picard/util/tags.py:55 msgid "MusicBrainz Track Id" msgstr "" -#: picard/util/tags.py:57 +#: picard/util/tags.py:56 msgid "MusicBrainz Release Id" msgstr "MusicBrainz Release Id" -#: picard/util/tags.py:58 +#: picard/util/tags.py:57 msgid "MusicBrainz Artist Id" msgstr "MusicBrainz Artist Id" -#: picard/util/tags.py:59 +#: picard/util/tags.py:58 msgid "MusicBrainz Release Artist Id" msgstr "MusicBrainz Release Artist Id" -#: picard/util/tags.py:60 +#: picard/util/tags.py:59 msgid "MusicBrainz Work Id" msgstr "MusicBrainz Work Id" -#: picard/util/tags.py:61 +#: picard/util/tags.py:60 msgid "MusicBrainz Release Group Id" msgstr "MusicBrainz Release Group Id" -#: picard/util/tags.py:62 +#: picard/util/tags.py:61 msgid "MusicBrainz Disc Id" msgstr "MusicBrainz Disc Id" -#: picard/util/tags.py:63 -msgid "MusicBrainz Sort Name" -msgstr "MusicBrainz Sort Name" - -#: picard/util/tags.py:64 +#: picard/util/tags.py:62 msgid "MusicIP PUID" msgstr "MusicIP PUID" -#: picard/util/tags.py:65 +#: picard/util/tags.py:63 msgid "MusicIP Fingerprint" msgstr "MusicIP Fingerprint" -#: picard/util/tags.py:66 +#: picard/util/tags.py:64 msgid "AcoustID" msgstr "AcoustID" -#: picard/util/tags.py:67 +#: picard/util/tags.py:65 msgid "AcoustID Fingerprint" msgstr "AcoustID Fingerprint" -#: picard/util/tags.py:68 +#: picard/util/tags.py:66 msgid "Disc Id" msgstr "Disc Id" -#: picard/util/tags.py:69 -msgid "Website" -msgstr "Website" +#: picard/util/tags.py:67 +msgid "Artist Website" +msgstr "" -#: picard/util/tags.py:70 +#: picard/util/tags.py:68 msgid "Compilation (iTunes)" msgstr "" -#: picard/util/tags.py:71 +#: picard/util/tags.py:69 msgid "Comment" msgstr "Comment" -#: picard/util/tags.py:72 +#: picard/util/tags.py:70 msgid "Genre" msgstr "Genre" -#: picard/util/tags.py:73 +#: picard/util/tags.py:71 msgid "Encoded By" msgstr "Encoded By" -#: picard/util/tags.py:74 +#: picard/util/tags.py:72 +msgid "Encoder Settings" +msgstr "" + +#: picard/util/tags.py:73 msgid "Performer" msgstr "Performer" -#: picard/util/tags.py:75 +#: picard/util/tags.py:74 msgid "Release Type" msgstr "Release Type" -#: picard/util/tags.py:76 +#: picard/util/tags.py:75 msgid "Release Status" msgstr "Release Status" -#: picard/util/tags.py:77 +#: picard/util/tags.py:76 msgid "Release Country" msgstr "Release Country" -#: picard/util/tags.py:78 +#: picard/util/tags.py:77 msgid "Record Label" msgstr "Record Label" -#: picard/util/tags.py:80 +#: picard/util/tags.py:79 msgid "Catalog Number" msgstr "Catalogue Number" -#: picard/util/tags.py:82 +#: picard/util/tags.py:80 msgid "DJ-Mixer" msgstr "DJ-Mixer" -#: picard/util/tags.py:83 +#: picard/util/tags.py:81 msgid "Media" msgstr "Media" -#: picard/util/tags.py:84 +#: picard/util/tags.py:82 msgid "Lyrics" msgstr "Lyrics" -#: picard/util/tags.py:85 +#: picard/util/tags.py:83 msgid "Mixer" msgstr "Mixer" -#: picard/util/tags.py:86 +#: picard/util/tags.py:84 msgid "Language" msgstr "Language" -#: picard/util/tags.py:87 +#: picard/util/tags.py:85 msgid "Script" msgstr "Script" -#: picard/util/tags.py:89 +#: picard/util/tags.py:87 msgid "Rating" msgstr "Rating" -#: picard/util/tags.py:90 +#: picard/util/tags.py:88 msgid "Artists" msgstr "" -#: picard/util/tags.py:91 +#: picard/util/tags.py:89 msgid "Work" msgstr "" diff --git a/po/eo.po b/po/eo.po index 5823f200f..147b1da0d 100644 --- a/po/eo.po +++ b/po/eo.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: MusicBrainz\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2014-03-20 11:12+0100\n" -"PO-Revision-Date: 2014-03-21 08:44+0000\n" +"POT-Creation-Date: 2014-05-03 17:28+0200\n" +"PO-Revision-Date: 2014-05-04 08:44+0000\n" "Last-Translator: nikki\n" "Language-Team: Esperanto (http://www.transifex.com/projects/p/musicbrainz/language/eo/)\n" "MIME-Version: 1.0\n" @@ -19,6 +19,10 @@ msgstr "" "Language: eo\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" +#: contrib/plugins/albumartist_website.py:3 +msgid "Album Artist Website" +msgstr "" + #: contrib/plugins/no_release.py:50 msgid "Enable plugin for all releases by default" msgstr "" @@ -31,63 +35,55 @@ msgstr "" msgid "Remove specific release information..." msgstr "" -#: contrib/plugins/open_in_gui.py:32 -msgid "Open Error" +#: contrib/plugins/standardise_performers.py:3 +msgid "Standardise Performers" msgstr "" -#: contrib/plugins/open_in_gui.py:32 -#, python-format -msgid "" -"Error while opening file:\n" -"\n" -"%s" -msgstr "" - -#: contrib/plugins/lastfm/ui_options_lastfm.py:117 +#: contrib/plugins/lastfm/ui_options_lastfm.py:99 msgid "Last.fm" msgstr "" -#: contrib/plugins/lastfm/ui_options_lastfm.py:118 +#: contrib/plugins/lastfm/ui_options_lastfm.py:100 msgid "Use track tags" msgstr "" -#: contrib/plugins/lastfm/ui_options_lastfm.py:119 +#: contrib/plugins/lastfm/ui_options_lastfm.py:101 msgid "Use artist tags" msgstr "" -#: contrib/plugins/lastfm/ui_options_lastfm.py:120 +#: contrib/plugins/lastfm/ui_options_lastfm.py:102 #: picard/ui/options/tags.py:30 msgid "Tags" msgstr "" -#: contrib/plugins/lastfm/ui_options_lastfm.py:121 -#: picard/ui/ui_options_folksonomy.py:116 +#: contrib/plugins/lastfm/ui_options_lastfm.py:103 +#: picard/ui/ui_options_folksonomy.py:103 msgid "Ignore tags:" msgstr "" -#: contrib/plugins/lastfm/ui_options_lastfm.py:122 -#: picard/ui/ui_options_folksonomy.py:121 +#: contrib/plugins/lastfm/ui_options_lastfm.py:104 +#: picard/ui/ui_options_folksonomy.py:108 msgid "Join multiple tags with:" msgstr "" -#: contrib/plugins/lastfm/ui_options_lastfm.py:123 -#: picard/ui/ui_options_folksonomy.py:122 +#: contrib/plugins/lastfm/ui_options_lastfm.py:105 +#: picard/ui/ui_options_folksonomy.py:109 msgid " / " msgstr "" -#: contrib/plugins/lastfm/ui_options_lastfm.py:124 -#: picard/ui/ui_options_folksonomy.py:123 +#: contrib/plugins/lastfm/ui_options_lastfm.py:106 +#: picard/ui/ui_options_folksonomy.py:110 msgid ", " msgstr "" -#: contrib/plugins/lastfm/ui_options_lastfm.py:125 -#: picard/ui/ui_options_folksonomy.py:118 +#: contrib/plugins/lastfm/ui_options_lastfm.py:107 +#: picard/ui/ui_options_folksonomy.py:105 msgid "Minimal tag usage:" msgstr "" -#: contrib/plugins/lastfm/ui_options_lastfm.py:126 -#: picard/ui/ui_options_folksonomy.py:119 picard/ui/ui_options_matching.py:88 -#: picard/ui/ui_options_matching.py:89 picard/ui/ui_options_matching.py:90 +#: contrib/plugins/lastfm/ui_options_lastfm.py:108 +#: picard/ui/ui_options_folksonomy.py:106 picard/ui/ui_options_matching.py:75 +#: picard/ui/ui_options_matching.py:76 picard/ui/ui_options_matching.py:77 msgid " %" msgstr "" @@ -95,419 +91,306 @@ msgstr "" msgid "Calculate replay &gain..." msgstr "" -#: contrib/plugins/replaygain/__init__.py:66 +#: contrib/plugins/replaygain/__init__.py:67 #, python-format -msgid "Calculating replay gain for \"%s\"..." +msgid "Calculating replay gain for \"%(filename)s\"..." msgstr "" -#: contrib/plugins/replaygain/__init__.py:71 +#: contrib/plugins/replaygain/__init__.py:75 #, python-format -msgid "Replay gain for \"%s\" successfully calculated." +msgid "Replay gain for \"%(filename)s\" successfully calculated." msgstr "" -#: contrib/plugins/replaygain/__init__.py:73 +#: contrib/plugins/replaygain/__init__.py:80 #, python-format -msgid "Could not calculate replay gain for \"%s\"." +msgid "Could not calculate replay gain for \"%(filename)s\"." msgstr "" -#: contrib/plugins/replaygain/__init__.py:76 +#: contrib/plugins/replaygain/__init__.py:85 msgid "Calculate album &gain..." msgstr "" -#: contrib/plugins/replaygain/__init__.py:103 -#: contrib/plugins/replaygain/__init__.py:111 +#: contrib/plugins/replaygain/__init__.py:113 +#: contrib/plugins/replaygain/__init__.py:124 #, python-format -msgid "Calculating album gain for \"%s\"..." +msgid "Calculating album gain for \"%(album)s\"..." msgstr "" -#: contrib/plugins/replaygain/__init__.py:119 +#: contrib/plugins/replaygain/__init__.py:135 #, python-format -msgid "Album gain for \"%s\" successfully calculated." +msgid "Album gain for \"%(album)s\" successfully calculated." msgstr "" -#: contrib/plugins/replaygain/__init__.py:121 +#: contrib/plugins/replaygain/__init__.py:140 #, python-format -msgid "Could not calculate album gain for \"%s\"." +msgid "Could not calculate album gain for \"%(album)s\"." msgstr "" -#: picard/acoustid.py:102 +#: contrib/plugins/replaygain/ui_options_replaygain.py:59 +msgid "Replay Gain" +msgstr "" + +#: contrib/plugins/replaygain/ui_options_replaygain.py:60 +msgid "Path to VorbisGain:" +msgstr "" + +#: contrib/plugins/replaygain/ui_options_replaygain.py:61 +msgid "Path to MP3Gain:" +msgstr "" + +#: contrib/plugins/replaygain/ui_options_replaygain.py:62 +msgid "Path to metaflac:" +msgstr "" + +#: contrib/plugins/replaygain/ui_options_replaygain.py:63 +msgid "Path to wvgain:" +msgstr "" + +#: contrib/plugins/viewvariables/__init__.py:42 #, python-format -msgid "AcoustID lookup network error for '%s'!" +msgid "File: %s" msgstr "" -#: picard/acoustid.py:117 +#: contrib/plugins/viewvariables/__init__.py:47 #, python-format -msgid "AcoustID lookup failed for '%s'!" +msgid "Track: %s %s " msgstr "" -#: picard/acoustid.py:128 +#: contrib/plugins/viewvariables/__init__.py:49 +msgid "Variables" +msgstr "" + +#: contrib/plugins/viewvariables/__init__.py:69 +msgid "File variables" +msgstr "" + +#: contrib/plugins/viewvariables/__init__.py:74 +msgid "Hidden variables" +msgstr "" + +#: contrib/plugins/viewvariables/__init__.py:79 +msgid "Tag variables" +msgstr "" + +#: contrib/plugins/viewvariables/ui_variables_dialog.py:73 +msgid "Variable" +msgstr "" + +#: contrib/plugins/viewvariables/ui_variables_dialog.py:75 +msgid "Value" +msgstr "" + +#: picard/acoustid.py:109 #, python-format -msgid "Acoustid lookup returned no result for file '%s'" +msgid "AcoustID lookup network error for '%(filename)s'!" msgstr "" -#: picard/acoustid.py:132 +#: picard/acoustid.py:133 #, python-format -msgid "Looking up the fingerprint for file %s..." +msgid "AcoustID lookup failed for '%(filename)s'!" msgstr "" -#: picard/acoustidmanager.py:78 -msgid "Submitting AcoustIDs..." -msgstr "" - -#: picard/acoustidmanager.py:83 +#: picard/acoustid.py:155 #, python-format -msgid "AcoustID submission failed with error '%s'" +msgid "AcoustID lookup returned no result for file '%(filename)s'" msgstr "" -#: picard/acoustidmanager.py:85 +#: picard/acoustid.py:166 +#, python-format +msgid "Looking up the fingerprint for file '%(filename)s' ..." +msgstr "" + +#: picard/acoustidmanager.py:80 +msgid "Submitting AcoustIDs ..." +msgstr "" + +#: picard/acoustidmanager.py:94 +#, python-format +msgid "AcoustID submission failed with error '%(error)s'" +msgstr "" + +#: picard/acoustidmanager.py:102 msgid "AcoustIDs successfully submitted." msgstr "" -#: picard/album.py:64 picard/cluster.py:234 +#: picard/album.py:65 picard/cluster.py:255 msgid "Unmatched Files" msgstr "" -#: picard/album.py:187 +#: picard/album.py:188 #, python-format msgid "[could not load album %s]" msgstr "" -#: picard/album.py:272 +#: picard/album.py:277 #, python-format -msgid "Album %s loaded" +msgid "Album %(id)s loaded: %(artist)s - %(album)s" msgstr "" -#: picard/album.py:288 +#: picard/album.py:294 +#, python-format +msgid "Loading album %(id)s ..." +msgstr "" + +#: picard/album.py:303 msgid "[loading album information]" msgstr "" -#: picard/album.py:463 +#: picard/album.py:478 #, python-format msgid "; %i image" msgid_plural "; %i images" msgstr[0] "" msgstr[1] "" -#: picard/cluster.py:150 picard/cluster.py:159 +#: picard/cluster.py:155 picard/cluster.py:168 #, python-format -msgid "No matching releases for cluster %s" +msgid "No matching releases for cluster %(album)s" msgstr "" -#: picard/cluster.py:161 +#: picard/cluster.py:174 #, python-format -msgid "Cluster %s identified!" +msgid "Cluster %(album)s identified!" msgstr "" -#: picard/cluster.py:168 +#: picard/cluster.py:185 #, python-format -msgid "Looking up the metadata for cluster %s..." +msgid "Looking up the metadata for cluster %(album)s..." msgstr "" -#: picard/collection.py:60 +#: picard/collection.py:64 #, python-format -msgid "Added %i release to collection \"%s\"" -msgid_plural "Added %i releases to collection \"%s\"" +msgid "Added %(count)i release to collection \"%(name)s\"" +msgid_plural "Added %(count)i releases to collection \"%(name)s\"" msgstr[0] "" msgstr[1] "" -#: picard/collection.py:72 +#: picard/collection.py:86 #, python-format -msgid "Removed %i release from collection \"%s\"" -msgid_plural "Removed %i releases from collection \"%s\"" +msgid "Removed %(count)i release from collection \"%(name)s\"" +msgid_plural "Removed %(count)i releases from collection \"%(name)s\"" msgstr[0] "" msgstr[1] "" -#: picard/collection.py:81 +#: picard/collection.py:100 #, python-format -msgid "Error loading collections: %s" +msgid "Error loading collections: %(error)s" msgstr "" -#: picard/config_upgrade.py:57 picard/config_upgrade.py:70 +#: picard/config_upgrade.py:58 picard/config_upgrade.py:71 msgid "Various Artists file naming scheme removal" msgstr "" -#: picard/config_upgrade.py:58 +#: picard/config_upgrade.py:59 msgid "" "The separate file naming scheme for various artists albums has been removed in this version of Picard.\n" "Your file naming scheme has automatically been merged with that of single artist albums." msgstr "" -#: picard/config_upgrade.py:71 +#: picard/config_upgrade.py:72 msgid "" "The separate file naming scheme for various artists albums has been removed in this version of Picard.\n" "You currently do not use this option, but have a separate file naming scheme defined.\n" "Do you want to remove it or merge it with your file naming scheme for single artist albums?" msgstr "" -#: picard/config_upgrade.py:77 +#: picard/config_upgrade.py:78 msgid "Merge" msgstr "" -#: picard/config_upgrade.py:77 picard/ui/metadatabox.py:254 +#: picard/config_upgrade.py:78 picard/ui/metadatabox.py:254 msgid "Remove" msgstr "" -#: picard/const.py:67 -msgid "CD" -msgstr "KD" - -#: picard/const.py:68 -msgid "CD-R" -msgstr "KD-R" - -#: picard/const.py:69 -msgid "HDCD" -msgstr "" - -#: picard/const.py:70 -msgid "8cm CD" -msgstr "" - -#: picard/const.py:71 -msgid "Vinyl" -msgstr "Gramofondisko" - -#: picard/const.py:72 -msgid "7\" Vinyl" -msgstr "" - -#: picard/const.py:73 -msgid "10\" Vinyl" -msgstr "" - -#: picard/const.py:74 -msgid "12\" Vinyl" -msgstr "" - -#: picard/const.py:75 -msgid "Digital Media" -msgstr "" - -#: picard/const.py:76 -msgid "USB Flash Drive" -msgstr "" - -#: picard/const.py:77 -msgid "slotMusic" -msgstr "" - -#: picard/const.py:78 -msgid "Cassette" -msgstr "Sonkasedo" - -#: picard/const.py:79 -msgid "DVD" -msgstr "DVD" - -#: picard/const.py:80 -msgid "DVD-Audio" -msgstr "" - -#: picard/const.py:81 -msgid "DVD-Video" -msgstr "" - -#: picard/const.py:82 -msgid "SACD" -msgstr "SACD" - -#: picard/const.py:83 -msgid "DualDisc" -msgstr "" - -#: picard/const.py:84 -msgid "MiniDisc" -msgstr "EtDisko" - -#: picard/const.py:85 -msgid "Blu-ray" -msgstr "" - -#: picard/const.py:86 -msgid "HD-DVD" -msgstr "" - -#: picard/const.py:87 -msgid "Videotape" -msgstr "" - -#: picard/const.py:88 -msgid "VHS" -msgstr "" - -#: picard/const.py:89 -msgid "Betamax" -msgstr "" - #: picard/const.py:90 -msgid "VCD" -msgstr "VKD" - -#: picard/const.py:91 -msgid "SVCD" -msgstr "SVKD" - -#: picard/const.py:92 -msgid "UMD" -msgstr "" - -#: picard/const.py:93 picard/coverartarchive.py:33 -#: picard/ui/ui_options_releases.py:226 -msgid "Other" -msgstr "Alia" - -#: picard/const.py:94 -msgid "LaserDisc" -msgstr "LaserDisko" - -#: picard/const.py:95 -msgid "Cartridge" -msgstr "Kartoĉo" - -#: picard/const.py:96 -msgid "Reel-to-reel" -msgstr "" - -#: picard/const.py:97 -msgid "DAT" -msgstr "" - -#: picard/const.py:98 -msgid "Wax Cylinder" -msgstr "Vaksa cilindro" - -#: picard/const.py:99 -msgid "Piano Roll" -msgstr "" - -#: picard/const.py:100 -msgid "DCC" -msgstr "" - -#: picard/const.py:115 msgid "Danish" msgstr "" -#: picard/const.py:116 +#: picard/const.py:91 msgid "German" msgstr "Germana" -#: picard/const.py:118 +#: picard/const.py:93 msgid "English" msgstr "Angla" -#: picard/const.py:119 +#: picard/const.py:94 msgid "English (Canada)" msgstr "Angla (Kanado)" -#: picard/const.py:120 +#: picard/const.py:95 msgid "English (UK)" msgstr "Angla (UR)" -#: picard/const.py:122 +#: picard/const.py:97 msgid "Spanish" msgstr "Hispana" -#: picard/const.py:123 +#: picard/const.py:98 msgid "Estonian" msgstr "Estona" -#: picard/const.py:125 +#: picard/const.py:100 msgid "Finnish" msgstr "Finna" -#: picard/const.py:127 +#: picard/const.py:102 msgid "French" msgstr "Franca" -#: picard/const.py:136 +#: picard/const.py:111 msgid "Italian" msgstr "Itala" -#: picard/const.py:143 +#: picard/const.py:118 msgid "Dutch" msgstr "Nederlanda" -#: picard/const.py:145 +#: picard/const.py:120 msgid "Polish" msgstr "Pola" -#: picard/const.py:147 +#: picard/const.py:122 msgid "Brazilian Portuguese" msgstr "Brazila Portugala" -#: picard/const.py:154 +#: picard/const.py:129 msgid "Swedish" msgstr "Sveda" -#: picard/coverart.py:84 +#: picard/coverart.py:85 #, python-format -msgid "Coverart %s downloaded" +msgid "Cover art of type '%(type)s' downloaded for %(albumid)s from %(host)s" msgstr "" -#: picard/coverart.py:240 +#: picard/coverart.py:256 #, python-format -msgid "Downloading http://%s:%i%s" -msgstr "" - -#: picard/coverartarchive.py:24 -msgid "Front" -msgstr "" - -#: picard/coverartarchive.py:25 -msgid "Back" -msgstr "" - -#: picard/coverartarchive.py:26 -msgid "Booklet" -msgstr "" - -#: picard/coverartarchive.py:27 -msgid "Medium" -msgstr "" - -#: picard/coverartarchive.py:28 -msgid "Tray" -msgstr "" - -#: picard/coverartarchive.py:29 -msgid "Obi" +msgid "" +"Downloading cover art of type '%(type)s' for %(albumid)s from %(host)s .." msgstr "" #: picard/coverartarchive.py:30 -msgid "Spine" -msgstr "" - -#: picard/coverartarchive.py:31 picard/ui/mainwindow.py:546 -msgid "Track" -msgstr "" - -#: picard/coverartarchive.py:32 -msgid "Sticker" -msgstr "" - -#: picard/coverartarchive.py:34 msgid "Unknown" msgstr "" -#: picard/file.py:536 +#: picard/file.py:494 #, python-format -msgid "No matching tracks for file %s" +msgid "No matching tracks for file '%(filename)s'" msgstr "" -#: picard/file.py:548 +#: picard/file.py:510 #, python-format -msgid "No matching tracks above the threshold for file %s" +msgid "No matching tracks above the threshold for file '%(filename)s'" msgstr "" -#: picard/file.py:551 +#: picard/file.py:517 #, python-format -msgid "File %s identified!" +msgid "File '%(filename)s' identified!" msgstr "" -#: picard/file.py:567 +#: picard/file.py:537 #, python-format -msgid "Looking up the metadata for file %s..." +msgid "Looking up the metadata for file %(filename)s ..." msgstr "" #: picard/releasegroup.py:53 @@ -518,11 +401,11 @@ msgstr "" msgid "Year" msgstr "" -#: picard/releasegroup.py:55 picard/ui/cdlookup.py:34 +#: picard/releasegroup.py:55 picard/ui/cdlookup.py:35 msgid "Country" msgstr "" -#: picard/releasegroup.py:56 picard/util/tags.py:81 +#: picard/releasegroup.py:56 msgid "Format" msgstr "" @@ -542,16 +425,23 @@ msgstr "" msgid "[no release info]" msgstr "" -#: picard/tagger.py:316 +#: picard/tagger.py:370 #, python-format -msgid "Loading directory %s" +msgid "Adding %(count)d file from '%(directory)s' ..." +msgid_plural "Adding %(count)d files from '%(directory)s' ..." +msgstr[0] "" +msgstr[1] "" + +#: picard/tagger.py:512 +#, python-format +msgid "Removing album %(id)s: %(artist)s - %(album)s" msgstr "" -#: picard/tagger.py:452 +#: picard/tagger.py:528 msgid "CD Lookup Error" msgstr "" -#: picard/tagger.py:453 +#: picard/tagger.py:529 #, python-format msgid "" "Error while reading CD:\n" @@ -559,44 +449,43 @@ msgid "" "%s" msgstr "" -#: picard/ui/cdlookup.py:34 picard/ui/mainwindow.py:544 -#: picard/ui/ui_options_releases.py:216 picard/util/tags.py:21 +#: picard/ui/cdlookup.py:35 picard/ui/mainwindow.py:597 picard/util/tags.py:21 msgid "Album" msgstr "" -#: picard/ui/cdlookup.py:34 picard/ui/itemviews.py:96 -#: picard/ui/mainwindow.py:545 picard/util/tags.py:22 +#: picard/ui/cdlookup.py:35 picard/ui/itemviews.py:96 +#: picard/ui/mainwindow.py:598 picard/util/tags.py:22 msgid "Artist" msgstr "" -#: picard/ui/cdlookup.py:34 picard/util/tags.py:24 +#: picard/ui/cdlookup.py:35 picard/util/tags.py:24 msgid "Date" msgstr "Dato" -#: picard/ui/cdlookup.py:35 +#: picard/ui/cdlookup.py:36 msgid "Labels" msgstr "" -#: picard/ui/cdlookup.py:35 +#: picard/ui/cdlookup.py:36 msgid "Catalog #s" msgstr "" -#: picard/ui/cdlookup.py:35 picard/util/tags.py:79 +#: picard/ui/cdlookup.py:36 picard/util/tags.py:78 msgid "Barcode" msgstr "" -#: picard/ui/collectionmenu.py:31 +#: picard/ui/collectionmenu.py:42 msgid "Refresh List" msgstr "" -#: picard/ui/collectionmenu.py:92 +#: picard/ui/collectionmenu.py:86 #, python-format msgid "%s (%i release)" msgid_plural "%s (%i releases)" msgstr[0] "" msgstr[1] "" -#: picard/ui/coverartbox.py:142 +#: picard/ui/coverartbox.py:141 msgid "View release on MusicBrainz" msgstr "" @@ -612,59 +501,59 @@ msgstr "" msgid "&Set as starting directory" msgstr "" -#: picard/ui/infodialog.py:36 picard/ui/infodialog.py:75 +#: picard/ui/infodialog.py:37 picard/ui/infodialog.py:80 msgid "Info" msgstr "" -#: picard/ui/infodialog.py:80 +#: picard/ui/infodialog.py:85 msgid "Filename:" msgstr "" -#: picard/ui/infodialog.py:82 +#: picard/ui/infodialog.py:87 msgid "Format:" msgstr "" -#: picard/ui/infodialog.py:86 +#: picard/ui/infodialog.py:91 msgid "Size:" msgstr "" -#: picard/ui/infodialog.py:90 +#: picard/ui/infodialog.py:95 msgid "Length:" msgstr "" -#: picard/ui/infodialog.py:92 +#: picard/ui/infodialog.py:97 msgid "Bitrate:" msgstr "" -#: picard/ui/infodialog.py:94 +#: picard/ui/infodialog.py:99 msgid "Sample rate:" msgstr "" -#: picard/ui/infodialog.py:96 +#: picard/ui/infodialog.py:101 msgid "Bits per sample:" msgstr "" -#: picard/ui/infodialog.py:100 +#: picard/ui/infodialog.py:105 msgid "Mono" msgstr "" -#: picard/ui/infodialog.py:102 +#: picard/ui/infodialog.py:107 msgid "Stereo" msgstr "" -#: picard/ui/infodialog.py:105 +#: picard/ui/infodialog.py:110 msgid "Channels:" msgstr "" -#: picard/ui/infodialog.py:116 +#: picard/ui/infodialog.py:121 msgid "Album Info" msgstr "" -#: picard/ui/infodialog.py:124 +#: picard/ui/infodialog.py:129 msgid "&Errors" msgstr "" -#: picard/ui/infodialog.py:134 picard/ui/ui_infodialog.py:77 +#: picard/ui/infodialog.py:139 picard/ui/ui_infodialog.py:73 msgid "&Info" msgstr "" @@ -688,7 +577,7 @@ msgstr "" msgid "Title" msgstr "" -#: picard/ui/itemviews.py:95 picard/util/tags.py:88 +#: picard/ui/itemviews.py:95 picard/util/tags.py:86 msgid "Length" msgstr "" @@ -713,8 +602,8 @@ msgid "Collections" msgstr "" #: picard/ui/itemviews.py:365 -msgid "&Plugins" -msgstr "&Kromprogramoj" +msgid "P&lugins" +msgstr "" #: picard/ui/itemviews.py:541 msgid "file view" @@ -736,12 +625,16 @@ msgstr "" msgid "Contains albums and matched files" msgstr "" -#: picard/ui/logview.py:91 +#: picard/ui/logview.py:109 msgid "Log" msgstr "" -#: picard/ui/logview.py:99 -msgid "Status History" +#: picard/ui/logview.py:113 +msgid "Debug mode" +msgstr "" + +#: picard/ui/logview.py:134 +msgid "Activity History" msgstr "" #: picard/ui/mainwindow.py:74 @@ -775,275 +668,308 @@ msgstr "" #: picard/ui/mainwindow.py:220 msgid "" -"Picard listens on a port to integrate with your browser and downloads " -"release information when you click the \"Tagger\" buttons on the MusicBrainz" -" website" +"Picard listens on this port to integrate with your browser. When you " +"\"Search\" or \"Open in Browser\" from Picard, clicking the \"Tagger\" " +"button on the web page loads the release into Picard." msgstr "" -#: picard/ui/mainwindow.py:240 +#: picard/ui/mainwindow.py:243 #, python-format msgid " Listening on port %(port)d " msgstr "" -#: picard/ui/mainwindow.py:263 +#: picard/ui/mainwindow.py:299 msgid "Submission Error" msgstr "" -#: picard/ui/mainwindow.py:264 +#: picard/ui/mainwindow.py:300 msgid "" "You need to configure your AcoustID API key before you can submit " "fingerprints." msgstr "" -#: picard/ui/mainwindow.py:269 +#: picard/ui/mainwindow.py:305 msgid "&Options..." msgstr "" -#: picard/ui/mainwindow.py:273 +#: picard/ui/mainwindow.py:309 msgid "&Cut" msgstr "" -#: picard/ui/mainwindow.py:278 +#: picard/ui/mainwindow.py:314 msgid "&Paste" msgstr "" -#: picard/ui/mainwindow.py:283 +#: picard/ui/mainwindow.py:319 msgid "&Help..." msgstr "" -#: picard/ui/mainwindow.py:288 +#: picard/ui/mainwindow.py:323 msgid "&About..." msgstr "" -#: picard/ui/mainwindow.py:292 +#: picard/ui/mainwindow.py:327 msgid "&Donate..." msgstr "" -#: picard/ui/mainwindow.py:295 +#: picard/ui/mainwindow.py:330 msgid "&Report a Bug..." msgstr "" -#: picard/ui/mainwindow.py:298 +#: picard/ui/mainwindow.py:333 msgid "&Support Forum..." msgstr "" -#: picard/ui/mainwindow.py:301 +#: picard/ui/mainwindow.py:336 msgid "&Add Files..." msgstr "" -#: picard/ui/mainwindow.py:302 +#: picard/ui/mainwindow.py:337 msgid "Add files to the tagger" msgstr "" -#: picard/ui/mainwindow.py:307 +#: picard/ui/mainwindow.py:342 msgid "A&dd Folder..." msgstr "" -#: picard/ui/mainwindow.py:308 +#: picard/ui/mainwindow.py:343 msgid "Add a folder to the tagger" msgstr "" -#: picard/ui/mainwindow.py:310 +#: picard/ui/mainwindow.py:345 msgid "Ctrl+D" msgstr "" -#: picard/ui/mainwindow.py:313 +#: picard/ui/mainwindow.py:348 msgid "&Save" msgstr "" -#: picard/ui/mainwindow.py:314 +#: picard/ui/mainwindow.py:349 msgid "Save selected files" msgstr "" -#: picard/ui/mainwindow.py:320 +#: picard/ui/mainwindow.py:355 msgid "S&ubmit" msgstr "" -#: picard/ui/mainwindow.py:321 -msgid "Submit fingerprints" +#: picard/ui/mainwindow.py:356 +msgid "Submit acoustic fingerprints" msgstr "" -#: picard/ui/mainwindow.py:325 +#: picard/ui/mainwindow.py:360 msgid "E&xit" msgstr "" -#: picard/ui/mainwindow.py:328 +#: picard/ui/mainwindow.py:363 msgid "Ctrl+Q" msgstr "" -#: picard/ui/mainwindow.py:331 +#: picard/ui/mainwindow.py:366 msgid "&Remove" msgstr "" -#: picard/ui/mainwindow.py:332 +#: picard/ui/mainwindow.py:367 msgid "Remove selected files/albums" msgstr "" -#: picard/ui/mainwindow.py:336 +#: picard/ui/mainwindow.py:371 msgid "Lookup in &Browser" msgstr "" -#: picard/ui/mainwindow.py:337 +#: picard/ui/mainwindow.py:372 msgid "Lookup selected item on MusicBrainz website" msgstr "" -#: picard/ui/mainwindow.py:341 +#: picard/ui/mainwindow.py:376 msgid "File &Browser" msgstr "" -#: picard/ui/mainwindow.py:345 +#: picard/ui/mainwindow.py:380 msgid "Ctrl+B" msgstr "" -#: picard/ui/mainwindow.py:348 +#: picard/ui/mainwindow.py:383 msgid "&Cover Art" msgstr "" -#: picard/ui/mainwindow.py:354 picard/ui/mainwindow.py:539 +#: picard/ui/mainwindow.py:389 picard/ui/mainwindow.py:591 msgid "Search" msgstr "" -#: picard/ui/mainwindow.py:357 -msgid "&CD Lookup..." +#: picard/ui/mainwindow.py:392 +msgid "Lookup &CD..." msgstr "" -#: picard/ui/mainwindow.py:358 picard/ui/mainwindow.py:359 -msgid "Lookup CD" +#: picard/ui/mainwindow.py:393 +msgid "Lookup the details of the CD in your drive" msgstr "" -#: picard/ui/mainwindow.py:361 +#: picard/ui/mainwindow.py:395 msgid "Ctrl+K" msgstr "" -#: picard/ui/mainwindow.py:364 +#: picard/ui/mainwindow.py:398 msgid "&Scan" msgstr "" -#: picard/ui/mainwindow.py:367 +#: picard/ui/mainwindow.py:401 msgid "Ctrl+Y" msgstr "" -#: picard/ui/mainwindow.py:370 +#: picard/ui/mainwindow.py:404 msgid "Cl&uster" msgstr "" -#: picard/ui/mainwindow.py:373 +#: picard/ui/mainwindow.py:407 msgid "Ctrl+U" msgstr "" -#: picard/ui/mainwindow.py:376 +#: picard/ui/mainwindow.py:410 msgid "&Lookup" msgstr "" -#: picard/ui/mainwindow.py:377 picard/ui/mainwindow.py:378 -msgid "Lookup metadata" +#: picard/ui/mainwindow.py:411 +msgid "Lookup selected items in MusicBrainz" msgstr "" -#: picard/ui/mainwindow.py:381 +#: picard/ui/mainwindow.py:416 msgid "Ctrl+L" msgstr "" -#: picard/ui/mainwindow.py:384 +#: picard/ui/mainwindow.py:419 msgid "&Info..." msgstr "" -#: picard/ui/mainwindow.py:387 +#: picard/ui/mainwindow.py:422 msgid "Ctrl+I" msgstr "" -#: picard/ui/mainwindow.py:390 +#: picard/ui/mainwindow.py:425 msgid "&Refresh" msgstr "" -#: picard/ui/mainwindow.py:391 +#: picard/ui/mainwindow.py:426 msgid "Ctrl+R" msgstr "" -#: picard/ui/mainwindow.py:394 +#: picard/ui/mainwindow.py:429 msgid "&Rename Files" msgstr "" -#: picard/ui/mainwindow.py:399 +#: picard/ui/mainwindow.py:434 msgid "&Move Files" msgstr "" -#: picard/ui/mainwindow.py:404 +#: picard/ui/mainwindow.py:439 msgid "Save &Tags" msgstr "" -#: picard/ui/mainwindow.py:409 +#: picard/ui/mainwindow.py:444 msgid "Tags From &File Names..." msgstr "" -#: picard/ui/mainwindow.py:412 -msgid "View &Log..." +#: picard/ui/mainwindow.py:447 +msgid "&Open My Collections in Browser" msgstr "" -#: picard/ui/mainwindow.py:415 -msgid "View Status &History..." +#: picard/ui/mainwindow.py:451 +msgid "View Error/Debug &Log" msgstr "" -#: picard/ui/mainwindow.py:422 -msgid "&Open..." +#: picard/ui/mainwindow.py:454 +msgid "View Activity &History" msgstr "" -#: picard/ui/mainwindow.py:423 -msgid "Open the file" -msgstr "" - -#: picard/ui/mainwindow.py:426 -msgid "Open &Folder..." -msgstr "" - -#: picard/ui/mainwindow.py:427 -msgid "Open the containing folder" -msgstr "" - -#: picard/ui/mainwindow.py:448 -msgid "&File" -msgstr "" - -#: picard/ui/mainwindow.py:456 -msgid "&Edit" +#: picard/ui/mainwindow.py:461 +msgid "&Play file" msgstr "" #: picard/ui/mainwindow.py:462 +msgid "Play the file in your default media player" +msgstr "" + +#: picard/ui/mainwindow.py:466 +msgid "Open Containing &Folder" +msgstr "" + +#: picard/ui/mainwindow.py:467 +msgid "Open the containing folder in your file explorer" +msgstr "" + +#: picard/ui/mainwindow.py:492 +msgid "&File" +msgstr "" + +#: picard/ui/mainwindow.py:503 +msgid "&Edit" +msgstr "" + +#: picard/ui/mainwindow.py:509 msgid "&View" msgstr "" -#: picard/ui/mainwindow.py:470 +#: picard/ui/mainwindow.py:515 msgid "&Options" msgstr "" -#: picard/ui/mainwindow.py:476 +#: picard/ui/mainwindow.py:521 msgid "&Tools" msgstr "" -#: picard/ui/mainwindow.py:485 picard/ui/util.py:35 +#: picard/ui/mainwindow.py:532 picard/ui/util.py:35 msgid "&Help" msgstr "" -#: picard/ui/mainwindow.py:505 +#: picard/ui/mainwindow.py:553 msgid "Actions" msgstr "" -#: picard/ui/mainwindow.py:608 +#: picard/ui/mainwindow.py:599 +msgid "Track" +msgstr "" + +#: picard/ui/mainwindow.py:662 msgid "All Supported Formats" msgstr "" -#: picard/ui/mainwindow.py:705 +#: picard/ui/mainwindow.py:695 +#, python-format +msgid "Adding directory: '%(directory)s' ..." +msgstr "" + +#: picard/ui/mainwindow.py:702 +#, python-format +msgid "Adding multiple directories from '%(directory)s' ..." +msgstr "" + +#: picard/ui/mainwindow.py:767 msgid "Configuration Required" msgstr "" -#: picard/ui/mainwindow.py:706 +#: picard/ui/mainwindow.py:768 msgid "" "Audio fingerprinting is not yet configured. Would you like to configure it " "now?" msgstr "" -#: picard/ui/mainwindow.py:784 picard/ui/mainwindow.py:791 +#: picard/ui/mainwindow.py:848 #, python-format -msgid " (Error: %s)" +msgid "%(filename)s (error: %(error)s)" +msgstr "" + +#: picard/ui/mainwindow.py:854 +#, python-format +msgid "%(filename)s" +msgstr "" + +#: picard/ui/mainwindow.py:864 +#, python-format +msgid "%(filename)s (%(similarity)d%%) (error: %(error)s)" +msgstr "" + +#: picard/ui/mainwindow.py:871 +#, python-format +msgid "%(filename)s (%(similarity)d%%)" msgstr "" #: picard/ui/metadatabox.py:82 @@ -1098,387 +1024,387 @@ msgid_plural "Use Original Values" msgstr[0] "" msgstr[1] "" -#: picard/ui/passworddialog.py:37 +#: picard/ui/passworddialog.py:40 #, python-format msgid "" "The server %s requires you to login. Please enter your username and " "password." msgstr "" -#: picard/ui/passworddialog.py:75 +#: picard/ui/passworddialog.py:79 #, python-format msgid "" "The proxy %s requires you to login. Please enter your username and password." msgstr "" -#: picard/ui/tagsfromfilenames.py:55 picard/ui/tagsfromfilenames.py:100 +#: picard/ui/tagsfromfilenames.py:56 picard/ui/tagsfromfilenames.py:101 msgid "File Name" msgstr "" -#: picard/ui/ui_cdlookup.py:66 picard/ui/ui_options_cdlookup.py:55 -#: picard/ui/ui_options_cdlookup_select.py:62 picard/ui/options/cdlookup.py:38 +#: picard/ui/ui_cdlookup.py:53 picard/ui/ui_options_cdlookup.py:42 +#: picard/ui/ui_options_cdlookup_select.py:49 picard/ui/options/cdlookup.py:38 msgid "CD Lookup" msgstr "" -#: picard/ui/ui_cdlookup.py:67 +#: picard/ui/ui_cdlookup.py:54 msgid "The following releases on MusicBrainz match the CD:" msgstr "" -#: picard/ui/ui_cdlookup.py:68 +#: picard/ui/ui_cdlookup.py:55 msgid "OK" msgstr "" -#: picard/ui/ui_cdlookup.py:69 +#: picard/ui/ui_cdlookup.py:56 msgid "Lookup manually" msgstr "" -#: picard/ui/ui_cdlookup.py:70 +#: picard/ui/ui_cdlookup.py:57 msgid "Cancel" msgstr "" -#: picard/ui/ui_edittagdialog.py:101 +#: picard/ui/ui_edittagdialog.py:88 msgid "Edit Tag" msgstr "" -#: picard/ui/ui_edittagdialog.py:102 +#: picard/ui/ui_edittagdialog.py:89 msgid "Edit value" msgstr "" -#: picard/ui/ui_edittagdialog.py:103 +#: picard/ui/ui_edittagdialog.py:90 msgid "Add value" msgstr "" -#: picard/ui/ui_edittagdialog.py:104 +#: picard/ui/ui_edittagdialog.py:91 msgid "Remove value" msgstr "" -#: picard/ui/ui_infodialog.py:78 +#: picard/ui/ui_infodialog.py:74 msgid "A&rtwork" msgstr "" -#: picard/ui/ui_infostatus.py:100 +#: picard/ui/ui_infostatus.py:96 msgid "Form" msgstr "" -#: picard/ui/ui_options.py:51 +#: picard/ui/ui_options.py:38 msgid "Options" msgstr "" -#: picard/ui/ui_options_advanced.py:46 +#: picard/ui/ui_options_advanced.py:42 msgid "Advanced options" msgstr "" -#: picard/ui/ui_options_advanced.py:47 +#: picard/ui/ui_options_advanced.py:43 msgid "Ignore file paths matching the following regular expression:" msgstr "" -#: picard/ui/ui_options_cdlookup.py:56 +#: picard/ui/ui_options_cdlookup.py:43 msgid "CD-ROM device to use for lookups:" msgstr "" -#: picard/ui/ui_options_cdlookup_select.py:63 +#: picard/ui/ui_options_cdlookup_select.py:50 msgid "Default CD-ROM drive to use for lookups:" msgstr "" -#: picard/ui/ui_options_cover.py:145 +#: picard/ui/ui_options_cover.py:131 msgid "Location" msgstr "" -#: picard/ui/ui_options_cover.py:146 +#: picard/ui/ui_options_cover.py:132 msgid "Embed cover images into tags" msgstr "" -#: picard/ui/ui_options_cover.py:147 +#: picard/ui/ui_options_cover.py:133 msgid "Only embed a front image" msgstr "" -#: picard/ui/ui_options_cover.py:148 +#: picard/ui/ui_options_cover.py:134 msgid "Save cover images as separate files" msgstr "" -#: picard/ui/ui_options_cover.py:149 +#: picard/ui/ui_options_cover.py:135 msgid "Use the following file name for images:" msgstr "" -#: picard/ui/ui_options_cover.py:150 +#: picard/ui/ui_options_cover.py:136 msgid "Overwrite the file if it already exists" msgstr "" -#: picard/ui/ui_options_cover.py:151 +#: picard/ui/ui_options_cover.py:137 msgid "Coverart Providers" msgstr "" -#: picard/ui/ui_options_cover.py:152 +#: picard/ui/ui_options_cover.py:138 msgid "Amazon" msgstr "" -#: picard/ui/ui_options_cover.py:153 picard/ui/ui_options_cover.py:155 +#: picard/ui/ui_options_cover.py:139 picard/ui/ui_options_cover.py:141 msgid "Cover Art Archive" msgstr "" -#: picard/ui/ui_options_cover.py:154 +#: picard/ui/ui_options_cover.py:140 msgid "Sites on the whitelist" msgstr "" -#: picard/ui/ui_options_cover.py:156 +#: picard/ui/ui_options_cover.py:142 msgid "Only use images of the following size:" msgstr "" -#: picard/ui/ui_options_cover.py:157 +#: picard/ui/ui_options_cover.py:143 msgid "250 px" msgstr "" -#: picard/ui/ui_options_cover.py:158 +#: picard/ui/ui_options_cover.py:144 msgid "500 px" msgstr "" -#: picard/ui/ui_options_cover.py:159 +#: picard/ui/ui_options_cover.py:145 msgid "Full size" msgstr "" -#: picard/ui/ui_options_cover.py:160 +#: picard/ui/ui_options_cover.py:146 msgid "Download only images of the following types:" msgstr "" -#: picard/ui/ui_options_cover.py:161 +#: picard/ui/ui_options_cover.py:147 msgid "Download only approved images" msgstr "" -#: picard/ui/ui_options_cover.py:162 +#: picard/ui/ui_options_cover.py:148 msgid "" "Use the first image type as the filename. This will not change the filename " "of front images." msgstr "" -#: picard/ui/ui_options_fingerprinting.py:83 +#: picard/ui/ui_options_fingerprinting.py:70 msgid "Audio Fingerprinting" msgstr "" -#: picard/ui/ui_options_fingerprinting.py:84 +#: picard/ui/ui_options_fingerprinting.py:71 msgid "Do not use audio fingerprinting" msgstr "" -#: picard/ui/ui_options_fingerprinting.py:85 +#: picard/ui/ui_options_fingerprinting.py:72 msgid "Use AcoustID" msgstr "" -#: picard/ui/ui_options_fingerprinting.py:86 +#: picard/ui/ui_options_fingerprinting.py:73 msgid "AcoustID Settings" msgstr "" -#: picard/ui/ui_options_fingerprinting.py:87 +#: picard/ui/ui_options_fingerprinting.py:74 msgid "Fingerprint calculator:" msgstr "" -#: picard/ui/ui_options_fingerprinting.py:88 -#: picard/ui/ui_options_interface.py:88 picard/ui/ui_options_renaming.py:138 +#: picard/ui/ui_options_fingerprinting.py:75 +#: picard/ui/ui_options_interface.py:75 picard/ui/ui_options_renaming.py:134 msgid "Browse..." msgstr "" -#: picard/ui/ui_options_fingerprinting.py:89 +#: picard/ui/ui_options_fingerprinting.py:76 msgid "Download..." msgstr "" -#: picard/ui/ui_options_fingerprinting.py:90 +#: picard/ui/ui_options_fingerprinting.py:77 msgid "API key:" msgstr "" -#: picard/ui/ui_options_fingerprinting.py:91 +#: picard/ui/ui_options_fingerprinting.py:78 msgid "Get API key..." msgstr "" -#: picard/ui/ui_options_folksonomy.py:115 picard/ui/options/folksonomy.py:28 +#: picard/ui/ui_options_folksonomy.py:102 picard/ui/options/folksonomy.py:28 msgid "Folksonomy Tags" msgstr "" -#: picard/ui/ui_options_folksonomy.py:117 +#: picard/ui/ui_options_folksonomy.py:104 msgid "Only use my tags" msgstr "" -#: picard/ui/ui_options_folksonomy.py:120 +#: picard/ui/ui_options_folksonomy.py:107 msgid "Maximum number of tags:" msgstr "" -#: picard/ui/ui_options_general.py:92 +#: picard/ui/ui_options_general.py:88 msgid "MusicBrainz Server" msgstr "" -#: picard/ui/ui_options_general.py:93 picard/ui/ui_options_network.py:123 +#: picard/ui/ui_options_general.py:89 picard/ui/ui_options_network.py:110 msgid "Port:" msgstr "" -#: picard/ui/ui_options_general.py:94 picard/ui/ui_options_network.py:124 +#: picard/ui/ui_options_general.py:90 picard/ui/ui_options_network.py:111 msgid "Server address:" msgstr "" -#: picard/ui/ui_options_general.py:95 +#: picard/ui/ui_options_general.py:91 msgid "Account Information" msgstr "" -#: picard/ui/ui_options_general.py:96 picard/ui/ui_options_network.py:121 -#: picard/ui/ui_passworddialog.py:74 +#: picard/ui/ui_options_general.py:92 picard/ui/ui_options_network.py:108 +#: picard/ui/ui_passworddialog.py:70 msgid "Password:" msgstr "" -#: picard/ui/ui_options_general.py:97 picard/ui/ui_options_network.py:122 -#: picard/ui/ui_passworddialog.py:73 +#: picard/ui/ui_options_general.py:93 picard/ui/ui_options_network.py:109 +#: picard/ui/ui_passworddialog.py:69 msgid "Username:" msgstr "" -#: picard/ui/ui_options_general.py:98 picard/ui/options/general.py:31 +#: picard/ui/ui_options_general.py:94 picard/ui/options/general.py:31 msgid "General" msgstr "" -#: picard/ui/ui_options_general.py:99 +#: picard/ui/ui_options_general.py:95 msgid "Automatically scan all new files" msgstr "" -#: picard/ui/ui_options_general.py:100 +#: picard/ui/ui_options_general.py:96 msgid "Ignore MBIDs when loading new files" msgstr "" -#: picard/ui/ui_options_interface.py:82 +#: picard/ui/ui_options_interface.py:69 msgid "Miscellaneous" msgstr "" -#: picard/ui/ui_options_interface.py:83 +#: picard/ui/ui_options_interface.py:70 msgid "Show text labels under icons" msgstr "" -#: picard/ui/ui_options_interface.py:84 +#: picard/ui/ui_options_interface.py:71 msgid "Allow selection of multiple directories" msgstr "" -#: picard/ui/ui_options_interface.py:85 +#: picard/ui/ui_options_interface.py:72 msgid "Use advanced query syntax" msgstr "" -#: picard/ui/ui_options_interface.py:86 +#: picard/ui/ui_options_interface.py:73 msgid "Show a quit confirmation dialog for unsaved changes" msgstr "" -#: picard/ui/ui_options_interface.py:87 +#: picard/ui/ui_options_interface.py:74 msgid "Begin browsing in the following directory:" msgstr "" -#: picard/ui/ui_options_interface.py:89 +#: picard/ui/ui_options_interface.py:76 msgid "User interface language:" msgstr "" -#: picard/ui/ui_options_matching.py:86 +#: picard/ui/ui_options_matching.py:73 msgid "Thresholds" msgstr "" -#: picard/ui/ui_options_matching.py:87 +#: picard/ui/ui_options_matching.py:74 msgid "Minimal similarity for matching files to tracks:" msgstr "" -#: picard/ui/ui_options_matching.py:91 +#: picard/ui/ui_options_matching.py:78 msgid "Minimal similarity for file lookups:" msgstr "" -#: picard/ui/ui_options_matching.py:92 +#: picard/ui/ui_options_matching.py:79 msgid "Minimal similarity for cluster lookups:" msgstr "" -#: picard/ui/ui_options_metadata.py:114 picard/ui/options/metadata.py:29 +#: picard/ui/ui_options_metadata.py:101 picard/ui/options/metadata.py:29 msgid "Metadata" msgstr "" -#: picard/ui/ui_options_metadata.py:115 +#: picard/ui/ui_options_metadata.py:102 msgid "Translate artist names to this locale where possible:" msgstr "" -#: picard/ui/ui_options_metadata.py:116 +#: picard/ui/ui_options_metadata.py:103 msgid "Use standardized artist names" msgstr "" -#: picard/ui/ui_options_metadata.py:117 +#: picard/ui/ui_options_metadata.py:104 msgid "Convert Unicode punctuation characters to ASCII" msgstr "" -#: picard/ui/ui_options_metadata.py:118 +#: picard/ui/ui_options_metadata.py:105 msgid "Use release relationships" msgstr "" -#: picard/ui/ui_options_metadata.py:119 +#: picard/ui/ui_options_metadata.py:106 msgid "Use track relationships" msgstr "" -#: picard/ui/ui_options_metadata.py:120 +#: picard/ui/ui_options_metadata.py:107 msgid "Use folksonomy tags as genre" msgstr "" -#: picard/ui/ui_options_metadata.py:121 +#: picard/ui/ui_options_metadata.py:108 msgid "Custom Fields" msgstr "" -#: picard/ui/ui_options_metadata.py:122 +#: picard/ui/ui_options_metadata.py:109 msgid "Various artists:" msgstr "" -#: picard/ui/ui_options_metadata.py:123 +#: picard/ui/ui_options_metadata.py:110 msgid "Non-album tracks:" msgstr "" -#: picard/ui/ui_options_metadata.py:124 picard/ui/ui_options_metadata.py:125 -#: picard/ui/ui_options_renaming.py:147 +#: picard/ui/ui_options_metadata.py:111 picard/ui/ui_options_metadata.py:112 +#: picard/ui/ui_options_renaming.py:143 msgid "Default" msgstr "" -#: picard/ui/ui_options_network.py:120 +#: picard/ui/ui_options_network.py:107 msgid "Web Proxy" msgstr "" -#: picard/ui/ui_options_network.py:125 +#: picard/ui/ui_options_network.py:112 msgid "Browser Integration" msgstr "" -#: picard/ui/ui_options_network.py:126 +#: picard/ui/ui_options_network.py:113 msgid "Default listening port:" msgstr "" -#: picard/ui/ui_options_network.py:127 +#: picard/ui/ui_options_network.py:114 msgid "Listen only on localhost" msgstr "" -#: picard/ui/ui_options_plugins.py:131 picard/ui/options/plugins.py:38 +#: picard/ui/ui_options_plugins.py:127 picard/ui/options/plugins.py:38 msgid "Plugins" msgstr "" -#: picard/ui/ui_options_plugins.py:132 picard/ui/options/plugins.py:122 +#: picard/ui/ui_options_plugins.py:128 picard/ui/options/plugins.py:122 msgid "Name" msgstr "" -#: picard/ui/ui_options_plugins.py:133 picard/util/tags.py:39 +#: picard/ui/ui_options_plugins.py:129 msgid "Version" msgstr "Versio" -#: picard/ui/ui_options_plugins.py:134 picard/ui/options/plugins.py:125 +#: picard/ui/ui_options_plugins.py:130 picard/ui/options/plugins.py:125 msgid "Author" msgstr "" -#: picard/ui/ui_options_plugins.py:135 +#: picard/ui/ui_options_plugins.py:131 msgid "Install plugin..." msgstr "" -#: picard/ui/ui_options_plugins.py:136 +#: picard/ui/ui_options_plugins.py:132 msgid "Open plugin folder" msgstr "" -#: picard/ui/ui_options_plugins.py:137 +#: picard/ui/ui_options_plugins.py:133 msgid "Download plugins" msgstr "" -#: picard/ui/ui_options_plugins.py:138 +#: picard/ui/ui_options_plugins.py:134 msgid "Details" msgstr "" -#: picard/ui/ui_options_ratings.py:53 +#: picard/ui/ui_options_ratings.py:49 msgid "Enable track ratings" msgstr "" -#: picard/ui/ui_options_ratings.py:54 +#: picard/ui/ui_options_ratings.py:50 msgid "" "Picard saves the ratings together with an e-mail address identifying the " "user who did the rating. That way different ratings for different users can " @@ -1486,207 +1412,167 @@ msgid "" "your ratings." msgstr "" -#: picard/ui/ui_options_ratings.py:55 +#: picard/ui/ui_options_ratings.py:51 msgid "E-mail:" msgstr "" -#: picard/ui/ui_options_ratings.py:56 +#: picard/ui/ui_options_ratings.py:52 msgid "Submit ratings to MusicBrainz" msgstr "" -#: picard/ui/ui_options_releases.py:215 +#: picard/ui/ui_options_releases.py:104 msgid "Preferred release types" msgstr "" -#: picard/ui/ui_options_releases.py:217 -msgid "Single" -msgstr "" - -#: picard/ui/ui_options_releases.py:218 -msgid "EP" -msgstr "" - -#: picard/ui/ui_options_releases.py:219 -msgid "Compilation" -msgstr "" - -#: picard/ui/ui_options_releases.py:220 -msgid "Soundtrack" -msgstr "" - -#: picard/ui/ui_options_releases.py:221 -msgid "Spokenword" -msgstr "" - -#: picard/ui/ui_options_releases.py:222 -msgid "Interview" -msgstr "" - -#: picard/ui/ui_options_releases.py:223 -msgid "Audiobook" -msgstr "" - -#: picard/ui/ui_options_releases.py:224 -msgid "Live" -msgstr "" - -#: picard/ui/ui_options_releases.py:225 -msgid "Remix" -msgstr "" - -#: picard/ui/ui_options_releases.py:227 -msgid "Reset all" -msgstr "" - -#: picard/ui/ui_options_releases.py:228 +#: picard/ui/ui_options_releases.py:105 msgid "Preferred release countries" msgstr "" -#: picard/ui/ui_options_releases.py:229 picard/ui/ui_options_releases.py:232 +#: picard/ui/ui_options_releases.py:106 picard/ui/ui_options_releases.py:109 msgid ">" msgstr ">" -#: picard/ui/ui_options_releases.py:230 picard/ui/ui_options_releases.py:233 +#: picard/ui/ui_options_releases.py:107 picard/ui/ui_options_releases.py:110 msgid "<" msgstr "<" -#: picard/ui/ui_options_releases.py:231 +#: picard/ui/ui_options_releases.py:108 msgid "Preferred release formats" msgstr "" -#: picard/ui/ui_options_renaming.py:134 +#: picard/ui/ui_options_renaming.py:130 msgid "Rename files when saving" msgstr "" -#: picard/ui/ui_options_renaming.py:135 +#: picard/ui/ui_options_renaming.py:131 msgid "Replace non-ASCII characters" msgstr "" -#: picard/ui/ui_options_renaming.py:136 +#: picard/ui/ui_options_renaming.py:132 msgid "Windows compatibility" msgstr "" -#: picard/ui/ui_options_renaming.py:137 +#: picard/ui/ui_options_renaming.py:133 msgid "Move files to this directory when saving:" msgstr "" -#: picard/ui/ui_options_renaming.py:139 +#: picard/ui/ui_options_renaming.py:135 msgid "Delete empty directories" msgstr "" -#: picard/ui/ui_options_renaming.py:140 +#: picard/ui/ui_options_renaming.py:136 msgid "Move additional files:" msgstr "" -#: picard/ui/ui_options_renaming.py:141 +#: picard/ui/ui_options_renaming.py:137 msgid "Name files like this" msgstr "" -#: picard/ui/ui_options_renaming.py:148 +#: picard/ui/ui_options_renaming.py:144 msgid "Examples" msgstr "" -#: picard/ui/ui_options_script.py:49 +#: picard/ui/ui_options_script.py:45 msgid "Tagger Script" msgstr "" -#: picard/ui/ui_options_tags.py:165 +#: picard/ui/ui_options_tags.py:152 msgid "Write tags to files" msgstr "" -#: picard/ui/ui_options_tags.py:166 +#: picard/ui/ui_options_tags.py:153 msgid "Preserve timestamps of tagged files" msgstr "" -#: picard/ui/ui_options_tags.py:167 +#: picard/ui/ui_options_tags.py:154 msgid "Before Tagging" msgstr "" -#: picard/ui/ui_options_tags.py:168 +#: picard/ui/ui_options_tags.py:155 msgid "Clear existing tags" msgstr "" -#: picard/ui/ui_options_tags.py:169 +#: picard/ui/ui_options_tags.py:156 msgid "Remove ID3 tags from FLAC files" msgstr "" -#: picard/ui/ui_options_tags.py:170 +#: picard/ui/ui_options_tags.py:157 msgid "Remove APEv2 tags from MP3 files" msgstr "" -#: picard/ui/ui_options_tags.py:171 +#: picard/ui/ui_options_tags.py:158 msgid "" "Preserve these tags from being cleared or overwritten with MusicBrainz data:" msgstr "" -#: picard/ui/ui_options_tags.py:172 +#: picard/ui/ui_options_tags.py:159 msgid "Tags are separated by commas, and are case-sensitive." msgstr "" -#: picard/ui/ui_options_tags.py:173 +#: picard/ui/ui_options_tags.py:160 msgid "Tag Compatibility" msgstr "" -#: picard/ui/ui_options_tags.py:174 +#: picard/ui/ui_options_tags.py:161 msgid "ID3v2 Version" msgstr "" -#: picard/ui/ui_options_tags.py:175 +#: picard/ui/ui_options_tags.py:162 msgid "2.4" msgstr "" -#: picard/ui/ui_options_tags.py:176 +#: picard/ui/ui_options_tags.py:163 msgid "2.3" msgstr "" -#: picard/ui/ui_options_tags.py:177 +#: picard/ui/ui_options_tags.py:164 msgid "ID3v2 Text Encoding" msgstr "" -#: picard/ui/ui_options_tags.py:178 +#: picard/ui/ui_options_tags.py:165 msgid "UTF-8" msgstr "" -#: picard/ui/ui_options_tags.py:179 +#: picard/ui/ui_options_tags.py:166 msgid "UTF-16" msgstr "" -#: picard/ui/ui_options_tags.py:180 +#: picard/ui/ui_options_tags.py:167 msgid "ISO-8859-1" msgstr "" -#: picard/ui/ui_options_tags.py:181 +#: picard/ui/ui_options_tags.py:168 msgid "Join multiple ID3v2.3 tags with:" msgstr "" -#: picard/ui/ui_options_tags.py:182 +#: picard/ui/ui_options_tags.py:169 msgid "" "

Default is '/' to maintain compatibility with previous" " Picard releases.

New alternatives are ';_' or '_/_' or type your own." "

" msgstr "" -#: picard/ui/ui_options_tags.py:183 +#: picard/ui/ui_options_tags.py:170 msgid "Also include ID3v1 tags in the files" msgstr "" -#: picard/ui/ui_passworddialog.py:72 +#: picard/ui/ui_passworddialog.py:68 msgid "Authentication required" msgstr "" -#: picard/ui/ui_passworddialog.py:75 +#: picard/ui/ui_passworddialog.py:71 msgid "Save username and password" msgstr "" -#: picard/ui/ui_tagsfromfilenames.py:54 +#: picard/ui/ui_tagsfromfilenames.py:50 msgid "Convert File Names to Tags" msgstr "" -#: picard/ui/ui_tagsfromfilenames.py:55 +#: picard/ui/ui_tagsfromfilenames.py:51 msgid "Replace underscores with spaces" msgstr "" -#: picard/ui/ui_tagsfromfilenames.py:56 +#: picard/ui/ui_tagsfromfilenames.py:52 msgid "&Preview" msgstr "" @@ -1742,7 +1628,11 @@ msgstr "Altnivele" msgid "Regex Error" msgstr "" -#: picard/ui/options/cover.py:63 +#: picard/ui/options/cover.py:44 +msgid "title" +msgstr "" + +#: picard/ui/options/cover.py:68 msgid "Cover Art" msgstr "" @@ -1758,11 +1648,11 @@ msgstr "Uzanto-interfaco" msgid "System default" msgstr "" -#: picard/ui/options/interface.py:96 +#: picard/ui/options/interface.py:98 msgid "Language changed" msgstr "Ŝanĝis lingvon" -#: picard/ui/options/interface.py:96 +#: picard/ui/options/interface.py:99 msgid "" "You have changed the interface language. You have to restart Picard in order" " for the change to take effect." @@ -1784,31 +1674,35 @@ msgstr "" msgid "Ratings" msgstr "" -#: picard/ui/options/releases.py:33 +#: picard/ui/options/releases.py:87 msgid "Preferred Releases" msgstr "" +#: picard/ui/options/releases.py:121 +msgid "Reset all" +msgstr "" + #: picard/ui/options/renaming.py:37 msgid "File Naming" msgstr "" -#: picard/ui/options/renaming.py:184 +#: picard/ui/options/renaming.py:187 msgid "Error" msgstr "Eraro" -#: picard/ui/options/renaming.py:184 +#: picard/ui/options/renaming.py:187 msgid "The location to move files to must not be empty." msgstr "" -#: picard/ui/options/renaming.py:194 +#: picard/ui/options/renaming.py:197 msgid "The file naming format must not be empty." msgstr "" -#: picard/ui/options/scripting.py:63 +#: picard/ui/options/scripting.py:99 msgid "Scripting" msgstr "Skriptado" -#: picard/ui/options/scripting.py:95 +#: picard/ui/options/scripting.py:131 msgid "Script Error" msgstr "Skript-eraro" @@ -1928,199 +1822,199 @@ msgstr "ASIN" msgid "Grouping" msgstr "Grupado" -#: picard/util/tags.py:40 +#: picard/util/tags.py:39 msgid "ISRC" msgstr "" -#: picard/util/tags.py:41 +#: picard/util/tags.py:40 msgid "Mood" msgstr "" -#: picard/util/tags.py:42 +#: picard/util/tags.py:41 msgid "BPM" msgstr "" -#: picard/util/tags.py:43 +#: picard/util/tags.py:42 msgid "Copyright" msgstr "" -#: picard/util/tags.py:44 +#: picard/util/tags.py:43 msgid "License" msgstr "" -#: picard/util/tags.py:45 +#: picard/util/tags.py:44 msgid "Composer" msgstr "" -#: picard/util/tags.py:46 +#: picard/util/tags.py:45 msgid "Writer" msgstr "" -#: picard/util/tags.py:47 +#: picard/util/tags.py:46 msgid "Conductor" msgstr "" -#: picard/util/tags.py:48 +#: picard/util/tags.py:47 msgid "Lyricist" msgstr "" -#: picard/util/tags.py:49 +#: picard/util/tags.py:48 msgid "Arranger" msgstr "" -#: picard/util/tags.py:50 +#: picard/util/tags.py:49 msgid "Producer" msgstr "" -#: picard/util/tags.py:51 +#: picard/util/tags.py:50 msgid "Engineer" msgstr "" -#: picard/util/tags.py:52 +#: picard/util/tags.py:51 msgid "Subtitle" msgstr "" -#: picard/util/tags.py:53 +#: picard/util/tags.py:52 msgid "Disc Subtitle" msgstr "" -#: picard/util/tags.py:54 +#: picard/util/tags.py:53 msgid "Remixer" msgstr "" -#: picard/util/tags.py:55 +#: picard/util/tags.py:54 msgid "MusicBrainz Recording Id" msgstr "" -#: picard/util/tags.py:56 +#: picard/util/tags.py:55 msgid "MusicBrainz Track Id" msgstr "" -#: picard/util/tags.py:57 +#: picard/util/tags.py:56 msgid "MusicBrainz Release Id" msgstr "" -#: picard/util/tags.py:58 +#: picard/util/tags.py:57 msgid "MusicBrainz Artist Id" msgstr "" -#: picard/util/tags.py:59 +#: picard/util/tags.py:58 msgid "MusicBrainz Release Artist Id" msgstr "" -#: picard/util/tags.py:60 +#: picard/util/tags.py:59 msgid "MusicBrainz Work Id" msgstr "" -#: picard/util/tags.py:61 +#: picard/util/tags.py:60 msgid "MusicBrainz Release Group Id" msgstr "" -#: picard/util/tags.py:62 +#: picard/util/tags.py:61 msgid "MusicBrainz Disc Id" msgstr "" -#: picard/util/tags.py:63 -msgid "MusicBrainz Sort Name" -msgstr "" - -#: picard/util/tags.py:64 +#: picard/util/tags.py:62 msgid "MusicIP PUID" msgstr "" -#: picard/util/tags.py:65 +#: picard/util/tags.py:63 msgid "MusicIP Fingerprint" msgstr "" -#: picard/util/tags.py:66 +#: picard/util/tags.py:64 msgid "AcoustID" msgstr "" -#: picard/util/tags.py:67 +#: picard/util/tags.py:65 msgid "AcoustID Fingerprint" msgstr "" -#: picard/util/tags.py:68 +#: picard/util/tags.py:66 msgid "Disc Id" msgstr "" -#: picard/util/tags.py:69 -msgid "Website" +#: picard/util/tags.py:67 +msgid "Artist Website" msgstr "" -#: picard/util/tags.py:70 +#: picard/util/tags.py:68 msgid "Compilation (iTunes)" msgstr "" -#: picard/util/tags.py:71 +#: picard/util/tags.py:69 msgid "Comment" msgstr "" -#: picard/util/tags.py:72 +#: picard/util/tags.py:70 msgid "Genre" msgstr "" -#: picard/util/tags.py:73 +#: picard/util/tags.py:71 msgid "Encoded By" msgstr "" -#: picard/util/tags.py:74 +#: picard/util/tags.py:72 +msgid "Encoder Settings" +msgstr "" + +#: picard/util/tags.py:73 msgid "Performer" msgstr "" -#: picard/util/tags.py:75 +#: picard/util/tags.py:74 msgid "Release Type" msgstr "" -#: picard/util/tags.py:76 +#: picard/util/tags.py:75 msgid "Release Status" msgstr "" -#: picard/util/tags.py:77 +#: picard/util/tags.py:76 msgid "Release Country" msgstr "" -#: picard/util/tags.py:78 +#: picard/util/tags.py:77 msgid "Record Label" msgstr "" -#: picard/util/tags.py:80 +#: picard/util/tags.py:79 msgid "Catalog Number" msgstr "" -#: picard/util/tags.py:82 +#: picard/util/tags.py:80 msgid "DJ-Mixer" msgstr "" -#: picard/util/tags.py:83 +#: picard/util/tags.py:81 msgid "Media" msgstr "" -#: picard/util/tags.py:84 +#: picard/util/tags.py:82 msgid "Lyrics" msgstr "" -#: picard/util/tags.py:85 +#: picard/util/tags.py:83 msgid "Mixer" msgstr "" -#: picard/util/tags.py:86 +#: picard/util/tags.py:84 msgid "Language" msgstr "" -#: picard/util/tags.py:87 +#: picard/util/tags.py:85 msgid "Script" msgstr "" -#: picard/util/tags.py:89 +#: picard/util/tags.py:87 msgid "Rating" msgstr "" -#: picard/util/tags.py:90 +#: picard/util/tags.py:88 msgid "Artists" msgstr "" -#: picard/util/tags.py:91 +#: picard/util/tags.py:89 msgid "Work" msgstr "" diff --git a/po/es.po b/po/es.po index 8c9c0ef1e..7b92110ae 100644 --- a/po/es.po +++ b/po/es.po @@ -10,8 +10,8 @@ msgid "" msgstr "" "Project-Id-Version: MusicBrainz\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2014-04-12 14:32+0200\n" -"PO-Revision-Date: 2014-04-13 10:01+0000\n" +"POT-Creation-Date: 2014-05-03 17:28+0200\n" +"PO-Revision-Date: 2014-05-04 13:43+0000\n" "Last-Translator: Ismael Olea \n" "Language-Team: Spanish (http://www.transifex.com/projects/p/musicbrainz/language/es/)\n" "MIME-Version: 1.0\n" @@ -21,6 +21,10 @@ msgstr "" "Language: es\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" +#: contrib/plugins/albumartist_website.py:3 +msgid "Album Artist Website" +msgstr "Página web del intérprete del álbum" + #: contrib/plugins/no_release.py:50 msgid "Enable plugin for all releases by default" msgstr "Activar el complemento en todas las actualizaciones" @@ -33,6 +37,10 @@ msgstr "Etiquetas a eliminar (separadas por comas)" msgid "Remove specific release information..." msgstr "Eliminar los datos específicos a la publicación..." +#: contrib/plugins/standardise_performers.py:3 +msgid "Standardise Performers" +msgstr "" + #: contrib/plugins/lastfm/ui_options_lastfm.py:99 msgid "Last.fm" msgstr "Last.fm" @@ -85,40 +93,40 @@ msgstr " %" msgid "Calculate replay &gain..." msgstr "Calcular la &ganancia de reproducción..." -#: contrib/plugins/replaygain/__init__.py:66 +#: contrib/plugins/replaygain/__init__.py:67 #, python-format -msgid "Calculating replay gain for \"%s\"..." -msgstr "Calculando la ganancia de \"%s\"..." +msgid "Calculating replay gain for \"%(filename)s\"..." +msgstr "Calculando la ganancia de \"%(filename)s\"..." -#: contrib/plugins/replaygain/__init__.py:71 +#: contrib/plugins/replaygain/__init__.py:75 #, python-format -msgid "Replay gain for \"%s\" successfully calculated." -msgstr "Ganancia de reproducción de \"%s\" calculada." +msgid "Replay gain for \"%(filename)s\" successfully calculated." +msgstr "Ganancia de reproducción de \"%(filename)s\" calculada." -#: contrib/plugins/replaygain/__init__.py:73 +#: contrib/plugins/replaygain/__init__.py:80 #, python-format -msgid "Could not calculate replay gain for \"%s\"." -msgstr "No he podido calcular la ganancia de reproducción de \"%s\"." +msgid "Could not calculate replay gain for \"%(filename)s\"." +msgstr "No he podido calcular la ganancia de reproducción de \"%(filename)s\"." -#: contrib/plugins/replaygain/__init__.py:76 +#: contrib/plugins/replaygain/__init__.py:85 msgid "Calculate album &gain..." msgstr "Calcular &ganancia del álbum..." -#: contrib/plugins/replaygain/__init__.py:103 -#: contrib/plugins/replaygain/__init__.py:111 +#: contrib/plugins/replaygain/__init__.py:113 +#: contrib/plugins/replaygain/__init__.py:124 #, python-format -msgid "Calculating album gain for \"%s\"..." -msgstr "Calculando la &ganancia del álbum \"%s\"..." +msgid "Calculating album gain for \"%(album)s\"..." +msgstr "Calculando la &ganancia del álbum \"%(album)s\"..." -#: contrib/plugins/replaygain/__init__.py:119 +#: contrib/plugins/replaygain/__init__.py:135 #, python-format -msgid "Album gain for \"%s\" successfully calculated." -msgstr "Ganancia del álbum \"%s\" calculada." +msgid "Album gain for \"%(album)s\" successfully calculated." +msgstr "Ganancia del álbum \"%(album)s\" calculada." -#: contrib/plugins/replaygain/__init__.py:121 +#: contrib/plugins/replaygain/__init__.py:140 #, python-format -msgid "Could not calculate album gain for \"%s\"." -msgstr "No he podido calcular la ganancia del álbum\"%s\"." +msgid "Could not calculate album gain for \"%(album)s\"." +msgstr "No he podido calcular la ganancia del álbum \"%(album)s\"." #: contrib/plugins/replaygain/ui_options_replaygain.py:59 msgid "Replay Gain" @@ -140,385 +148,252 @@ msgstr "Ruta a metaflac:" msgid "Path to wvgain:" msgstr "Ruta a wvgain:" -#: picard/acoustid.py:102 +#: contrib/plugins/viewvariables/__init__.py:42 #, python-format -msgid "AcoustID lookup network error for '%s'!" -msgstr "Error de red en la búsqueda AcoustID para %s" +msgid "File: %s" +msgstr "Archivo: %s" -#: picard/acoustid.py:117 +#: contrib/plugins/viewvariables/__init__.py:47 #, python-format -msgid "AcoustID lookup failed for '%s'!" -msgstr "La búsqueda AcoustID para %s ha fallado" +msgid "Track: %s %s " +msgstr "Pista: %s %s" -#: picard/acoustid.py:128 +#: contrib/plugins/viewvariables/__init__.py:49 +msgid "Variables" +msgstr "Variables" + +#: contrib/plugins/viewvariables/__init__.py:69 +msgid "File variables" +msgstr "Variables de archivo" + +#: contrib/plugins/viewvariables/__init__.py:74 +msgid "Hidden variables" +msgstr "Variables ocultas" + +#: contrib/plugins/viewvariables/__init__.py:79 +msgid "Tag variables" +msgstr "Variables de etiqueta" + +#: contrib/plugins/viewvariables/ui_variables_dialog.py:73 +msgid "Variable" +msgstr "Variable" + +#: contrib/plugins/viewvariables/ui_variables_dialog.py:75 +msgid "Value" +msgstr "Valor" + +#: picard/acoustid.py:109 #, python-format -msgid "Acoustid lookup returned no result for file '%s'" -msgstr "La búsqueda AcoustID no ofrece resultados para %s" +msgid "AcoustID lookup network error for '%(filename)s'!" +msgstr "Error de red en la búsqueda AcoustID para '%(filename)s'" -#: picard/acoustid.py:132 +#: picard/acoustid.py:133 #, python-format -msgid "Looking up the fingerprint for file %s..." -msgstr "Buscando huella digital para el archivo %s..." +msgid "AcoustID lookup failed for '%(filename)s'!" +msgstr "La búsqueda AcoustID para '%(filename)s' ha fallado" -#: picard/acoustidmanager.py:78 -msgid "Submitting AcoustIDs..." -msgstr "Enviando códigos AcoustID" - -#: picard/acoustidmanager.py:83 +#: picard/acoustid.py:155 #, python-format -msgid "AcoustID submission failed with error '%s'" -msgstr "Ha fallado el envío de códigos AcoustID: %s" +msgid "AcoustID lookup returned no result for file '%(filename)s'" +msgstr "La búsqueda AcoustID no ofrece resultados para '%(filename)s'" -#: picard/acoustidmanager.py:85 +#: picard/acoustid.py:166 +#, python-format +msgid "Looking up the fingerprint for file '%(filename)s' ..." +msgstr "Buscando huella digital para el archivo '%(filename)s'..." + +#: picard/acoustidmanager.py:80 +msgid "Submitting AcoustIDs ..." +msgstr "Enviando códigos AcoustID…" + +#: picard/acoustidmanager.py:94 +#, python-format +msgid "AcoustID submission failed with error '%(error)s'" +msgstr "Ha fallado el envío de códigos AcoustID: '%(error)s'" + +#: picard/acoustidmanager.py:102 msgid "AcoustIDs successfully submitted." msgstr "Se han enviado los códigos AcoustID." -#: picard/album.py:64 picard/cluster.py:234 +#: picard/album.py:65 picard/cluster.py:255 msgid "Unmatched Files" msgstr "Archivos desagrupados" -#: picard/album.py:187 +#: picard/album.py:188 #, python-format msgid "[could not load album %s]" msgstr "[no se pudo cargar el álbum %s]" -#: picard/album.py:275 +#: picard/album.py:277 #, python-format -msgid "Album %s loaded: %s - %s" -msgstr "Álbum %s cargado: %s - %s" +msgid "Album %(id)s loaded: %(artist)s - %(album)s" +msgstr "Álbum %(id)s cargado: %(artist)s - %(album)s" -#: picard/album.py:292 +#: picard/album.py:294 +#, python-format +msgid "Loading album %(id)s ..." +msgstr "Cargando álbum %(id)s ..." + +#: picard/album.py:303 msgid "[loading album information]" msgstr "[cargando información del álbum]" -#: picard/album.py:467 +#: picard/album.py:478 #, python-format msgid "; %i image" msgid_plural "; %i images" msgstr[0] " ; %i imagen" msgstr[1] " ; %i imágenes" -#: picard/cluster.py:150 picard/cluster.py:159 +#: picard/cluster.py:155 picard/cluster.py:168 #, python-format -msgid "No matching releases for cluster %s" -msgstr "No se han encontrado publicaciones coincidentes con el grupo %s" +msgid "No matching releases for cluster %(album)s" +msgstr "No se han encontrado publicaciones coincidentes con el grupo %(album)s" -#: picard/cluster.py:161 +#: picard/cluster.py:174 #, python-format -msgid "Cluster %s identified!" -msgstr "¡Identificado el grupo %s!" +msgid "Cluster %(album)s identified!" +msgstr "¡Identificado el grupo '%(album)s'!" -#: picard/cluster.py:168 +#: picard/cluster.py:185 #, python-format -msgid "Looking up the metadata for cluster %s..." -msgstr "Buscando metadatos para el grupo %s..." +msgid "Looking up the metadata for cluster %(album)s..." +msgstr "Buscando metadatos para el grupo %(album)s..." -#: picard/collection.py:60 +#: picard/collection.py:64 #, python-format -msgid "Added %i release to collection \"%s\"" -msgid_plural "Added %i releases to collection \"%s\"" -msgstr[0] "Añadida %i publicación a la colección \"%s\"" -msgstr[1] "Añadidas %i publicaciones a la colección \"%s\"" +msgid "Added %(count)i release to collection \"%(name)s\"" +msgid_plural "Added %(count)i releases to collection \"%(name)s\"" +msgstr[0] "" +msgstr[1] "" -#: picard/collection.py:72 +#: picard/collection.py:86 #, python-format -msgid "Removed %i release from collection \"%s\"" -msgid_plural "Removed %i releases from collection \"%s\"" -msgstr[0] "Eliminada %i publicación de la colección \"%s\"" -msgstr[1] "Eliminadas %i publicaciones de la colección \"%s\"" +msgid "Removed %(count)i release from collection \"%(name)s\"" +msgid_plural "Removed %(count)i releases from collection \"%(name)s\"" +msgstr[0] "" +msgstr[1] "" -#: picard/collection.py:81 +#: picard/collection.py:100 #, python-format -msgid "Error loading collections: %s" -msgstr "Error al cargar las colecciones: %s" +msgid "Error loading collections: %(error)s" +msgstr "Error al cargar las colecciones: %(error)s" -#: picard/config_upgrade.py:57 picard/config_upgrade.py:70 +#: picard/config_upgrade.py:58 picard/config_upgrade.py:71 msgid "Various Artists file naming scheme removal" msgstr "Borrado del método de nombrado de archivos de múltiples artistas" -#: picard/config_upgrade.py:58 +#: picard/config_upgrade.py:59 msgid "" "The separate file naming scheme for various artists albums has been removed in this version of Picard.\n" "Your file naming scheme has automatically been merged with that of single artist albums." msgstr "Esta versión de Picard elimina el método de nombrado específico para álbumes de múltiples artistas. \nSu método de nombrado ha sido combinado automáticamente con el de álbumes de un solo artista." -#: picard/config_upgrade.py:71 +#: picard/config_upgrade.py:72 msgid "" "The separate file naming scheme for various artists albums has been removed in this version of Picard.\n" "You currently do not use this option, but have a separate file naming scheme defined.\n" "Do you want to remove it or merge it with your file naming scheme for single artist albums?" msgstr "Esta versión de Picard elimina el método de nombrado específico para álbumes de múltiples artistas. \nNo está usando esta opción, pero tiene guardado un método específico para el caso. \n¿Desea eliminarlo o combinarlo con el método para álbumes de un solo artista?" -#: picard/config_upgrade.py:77 +#: picard/config_upgrade.py:78 msgid "Merge" msgstr "Combinar" -#: picard/config_upgrade.py:77 picard/ui/metadatabox.py:254 +#: picard/config_upgrade.py:78 picard/ui/metadatabox.py:254 msgid "Remove" msgstr "Eliminar" -#: picard/const.py:67 -msgid "CD" -msgstr "CD" - -#: picard/const.py:68 -msgid "CD-R" -msgstr "CD-R" - -#: picard/const.py:69 -msgid "HDCD" -msgstr "HDCD" - -#: picard/const.py:70 -msgid "8cm CD" -msgstr "CD 8cm" - -#: picard/const.py:71 -msgid "Vinyl" -msgstr "Vinilo" - -#: picard/const.py:72 -msgid "7\" Vinyl" -msgstr "Vinilo 7\"" - -#: picard/const.py:73 -msgid "10\" Vinyl" -msgstr "Vinilo 10\"" - -#: picard/const.py:74 -msgid "12\" Vinyl" -msgstr "Vinilo 12\"" - -#: picard/const.py:75 -msgid "Digital Media" -msgstr "Medio digital" - -#: picard/const.py:76 -msgid "USB Flash Drive" -msgstr "Unidad flash USB" - -#: picard/const.py:77 -msgid "slotMusic" -msgstr "slotMusic" - -#: picard/const.py:78 -msgid "Cassette" -msgstr "Cinta" - -#: picard/const.py:79 -msgid "DVD" -msgstr "DVD" - -#: picard/const.py:80 -msgid "DVD-Audio" -msgstr "DVD-Audio" - -#: picard/const.py:81 -msgid "DVD-Video" -msgstr "DVD-Vídeo" - -#: picard/const.py:82 -msgid "SACD" -msgstr "SACD" - -#: picard/const.py:83 -msgid "DualDisc" -msgstr "DualDisc" - -#: picard/const.py:84 -msgid "MiniDisc" -msgstr "MiniDisc" - -#: picard/const.py:85 -msgid "Blu-ray" -msgstr "Blu-ray" - -#: picard/const.py:86 -msgid "HD-DVD" -msgstr "HD-DVD" - -#: picard/const.py:87 -msgid "Videotape" -msgstr "Videocinta" - -#: picard/const.py:88 -msgid "VHS" -msgstr "VHS" - -#: picard/const.py:89 -msgid "Betamax" -msgstr "Betamax" - #: picard/const.py:90 -msgid "VCD" -msgstr "VCD" - -#: picard/const.py:91 -msgid "SVCD" -msgstr "SVCD" - -#: picard/const.py:92 -msgid "UMD" -msgstr "UMD" - -#: picard/const.py:93 picard/coverartarchive.py:33 -#: picard/ui/ui_options_releases.py:222 -msgid "Other" -msgstr "Otro" - -#: picard/const.py:94 -msgid "LaserDisc" -msgstr "LaserDisc" - -#: picard/const.py:95 -msgid "Cartridge" -msgstr "Cartucho" - -#: picard/const.py:96 -msgid "Reel-to-reel" -msgstr "Magnetófono de bobina abierta" - -#: picard/const.py:97 -msgid "DAT" -msgstr "DAT" - -#: picard/const.py:98 -msgid "Wax Cylinder" -msgstr "Cilindro de cera" - -#: picard/const.py:99 -msgid "Piano Roll" -msgstr "Pianola" - -#: picard/const.py:100 -msgid "DCC" -msgstr "DCC" - -#: picard/const.py:115 msgid "Danish" msgstr "Danés" -#: picard/const.py:116 +#: picard/const.py:91 msgid "German" msgstr "Alemán" -#: picard/const.py:118 +#: picard/const.py:93 msgid "English" msgstr "Inglés" -#: picard/const.py:119 +#: picard/const.py:94 msgid "English (Canada)" msgstr "Inglés (Canadá)" -#: picard/const.py:120 +#: picard/const.py:95 msgid "English (UK)" msgstr "Inglés (Reino Unido)" -#: picard/const.py:122 +#: picard/const.py:97 msgid "Spanish" msgstr "Español" -#: picard/const.py:123 +#: picard/const.py:98 msgid "Estonian" msgstr "Estonio" -#: picard/const.py:125 +#: picard/const.py:100 msgid "Finnish" msgstr "Finlandés" -#: picard/const.py:127 +#: picard/const.py:102 msgid "French" msgstr "Francés" -#: picard/const.py:136 +#: picard/const.py:111 msgid "Italian" msgstr "Italiano" -#: picard/const.py:143 +#: picard/const.py:118 msgid "Dutch" msgstr "Danés" -#: picard/const.py:145 +#: picard/const.py:120 msgid "Polish" msgstr "Polaco" -#: picard/const.py:147 +#: picard/const.py:122 msgid "Brazilian Portuguese" msgstr "Portugués de Brasil" -#: picard/const.py:154 +#: picard/const.py:129 msgid "Swedish" msgstr "Sueco" -#: picard/coverart.py:86 +#: picard/coverart.py:85 #, python-format -msgid "Cover art of type '%s' downloaded for %s from %s" -msgstr "La carátula de tipo '%s' descargada para %s desde %s" +msgid "Cover art of type '%(type)s' downloaded for %(albumid)s from %(host)s" +msgstr "La carátula de tipo '%(type)s' descargada para %(albumid)s desde %(host)s" -#: picard/coverart.py:260 +#: picard/coverart.py:256 #, python-format -msgid "Downloading cover art of type '%s' for %s from %s ..." -msgstr "Descargando la carátula de tipo '%s' para %s desde %s…" - -#: picard/coverartarchive.py:24 -msgid "Front" -msgstr "Frontal" - -#: picard/coverartarchive.py:25 -msgid "Back" -msgstr "Trasera" - -#: picard/coverartarchive.py:26 -msgid "Booklet" -msgstr "Libreto" - -#: picard/coverartarchive.py:27 -msgid "Medium" -msgstr "Medio" - -#: picard/coverartarchive.py:28 -msgid "Tray" -msgstr "Bandeja" - -#: picard/coverartarchive.py:29 -msgid "Obi" -msgstr "Obi" +msgid "" +"Downloading cover art of type '%(type)s' for %(albumid)s from %(host)s .." +msgstr "Descargando la carátula de tipo '%(type)s' para %(albumid)s desde %(host)s…" #: picard/coverartarchive.py:30 -msgid "Spine" -msgstr "Lomo" - -#: picard/coverartarchive.py:31 picard/ui/mainwindow.py:566 -msgid "Track" -msgstr "Pista" - -#: picard/coverartarchive.py:32 -msgid "Sticker" -msgstr "Pegatina" - -#: picard/coverartarchive.py:34 msgid "Unknown" msgstr "Desconocido" -#: picard/file.py:485 +#: picard/file.py:494 #, python-format -msgid "No matching tracks for file %s" -msgstr "No se han encontrado pistas concordantes para el archivo %s" +msgid "No matching tracks for file '%(filename)s'" +msgstr "No se han encontrado pistas concordantes para el archivo '%(filename)s'" -#: picard/file.py:497 +#: picard/file.py:510 #, python-format -msgid "No matching tracks above the threshold for file %s" -msgstr "No concuerdan pistas por encima del umbral para el archivo %s" +msgid "No matching tracks above the threshold for file '%(filename)s'" +msgstr "No concuerdan pistas por encima del umbral para el archivo '%(filename)s'" -#: picard/file.py:500 +#: picard/file.py:517 #, python-format -msgid "File %s identified!" -msgstr "¡Identificado el archivo %s!" +msgid "File '%(filename)s' identified!" +msgstr "¡Identificado el archivo '%(filename)s'!" -#: picard/file.py:516 +#: picard/file.py:537 #, python-format -msgid "Looking up the metadata for file %s..." -msgstr "Buscando metadatos para el archivo %s..." +msgid "Looking up the metadata for file %(filename)s ..." +msgstr "Buscando metadatos en archivo %(filename)s..." #: picard/releasegroup.py:53 msgid "Tracks" @@ -552,21 +427,23 @@ msgstr "[sin código de barras]" msgid "[no release info]" msgstr "[sin información]" -#: picard/tagger.py:348 +#: picard/tagger.py:370 #, python-format -msgid "Adding %d files from '%s' ..." -msgstr "Añadiendo %d archivos desde '%s' ..." +msgid "Adding %(count)d file from '%(directory)s' ..." +msgid_plural "Adding %(count)d files from '%(directory)s' ..." +msgstr[0] "Añadiendo %(count)d archivo desde '%(directory)s' ..." +msgstr[1] "Añadiendo %(count)d archivos desde '%(directory)s' ..." -#: picard/tagger.py:482 +#: picard/tagger.py:512 #, python-format -msgid "Removing album %s: %s - %s" -msgstr "Eliminar el álbum %s: %s - %s" +msgid "Removing album %(id)s: %(artist)s - %(album)s" +msgstr "Eliminando el álbum %(id)s: %(artist)s - %(album)s" -#: picard/tagger.py:493 +#: picard/tagger.py:528 msgid "CD Lookup Error" msgstr "Error al buscar CD" -#: picard/tagger.py:494 +#: picard/tagger.py:529 #, python-format msgid "" "Error while reading CD:\n" @@ -574,13 +451,12 @@ msgid "" "%s" msgstr "Error leyendo el CD:\n\n%s" -#: picard/ui/cdlookup.py:35 picard/ui/mainwindow.py:564 -#: picard/ui/ui_options_releases.py:212 picard/util/tags.py:21 +#: picard/ui/cdlookup.py:35 picard/ui/mainwindow.py:597 picard/util/tags.py:21 msgid "Album" msgstr "Álbum" #: picard/ui/cdlookup.py:35 picard/ui/itemviews.py:96 -#: picard/ui/mainwindow.py:565 picard/util/tags.py:22 +#: picard/ui/mainwindow.py:598 picard/util/tags.py:22 msgid "Artist" msgstr "Artista" @@ -751,13 +627,17 @@ msgstr "vista de álbumes" msgid "Contains albums and matched files" msgstr "Contiene álbumes y archivos agrupados" -#: picard/ui/logview.py:92 +#: picard/ui/logview.py:109 msgid "Log" msgstr "Bitácora" -#: picard/ui/logview.py:100 -msgid "Status History" -msgstr "Historial de estados" +#: picard/ui/logview.py:113 +msgid "Debug mode" +msgstr "Modo de depuración" + +#: picard/ui/logview.py:134 +msgid "Activity History" +msgstr "Historial de actividad" #: picard/ui/mainwindow.py:74 msgid "MusicBrainz Picard" @@ -800,280 +680,299 @@ msgstr "Picard se integra con su navegador escuchando en este puerto.Cuando bus msgid " Listening on port %(port)d " msgstr " Escuchando en el puerto %(port)d " -#: picard/ui/mainwindow.py:266 +#: picard/ui/mainwindow.py:299 msgid "Submission Error" msgstr "Error de envío" -#: picard/ui/mainwindow.py:267 +#: picard/ui/mainwindow.py:300 msgid "" "You need to configure your AcoustID API key before you can submit " "fingerprints." msgstr "Necesita configurar su clave del API de AcoustID antes de poder enviar\nhuellas digitales." -#: picard/ui/mainwindow.py:272 +#: picard/ui/mainwindow.py:305 msgid "&Options..." msgstr "&Opciones..." -#: picard/ui/mainwindow.py:276 +#: picard/ui/mainwindow.py:309 msgid "&Cut" msgstr "&Cortar" -#: picard/ui/mainwindow.py:281 +#: picard/ui/mainwindow.py:314 msgid "&Paste" msgstr "&Pegar" -#: picard/ui/mainwindow.py:286 +#: picard/ui/mainwindow.py:319 msgid "&Help..." msgstr "Ayuda" -#: picard/ui/mainwindow.py:290 +#: picard/ui/mainwindow.py:323 msgid "&About..." msgstr "&Acerca de..." -#: picard/ui/mainwindow.py:294 +#: picard/ui/mainwindow.py:327 msgid "&Donate..." msgstr "&Donar..." -#: picard/ui/mainwindow.py:297 +#: picard/ui/mainwindow.py:330 msgid "&Report a Bug..." msgstr "Info&rmar de un problema..." -#: picard/ui/mainwindow.py:300 +#: picard/ui/mainwindow.py:333 msgid "&Support Forum..." msgstr "Foro de &Soporte" -#: picard/ui/mainwindow.py:303 +#: picard/ui/mainwindow.py:336 msgid "&Add Files..." msgstr "&Añadir archivos..." -#: picard/ui/mainwindow.py:304 +#: picard/ui/mainwindow.py:337 msgid "Add files to the tagger" msgstr "Añadir archivos al etiquetador" -#: picard/ui/mainwindow.py:309 +#: picard/ui/mainwindow.py:342 msgid "A&dd Folder..." msgstr "A&gregar carpeta…" -#: picard/ui/mainwindow.py:310 +#: picard/ui/mainwindow.py:343 msgid "Add a folder to the tagger" msgstr "Añadir carpeta al etiquetador" -#: picard/ui/mainwindow.py:312 +#: picard/ui/mainwindow.py:345 msgid "Ctrl+D" msgstr "Ctrl+D" -#: picard/ui/mainwindow.py:315 +#: picard/ui/mainwindow.py:348 msgid "&Save" msgstr "&Guardar" -#: picard/ui/mainwindow.py:316 +#: picard/ui/mainwindow.py:349 msgid "Save selected files" msgstr "Guardar los archivos seleccionados" -#: picard/ui/mainwindow.py:322 +#: picard/ui/mainwindow.py:355 msgid "S&ubmit" msgstr "&Enviar" -#: picard/ui/mainwindow.py:323 +#: picard/ui/mainwindow.py:356 msgid "Submit acoustic fingerprints" msgstr "Enviar huellas acústicas" -#: picard/ui/mainwindow.py:327 +#: picard/ui/mainwindow.py:360 msgid "E&xit" msgstr "&Salir" -#: picard/ui/mainwindow.py:330 +#: picard/ui/mainwindow.py:363 msgid "Ctrl+Q" msgstr "Ctrl+Q" -#: picard/ui/mainwindow.py:333 +#: picard/ui/mainwindow.py:366 msgid "&Remove" msgstr "&Eliminar" -#: picard/ui/mainwindow.py:334 +#: picard/ui/mainwindow.py:367 msgid "Remove selected files/albums" msgstr "Eliminar los archivos/álbumes seleccionados" -#: picard/ui/mainwindow.py:338 +#: picard/ui/mainwindow.py:371 msgid "Lookup in &Browser" msgstr "Buscar en el &navegador" -#: picard/ui/mainwindow.py:339 +#: picard/ui/mainwindow.py:372 msgid "Lookup selected item on MusicBrainz website" msgstr "Buscar el elemento seleccionado en la página de MusicBrainz" -#: picard/ui/mainwindow.py:343 +#: picard/ui/mainwindow.py:376 msgid "File &Browser" msgstr "&Explorador de archivos" -#: picard/ui/mainwindow.py:347 +#: picard/ui/mainwindow.py:380 msgid "Ctrl+B" msgstr "Ctrl+B" -#: picard/ui/mainwindow.py:350 +#: picard/ui/mainwindow.py:383 msgid "&Cover Art" msgstr "&Carátulas" -#: picard/ui/mainwindow.py:356 picard/ui/mainwindow.py:558 +#: picard/ui/mainwindow.py:389 picard/ui/mainwindow.py:591 msgid "Search" msgstr "Buscar" -#: picard/ui/mainwindow.py:359 +#: picard/ui/mainwindow.py:392 msgid "Lookup &CD..." msgstr "Buscar &CD…" -#: picard/ui/mainwindow.py:360 +#: picard/ui/mainwindow.py:393 msgid "Lookup the details of the CD in your drive" msgstr "Buscar los detalles del CD en su unidad" -#: picard/ui/mainwindow.py:362 +#: picard/ui/mainwindow.py:395 msgid "Ctrl+K" msgstr "Ctrl+K" -#: picard/ui/mainwindow.py:365 +#: picard/ui/mainwindow.py:398 msgid "&Scan" msgstr "&Analizar" -#: picard/ui/mainwindow.py:368 +#: picard/ui/mainwindow.py:401 msgid "Ctrl+Y" msgstr "Ctrl+Y" -#: picard/ui/mainwindow.py:371 +#: picard/ui/mainwindow.py:404 msgid "Cl&uster" msgstr "Agr&upar" -#: picard/ui/mainwindow.py:374 +#: picard/ui/mainwindow.py:407 msgid "Ctrl+U" msgstr "Ctrl+U" -#: picard/ui/mainwindow.py:377 +#: picard/ui/mainwindow.py:410 msgid "&Lookup" msgstr "&Buscar" -#: picard/ui/mainwindow.py:378 +#: picard/ui/mainwindow.py:411 msgid "Lookup selected items in MusicBrainz" msgstr "Buscar los términos elegidos en MusicBrainz" -#: picard/ui/mainwindow.py:383 +#: picard/ui/mainwindow.py:416 msgid "Ctrl+L" msgstr "Ctrl+L" -#: picard/ui/mainwindow.py:386 +#: picard/ui/mainwindow.py:419 msgid "&Info..." msgstr "&Info..." -#: picard/ui/mainwindow.py:389 +#: picard/ui/mainwindow.py:422 msgid "Ctrl+I" msgstr "Ctrl+I" -#: picard/ui/mainwindow.py:392 +#: picard/ui/mainwindow.py:425 msgid "&Refresh" msgstr "&Actualizar" -#: picard/ui/mainwindow.py:393 +#: picard/ui/mainwindow.py:426 msgid "Ctrl+R" msgstr "Ctrl+R" -#: picard/ui/mainwindow.py:396 +#: picard/ui/mainwindow.py:429 msgid "&Rename Files" msgstr "&Renombrar archivos" -#: picard/ui/mainwindow.py:401 +#: picard/ui/mainwindow.py:434 msgid "&Move Files" msgstr "&Mover archivos" -#: picard/ui/mainwindow.py:406 +#: picard/ui/mainwindow.py:439 msgid "Save &Tags" msgstr "Guardar &Etiquetas" -#: picard/ui/mainwindow.py:411 +#: picard/ui/mainwindow.py:444 msgid "Tags From &File Names..." msgstr "Etiquetar a partir de nombres de &archivo..." -#: picard/ui/mainwindow.py:414 +#: picard/ui/mainwindow.py:447 msgid "&Open My Collections in Browser" msgstr "&Abrir mis colecciones en el navegador" -#: picard/ui/mainwindow.py:418 +#: picard/ui/mainwindow.py:451 msgid "View Error/Debug &Log" msgstr "Examinar error/trazas de &depuración" -#: picard/ui/mainwindow.py:421 +#: picard/ui/mainwindow.py:454 msgid "View Activity &History" msgstr "Ver &historial de actividad" -#: picard/ui/mainwindow.py:428 +#: picard/ui/mainwindow.py:461 msgid "&Play file" msgstr "&Reproducir archivo" -#: picard/ui/mainwindow.py:429 +#: picard/ui/mainwindow.py:462 msgid "Play the file in your default media player" msgstr "Reproducir el archivo en su reproductor predeterminado" -#: picard/ui/mainwindow.py:433 +#: picard/ui/mainwindow.py:466 msgid "Open Containing &Folder" msgstr "Abrir la carpeta &contenedora" -#: picard/ui/mainwindow.py:434 +#: picard/ui/mainwindow.py:467 msgid "Open the containing folder in your file explorer" msgstr "Abrir la carpeta que contiene el archivo en su explorador" -#: picard/ui/mainwindow.py:459 +#: picard/ui/mainwindow.py:492 msgid "&File" msgstr "&Archivos" -#: picard/ui/mainwindow.py:470 +#: picard/ui/mainwindow.py:503 msgid "&Edit" msgstr "&Editar" -#: picard/ui/mainwindow.py:476 +#: picard/ui/mainwindow.py:509 msgid "&View" msgstr "&Vista" -#: picard/ui/mainwindow.py:482 +#: picard/ui/mainwindow.py:515 msgid "&Options" msgstr "&Opciones" -#: picard/ui/mainwindow.py:488 +#: picard/ui/mainwindow.py:521 msgid "&Tools" msgstr "Herramien&tas" -#: picard/ui/mainwindow.py:499 picard/ui/util.py:35 +#: picard/ui/mainwindow.py:532 picard/ui/util.py:35 msgid "&Help" msgstr "A&yuda" -#: picard/ui/mainwindow.py:520 +#: picard/ui/mainwindow.py:553 msgid "Actions" msgstr "Acciones" -#: picard/ui/mainwindow.py:629 +#: picard/ui/mainwindow.py:599 +msgid "Track" +msgstr "Pista" + +#: picard/ui/mainwindow.py:662 msgid "All Supported Formats" msgstr "Todos los formatos soportados" -#: picard/ui/mainwindow.py:661 +#: picard/ui/mainwindow.py:695 #, python-format -msgid "Adding directory: '%s' ..." -msgstr "Añadiendo carpeta '%s'…" +msgid "Adding directory: '%(directory)s' ..." +msgstr "Añadiendo carpeta '%(directory)s'…" -#: picard/ui/mainwindow.py:665 +#: picard/ui/mainwindow.py:702 #, python-format -msgid "Adding multiple directories from: '%s' ..." -msgstr "Añadir múltiples directorios desde '%s' ..." +msgid "Adding multiple directories from '%(directory)s' ..." +msgstr "Añadiendo múltiples carpetas desde '%(directory)s' ..." -#: picard/ui/mainwindow.py:728 +#: picard/ui/mainwindow.py:767 msgid "Configuration Required" msgstr "Se necesita configuración" -#: picard/ui/mainwindow.py:729 +#: picard/ui/mainwindow.py:768 msgid "" "Audio fingerprinting is not yet configured. Would you like to configure it " "now?" msgstr "El sistema de huellas digitales de audio no está configurado. ¿Quiere configurarlo ahora?" -#: picard/ui/mainwindow.py:811 picard/ui/mainwindow.py:818 +#: picard/ui/mainwindow.py:848 #, python-format -msgid " (Error: %s)" -msgstr " (Error: %s)" +msgid "%(filename)s (error: %(error)s)" +msgstr "%(filename)s (error: %(error)s)" + +#: picard/ui/mainwindow.py:854 +#, python-format +msgid "%(filename)s" +msgstr "%(filename)s" + +#: picard/ui/mainwindow.py:864 +#, python-format +msgid "%(filename)s (%(similarity)d%%) (error: %(error)s)" +msgstr "%(filename)s (%(similarity)d%%) (error: %(error)s)" + +#: picard/ui/mainwindow.py:871 +#, python-format +msgid "%(filename)s (%(similarity)d%%)" +msgstr "%(filename)s (%(similarity)d%%)" #: picard/ui/metadatabox.py:82 #, python-format @@ -1127,14 +1026,14 @@ msgid_plural "Use Original Values" msgstr[0] "" msgstr[1] "Usar valor original" -#: picard/ui/passworddialog.py:39 +#: picard/ui/passworddialog.py:40 #, python-format msgid "" "The server %s requires you to login. Please enter your username and " "password." msgstr "El servidor %s requiere autenticación. Por favor, introduzca su nombre de usuario y contraseña." -#: picard/ui/passworddialog.py:77 +#: picard/ui/passworddialog.py:79 #, python-format msgid "" "The proxy %s requires you to login. Please enter your username and password." @@ -1209,71 +1108,71 @@ msgstr "Unidad de CD-ROM que se utilizará para las búsquedas:" msgid "Default CD-ROM drive to use for lookups:" msgstr "Unidad de CD-ROM predeterminada que se utilizará para las búsquedas" -#: picard/ui/ui_options_cover.py:132 +#: picard/ui/ui_options_cover.py:131 msgid "Location" msgstr "Ubicación" -#: picard/ui/ui_options_cover.py:133 +#: picard/ui/ui_options_cover.py:132 msgid "Embed cover images into tags" msgstr "Guardar las carátulas de los álbumes en los archivos" -#: picard/ui/ui_options_cover.py:134 +#: picard/ui/ui_options_cover.py:133 msgid "Only embed a front image" msgstr "Guardar solamente la carátula principal" -#: picard/ui/ui_options_cover.py:135 +#: picard/ui/ui_options_cover.py:134 msgid "Save cover images as separate files" msgstr "Guardar carátulas de los álbumes en archivos separados" -#: picard/ui/ui_options_cover.py:136 +#: picard/ui/ui_options_cover.py:135 msgid "Use the following file name for images:" msgstr "Usar el siguiente nombre de archivo para las imágenes:" -#: picard/ui/ui_options_cover.py:137 +#: picard/ui/ui_options_cover.py:136 msgid "Overwrite the file if it already exists" msgstr "Sobrescribir el archivo si ya existe" -#: picard/ui/ui_options_cover.py:138 +#: picard/ui/ui_options_cover.py:137 msgid "Coverart Providers" msgstr "Proveedores de carátula" -#: picard/ui/ui_options_cover.py:139 +#: picard/ui/ui_options_cover.py:138 msgid "Amazon" msgstr "Amazon" -#: picard/ui/ui_options_cover.py:140 picard/ui/ui_options_cover.py:142 +#: picard/ui/ui_options_cover.py:139 picard/ui/ui_options_cover.py:141 msgid "Cover Art Archive" msgstr "Archivo de carátulas" -#: picard/ui/ui_options_cover.py:141 +#: picard/ui/ui_options_cover.py:140 msgid "Sites on the whitelist" msgstr "Sitios en lista blanca" -#: picard/ui/ui_options_cover.py:143 +#: picard/ui/ui_options_cover.py:142 msgid "Only use images of the following size:" msgstr "Usar solamente imágenes del siguiente tamaño:" -#: picard/ui/ui_options_cover.py:144 +#: picard/ui/ui_options_cover.py:143 msgid "250 px" msgstr "250 px" -#: picard/ui/ui_options_cover.py:145 +#: picard/ui/ui_options_cover.py:144 msgid "500 px" msgstr "500 px" -#: picard/ui/ui_options_cover.py:146 +#: picard/ui/ui_options_cover.py:145 msgid "Full size" msgstr "Tamaño completo" -#: picard/ui/ui_options_cover.py:147 +#: picard/ui/ui_options_cover.py:146 msgid "Download only images of the following types:" msgstr "Descargar solamente imágenes de los siguientes tipos:" -#: picard/ui/ui_options_cover.py:148 +#: picard/ui/ui_options_cover.py:147 msgid "Download only approved images" msgstr "Descargar solamente imágenes aprobadas" -#: picard/ui/ui_options_cover.py:149 +#: picard/ui/ui_options_cover.py:148 msgid "" "Use the first image type as the filename. This will not change the filename " "of front images." @@ -1523,63 +1422,23 @@ msgstr "Correo-e:" msgid "Submit ratings to MusicBrainz" msgstr "Enviar valoración a MusicBrainz" -#: picard/ui/ui_options_releases.py:211 +#: picard/ui/ui_options_releases.py:104 msgid "Preferred release types" msgstr "Tipos de publicación preferidos" -#: picard/ui/ui_options_releases.py:213 -msgid "Single" -msgstr "Simple" - -#: picard/ui/ui_options_releases.py:214 -msgid "EP" -msgstr "EP" - -#: picard/ui/ui_options_releases.py:215 -msgid "Compilation" -msgstr "Compilación" - -#: picard/ui/ui_options_releases.py:216 -msgid "Soundtrack" -msgstr "Soundtrack" - -#: picard/ui/ui_options_releases.py:217 -msgid "Spokenword" -msgstr "Palabra hablada" - -#: picard/ui/ui_options_releases.py:218 -msgid "Interview" -msgstr "Entrevista" - -#: picard/ui/ui_options_releases.py:219 -msgid "Audiobook" -msgstr "Audiolibro" - -#: picard/ui/ui_options_releases.py:220 -msgid "Live" -msgstr "En vivo" - -#: picard/ui/ui_options_releases.py:221 -msgid "Remix" -msgstr "Remix" - -#: picard/ui/ui_options_releases.py:223 -msgid "Reset all" -msgstr "Reiniciar todo" - -#: picard/ui/ui_options_releases.py:224 +#: picard/ui/ui_options_releases.py:105 msgid "Preferred release countries" msgstr "Países de publicación preferidos" -#: picard/ui/ui_options_releases.py:225 picard/ui/ui_options_releases.py:228 +#: picard/ui/ui_options_releases.py:106 picard/ui/ui_options_releases.py:109 msgid ">" msgstr ">" -#: picard/ui/ui_options_releases.py:226 picard/ui/ui_options_releases.py:229 +#: picard/ui/ui_options_releases.py:107 picard/ui/ui_options_releases.py:110 msgid "<" msgstr "<" -#: picard/ui/ui_options_releases.py:227 +#: picard/ui/ui_options_releases.py:108 msgid "Preferred release formats" msgstr "Formatos de publicación preferidos" @@ -1771,7 +1630,11 @@ msgstr "Avanzado" msgid "Regex Error" msgstr "Error en la expresión regular" -#: picard/ui/options/cover.py:63 +#: picard/ui/options/cover.py:44 +msgid "title" +msgstr "título" + +#: picard/ui/options/cover.py:68 msgid "Cover Art" msgstr "Carátula" @@ -1787,11 +1650,11 @@ msgstr "Interfaz de usuario" msgid "System default" msgstr "Configuración predeterminada" -#: picard/ui/options/interface.py:96 +#: picard/ui/options/interface.py:98 msgid "Language changed" msgstr "Idioma cambiado" -#: picard/ui/options/interface.py:96 +#: picard/ui/options/interface.py:99 msgid "" "You have changed the interface language. You have to restart Picard in order" " for the change to take effect." @@ -1813,31 +1676,35 @@ msgstr "Archivo" msgid "Ratings" msgstr "Puntuaciones" -#: picard/ui/options/releases.py:33 +#: picard/ui/options/releases.py:87 msgid "Preferred Releases" msgstr "Publicaciones preferidas" +#: picard/ui/options/releases.py:121 +msgid "Reset all" +msgstr "Reiniciar todo" + #: picard/ui/options/renaming.py:37 msgid "File Naming" msgstr "Nombrado de archivos" -#: picard/ui/options/renaming.py:184 +#: picard/ui/options/renaming.py:187 msgid "Error" msgstr "Error" -#: picard/ui/options/renaming.py:184 +#: picard/ui/options/renaming.py:187 msgid "The location to move files to must not be empty." msgstr "El lugar a donde mover los archivos no debe estar vacío." -#: picard/ui/options/renaming.py:194 +#: picard/ui/options/renaming.py:197 msgid "The file naming format must not be empty." msgstr "El formato de nombre de archivo no debe estar vacío." -#: picard/ui/options/scripting.py:98 +#: picard/ui/options/scripting.py:99 msgid "Scripting" msgstr "Escritura de scripts" -#: picard/ui/options/scripting.py:130 +#: picard/ui/options/scripting.py:131 msgid "Script Error" msgstr "Error de script" diff --git a/po/et.po b/po/et.po index 8791d0668..58e715e50 100644 --- a/po/et.po +++ b/po/et.po @@ -11,8 +11,8 @@ msgid "" msgstr "" "Project-Id-Version: MusicBrainz\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2014-04-12 14:32+0200\n" -"PO-Revision-Date: 2014-04-13 08:45+0000\n" +"POT-Creation-Date: 2014-05-03 17:28+0200\n" +"PO-Revision-Date: 2014-05-04 08:44+0000\n" "Last-Translator: nikki\n" "Language-Team: Estonian (http://www.transifex.com/projects/p/musicbrainz/language/et/)\n" "MIME-Version: 1.0\n" @@ -22,6 +22,10 @@ msgstr "" "Language: et\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" +#: contrib/plugins/albumartist_website.py:3 +msgid "Album Artist Website" +msgstr "" + #: contrib/plugins/no_release.py:50 msgid "Enable plugin for all releases by default" msgstr "Plugin lubakse vaikimisi kõigil väljalasetel" @@ -34,6 +38,10 @@ msgstr "Eemaldatavad sildid (komaga eraldatult)" msgid "Remove specific release information..." msgstr "Eemalda teatud väljalasketeave..." +#: contrib/plugins/standardise_performers.py:3 +msgid "Standardise Performers" +msgstr "" + #: contrib/plugins/lastfm/ui_options_lastfm.py:99 msgid "Last.fm" msgstr "Last.fm" @@ -86,40 +94,40 @@ msgstr "%" msgid "Calculate replay &gain..." msgstr "Arvuta helitugevuse parandusteave..." -#: contrib/plugins/replaygain/__init__.py:66 +#: contrib/plugins/replaygain/__init__.py:67 #, python-format -msgid "Calculating replay gain for \"%s\"..." -msgstr "Helitugevuse paranduse arvutamine: \"%s\"..." +msgid "Calculating replay gain for \"%(filename)s\"..." +msgstr "" -#: contrib/plugins/replaygain/__init__.py:71 +#: contrib/plugins/replaygain/__init__.py:75 #, python-format -msgid "Replay gain for \"%s\" successfully calculated." -msgstr "Helitugevuse parandus edukalt arvutatud: \"%s\"." +msgid "Replay gain for \"%(filename)s\" successfully calculated." +msgstr "" -#: contrib/plugins/replaygain/__init__.py:73 +#: contrib/plugins/replaygain/__init__.py:80 #, python-format -msgid "Could not calculate replay gain for \"%s\"." -msgstr "Helitugevuse paranduse arvutamine polnud võimalik: \"%s\"." +msgid "Could not calculate replay gain for \"%(filename)s\"." +msgstr "" -#: contrib/plugins/replaygain/__init__.py:76 +#: contrib/plugins/replaygain/__init__.py:85 msgid "Calculate album &gain..." msgstr "Arvuta albumi helitugevuse parandus..." -#: contrib/plugins/replaygain/__init__.py:103 -#: contrib/plugins/replaygain/__init__.py:111 +#: contrib/plugins/replaygain/__init__.py:113 +#: contrib/plugins/replaygain/__init__.py:124 #, python-format -msgid "Calculating album gain for \"%s\"..." -msgstr "Albumi helitugevuse paranduse arvutamine: \"%s\"..." +msgid "Calculating album gain for \"%(album)s\"..." +msgstr "" -#: contrib/plugins/replaygain/__init__.py:119 +#: contrib/plugins/replaygain/__init__.py:135 #, python-format -msgid "Album gain for \"%s\" successfully calculated." -msgstr "Albumi helitugevuse parandus edukalt arvutatud: \"%s\"." +msgid "Album gain for \"%(album)s\" successfully calculated." +msgstr "" -#: contrib/plugins/replaygain/__init__.py:121 +#: contrib/plugins/replaygain/__init__.py:140 #, python-format -msgid "Could not calculate album gain for \"%s\"." -msgstr "Albumi helitugevuse paranduse arvutamine polnud võimalik: \"%s\"." +msgid "Could not calculate album gain for \"%(album)s\"." +msgstr "" #: contrib/plugins/replaygain/ui_options_replaygain.py:59 msgid "Replay Gain" @@ -141,385 +149,252 @@ msgstr "metaflaci asukoht:" msgid "Path to wvgain:" msgstr "wvgaini asukoht:" -#: picard/acoustid.py:102 +#: contrib/plugins/viewvariables/__init__.py:42 #, python-format -msgid "AcoustID lookup network error for '%s'!" -msgstr "AcoustID päringul tekkis võrguviga: \"%s\"" +msgid "File: %s" +msgstr "" -#: picard/acoustid.py:117 +#: contrib/plugins/viewvariables/__init__.py:47 #, python-format -msgid "AcoustID lookup failed for '%s'!" -msgstr "AcoustID päring nurjus: \"%s\"" +msgid "Track: %s %s " +msgstr "" -#: picard/acoustid.py:128 +#: contrib/plugins/viewvariables/__init__.py:49 +msgid "Variables" +msgstr "" + +#: contrib/plugins/viewvariables/__init__.py:69 +msgid "File variables" +msgstr "" + +#: contrib/plugins/viewvariables/__init__.py:74 +msgid "Hidden variables" +msgstr "" + +#: contrib/plugins/viewvariables/__init__.py:79 +msgid "Tag variables" +msgstr "" + +#: contrib/plugins/viewvariables/ui_variables_dialog.py:73 +msgid "Variable" +msgstr "" + +#: contrib/plugins/viewvariables/ui_variables_dialog.py:75 +msgid "Value" +msgstr "" + +#: picard/acoustid.py:109 #, python-format -msgid "Acoustid lookup returned no result for file '%s'" -msgstr "AcoustID päringule ei saadud vastust: \"%s\"" +msgid "AcoustID lookup network error for '%(filename)s'!" +msgstr "" -#: picard/acoustid.py:132 +#: picard/acoustid.py:133 #, python-format -msgid "Looking up the fingerprint for file %s..." -msgstr "Faili \"%s\" sõrmejälje otsimine..." +msgid "AcoustID lookup failed for '%(filename)s'!" +msgstr "" -#: picard/acoustidmanager.py:78 -msgid "Submitting AcoustIDs..." -msgstr "AcoustID-de edastamine..." - -#: picard/acoustidmanager.py:83 +#: picard/acoustid.py:155 #, python-format -msgid "AcoustID submission failed with error '%s'" -msgstr "AcoustID edastamine nurjus: %s" +msgid "AcoustID lookup returned no result for file '%(filename)s'" +msgstr "" -#: picard/acoustidmanager.py:85 +#: picard/acoustid.py:166 +#, python-format +msgid "Looking up the fingerprint for file '%(filename)s' ..." +msgstr "" + +#: picard/acoustidmanager.py:80 +msgid "Submitting AcoustIDs ..." +msgstr "" + +#: picard/acoustidmanager.py:94 +#, python-format +msgid "AcoustID submission failed with error '%(error)s'" +msgstr "" + +#: picard/acoustidmanager.py:102 msgid "AcoustIDs successfully submitted." msgstr "AcoustID-d edastatud." -#: picard/album.py:64 picard/cluster.py:234 +#: picard/album.py:65 picard/cluster.py:255 msgid "Unmatched Files" msgstr "Vasteta failid" -#: picard/album.py:187 +#: picard/album.py:188 #, python-format msgid "[could not load album %s]" msgstr "[albumi \"%s\" laadimine polnud võimalik]" -#: picard/album.py:275 +#: picard/album.py:277 #, python-format -msgid "Album %s loaded: %s - %s" +msgid "Album %(id)s loaded: %(artist)s - %(album)s" msgstr "" -#: picard/album.py:292 +#: picard/album.py:294 +#, python-format +msgid "Loading album %(id)s ..." +msgstr "" + +#: picard/album.py:303 msgid "[loading album information]" msgstr "[albumi teabe laadimine...]" -#: picard/album.py:467 +#: picard/album.py:478 #, python-format msgid "; %i image" msgid_plural "; %i images" msgstr[0] "; %i pilt" msgstr[1] "; %i pilti" -#: picard/cluster.py:150 picard/cluster.py:159 +#: picard/cluster.py:155 picard/cluster.py:168 #, python-format -msgid "No matching releases for cluster %s" -msgstr "Rühmale \"%s\" vastavaid väljalaskeid pole" +msgid "No matching releases for cluster %(album)s" +msgstr "" -#: picard/cluster.py:161 +#: picard/cluster.py:174 #, python-format -msgid "Cluster %s identified!" -msgstr "Rühm \"%s\" tuvastatud!" +msgid "Cluster %(album)s identified!" +msgstr "" -#: picard/cluster.py:168 +#: picard/cluster.py:185 #, python-format -msgid "Looking up the metadata for cluster %s..." -msgstr "Metaandmete otsimine rühmale \"%s\"..." +msgid "Looking up the metadata for cluster %(album)s..." +msgstr "" -#: picard/collection.py:60 +#: picard/collection.py:64 #, python-format -msgid "Added %i release to collection \"%s\"" -msgid_plural "Added %i releases to collection \"%s\"" -msgstr[0] "Kogusse \"%s\" lisati %i väljalase" -msgstr[1] "Kogusse \"%s\" lisati %i väljalaset" +msgid "Added %(count)i release to collection \"%(name)s\"" +msgid_plural "Added %(count)i releases to collection \"%(name)s\"" +msgstr[0] "" +msgstr[1] "" -#: picard/collection.py:72 +#: picard/collection.py:86 #, python-format -msgid "Removed %i release from collection \"%s\"" -msgid_plural "Removed %i releases from collection \"%s\"" -msgstr[0] "Kogust \"%s\" eemaldati %i väljalase" -msgstr[1] "Kogust \"%s\" eemaldati %i väljalaset" +msgid "Removed %(count)i release from collection \"%(name)s\"" +msgid_plural "Removed %(count)i releases from collection \"%(name)s\"" +msgstr[0] "" +msgstr[1] "" -#: picard/collection.py:81 +#: picard/collection.py:100 #, python-format -msgid "Error loading collections: %s" -msgstr "Viga kogude laadimisel: %s" +msgid "Error loading collections: %(error)s" +msgstr "" -#: picard/config_upgrade.py:57 picard/config_upgrade.py:70 +#: picard/config_upgrade.py:58 picard/config_upgrade.py:71 msgid "Various Artists file naming scheme removal" msgstr "Mitme esitaja failinimeskeemi eemaldamine" -#: picard/config_upgrade.py:58 +#: picard/config_upgrade.py:59 msgid "" "The separate file naming scheme for various artists albums has been removed in this version of Picard.\n" "Your file naming scheme has automatically been merged with that of single artist albums." msgstr "Eraldi failinimeskeem mitme esitajaga albumite jaoks on selles Picardi versioonis eemaldatud.\nSee ühendati automaatselt tavalise failinimeskeemiga." -#: picard/config_upgrade.py:71 +#: picard/config_upgrade.py:72 msgid "" "The separate file naming scheme for various artists albums has been removed in this version of Picard.\n" "You currently do not use this option, but have a separate file naming scheme defined.\n" "Do you want to remove it or merge it with your file naming scheme for single artist albums?" msgstr "Eraldi failinimeskeem mitme esitajaga albumite jaoks on selles Picardi versioonis eemaldatud.\nSee võimalus polnud viimati sisse lülitatud, kuid skeem oli määratud.\nKas soovid selle eemaldada või ühendada tavalise failinimeskeemiga?" -#: picard/config_upgrade.py:77 +#: picard/config_upgrade.py:78 msgid "Merge" msgstr "Ühenda" -#: picard/config_upgrade.py:77 picard/ui/metadatabox.py:254 +#: picard/config_upgrade.py:78 picard/ui/metadatabox.py:254 msgid "Remove" msgstr "Eemalda" -#: picard/const.py:67 -msgid "CD" -msgstr "CD" - -#: picard/const.py:68 -msgid "CD-R" -msgstr "CD-R" - -#: picard/const.py:69 -msgid "HDCD" -msgstr "HDCD" - -#: picard/const.py:70 -msgid "8cm CD" -msgstr "8 cm CD" - -#: picard/const.py:71 -msgid "Vinyl" -msgstr "Vinüülplaat" - -#: picard/const.py:72 -msgid "7\" Vinyl" -msgstr "7\" vinüülplaat" - -#: picard/const.py:73 -msgid "10\" Vinyl" -msgstr "10\" vinüülplaat" - -#: picard/const.py:74 -msgid "12\" Vinyl" -msgstr "12\" vinüülplaat" - -#: picard/const.py:75 -msgid "Digital Media" -msgstr "Audiofail" - -#: picard/const.py:76 -msgid "USB Flash Drive" -msgstr "USB-mälupulk" - -#: picard/const.py:77 -msgid "slotMusic" -msgstr "slotMusic" - -#: picard/const.py:78 -msgid "Cassette" -msgstr "Kassett" - -#: picard/const.py:79 -msgid "DVD" -msgstr "DVD" - -#: picard/const.py:80 -msgid "DVD-Audio" -msgstr "Audio-DVD" - -#: picard/const.py:81 -msgid "DVD-Video" -msgstr "Video-DVD" - -#: picard/const.py:82 -msgid "SACD" -msgstr "SACD" - -#: picard/const.py:83 -msgid "DualDisc" -msgstr "DualDisc" - -#: picard/const.py:84 -msgid "MiniDisc" -msgstr "MiniDisc" - -#: picard/const.py:85 -msgid "Blu-ray" -msgstr "Blu-ray" - -#: picard/const.py:86 -msgid "HD-DVD" -msgstr "HD-DVD" - -#: picard/const.py:87 -msgid "Videotape" -msgstr "Videolint" - -#: picard/const.py:88 -msgid "VHS" -msgstr "VHS" - -#: picard/const.py:89 -msgid "Betamax" -msgstr "Betamax" - #: picard/const.py:90 -msgid "VCD" -msgstr "VCD" - -#: picard/const.py:91 -msgid "SVCD" -msgstr "SVCD" - -#: picard/const.py:92 -msgid "UMD" -msgstr "UMD" - -#: picard/const.py:93 picard/coverartarchive.py:33 -#: picard/ui/ui_options_releases.py:222 -msgid "Other" -msgstr "Muu" - -#: picard/const.py:94 -msgid "LaserDisc" -msgstr "LaserDisc" - -#: picard/const.py:95 -msgid "Cartridge" -msgstr "Cartridge" - -#: picard/const.py:96 -msgid "Reel-to-reel" -msgstr "Helilint" - -#: picard/const.py:97 -msgid "DAT" -msgstr "DAT" - -#: picard/const.py:98 -msgid "Wax Cylinder" -msgstr "Vaharull" - -#: picard/const.py:99 -msgid "Piano Roll" -msgstr "Klaverirull" - -#: picard/const.py:100 -msgid "DCC" -msgstr "DCC" - -#: picard/const.py:115 msgid "Danish" msgstr "Taani" -#: picard/const.py:116 +#: picard/const.py:91 msgid "German" msgstr "Saksa" -#: picard/const.py:118 +#: picard/const.py:93 msgid "English" msgstr "Inglise" -#: picard/const.py:119 +#: picard/const.py:94 msgid "English (Canada)" msgstr "Inglise (Kanada)" -#: picard/const.py:120 +#: picard/const.py:95 msgid "English (UK)" msgstr "Inglise (Briti)" -#: picard/const.py:122 +#: picard/const.py:97 msgid "Spanish" msgstr "Hispaania" -#: picard/const.py:123 +#: picard/const.py:98 msgid "Estonian" msgstr "Eesti" -#: picard/const.py:125 +#: picard/const.py:100 msgid "Finnish" msgstr "Soome" -#: picard/const.py:127 +#: picard/const.py:102 msgid "French" msgstr "Prantsuse" -#: picard/const.py:136 +#: picard/const.py:111 msgid "Italian" msgstr "Itaalia" -#: picard/const.py:143 +#: picard/const.py:118 msgid "Dutch" msgstr "Hollandi" -#: picard/const.py:145 +#: picard/const.py:120 msgid "Polish" msgstr "Poola" -#: picard/const.py:147 +#: picard/const.py:122 msgid "Brazilian Portuguese" msgstr "Portugali (Brasiilia)" -#: picard/const.py:154 +#: picard/const.py:129 msgid "Swedish" msgstr "Rootsi" -#: picard/coverart.py:86 +#: picard/coverart.py:85 #, python-format -msgid "Cover art of type '%s' downloaded for %s from %s" +msgid "Cover art of type '%(type)s' downloaded for %(albumid)s from %(host)s" msgstr "" -#: picard/coverart.py:260 +#: picard/coverart.py:256 #, python-format -msgid "Downloading cover art of type '%s' for %s from %s ..." +msgid "" +"Downloading cover art of type '%(type)s' for %(albumid)s from %(host)s .." msgstr "" -#: picard/coverartarchive.py:24 -msgid "Front" -msgstr "Esikaas" - -#: picard/coverartarchive.py:25 -msgid "Back" -msgstr "Tagakaas" - -#: picard/coverartarchive.py:26 -msgid "Booklet" -msgstr "Voldik" - -#: picard/coverartarchive.py:27 -msgid "Medium" -msgstr "Helikandja" - -#: picard/coverartarchive.py:28 -msgid "Tray" -msgstr "Plaadialus" - -#: picard/coverartarchive.py:29 -msgid "Obi" -msgstr "Obi" - #: picard/coverartarchive.py:30 -msgid "Spine" -msgstr "Selg" - -#: picard/coverartarchive.py:31 picard/ui/mainwindow.py:566 -msgid "Track" -msgstr "Lugu" - -#: picard/coverartarchive.py:32 -msgid "Sticker" -msgstr "Kleeps" - -#: picard/coverartarchive.py:34 msgid "Unknown" msgstr "Teadmata" -#: picard/file.py:485 +#: picard/file.py:494 #, python-format -msgid "No matching tracks for file %s" -msgstr "Failile \"%s\" vastavaid lugusid pole" +msgid "No matching tracks for file '%(filename)s'" +msgstr "" -#: picard/file.py:497 +#: picard/file.py:510 #, python-format -msgid "No matching tracks above the threshold for file %s" -msgstr "Failile \"%s\" üle seatud läve vastavaid lugusid pole" +msgid "No matching tracks above the threshold for file '%(filename)s'" +msgstr "" -#: picard/file.py:500 +#: picard/file.py:517 #, python-format -msgid "File %s identified!" -msgstr "Fail \"%s\" tuvastatud!" +msgid "File '%(filename)s' identified!" +msgstr "" -#: picard/file.py:516 +#: picard/file.py:537 #, python-format -msgid "Looking up the metadata for file %s..." -msgstr "Metaandmete otsimine failile \"%s\"..." +msgid "Looking up the metadata for file %(filename)s ..." +msgstr "" #: picard/releasegroup.py:53 msgid "Tracks" @@ -553,21 +428,23 @@ msgstr "[vöötkood puudub]" msgid "[no release info]" msgstr "[väljalaskeinfo puudub]" -#: picard/tagger.py:348 +#: picard/tagger.py:370 #, python-format -msgid "Adding %d files from '%s' ..." +msgid "Adding %(count)d file from '%(directory)s' ..." +msgid_plural "Adding %(count)d files from '%(directory)s' ..." +msgstr[0] "" +msgstr[1] "" + +#: picard/tagger.py:512 +#, python-format +msgid "Removing album %(id)s: %(artist)s - %(album)s" msgstr "" -#: picard/tagger.py:482 -#, python-format -msgid "Removing album %s: %s - %s" -msgstr "" - -#: picard/tagger.py:493 +#: picard/tagger.py:528 msgid "CD Lookup Error" msgstr "Viga CD päringul" -#: picard/tagger.py:494 +#: picard/tagger.py:529 #, python-format msgid "" "Error while reading CD:\n" @@ -575,13 +452,12 @@ msgid "" "%s" msgstr "Viga CD lugemisel:\n\n%s" -#: picard/ui/cdlookup.py:35 picard/ui/mainwindow.py:564 -#: picard/ui/ui_options_releases.py:212 picard/util/tags.py:21 +#: picard/ui/cdlookup.py:35 picard/ui/mainwindow.py:597 picard/util/tags.py:21 msgid "Album" msgstr "Album" #: picard/ui/cdlookup.py:35 picard/ui/itemviews.py:96 -#: picard/ui/mainwindow.py:565 picard/util/tags.py:22 +#: picard/ui/mainwindow.py:598 picard/util/tags.py:22 msgid "Artist" msgstr "Esitaja" @@ -752,13 +628,17 @@ msgstr "albumivaade" msgid "Contains albums and matched files" msgstr "Sisaldab albumeid ja vastetega faile" -#: picard/ui/logview.py:92 +#: picard/ui/logview.py:109 msgid "Log" msgstr "Logi" -#: picard/ui/logview.py:100 -msgid "Status History" -msgstr "Olekuajalugu" +#: picard/ui/logview.py:113 +msgid "Debug mode" +msgstr "" + +#: picard/ui/logview.py:134 +msgid "Activity History" +msgstr "" #: picard/ui/mainwindow.py:74 msgid "MusicBrainz Picard" @@ -801,280 +681,299 @@ msgstr "" msgid " Listening on port %(port)d " msgstr " Kuulatav port: %(port)d " -#: picard/ui/mainwindow.py:266 +#: picard/ui/mainwindow.py:299 msgid "Submission Error" msgstr "Viga edastamisel" -#: picard/ui/mainwindow.py:267 +#: picard/ui/mainwindow.py:300 msgid "" "You need to configure your AcoustID API key before you can submit " "fingerprints." msgstr "Enne, kui saad sõrmejälgi edastada, pead seadistama oma AcoustID API võtme." -#: picard/ui/mainwindow.py:272 +#: picard/ui/mainwindow.py:305 msgid "&Options..." msgstr "&Seadistamine..." -#: picard/ui/mainwindow.py:276 +#: picard/ui/mainwindow.py:309 msgid "&Cut" msgstr "&Lõika" -#: picard/ui/mainwindow.py:281 +#: picard/ui/mainwindow.py:314 msgid "&Paste" msgstr "&Aseta" -#: picard/ui/mainwindow.py:286 +#: picard/ui/mainwindow.py:319 msgid "&Help..." msgstr "&Abi..." -#: picard/ui/mainwindow.py:290 +#: picard/ui/mainwindow.py:323 msgid "&About..." msgstr "&Programmist..." -#: picard/ui/mainwindow.py:294 +#: picard/ui/mainwindow.py:327 msgid "&Donate..." msgstr "A&nneta..." -#: picard/ui/mainwindow.py:297 +#: picard/ui/mainwindow.py:330 msgid "&Report a Bug..." msgstr "&Saada vearaport..." -#: picard/ui/mainwindow.py:300 +#: picard/ui/mainwindow.py:333 msgid "&Support Forum..." msgstr "&Kasutajatoe foorum..." -#: picard/ui/mainwindow.py:303 +#: picard/ui/mainwindow.py:336 msgid "&Add Files..." msgstr "Lisa &faile..." -#: picard/ui/mainwindow.py:304 +#: picard/ui/mainwindow.py:337 msgid "Add files to the tagger" msgstr "Failide lisamine sildistamiseks" -#: picard/ui/mainwindow.py:309 +#: picard/ui/mainwindow.py:342 msgid "A&dd Folder..." msgstr "Lisa &kataloog..." -#: picard/ui/mainwindow.py:310 +#: picard/ui/mainwindow.py:343 msgid "Add a folder to the tagger" msgstr "Kataloogi lisamine sildistamiseks" -#: picard/ui/mainwindow.py:312 +#: picard/ui/mainwindow.py:345 msgid "Ctrl+D" msgstr "Ctrl+D" -#: picard/ui/mainwindow.py:315 +#: picard/ui/mainwindow.py:348 msgid "&Save" msgstr "&Salvesta..." -#: picard/ui/mainwindow.py:316 +#: picard/ui/mainwindow.py:349 msgid "Save selected files" msgstr "Valitud failide salvestamine" -#: picard/ui/mainwindow.py:322 +#: picard/ui/mainwindow.py:355 msgid "S&ubmit" msgstr "Edasta" -#: picard/ui/mainwindow.py:323 +#: picard/ui/mainwindow.py:356 msgid "Submit acoustic fingerprints" msgstr "" -#: picard/ui/mainwindow.py:327 +#: picard/ui/mainwindow.py:360 msgid "E&xit" msgstr "&Välju" -#: picard/ui/mainwindow.py:330 +#: picard/ui/mainwindow.py:363 msgid "Ctrl+Q" msgstr "Ctrl+Q" -#: picard/ui/mainwindow.py:333 +#: picard/ui/mainwindow.py:366 msgid "&Remove" msgstr "&Eemalda" -#: picard/ui/mainwindow.py:334 +#: picard/ui/mainwindow.py:367 msgid "Remove selected files/albums" msgstr "Valitud failide/albumite eemaldamine" -#: picard/ui/mainwindow.py:338 +#: picard/ui/mainwindow.py:371 msgid "Lookup in &Browser" msgstr "Kuva &brauseris" -#: picard/ui/mainwindow.py:339 +#: picard/ui/mainwindow.py:372 msgid "Lookup selected item on MusicBrainz website" msgstr "Valiku kuvamine MusicBrainzi veebilehel" -#: picard/ui/mainwindow.py:343 +#: picard/ui/mainwindow.py:376 msgid "File &Browser" msgstr "&Failisirvija" -#: picard/ui/mainwindow.py:347 +#: picard/ui/mainwindow.py:380 msgid "Ctrl+B" msgstr "Ctrl+B" -#: picard/ui/mainwindow.py:350 +#: picard/ui/mainwindow.py:383 msgid "&Cover Art" msgstr "&Kaanepilt" -#: picard/ui/mainwindow.py:356 picard/ui/mainwindow.py:558 +#: picard/ui/mainwindow.py:389 picard/ui/mainwindow.py:591 msgid "Search" msgstr "Otsi" -#: picard/ui/mainwindow.py:359 +#: picard/ui/mainwindow.py:392 msgid "Lookup &CD..." msgstr "" -#: picard/ui/mainwindow.py:360 +#: picard/ui/mainwindow.py:393 msgid "Lookup the details of the CD in your drive" msgstr "" -#: picard/ui/mainwindow.py:362 +#: picard/ui/mainwindow.py:395 msgid "Ctrl+K" msgstr "Ctrl+K" -#: picard/ui/mainwindow.py:365 +#: picard/ui/mainwindow.py:398 msgid "&Scan" msgstr "&Skaneeri" -#: picard/ui/mainwindow.py:368 +#: picard/ui/mainwindow.py:401 msgid "Ctrl+Y" msgstr "Ctrl+Y" -#: picard/ui/mainwindow.py:371 +#: picard/ui/mainwindow.py:404 msgid "Cl&uster" msgstr "&Rühmita" -#: picard/ui/mainwindow.py:374 +#: picard/ui/mainwindow.py:407 msgid "Ctrl+U" msgstr "Ctrl+U" -#: picard/ui/mainwindow.py:377 +#: picard/ui/mainwindow.py:410 msgid "&Lookup" msgstr "&Päring" -#: picard/ui/mainwindow.py:378 +#: picard/ui/mainwindow.py:411 msgid "Lookup selected items in MusicBrainz" msgstr "" -#: picard/ui/mainwindow.py:383 +#: picard/ui/mainwindow.py:416 msgid "Ctrl+L" msgstr "Ctrl+L" -#: picard/ui/mainwindow.py:386 +#: picard/ui/mainwindow.py:419 msgid "&Info..." msgstr "&Info" -#: picard/ui/mainwindow.py:389 +#: picard/ui/mainwindow.py:422 msgid "Ctrl+I" msgstr "Ctrl+I" -#: picard/ui/mainwindow.py:392 +#: picard/ui/mainwindow.py:425 msgid "&Refresh" msgstr "Vä&rskenda" -#: picard/ui/mainwindow.py:393 +#: picard/ui/mainwindow.py:426 msgid "Ctrl+R" msgstr "Ctrl+R" -#: picard/ui/mainwindow.py:396 +#: picard/ui/mainwindow.py:429 msgid "&Rename Files" msgstr "Failid &nimetatakse ümber" -#: picard/ui/mainwindow.py:401 +#: picard/ui/mainwindow.py:434 msgid "&Move Files" msgstr "Failid &teisaldatakse" -#: picard/ui/mainwindow.py:406 +#: picard/ui/mainwindow.py:439 msgid "Save &Tags" msgstr "S&ildid salvestatakse" -#: picard/ui/mainwindow.py:411 +#: picard/ui/mainwindow.py:444 msgid "Tags From &File Names..." msgstr "Sildid &failinime põhjal..." -#: picard/ui/mainwindow.py:414 +#: picard/ui/mainwindow.py:447 msgid "&Open My Collections in Browser" msgstr "" -#: picard/ui/mainwindow.py:418 +#: picard/ui/mainwindow.py:451 msgid "View Error/Debug &Log" msgstr "" -#: picard/ui/mainwindow.py:421 +#: picard/ui/mainwindow.py:454 msgid "View Activity &History" msgstr "" -#: picard/ui/mainwindow.py:428 +#: picard/ui/mainwindow.py:461 msgid "&Play file" msgstr "" -#: picard/ui/mainwindow.py:429 +#: picard/ui/mainwindow.py:462 msgid "Play the file in your default media player" msgstr "" -#: picard/ui/mainwindow.py:433 +#: picard/ui/mainwindow.py:466 msgid "Open Containing &Folder" msgstr "" -#: picard/ui/mainwindow.py:434 +#: picard/ui/mainwindow.py:467 msgid "Open the containing folder in your file explorer" msgstr "" -#: picard/ui/mainwindow.py:459 +#: picard/ui/mainwindow.py:492 msgid "&File" msgstr "&Fail" -#: picard/ui/mainwindow.py:470 +#: picard/ui/mainwindow.py:503 msgid "&Edit" msgstr "&Redigeerimine" -#: picard/ui/mainwindow.py:476 +#: picard/ui/mainwindow.py:509 msgid "&View" msgstr "&Vaade" -#: picard/ui/mainwindow.py:482 +#: picard/ui/mainwindow.py:515 msgid "&Options" msgstr "&Seadistused" -#: picard/ui/mainwindow.py:488 +#: picard/ui/mainwindow.py:521 msgid "&Tools" msgstr "&Tööriistad" -#: picard/ui/mainwindow.py:499 picard/ui/util.py:35 +#: picard/ui/mainwindow.py:532 picard/ui/util.py:35 msgid "&Help" msgstr "&Abi" -#: picard/ui/mainwindow.py:520 +#: picard/ui/mainwindow.py:553 msgid "Actions" msgstr "Toimingud" -#: picard/ui/mainwindow.py:629 +#: picard/ui/mainwindow.py:599 +msgid "Track" +msgstr "Lugu" + +#: picard/ui/mainwindow.py:662 msgid "All Supported Formats" msgstr "Kõik toetatud vormingud" -#: picard/ui/mainwindow.py:661 +#: picard/ui/mainwindow.py:695 #, python-format -msgid "Adding directory: '%s' ..." +msgid "Adding directory: '%(directory)s' ..." msgstr "" -#: picard/ui/mainwindow.py:665 +#: picard/ui/mainwindow.py:702 #, python-format -msgid "Adding multiple directories from: '%s' ..." +msgid "Adding multiple directories from '%(directory)s' ..." msgstr "" -#: picard/ui/mainwindow.py:728 +#: picard/ui/mainwindow.py:767 msgid "Configuration Required" msgstr "Vaja on seadistamist" -#: picard/ui/mainwindow.py:729 +#: picard/ui/mainwindow.py:768 msgid "" "Audio fingerprinting is not yet configured. Would you like to configure it " "now?" msgstr "Audiosõrmejälgede süsteem pole veel seadistatud. Kas soovid seda kohe teha?" -#: picard/ui/mainwindow.py:811 picard/ui/mainwindow.py:818 +#: picard/ui/mainwindow.py:848 #, python-format -msgid " (Error: %s)" -msgstr " (Viga: %s)" +msgid "%(filename)s (error: %(error)s)" +msgstr "" + +#: picard/ui/mainwindow.py:854 +#, python-format +msgid "%(filename)s" +msgstr "" + +#: picard/ui/mainwindow.py:864 +#, python-format +msgid "%(filename)s (%(similarity)d%%) (error: %(error)s)" +msgstr "" + +#: picard/ui/mainwindow.py:871 +#, python-format +msgid "%(filename)s (%(similarity)d%%)" +msgstr "" #: picard/ui/metadatabox.py:82 #, python-format @@ -1128,14 +1027,14 @@ msgid_plural "Use Original Values" msgstr[0] "Kasuta algset väärtust" msgstr[1] "Kasuta algseid väärtusi" -#: picard/ui/passworddialog.py:39 +#: picard/ui/passworddialog.py:40 #, python-format msgid "" "The server %s requires you to login. Please enter your username and " "password." msgstr "Server %s nõuab sisselogimist. Palun sisesta oma kasutajanimi ja parool." -#: picard/ui/passworddialog.py:77 +#: picard/ui/passworddialog.py:79 #, python-format msgid "" "The proxy %s requires you to login. Please enter your username and password." @@ -1210,71 +1109,71 @@ msgstr "Päringul kasutatav CD-seade:" msgid "Default CD-ROM drive to use for lookups:" msgstr "Päringul vaikimisi kasutatav CD-seade:" -#: picard/ui/ui_options_cover.py:132 +#: picard/ui/ui_options_cover.py:131 msgid "Location" msgstr "Asukoht" -#: picard/ui/ui_options_cover.py:133 +#: picard/ui/ui_options_cover.py:132 msgid "Embed cover images into tags" msgstr "Kaanepildid lisatakse siltidesse" -#: picard/ui/ui_options_cover.py:134 +#: picard/ui/ui_options_cover.py:133 msgid "Only embed a front image" msgstr "Ainult esikaanepilt" -#: picard/ui/ui_options_cover.py:135 +#: picard/ui/ui_options_cover.py:134 msgid "Save cover images as separate files" msgstr "Kaanepildid salvestatakse eraldi failidena" -#: picard/ui/ui_options_cover.py:136 +#: picard/ui/ui_options_cover.py:135 msgid "Use the following file name for images:" msgstr "Failinimi piltide jaoks:" -#: picard/ui/ui_options_cover.py:137 +#: picard/ui/ui_options_cover.py:136 msgid "Overwrite the file if it already exists" msgstr "Olemasolevad failid kirjutatakse üle" -#: picard/ui/ui_options_cover.py:138 +#: picard/ui/ui_options_cover.py:137 msgid "Coverart Providers" msgstr "Kaanepildipakkujad" -#: picard/ui/ui_options_cover.py:139 +#: picard/ui/ui_options_cover.py:138 msgid "Amazon" msgstr "Amazon" -#: picard/ui/ui_options_cover.py:140 picard/ui/ui_options_cover.py:142 +#: picard/ui/ui_options_cover.py:139 picard/ui/ui_options_cover.py:141 msgid "Cover Art Archive" msgstr "Kaanepildiarhiiv" -#: picard/ui/ui_options_cover.py:141 +#: picard/ui/ui_options_cover.py:140 msgid "Sites on the whitelist" msgstr "Lubatud saidid" -#: picard/ui/ui_options_cover.py:143 +#: picard/ui/ui_options_cover.py:142 msgid "Only use images of the following size:" msgstr "Kasutatakse vaid selles suuruses pilte:" -#: picard/ui/ui_options_cover.py:144 +#: picard/ui/ui_options_cover.py:143 msgid "250 px" msgstr "250 px" -#: picard/ui/ui_options_cover.py:145 +#: picard/ui/ui_options_cover.py:144 msgid "500 px" msgstr "500 px" -#: picard/ui/ui_options_cover.py:146 +#: picard/ui/ui_options_cover.py:145 msgid "Full size" msgstr "Täissuurus" -#: picard/ui/ui_options_cover.py:147 +#: picard/ui/ui_options_cover.py:146 msgid "Download only images of the following types:" msgstr "Alla laaditakse vaid määratud tüüpi pilte:" -#: picard/ui/ui_options_cover.py:148 +#: picard/ui/ui_options_cover.py:147 msgid "Download only approved images" msgstr "Alla laaditakse ainult heakskiidetud pildid" -#: picard/ui/ui_options_cover.py:149 +#: picard/ui/ui_options_cover.py:148 msgid "" "Use the first image type as the filename. This will not change the filename " "of front images." @@ -1524,63 +1423,23 @@ msgstr "E-post:" msgid "Submit ratings to MusicBrainz" msgstr "Hinded edastatakse MusicBrainzi" -#: picard/ui/ui_options_releases.py:211 +#: picard/ui/ui_options_releases.py:104 msgid "Preferred release types" msgstr "Eelistatud väljalasketüübid" -#: picard/ui/ui_options_releases.py:213 -msgid "Single" -msgstr "Singel" - -#: picard/ui/ui_options_releases.py:214 -msgid "EP" -msgstr "EP" - -#: picard/ui/ui_options_releases.py:215 -msgid "Compilation" -msgstr "Kogumik" - -#: picard/ui/ui_options_releases.py:216 -msgid "Soundtrack" -msgstr "Saatemuusika" - -#: picard/ui/ui_options_releases.py:217 -msgid "Spokenword" -msgstr "Kõne" - -#: picard/ui/ui_options_releases.py:218 -msgid "Interview" -msgstr "Intervjuu" - -#: picard/ui/ui_options_releases.py:219 -msgid "Audiobook" -msgstr "Heliraamat" - -#: picard/ui/ui_options_releases.py:220 -msgid "Live" -msgstr "Kontsertsalvestus" - -#: picard/ui/ui_options_releases.py:221 -msgid "Remix" -msgstr "Remiks" - -#: picard/ui/ui_options_releases.py:223 -msgid "Reset all" -msgstr "Lähtesta kõik" - -#: picard/ui/ui_options_releases.py:224 +#: picard/ui/ui_options_releases.py:105 msgid "Preferred release countries" msgstr "Eelistatud väljalaskemaad" -#: picard/ui/ui_options_releases.py:225 picard/ui/ui_options_releases.py:228 +#: picard/ui/ui_options_releases.py:106 picard/ui/ui_options_releases.py:109 msgid ">" msgstr ">" -#: picard/ui/ui_options_releases.py:226 picard/ui/ui_options_releases.py:229 +#: picard/ui/ui_options_releases.py:107 picard/ui/ui_options_releases.py:110 msgid "<" msgstr "<" -#: picard/ui/ui_options_releases.py:227 +#: picard/ui/ui_options_releases.py:108 msgid "Preferred release formats" msgstr "Eelistatud väljalaskeformaadid" @@ -1772,7 +1631,11 @@ msgstr "Muud" msgid "Regex Error" msgstr "Regulaaravaldise viga" -#: picard/ui/options/cover.py:63 +#: picard/ui/options/cover.py:44 +msgid "title" +msgstr "" + +#: picard/ui/options/cover.py:68 msgid "Cover Art" msgstr "Kaanepilt" @@ -1788,11 +1651,11 @@ msgstr "Kasutajaliides" msgid "System default" msgstr "Süsteemi vaikeväärtus" -#: picard/ui/options/interface.py:96 +#: picard/ui/options/interface.py:98 msgid "Language changed" msgstr "Keel muudetud" -#: picard/ui/options/interface.py:96 +#: picard/ui/options/interface.py:99 msgid "" "You have changed the interface language. You have to restart Picard in order" " for the change to take effect." @@ -1814,31 +1677,35 @@ msgstr "Fail" msgid "Ratings" msgstr "Hinded" -#: picard/ui/options/releases.py:33 +#: picard/ui/options/releases.py:87 msgid "Preferred Releases" msgstr "Eelistatud väljalasked" +#: picard/ui/options/releases.py:121 +msgid "Reset all" +msgstr "Lähtesta kõik" + #: picard/ui/options/renaming.py:37 msgid "File Naming" msgstr "Failinimed" -#: picard/ui/options/renaming.py:184 +#: picard/ui/options/renaming.py:187 msgid "Error" msgstr "Viga" -#: picard/ui/options/renaming.py:184 +#: picard/ui/options/renaming.py:187 msgid "The location to move files to must not be empty." msgstr "Failide sihtkoha väli ei tohi olla tühi." -#: picard/ui/options/renaming.py:194 +#: picard/ui/options/renaming.py:197 msgid "The file naming format must not be empty." msgstr "Failinimeskeem ei tohi olla tühi." -#: picard/ui/options/scripting.py:98 +#: picard/ui/options/scripting.py:99 msgid "Scripting" msgstr "Skriptimine" -#: picard/ui/options/scripting.py:130 +#: picard/ui/options/scripting.py:131 msgid "Script Error" msgstr "Skripti viga" diff --git a/po/fi.po b/po/fi.po index a1d2c7a98..cc87643a0 100644 --- a/po/fi.po +++ b/po/fi.po @@ -12,8 +12,8 @@ msgid "" msgstr "" "Project-Id-Version: MusicBrainz\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2014-03-20 11:12+0100\n" -"PO-Revision-Date: 2014-03-21 08:44+0000\n" +"POT-Creation-Date: 2014-05-03 17:28+0200\n" +"PO-Revision-Date: 2014-05-04 08:44+0000\n" "Last-Translator: nikki\n" "Language-Team: Finnish (http://www.transifex.com/projects/p/musicbrainz/language/fi/)\n" "MIME-Version: 1.0\n" @@ -23,6 +23,10 @@ msgstr "" "Language: fi\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" +#: contrib/plugins/albumartist_website.py:3 +msgid "Album Artist Website" +msgstr "Julkaisun artistin verkkosivu" + #: contrib/plugins/no_release.py:50 msgid "Enable plugin for all releases by default" msgstr "Käytä liitännäistä kaikille julkaisuille" @@ -35,63 +39,55 @@ msgstr "Poistettavat tunnisteet (eroteltuna pilkulla)" msgid "Remove specific release information..." msgstr "Poista julkaisun tarkasti määrittävät tunnisteet..." -#: contrib/plugins/open_in_gui.py:32 -msgid "Open Error" -msgstr "Virhe avattaessa" +#: contrib/plugins/standardise_performers.py:3 +msgid "Standardise Performers" +msgstr "" -#: contrib/plugins/open_in_gui.py:32 -#, python-format -msgid "" -"Error while opening file:\n" -"\n" -"%s" -msgstr "Virhe avattaessa tiedostoa:\n\n%s" - -#: contrib/plugins/lastfm/ui_options_lastfm.py:117 +#: contrib/plugins/lastfm/ui_options_lastfm.py:99 msgid "Last.fm" msgstr "Last.fm" -#: contrib/plugins/lastfm/ui_options_lastfm.py:118 +#: contrib/plugins/lastfm/ui_options_lastfm.py:100 msgid "Use track tags" msgstr "Käytä kappaleiden luokituksia" -#: contrib/plugins/lastfm/ui_options_lastfm.py:119 +#: contrib/plugins/lastfm/ui_options_lastfm.py:101 msgid "Use artist tags" msgstr "Käytä artistien luokituksia" -#: contrib/plugins/lastfm/ui_options_lastfm.py:120 +#: contrib/plugins/lastfm/ui_options_lastfm.py:102 #: picard/ui/options/tags.py:30 msgid "Tags" msgstr "Tunnisteet" -#: contrib/plugins/lastfm/ui_options_lastfm.py:121 -#: picard/ui/ui_options_folksonomy.py:116 +#: contrib/plugins/lastfm/ui_options_lastfm.py:103 +#: picard/ui/ui_options_folksonomy.py:103 msgid "Ignore tags:" msgstr "Ohitettavat luokitukset:" -#: contrib/plugins/lastfm/ui_options_lastfm.py:122 -#: picard/ui/ui_options_folksonomy.py:121 +#: contrib/plugins/lastfm/ui_options_lastfm.py:104 +#: picard/ui/ui_options_folksonomy.py:108 msgid "Join multiple tags with:" msgstr "Yhdistä useammat luokitukset seuraavalla erottimella:" -#: contrib/plugins/lastfm/ui_options_lastfm.py:123 -#: picard/ui/ui_options_folksonomy.py:122 +#: contrib/plugins/lastfm/ui_options_lastfm.py:105 +#: picard/ui/ui_options_folksonomy.py:109 msgid " / " msgstr " / " -#: contrib/plugins/lastfm/ui_options_lastfm.py:124 -#: picard/ui/ui_options_folksonomy.py:123 +#: contrib/plugins/lastfm/ui_options_lastfm.py:106 +#: picard/ui/ui_options_folksonomy.py:110 msgid ", " msgstr ", " -#: contrib/plugins/lastfm/ui_options_lastfm.py:125 -#: picard/ui/ui_options_folksonomy.py:118 +#: contrib/plugins/lastfm/ui_options_lastfm.py:107 +#: picard/ui/ui_options_folksonomy.py:105 msgid "Minimal tag usage:" msgstr "Luokitusten vähimmäismäärä:" -#: contrib/plugins/lastfm/ui_options_lastfm.py:126 -#: picard/ui/ui_options_folksonomy.py:119 picard/ui/ui_options_matching.py:88 -#: picard/ui/ui_options_matching.py:89 picard/ui/ui_options_matching.py:90 +#: contrib/plugins/lastfm/ui_options_lastfm.py:108 +#: picard/ui/ui_options_folksonomy.py:106 picard/ui/ui_options_matching.py:75 +#: picard/ui/ui_options_matching.py:76 picard/ui/ui_options_matching.py:77 msgid " %" msgstr " %" @@ -99,444 +95,331 @@ msgstr " %" msgid "Calculate replay &gain..." msgstr "Laske replay &gain -arvo..." -#: contrib/plugins/replaygain/__init__.py:66 +#: contrib/plugins/replaygain/__init__.py:67 #, python-format -msgid "Calculating replay gain for \"%s\"..." -msgstr "Lasketaan replay gain -arvoa kohteelle \"%s\"..." +msgid "Calculating replay gain for \"%(filename)s\"..." +msgstr "" -#: contrib/plugins/replaygain/__init__.py:71 +#: contrib/plugins/replaygain/__init__.py:75 #, python-format -msgid "Replay gain for \"%s\" successfully calculated." -msgstr "Replay gain -arvon laskenta kohteelle \"%s\" suoritettu onnistuneesti." +msgid "Replay gain for \"%(filename)s\" successfully calculated." +msgstr "" -#: contrib/plugins/replaygain/__init__.py:73 +#: contrib/plugins/replaygain/__init__.py:80 #, python-format -msgid "Could not calculate replay gain for \"%s\"." -msgstr "Replay gain -arvon laskenta kohteelle \"%s\" epäonnistui." +msgid "Could not calculate replay gain for \"%(filename)s\"." +msgstr "" -#: contrib/plugins/replaygain/__init__.py:76 +#: contrib/plugins/replaygain/__init__.py:85 msgid "Calculate album &gain..." msgstr "Laske replay &gain -arvo julkaisulle..." -#: contrib/plugins/replaygain/__init__.py:103 -#: contrib/plugins/replaygain/__init__.py:111 +#: contrib/plugins/replaygain/__init__.py:113 +#: contrib/plugins/replaygain/__init__.py:124 #, python-format -msgid "Calculating album gain for \"%s\"..." -msgstr "Lasketaan replay gain -arvoa julkaisulle \"%s\"..." - -#: contrib/plugins/replaygain/__init__.py:119 -#, python-format -msgid "Album gain for \"%s\" successfully calculated." -msgstr "Replay gain -arvon laskenta julkaisulle \"%s\" suoritettu onnistuneesti." - -#: contrib/plugins/replaygain/__init__.py:121 -#, python-format -msgid "Could not calculate album gain for \"%s\"." -msgstr "Replay gain -arvon laskenta julkaisulle \"%s\" epäonnistui." - -#: picard/acoustid.py:102 -#, python-format -msgid "AcoustID lookup network error for '%s'!" +msgid "Calculating album gain for \"%(album)s\"..." msgstr "" -#: picard/acoustid.py:117 +#: contrib/plugins/replaygain/__init__.py:135 #, python-format -msgid "AcoustID lookup failed for '%s'!" +msgid "Album gain for \"%(album)s\" successfully calculated." msgstr "" -#: picard/acoustid.py:128 +#: contrib/plugins/replaygain/__init__.py:140 #, python-format -msgid "Acoustid lookup returned no result for file '%s'" +msgid "Could not calculate album gain for \"%(album)s\"." msgstr "" -#: picard/acoustid.py:132 -#, python-format -msgid "Looking up the fingerprint for file %s..." -msgstr "Haetaan äänitunnistetta tiedostolle %s..." +#: contrib/plugins/replaygain/ui_options_replaygain.py:59 +msgid "Replay Gain" +msgstr "Toiston vahvistus" -#: picard/acoustidmanager.py:78 -msgid "Submitting AcoustIDs..." -msgstr "Lähetetään AcoustID-tunnisteita..." +#: contrib/plugins/replaygain/ui_options_replaygain.py:60 +msgid "Path to VorbisGain:" +msgstr "VorbisGain-hakemisto: " -#: picard/acoustidmanager.py:83 +#: contrib/plugins/replaygain/ui_options_replaygain.py:61 +msgid "Path to MP3Gain:" +msgstr "MP3Gain-hakemisto: " + +#: contrib/plugins/replaygain/ui_options_replaygain.py:62 +msgid "Path to metaflac:" +msgstr "metaflac-hakemisto: " + +#: contrib/plugins/replaygain/ui_options_replaygain.py:63 +msgid "Path to wvgain:" +msgstr "Wvgain-hakemisto: " + +#: contrib/plugins/viewvariables/__init__.py:42 #, python-format -msgid "AcoustID submission failed with error '%s'" +msgid "File: %s" +msgstr "Tiedosto: %s" + +#: contrib/plugins/viewvariables/__init__.py:47 +#, python-format +msgid "Track: %s %s " +msgstr "Kappale: %s %s" + +#: contrib/plugins/viewvariables/__init__.py:49 +msgid "Variables" +msgstr "Muuttujat" + +#: contrib/plugins/viewvariables/__init__.py:69 +msgid "File variables" +msgstr "Tiedoston muuttujat" + +#: contrib/plugins/viewvariables/__init__.py:74 +msgid "Hidden variables" +msgstr "Piilotetut muuttujat" + +#: contrib/plugins/viewvariables/__init__.py:79 +msgid "Tag variables" +msgstr "Tunnisteiden muuttujat" + +#: contrib/plugins/viewvariables/ui_variables_dialog.py:73 +msgid "Variable" +msgstr "Muuttuja" + +#: contrib/plugins/viewvariables/ui_variables_dialog.py:75 +msgid "Value" +msgstr "Arvo" + +#: picard/acoustid.py:109 +#, python-format +msgid "AcoustID lookup network error for '%(filename)s'!" msgstr "" -#: picard/acoustidmanager.py:85 +#: picard/acoustid.py:133 +#, python-format +msgid "AcoustID lookup failed for '%(filename)s'!" +msgstr "" + +#: picard/acoustid.py:155 +#, python-format +msgid "AcoustID lookup returned no result for file '%(filename)s'" +msgstr "" + +#: picard/acoustid.py:166 +#, python-format +msgid "Looking up the fingerprint for file '%(filename)s' ..." +msgstr "" + +#: picard/acoustidmanager.py:80 +msgid "Submitting AcoustIDs ..." +msgstr "" + +#: picard/acoustidmanager.py:94 +#, python-format +msgid "AcoustID submission failed with error '%(error)s'" +msgstr "" + +#: picard/acoustidmanager.py:102 msgid "AcoustIDs successfully submitted." -msgstr "" +msgstr "AcoustID-tunnisteet lähetettiin onnistuneesti." -#: picard/album.py:64 picard/cluster.py:234 +#: picard/album.py:65 picard/cluster.py:255 msgid "Unmatched Files" msgstr "Ryhmättömät tiedostot" -#: picard/album.py:187 +#: picard/album.py:188 #, python-format msgid "[could not load album %s]" msgstr "[julkaisua %s ei voitu ladata]" -#: picard/album.py:272 +#: picard/album.py:277 #, python-format -msgid "Album %s loaded" -msgstr "Julkaisu %s haettu" +msgid "Album %(id)s loaded: %(artist)s - %(album)s" +msgstr "" -#: picard/album.py:288 +#: picard/album.py:294 +#, python-format +msgid "Loading album %(id)s ..." +msgstr "" + +#: picard/album.py:303 msgid "[loading album information]" msgstr "[ladataan julkaisun tietoja]" -#: picard/album.py:463 +#: picard/album.py:478 #, python-format msgid "; %i image" msgid_plural "; %i images" msgstr[0] "; %i kuva" msgstr[1] "; %i kuvaa" -#: picard/cluster.py:150 picard/cluster.py:159 +#: picard/cluster.py:155 picard/cluster.py:168 #, python-format -msgid "No matching releases for cluster %s" -msgstr "Ryhmälle %s ei löytynyt vastaavaa julkaisua" +msgid "No matching releases for cluster %(album)s" +msgstr "" -#: picard/cluster.py:161 +#: picard/cluster.py:174 #, python-format -msgid "Cluster %s identified!" -msgstr "Ryhmä %s tunnistettu!" +msgid "Cluster %(album)s identified!" +msgstr "" -#: picard/cluster.py:168 +#: picard/cluster.py:185 #, python-format -msgid "Looking up the metadata for cluster %s..." -msgstr "Haetaan metatietoja ryhmälle %s..." +msgid "Looking up the metadata for cluster %(album)s..." +msgstr "" -#: picard/collection.py:60 +#: picard/collection.py:64 #, python-format -msgid "Added %i release to collection \"%s\"" -msgid_plural "Added %i releases to collection \"%s\"" -msgstr[0] "Lisättiin %i julkaisu kokoelmaan \"%s\"" -msgstr[1] "Lisättiin %i julkaisua kokoelmaan \"%s\"" +msgid "Added %(count)i release to collection \"%(name)s\"" +msgid_plural "Added %(count)i releases to collection \"%(name)s\"" +msgstr[0] "" +msgstr[1] "" -#: picard/collection.py:72 +#: picard/collection.py:86 #, python-format -msgid "Removed %i release from collection \"%s\"" -msgid_plural "Removed %i releases from collection \"%s\"" -msgstr[0] "Poistettiin %i julkaisu kokoelmasta \"%s\"" -msgstr[1] "Poistettiin %i julkaisua kokoelmasta \"%s\"" +msgid "Removed %(count)i release from collection \"%(name)s\"" +msgid_plural "Removed %(count)i releases from collection \"%(name)s\"" +msgstr[0] "" +msgstr[1] "" -#: picard/collection.py:81 +#: picard/collection.py:100 #, python-format -msgid "Error loading collections: %s" -msgstr "Virhe ladattaessa kokoelmia: %s" +msgid "Error loading collections: %(error)s" +msgstr "" -#: picard/config_upgrade.py:57 picard/config_upgrade.py:70 +#: picard/config_upgrade.py:58 picard/config_upgrade.py:71 msgid "Various Artists file naming scheme removal" msgstr "Tiedostojen nimeämissäännön poisto useiden artistien julkaisuille" -#: picard/config_upgrade.py:58 +#: picard/config_upgrade.py:59 msgid "" "The separate file naming scheme for various artists albums has been removed in this version of Picard.\n" "Your file naming scheme has automatically been merged with that of single artist albums." msgstr "Erillistä tiedostojen nimeämissääntöä useiden artistien julkaisuille ei ole enää Picardin tässä versiossa.\nNykyinen nimeämissääntö on yhdistetty automaattisesti yksittäisten artistien julkaisujen sääntöön." -#: picard/config_upgrade.py:71 +#: picard/config_upgrade.py:72 msgid "" "The separate file naming scheme for various artists albums has been removed in this version of Picard.\n" "You currently do not use this option, but have a separate file naming scheme defined.\n" "Do you want to remove it or merge it with your file naming scheme for single artist albums?" msgstr "Erillistä tiedostojen nimeämissääntöä useiden artistien julkaisuille ei ole enää Picardin tässä versiossa.\nTämä sääntö ei ole juuri nyt käytössä, mutta se on määritelty.\nPoistetaanko se, vai yhdistetäänkö yksittäisten artistien julkaisujen sääntöön?" -#: picard/config_upgrade.py:77 +#: picard/config_upgrade.py:78 msgid "Merge" msgstr "Yhdistä" -#: picard/config_upgrade.py:77 picard/ui/metadatabox.py:254 +#: picard/config_upgrade.py:78 picard/ui/metadatabox.py:254 msgid "Remove" msgstr "Poista" -#: picard/const.py:67 -msgid "CD" -msgstr "CD" - -#: picard/const.py:68 -msgid "CD-R" -msgstr "CD-R" - -#: picard/const.py:69 -msgid "HDCD" -msgstr "HDCD" - -#: picard/const.py:70 -msgid "8cm CD" -msgstr "8 cm CD" - -#: picard/const.py:71 -msgid "Vinyl" -msgstr "Vinyyli" - -#: picard/const.py:72 -msgid "7\" Vinyl" -msgstr "7\" vinyyli" - -#: picard/const.py:73 -msgid "10\" Vinyl" -msgstr "10\" vinyyli" - -#: picard/const.py:74 -msgid "12\" Vinyl" -msgstr "12\" vinyyli" - -#: picard/const.py:75 -msgid "Digital Media" -msgstr "Digitaalinen media" - -#: picard/const.py:76 -msgid "USB Flash Drive" -msgstr "USB Flash –asema" - -#: picard/const.py:77 -msgid "slotMusic" -msgstr "slotMusic" - -#: picard/const.py:78 -msgid "Cassette" -msgstr "C-kasetti" - -#: picard/const.py:79 -msgid "DVD" -msgstr "DVD" - -#: picard/const.py:80 -msgid "DVD-Audio" -msgstr "DVD-Audio" - -#: picard/const.py:81 -msgid "DVD-Video" -msgstr "DVD-Video" - -#: picard/const.py:82 -msgid "SACD" -msgstr "Super Audio CD" - -#: picard/const.py:83 -msgid "DualDisc" -msgstr "DualDisc" - -#: picard/const.py:84 -msgid "MiniDisc" -msgstr "MiniDisc" - -#: picard/const.py:85 -msgid "Blu-ray" -msgstr "Blu-ray" - -#: picard/const.py:86 -msgid "HD-DVD" -msgstr "HD DVD" - -#: picard/const.py:87 -msgid "Videotape" -msgstr "Videokasetti" - -#: picard/const.py:88 -msgid "VHS" -msgstr "VHS" - -#: picard/const.py:89 -msgid "Betamax" -msgstr "Betamax" - #: picard/const.py:90 -msgid "VCD" -msgstr "Video-CD" - -#: picard/const.py:91 -msgid "SVCD" -msgstr "Super Video CD" - -#: picard/const.py:92 -msgid "UMD" -msgstr "UMD" - -#: picard/const.py:93 picard/coverartarchive.py:33 -#: picard/ui/ui_options_releases.py:226 -msgid "Other" -msgstr "Muu" - -#: picard/const.py:94 -msgid "LaserDisc" -msgstr "LaserDisc" - -#: picard/const.py:95 -msgid "Cartridge" -msgstr "Kasetti" - -#: picard/const.py:96 -msgid "Reel-to-reel" -msgstr "Äänikela" - -#: picard/const.py:97 -msgid "DAT" -msgstr "DAT" - -#: picard/const.py:98 -msgid "Wax Cylinder" -msgstr "Fonografisylinteri" - -#: picard/const.py:99 -msgid "Piano Roll" -msgstr "Pianorulla" - -#: picard/const.py:100 -msgid "DCC" -msgstr "DCC" - -#: picard/const.py:115 msgid "Danish" msgstr "Tanska" -#: picard/const.py:116 +#: picard/const.py:91 msgid "German" msgstr "Saksa" -#: picard/const.py:118 +#: picard/const.py:93 msgid "English" msgstr "Englanti" -#: picard/const.py:119 +#: picard/const.py:94 msgid "English (Canada)" msgstr "Englanti (Kanada)" -#: picard/const.py:120 +#: picard/const.py:95 msgid "English (UK)" msgstr "Englanti (Britannia)" -#: picard/const.py:122 +#: picard/const.py:97 msgid "Spanish" msgstr "Espanja" -#: picard/const.py:123 +#: picard/const.py:98 msgid "Estonian" msgstr "Viro" -#: picard/const.py:125 +#: picard/const.py:100 msgid "Finnish" msgstr "Suomi" -#: picard/const.py:127 +#: picard/const.py:102 msgid "French" msgstr "Ranska" -#: picard/const.py:136 +#: picard/const.py:111 msgid "Italian" msgstr "Italia" -#: picard/const.py:143 +#: picard/const.py:118 msgid "Dutch" msgstr "Hollanti" -#: picard/const.py:145 +#: picard/const.py:120 msgid "Polish" msgstr "Puola" -#: picard/const.py:147 +#: picard/const.py:122 msgid "Brazilian Portuguese" msgstr "Portugali (Brasilia)" -#: picard/const.py:154 +#: picard/const.py:129 msgid "Swedish" msgstr "Ruotsi" -#: picard/coverart.py:84 +#: picard/coverart.py:85 #, python-format -msgid "Coverart %s downloaded" -msgstr "Kansitaide %s ladattu" +msgid "Cover art of type '%(type)s' downloaded for %(albumid)s from %(host)s" +msgstr "" -#: picard/coverart.py:240 +#: picard/coverart.py:256 #, python-format -msgid "Downloading http://%s:%i%s" -msgstr "Ladataan http://%s:%i%s" - -#: picard/coverartarchive.py:24 -msgid "Front" -msgstr "Kansi" - -#: picard/coverartarchive.py:25 -msgid "Back" -msgstr "Takakansi" - -#: picard/coverartarchive.py:26 -msgid "Booklet" -msgstr "Vihkonen" - -#: picard/coverartarchive.py:27 -msgid "Medium" -msgstr "Tallenne" - -#: picard/coverartarchive.py:28 -msgid "Tray" -msgstr "Kotelo" - -#: picard/coverartarchive.py:29 -msgid "Obi" -msgstr "Obi" +msgid "" +"Downloading cover art of type '%(type)s' for %(albumid)s from %(host)s .." +msgstr "" #: picard/coverartarchive.py:30 -msgid "Spine" -msgstr "Selkä" - -#: picard/coverartarchive.py:31 picard/ui/mainwindow.py:546 -msgid "Track" -msgstr "Kappale" - -#: picard/coverartarchive.py:32 -msgid "Sticker" -msgstr "Tarra" - -#: picard/coverartarchive.py:34 msgid "Unknown" msgstr "Tuntematon" -#: picard/file.py:536 +#: picard/file.py:494 #, python-format -msgid "No matching tracks for file %s" -msgstr "Tiedostolle %s ei löytynyt vastaavia kappaleita" +msgid "No matching tracks for file '%(filename)s'" +msgstr "" -#: picard/file.py:548 +#: picard/file.py:510 #, python-format -msgid "No matching tracks above the threshold for file %s" -msgstr "Tiedostolle %s ei löytynyt vastaavia kappaleita kynnyksen yläpuolella" +msgid "No matching tracks above the threshold for file '%(filename)s'" +msgstr "" -#: picard/file.py:551 +#: picard/file.py:517 #, python-format -msgid "File %s identified!" -msgstr "Tiedosto %s tunnistettu!" +msgid "File '%(filename)s' identified!" +msgstr "" -#: picard/file.py:567 +#: picard/file.py:537 #, python-format -msgid "Looking up the metadata for file %s..." -msgstr "Haetaan metatietoja tiedostolle %s..." +msgid "Looking up the metadata for file %(filename)s ..." +msgstr "" #: picard/releasegroup.py:53 msgid "Tracks" -msgstr "" +msgstr "Kappaleet" #: picard/releasegroup.py:54 msgid "Year" -msgstr "" +msgstr "Vuosi" -#: picard/releasegroup.py:55 picard/ui/cdlookup.py:34 +#: picard/releasegroup.py:55 picard/ui/cdlookup.py:35 msgid "Country" msgstr "Maa" -#: picard/releasegroup.py:56 picard/util/tags.py:81 +#: picard/releasegroup.py:56 msgid "Format" msgstr "Formaatti" #: picard/releasegroup.py:57 msgid "Label" -msgstr "" +msgstr "Levymerkki" #: picard/releasegroup.py:58 msgid "Cat No" -msgstr "" +msgstr "Luett. nro" #: picard/releasegroup.py:88 msgid "[no barcode]" @@ -546,16 +429,23 @@ msgstr "[ei viivakoodia]" msgid "[no release info]" msgstr "[ei julkaisutietoja]" -#: picard/tagger.py:316 +#: picard/tagger.py:370 #, python-format -msgid "Loading directory %s" -msgstr "Ladataan hakemistoa %s" +msgid "Adding %(count)d file from '%(directory)s' ..." +msgid_plural "Adding %(count)d files from '%(directory)s' ..." +msgstr[0] "" +msgstr[1] "" -#: picard/tagger.py:452 +#: picard/tagger.py:512 +#, python-format +msgid "Removing album %(id)s: %(artist)s - %(album)s" +msgstr "" + +#: picard/tagger.py:528 msgid "CD Lookup Error" msgstr "Virhe CD-haussa" -#: picard/tagger.py:453 +#: picard/tagger.py:529 #, python-format msgid "" "Error while reading CD:\n" @@ -563,44 +453,43 @@ msgid "" "%s" msgstr "Virhe lukiessa CD-levyä:\n\n%s" -#: picard/ui/cdlookup.py:34 picard/ui/mainwindow.py:544 -#: picard/ui/ui_options_releases.py:216 picard/util/tags.py:21 +#: picard/ui/cdlookup.py:35 picard/ui/mainwindow.py:597 picard/util/tags.py:21 msgid "Album" msgstr "Julkaisu" -#: picard/ui/cdlookup.py:34 picard/ui/itemviews.py:96 -#: picard/ui/mainwindow.py:545 picard/util/tags.py:22 +#: picard/ui/cdlookup.py:35 picard/ui/itemviews.py:96 +#: picard/ui/mainwindow.py:598 picard/util/tags.py:22 msgid "Artist" msgstr "Artisti" -#: picard/ui/cdlookup.py:34 picard/util/tags.py:24 +#: picard/ui/cdlookup.py:35 picard/util/tags.py:24 msgid "Date" msgstr "Päiväys" -#: picard/ui/cdlookup.py:35 +#: picard/ui/cdlookup.py:36 msgid "Labels" msgstr "Levymerkit" -#: picard/ui/cdlookup.py:35 +#: picard/ui/cdlookup.py:36 msgid "Catalog #s" msgstr "Luettelonumerot" -#: picard/ui/cdlookup.py:35 picard/util/tags.py:79 +#: picard/ui/cdlookup.py:36 picard/util/tags.py:78 msgid "Barcode" msgstr "Viivakoodi" -#: picard/ui/collectionmenu.py:31 +#: picard/ui/collectionmenu.py:42 msgid "Refresh List" msgstr "Päivitä lista" -#: picard/ui/collectionmenu.py:92 +#: picard/ui/collectionmenu.py:86 #, python-format msgid "%s (%i release)" msgid_plural "%s (%i releases)" msgstr[0] "%s (%i julkaisu)" msgstr[1] "%s (%i julkaisua)" -#: picard/ui/coverartbox.py:142 +#: picard/ui/coverartbox.py:141 msgid "View release on MusicBrainz" msgstr "Näytä julkaisu MusicBrainz:ssa." @@ -616,59 +505,59 @@ msgstr "&Näytä piilotetut tiedostot" msgid "&Set as starting directory" msgstr "&Aseta aloitushakemistoksi" -#: picard/ui/infodialog.py:36 picard/ui/infodialog.py:75 +#: picard/ui/infodialog.py:37 picard/ui/infodialog.py:80 msgid "Info" msgstr "Lisätietoja" -#: picard/ui/infodialog.py:80 +#: picard/ui/infodialog.py:85 msgid "Filename:" msgstr "Tiedostonimi:" -#: picard/ui/infodialog.py:82 +#: picard/ui/infodialog.py:87 msgid "Format:" msgstr "Tiedostomuoto:" -#: picard/ui/infodialog.py:86 +#: picard/ui/infodialog.py:91 msgid "Size:" msgstr "Koko:" -#: picard/ui/infodialog.py:90 +#: picard/ui/infodialog.py:95 msgid "Length:" msgstr "Kesto:" -#: picard/ui/infodialog.py:92 +#: picard/ui/infodialog.py:97 msgid "Bitrate:" msgstr "Bittinopeus:" -#: picard/ui/infodialog.py:94 +#: picard/ui/infodialog.py:99 msgid "Sample rate:" msgstr "Näytteenottotaajuus:" -#: picard/ui/infodialog.py:96 +#: picard/ui/infodialog.py:101 msgid "Bits per sample:" msgstr "Bittisyvyys:" -#: picard/ui/infodialog.py:100 +#: picard/ui/infodialog.py:105 msgid "Mono" msgstr "Mono" -#: picard/ui/infodialog.py:102 +#: picard/ui/infodialog.py:107 msgid "Stereo" msgstr "Stereo" -#: picard/ui/infodialog.py:105 +#: picard/ui/infodialog.py:110 msgid "Channels:" msgstr "Kanavia:" -#: picard/ui/infodialog.py:116 +#: picard/ui/infodialog.py:121 msgid "Album Info" msgstr "Julkaisun tiedot" -#: picard/ui/infodialog.py:124 +#: picard/ui/infodialog.py:129 msgid "&Errors" msgstr "&Virheet" -#: picard/ui/infodialog.py:134 picard/ui/ui_infodialog.py:77 +#: picard/ui/infodialog.py:139 picard/ui/ui_infodialog.py:73 msgid "&Info" msgstr "&Tiedot" @@ -692,7 +581,7 @@ msgstr "Odottavat pyynnöt" msgid "Title" msgstr "Nimi" -#: picard/ui/itemviews.py:95 picard/util/tags.py:88 +#: picard/ui/itemviews.py:95 picard/util/tags.py:86 msgid "Length" msgstr "Kesto" @@ -717,8 +606,8 @@ msgid "Collections" msgstr "Kokoelmat" #: picard/ui/itemviews.py:365 -msgid "&Plugins" -msgstr "Liitä&nnäiset" +msgid "P&lugins" +msgstr "L&iitännäiset" #: picard/ui/itemviews.py:541 msgid "file view" @@ -740,13 +629,17 @@ msgstr "julkaisunäkymä" msgid "Contains albums and matched files" msgstr "Sisältää julkaisuja ja täsmääviä tiedostoja" -#: picard/ui/logview.py:91 +#: picard/ui/logview.py:109 msgid "Log" msgstr "Loki" -#: picard/ui/logview.py:99 -msgid "Status History" -msgstr "Toimintahistoria" +#: picard/ui/logview.py:113 +msgid "Debug mode" +msgstr "Testaustila" + +#: picard/ui/logview.py:134 +msgid "Activity History" +msgstr "Aktiviteettihistoria" #: picard/ui/mainwindow.py:74 msgid "MusicBrainz Picard" @@ -779,276 +672,309 @@ msgstr "Valmis" #: picard/ui/mainwindow.py:220 msgid "" -"Picard listens on a port to integrate with your browser and downloads " -"release information when you click the \"Tagger\" buttons on the MusicBrainz" -" website" -msgstr "Picard toimii selaimen avulla tarkkailemalla porttia, ja hakee julkaisutietoja painaessasi \"Tagger\"-painikkeita MusicBrainzin sivustolla." +"Picard listens on this port to integrate with your browser. When you " +"\"Search\" or \"Open in Browser\" from Picard, clicking the \"Tagger\" " +"button on the web page loads the release into Picard." +msgstr "Picard kuuntelee tätä porttia toimiakseen selaimesi kanssa. Valittuasi \"Hae\" tai \"Etsi selaimella\", voit käyttää verkkosivun \"Tagger\"-painiketta ladataksesi julkaisun tiedot Picardiin." -#: picard/ui/mainwindow.py:240 +#: picard/ui/mainwindow.py:243 #, python-format msgid " Listening on port %(port)d " msgstr " Tarkkaillaan porttia %(port)d " -#: picard/ui/mainwindow.py:263 +#: picard/ui/mainwindow.py:299 msgid "Submission Error" msgstr "Virhe tietojen lähetyksessä" -#: picard/ui/mainwindow.py:264 +#: picard/ui/mainwindow.py:300 msgid "" "You need to configure your AcoustID API key before you can submit " "fingerprints." msgstr "AcoustID:n API-avain täytyy määrittää äänitunnisteiden lähettämistä varten." -#: picard/ui/mainwindow.py:269 +#: picard/ui/mainwindow.py:305 msgid "&Options..." msgstr "&Asetukset..." -#: picard/ui/mainwindow.py:273 +#: picard/ui/mainwindow.py:309 msgid "&Cut" msgstr "&Leikkaa" -#: picard/ui/mainwindow.py:278 +#: picard/ui/mainwindow.py:314 msgid "&Paste" msgstr "L&iitä" -#: picard/ui/mainwindow.py:283 +#: picard/ui/mainwindow.py:319 msgid "&Help..." msgstr "O&hje..." -#: picard/ui/mainwindow.py:288 +#: picard/ui/mainwindow.py:323 msgid "&About..." msgstr "&Tietoja..." -#: picard/ui/mainwindow.py:292 +#: picard/ui/mainwindow.py:327 msgid "&Donate..." msgstr "&Lahjoita..." -#: picard/ui/mainwindow.py:295 +#: picard/ui/mainwindow.py:330 msgid "&Report a Bug..." msgstr "Ilmoita &virheestä..." -#: picard/ui/mainwindow.py:298 +#: picard/ui/mainwindow.py:333 msgid "&Support Forum..." msgstr "Tuki&foorumi..." -#: picard/ui/mainwindow.py:301 +#: picard/ui/mainwindow.py:336 msgid "&Add Files..." msgstr "L&isää tiedostoja..." -#: picard/ui/mainwindow.py:302 +#: picard/ui/mainwindow.py:337 msgid "Add files to the tagger" msgstr "Lisää tiedostoja ohjelmaan" -#: picard/ui/mainwindow.py:307 +#: picard/ui/mainwindow.py:342 msgid "A&dd Folder..." msgstr "Lisää &kansio..." -#: picard/ui/mainwindow.py:308 +#: picard/ui/mainwindow.py:343 msgid "Add a folder to the tagger" msgstr "Lisää kansio ohjelmaan" -#: picard/ui/mainwindow.py:310 +#: picard/ui/mainwindow.py:345 msgid "Ctrl+D" msgstr "Ctrl+D" -#: picard/ui/mainwindow.py:313 +#: picard/ui/mainwindow.py:348 msgid "&Save" msgstr "&Tallenna" -#: picard/ui/mainwindow.py:314 +#: picard/ui/mainwindow.py:349 msgid "Save selected files" msgstr "Tallenna valitut tiedostot" -#: picard/ui/mainwindow.py:320 +#: picard/ui/mainwindow.py:355 msgid "S&ubmit" msgstr "L&ähetä" -#: picard/ui/mainwindow.py:321 -msgid "Submit fingerprints" +#: picard/ui/mainwindow.py:356 +msgid "Submit acoustic fingerprints" msgstr "Lähetä äänitunnisteet" -#: picard/ui/mainwindow.py:325 +#: picard/ui/mainwindow.py:360 msgid "E&xit" msgstr "&Lopeta" -#: picard/ui/mainwindow.py:328 +#: picard/ui/mainwindow.py:363 msgid "Ctrl+Q" msgstr "Ctrl+Q" -#: picard/ui/mainwindow.py:331 +#: picard/ui/mainwindow.py:366 msgid "&Remove" msgstr "&Poista" -#: picard/ui/mainwindow.py:332 +#: picard/ui/mainwindow.py:367 msgid "Remove selected files/albums" msgstr "Poista valitut tiedostot/julkaisut" -#: picard/ui/mainwindow.py:336 +#: picard/ui/mainwindow.py:371 msgid "Lookup in &Browser" msgstr "Etsi &selaimella" -#: picard/ui/mainwindow.py:337 +#: picard/ui/mainwindow.py:372 msgid "Lookup selected item on MusicBrainz website" msgstr "Etsi valittua kohdetta MusicBrainz-sivustolta" -#: picard/ui/mainwindow.py:341 +#: picard/ui/mainwindow.py:376 msgid "File &Browser" msgstr "Tiedosto&selain" -#: picard/ui/mainwindow.py:345 +#: picard/ui/mainwindow.py:380 msgid "Ctrl+B" msgstr "Ctrl+B" -#: picard/ui/mainwindow.py:348 +#: picard/ui/mainwindow.py:383 msgid "&Cover Art" msgstr "&Kansikuva" -#: picard/ui/mainwindow.py:354 picard/ui/mainwindow.py:539 +#: picard/ui/mainwindow.py:389 picard/ui/mainwindow.py:591 msgid "Search" msgstr "Hae" -#: picard/ui/mainwindow.py:357 -msgid "&CD Lookup..." -msgstr "&CD-haku..." +#: picard/ui/mainwindow.py:392 +msgid "Lookup &CD..." +msgstr "&CD-haku" -#: picard/ui/mainwindow.py:358 picard/ui/mainwindow.py:359 -msgid "Lookup CD" -msgstr "Etsi CD-levyä" +#: picard/ui/mainwindow.py:393 +msgid "Lookup the details of the CD in your drive" +msgstr "Hae tietoja CD-levystäsi" -#: picard/ui/mainwindow.py:361 +#: picard/ui/mainwindow.py:395 msgid "Ctrl+K" msgstr "Ctrl+K" -#: picard/ui/mainwindow.py:364 +#: picard/ui/mainwindow.py:398 msgid "&Scan" msgstr "&Analysoi" -#: picard/ui/mainwindow.py:367 +#: picard/ui/mainwindow.py:401 msgid "Ctrl+Y" msgstr "Ctrl+Y" -#: picard/ui/mainwindow.py:370 +#: picard/ui/mainwindow.py:404 msgid "Cl&uster" msgstr "&Ryhmitä" -#: picard/ui/mainwindow.py:373 +#: picard/ui/mainwindow.py:407 msgid "Ctrl+U" msgstr "Ctrl+U" -#: picard/ui/mainwindow.py:376 +#: picard/ui/mainwindow.py:410 msgid "&Lookup" msgstr "&Hae" -#: picard/ui/mainwindow.py:377 picard/ui/mainwindow.py:378 -msgid "Lookup metadata" -msgstr "Hae nykyisillä metatiedoilla" +#: picard/ui/mainwindow.py:411 +msgid "Lookup selected items in MusicBrainz" +msgstr "Etsi valittua kohdetta MusicBrainzista" -#: picard/ui/mainwindow.py:381 +#: picard/ui/mainwindow.py:416 msgid "Ctrl+L" msgstr "Ctrl+L" -#: picard/ui/mainwindow.py:384 +#: picard/ui/mainwindow.py:419 msgid "&Info..." msgstr "T&iedot..." -#: picard/ui/mainwindow.py:387 +#: picard/ui/mainwindow.py:422 msgid "Ctrl+I" msgstr "Ctrl+I" -#: picard/ui/mainwindow.py:390 +#: picard/ui/mainwindow.py:425 msgid "&Refresh" msgstr "P&äivitä" -#: picard/ui/mainwindow.py:391 +#: picard/ui/mainwindow.py:426 msgid "Ctrl+R" msgstr "Ctrl+R" -#: picard/ui/mainwindow.py:394 +#: picard/ui/mainwindow.py:429 msgid "&Rename Files" msgstr "&Nimeä tiedostot" -#: picard/ui/mainwindow.py:399 +#: picard/ui/mainwindow.py:434 msgid "&Move Files" msgstr "&Siirrä tiedostot" -#: picard/ui/mainwindow.py:404 +#: picard/ui/mainwindow.py:439 msgid "Save &Tags" msgstr "&Tallenna tunnisteet" -#: picard/ui/mainwindow.py:409 +#: picard/ui/mainwindow.py:444 msgid "Tags From &File Names..." msgstr "&Luo tunnisteet tiedostonimistä..." -#: picard/ui/mainwindow.py:412 -msgid "View &Log..." -msgstr "&Näytä loki..." +#: picard/ui/mainwindow.py:447 +msgid "&Open My Collections in Browser" +msgstr "&Avaa kokoelmani selaimeen" -#: picard/ui/mainwindow.py:415 -msgid "View Status &History..." -msgstr "Näytä toiminta&historia..." +#: picard/ui/mainwindow.py:451 +msgid "View Error/Debug &Log" +msgstr "&Näytä virhe/testi-loki" -#: picard/ui/mainwindow.py:422 -msgid "&Open..." -msgstr "T&oista..." +#: picard/ui/mainwindow.py:454 +msgid "View Activity &History" +msgstr "&Näytä aktiviteettihistoria" -#: picard/ui/mainwindow.py:423 -msgid "Open the file" -msgstr "Avaa tiedosto ulkoisessa ohjelmassa" +#: picard/ui/mainwindow.py:461 +msgid "&Play file" +msgstr "&Toista tiedosto" -#: picard/ui/mainwindow.py:426 -msgid "Open &Folder..." -msgstr "Avaa &kansio..." +#: picard/ui/mainwindow.py:462 +msgid "Play the file in your default media player" +msgstr "Toista tiedosto oletussoittimellasi" -#: picard/ui/mainwindow.py:427 -msgid "Open the containing folder" +#: picard/ui/mainwindow.py:466 +msgid "Open Containing &Folder" +msgstr "&Avaa tiedoston kansio" + +#: picard/ui/mainwindow.py:467 +msgid "Open the containing folder in your file explorer" msgstr "Avaa tiedoston kansio" -#: picard/ui/mainwindow.py:448 +#: picard/ui/mainwindow.py:492 msgid "&File" msgstr "&Tiedosto" -#: picard/ui/mainwindow.py:456 +#: picard/ui/mainwindow.py:503 msgid "&Edit" msgstr "&Muokkaa" -#: picard/ui/mainwindow.py:462 +#: picard/ui/mainwindow.py:509 msgid "&View" msgstr "&Näytä" -#: picard/ui/mainwindow.py:470 +#: picard/ui/mainwindow.py:515 msgid "&Options" msgstr "&Asetukset" -#: picard/ui/mainwindow.py:476 +#: picard/ui/mainwindow.py:521 msgid "&Tools" msgstr "Ty&ökalut" -#: picard/ui/mainwindow.py:485 picard/ui/util.py:35 +#: picard/ui/mainwindow.py:532 picard/ui/util.py:35 msgid "&Help" msgstr "&Ohje" -#: picard/ui/mainwindow.py:505 +#: picard/ui/mainwindow.py:553 msgid "Actions" msgstr "Toiminnot" -#: picard/ui/mainwindow.py:608 +#: picard/ui/mainwindow.py:599 +msgid "Track" +msgstr "Kappale" + +#: picard/ui/mainwindow.py:662 msgid "All Supported Formats" msgstr "Kaikki tuetut tiedostomuodot" -#: picard/ui/mainwindow.py:705 +#: picard/ui/mainwindow.py:695 +#, python-format +msgid "Adding directory: '%(directory)s' ..." +msgstr "" + +#: picard/ui/mainwindow.py:702 +#, python-format +msgid "Adding multiple directories from '%(directory)s' ..." +msgstr "" + +#: picard/ui/mainwindow.py:767 msgid "Configuration Required" msgstr "Asetukset puuttuvat" -#: picard/ui/mainwindow.py:706 +#: picard/ui/mainwindow.py:768 msgid "" "Audio fingerprinting is not yet configured. Would you like to configure it " "now?" msgstr "Äänitunnistamisen asetuksia ei ole vielä määritetty. Määritetäänkö asetukset nyt?" -#: picard/ui/mainwindow.py:784 picard/ui/mainwindow.py:791 +#: picard/ui/mainwindow.py:848 #, python-format -msgid " (Error: %s)" -msgstr " (Virhe: %s)" +msgid "%(filename)s (error: %(error)s)" +msgstr "" + +#: picard/ui/mainwindow.py:854 +#, python-format +msgid "%(filename)s" +msgstr "" + +#: picard/ui/mainwindow.py:864 +#, python-format +msgid "%(filename)s (%(similarity)d%%) (error: %(error)s)" +msgstr "" + +#: picard/ui/mainwindow.py:871 +#, python-format +msgid "%(filename)s (%(similarity)d%%)" +msgstr "" #: picard/ui/metadatabox.py:82 #, python-format @@ -1102,387 +1028,387 @@ msgid_plural "Use Original Values" msgstr[0] "Käytä alkuperäistä arvoa" msgstr[1] "Käytä alkuperäisiä arvoja" -#: picard/ui/passworddialog.py:37 +#: picard/ui/passworddialog.py:40 #, python-format msgid "" "The server %s requires you to login. Please enter your username and " "password." msgstr "Palvelin %s edellyttää kirjautumista. Syötä käyttäjätunnuksesi ja salasanasi." -#: picard/ui/passworddialog.py:75 +#: picard/ui/passworddialog.py:79 #, python-format msgid "" "The proxy %s requires you to login. Please enter your username and password." msgstr "Välityspalvelin %s vaatii kirjautumisen. Syötä käyttäjänimesi ja salasanasi." -#: picard/ui/tagsfromfilenames.py:55 picard/ui/tagsfromfilenames.py:100 +#: picard/ui/tagsfromfilenames.py:56 picard/ui/tagsfromfilenames.py:101 msgid "File Name" msgstr "Tiedostonimi" -#: picard/ui/ui_cdlookup.py:66 picard/ui/ui_options_cdlookup.py:55 -#: picard/ui/ui_options_cdlookup_select.py:62 picard/ui/options/cdlookup.py:38 +#: picard/ui/ui_cdlookup.py:53 picard/ui/ui_options_cdlookup.py:42 +#: picard/ui/ui_options_cdlookup_select.py:49 picard/ui/options/cdlookup.py:38 msgid "CD Lookup" msgstr "CD-haku" -#: picard/ui/ui_cdlookup.py:67 +#: picard/ui/ui_cdlookup.py:54 msgid "The following releases on MusicBrainz match the CD:" msgstr "Seuraavat julkaisut MusicBrainzissa vastaavat CD-levyä:" -#: picard/ui/ui_cdlookup.py:68 +#: picard/ui/ui_cdlookup.py:55 msgid "OK" msgstr "OK" -#: picard/ui/ui_cdlookup.py:69 +#: picard/ui/ui_cdlookup.py:56 msgid "Lookup manually" msgstr "Etsi selaimella" -#: picard/ui/ui_cdlookup.py:70 +#: picard/ui/ui_cdlookup.py:57 msgid "Cancel" msgstr "Peruuta" -#: picard/ui/ui_edittagdialog.py:101 +#: picard/ui/ui_edittagdialog.py:88 msgid "Edit Tag" msgstr "Muokkaa tunnistetta" -#: picard/ui/ui_edittagdialog.py:102 +#: picard/ui/ui_edittagdialog.py:89 msgid "Edit value" msgstr "Muokkaa arvoa" -#: picard/ui/ui_edittagdialog.py:103 +#: picard/ui/ui_edittagdialog.py:90 msgid "Add value" msgstr "Lisää arvo" -#: picard/ui/ui_edittagdialog.py:104 +#: picard/ui/ui_edittagdialog.py:91 msgid "Remove value" msgstr "Poista arvo" -#: picard/ui/ui_infodialog.py:78 +#: picard/ui/ui_infodialog.py:74 msgid "A&rtwork" msgstr "&Kansikuva" -#: picard/ui/ui_infostatus.py:100 +#: picard/ui/ui_infostatus.py:96 msgid "Form" msgstr "Lomake" -#: picard/ui/ui_options.py:51 +#: picard/ui/ui_options.py:38 msgid "Options" msgstr "Asetukset" -#: picard/ui/ui_options_advanced.py:46 +#: picard/ui/ui_options_advanced.py:42 msgid "Advanced options" -msgstr "" +msgstr "Lisäasetukset" -#: picard/ui/ui_options_advanced.py:47 +#: picard/ui/ui_options_advanced.py:43 msgid "Ignore file paths matching the following regular expression:" -msgstr "" +msgstr "Jätä huomioimatta hakemistot jotka vastaavat lausekkeen ehtoa:" -#: picard/ui/ui_options_cdlookup.py:56 +#: picard/ui/ui_options_cdlookup.py:43 msgid "CD-ROM device to use for lookups:" msgstr "Hakuihin käytettävä CD-ROM-asema:" -#: picard/ui/ui_options_cdlookup_select.py:63 +#: picard/ui/ui_options_cdlookup_select.py:50 msgid "Default CD-ROM drive to use for lookups:" msgstr "Hakuihin käytettävä oletus-CD-ROM-asema:" -#: picard/ui/ui_options_cover.py:145 +#: picard/ui/ui_options_cover.py:131 msgid "Location" msgstr "Sijainti" -#: picard/ui/ui_options_cover.py:146 +#: picard/ui/ui_options_cover.py:132 msgid "Embed cover images into tags" msgstr "Sisällytä kansikuvat tunnisteisiin" -#: picard/ui/ui_options_cover.py:147 +#: picard/ui/ui_options_cover.py:133 msgid "Only embed a front image" msgstr "Sisällytä vain etukannen kuva" -#: picard/ui/ui_options_cover.py:148 +#: picard/ui/ui_options_cover.py:134 msgid "Save cover images as separate files" msgstr "Tallenna kansikuvat erillisinä tiedostoina" -#: picard/ui/ui_options_cover.py:149 +#: picard/ui/ui_options_cover.py:135 msgid "Use the following file name for images:" msgstr "Käytä seuraavaa tiedostonimeä kuville:" -#: picard/ui/ui_options_cover.py:150 +#: picard/ui/ui_options_cover.py:136 msgid "Overwrite the file if it already exists" msgstr "Korvaa jo olemassa oleva tiedosto" -#: picard/ui/ui_options_cover.py:151 +#: picard/ui/ui_options_cover.py:137 msgid "Coverart Providers" msgstr "Kansitaiteen tarjoajat" -#: picard/ui/ui_options_cover.py:152 +#: picard/ui/ui_options_cover.py:138 msgid "Amazon" msgstr "Amazon" -#: picard/ui/ui_options_cover.py:153 picard/ui/ui_options_cover.py:155 +#: picard/ui/ui_options_cover.py:139 picard/ui/ui_options_cover.py:141 msgid "Cover Art Archive" msgstr "Cover Art Archive" -#: picard/ui/ui_options_cover.py:154 +#: picard/ui/ui_options_cover.py:140 msgid "Sites on the whitelist" msgstr "Sallitut sivustot" -#: picard/ui/ui_options_cover.py:156 +#: picard/ui/ui_options_cover.py:142 msgid "Only use images of the following size:" msgstr "Käytä vain seuraavan kokoisia kuvia:" -#: picard/ui/ui_options_cover.py:157 +#: picard/ui/ui_options_cover.py:143 msgid "250 px" msgstr "250 px" -#: picard/ui/ui_options_cover.py:158 +#: picard/ui/ui_options_cover.py:144 msgid "500 px" msgstr "500 px" -#: picard/ui/ui_options_cover.py:159 +#: picard/ui/ui_options_cover.py:145 msgid "Full size" msgstr "Täysikokoinen" -#: picard/ui/ui_options_cover.py:160 +#: picard/ui/ui_options_cover.py:146 msgid "Download only images of the following types:" msgstr "Lataa vain seuraavan tyyppisiä kuvia:" -#: picard/ui/ui_options_cover.py:161 +#: picard/ui/ui_options_cover.py:147 msgid "Download only approved images" msgstr "Lataa vain hyväksytyt kuvat" -#: picard/ui/ui_options_cover.py:162 +#: picard/ui/ui_options_cover.py:148 msgid "" "Use the first image type as the filename. This will not change the filename " "of front images." msgstr "Käytä ensimmäistä kuvatyyppiä tiedostonimenä. Tämä ei vaihda kansikuvien tiedostonimeä." -#: picard/ui/ui_options_fingerprinting.py:83 +#: picard/ui/ui_options_fingerprinting.py:70 msgid "Audio Fingerprinting" msgstr "Äänitunnisteet" -#: picard/ui/ui_options_fingerprinting.py:84 +#: picard/ui/ui_options_fingerprinting.py:71 msgid "Do not use audio fingerprinting" msgstr "Älä käytä äänitunnisteita" -#: picard/ui/ui_options_fingerprinting.py:85 +#: picard/ui/ui_options_fingerprinting.py:72 msgid "Use AcoustID" msgstr "Käytä AcoustID:tä" -#: picard/ui/ui_options_fingerprinting.py:86 +#: picard/ui/ui_options_fingerprinting.py:73 msgid "AcoustID Settings" msgstr "AcoustID-asetukset" -#: picard/ui/ui_options_fingerprinting.py:87 +#: picard/ui/ui_options_fingerprinting.py:74 msgid "Fingerprint calculator:" msgstr "Äänitunnisteen laskemiseen käytettävä ohjelma:" -#: picard/ui/ui_options_fingerprinting.py:88 -#: picard/ui/ui_options_interface.py:88 picard/ui/ui_options_renaming.py:138 +#: picard/ui/ui_options_fingerprinting.py:75 +#: picard/ui/ui_options_interface.py:75 picard/ui/ui_options_renaming.py:134 msgid "Browse..." msgstr "Selaa..." -#: picard/ui/ui_options_fingerprinting.py:89 +#: picard/ui/ui_options_fingerprinting.py:76 msgid "Download..." msgstr "Lataa..." -#: picard/ui/ui_options_fingerprinting.py:90 +#: picard/ui/ui_options_fingerprinting.py:77 msgid "API key:" msgstr "API-avain:" -#: picard/ui/ui_options_fingerprinting.py:91 +#: picard/ui/ui_options_fingerprinting.py:78 msgid "Get API key..." msgstr "Hae API-avain..." -#: picard/ui/ui_options_folksonomy.py:115 picard/ui/options/folksonomy.py:28 +#: picard/ui/ui_options_folksonomy.py:102 picard/ui/options/folksonomy.py:28 msgid "Folksonomy Tags" msgstr "Folksonomia-luokitukset" -#: picard/ui/ui_options_folksonomy.py:117 +#: picard/ui/ui_options_folksonomy.py:104 msgid "Only use my tags" msgstr "Käytä vain omia luokituksiani" -#: picard/ui/ui_options_folksonomy.py:120 +#: picard/ui/ui_options_folksonomy.py:107 msgid "Maximum number of tags:" msgstr "Luokituksien enimmäismäärä:" -#: picard/ui/ui_options_general.py:92 +#: picard/ui/ui_options_general.py:88 msgid "MusicBrainz Server" msgstr "MusicBrainz-palvelin" -#: picard/ui/ui_options_general.py:93 picard/ui/ui_options_network.py:123 +#: picard/ui/ui_options_general.py:89 picard/ui/ui_options_network.py:110 msgid "Port:" msgstr "Portti:" -#: picard/ui/ui_options_general.py:94 picard/ui/ui_options_network.py:124 +#: picard/ui/ui_options_general.py:90 picard/ui/ui_options_network.py:111 msgid "Server address:" msgstr "Palvelimen osoite:" -#: picard/ui/ui_options_general.py:95 +#: picard/ui/ui_options_general.py:91 msgid "Account Information" msgstr "Tilitiedot" -#: picard/ui/ui_options_general.py:96 picard/ui/ui_options_network.py:121 -#: picard/ui/ui_passworddialog.py:74 +#: picard/ui/ui_options_general.py:92 picard/ui/ui_options_network.py:108 +#: picard/ui/ui_passworddialog.py:70 msgid "Password:" msgstr "Salasana:" -#: picard/ui/ui_options_general.py:97 picard/ui/ui_options_network.py:122 -#: picard/ui/ui_passworddialog.py:73 +#: picard/ui/ui_options_general.py:93 picard/ui/ui_options_network.py:109 +#: picard/ui/ui_passworddialog.py:69 msgid "Username:" msgstr "Käyttäjätunnus:" -#: picard/ui/ui_options_general.py:98 picard/ui/options/general.py:31 +#: picard/ui/ui_options_general.py:94 picard/ui/options/general.py:31 msgid "General" msgstr "Yleiset" -#: picard/ui/ui_options_general.py:99 +#: picard/ui/ui_options_general.py:95 msgid "Automatically scan all new files" msgstr "Analysoi uudet tiedostot automaattisesti" -#: picard/ui/ui_options_general.py:100 +#: picard/ui/ui_options_general.py:96 msgid "Ignore MBIDs when loading new files" msgstr "Ohita uusien tiedostojen MBID-tunnisteet" -#: picard/ui/ui_options_interface.py:82 +#: picard/ui/ui_options_interface.py:69 msgid "Miscellaneous" msgstr "Muut" -#: picard/ui/ui_options_interface.py:83 +#: picard/ui/ui_options_interface.py:70 msgid "Show text labels under icons" msgstr "Näytä teksti kuvakkeiden alla" -#: picard/ui/ui_options_interface.py:84 +#: picard/ui/ui_options_interface.py:71 msgid "Allow selection of multiple directories" msgstr "Salli usean kansion valinta" -#: picard/ui/ui_options_interface.py:85 +#: picard/ui/ui_options_interface.py:72 msgid "Use advanced query syntax" msgstr "Käytä laajennettuja hakukomentoja" -#: picard/ui/ui_options_interface.py:86 +#: picard/ui/ui_options_interface.py:73 msgid "Show a quit confirmation dialog for unsaved changes" msgstr "Kysy vahvistus poistuttaessa, mikäli tallentamattomia muutoksia" -#: picard/ui/ui_options_interface.py:87 +#: picard/ui/ui_options_interface.py:74 msgid "Begin browsing in the following directory:" msgstr "Aloita tiedostoselaaminen tästä hakemistosta:" -#: picard/ui/ui_options_interface.py:89 +#: picard/ui/ui_options_interface.py:76 msgid "User interface language:" msgstr "Käyttöliittymän kieli:" -#: picard/ui/ui_options_matching.py:86 +#: picard/ui/ui_options_matching.py:73 msgid "Thresholds" msgstr "Kynnykset" -#: picard/ui/ui_options_matching.py:87 +#: picard/ui/ui_options_matching.py:74 msgid "Minimal similarity for matching files to tracks:" msgstr "Pienin samankaltaisuus tiedostojen yhdistämiseen kappaleisiin:" -#: picard/ui/ui_options_matching.py:91 +#: picard/ui/ui_options_matching.py:78 msgid "Minimal similarity for file lookups:" msgstr "Pienin samankaltaisuus tiedostojen hakuihin:" -#: picard/ui/ui_options_matching.py:92 +#: picard/ui/ui_options_matching.py:79 msgid "Minimal similarity for cluster lookups:" msgstr "Pienin samankaltaisuus ryhmien hakuihin:" -#: picard/ui/ui_options_metadata.py:114 picard/ui/options/metadata.py:29 +#: picard/ui/ui_options_metadata.py:101 picard/ui/options/metadata.py:29 msgid "Metadata" msgstr "Metatiedot" -#: picard/ui/ui_options_metadata.py:115 +#: picard/ui/ui_options_metadata.py:102 msgid "Translate artist names to this locale where possible:" msgstr "Muunna artistien nimet tämän alueen asetuksiin mikäli mahdollista:" -#: picard/ui/ui_options_metadata.py:116 +#: picard/ui/ui_options_metadata.py:103 msgid "Use standardized artist names" msgstr "Käytä yhdenmukaistettuja artistien nimiä" -#: picard/ui/ui_options_metadata.py:117 +#: picard/ui/ui_options_metadata.py:104 msgid "Convert Unicode punctuation characters to ASCII" msgstr "Muunna Unicode-välimerkit ASCII-merkeiksi" -#: picard/ui/ui_options_metadata.py:118 +#: picard/ui/ui_options_metadata.py:105 msgid "Use release relationships" msgstr "Käytä julkaisujen suhteiden tietoja" -#: picard/ui/ui_options_metadata.py:119 +#: picard/ui/ui_options_metadata.py:106 msgid "Use track relationships" msgstr "Käytä kappaleiden suhteiden tietoja" -#: picard/ui/ui_options_metadata.py:120 +#: picard/ui/ui_options_metadata.py:107 msgid "Use folksonomy tags as genre" msgstr "Käytä folksonomia-luokituksia tyylilajina" -#: picard/ui/ui_options_metadata.py:121 +#: picard/ui/ui_options_metadata.py:108 msgid "Custom Fields" msgstr "Mukautettavat tiedot" -#: picard/ui/ui_options_metadata.py:122 +#: picard/ui/ui_options_metadata.py:109 msgid "Various artists:" msgstr "Useita artisteja:" -#: picard/ui/ui_options_metadata.py:123 +#: picard/ui/ui_options_metadata.py:110 msgid "Non-album tracks:" msgstr "Julkaisuihin kuulumattomat kappaleet:" -#: picard/ui/ui_options_metadata.py:124 picard/ui/ui_options_metadata.py:125 -#: picard/ui/ui_options_renaming.py:147 +#: picard/ui/ui_options_metadata.py:111 picard/ui/ui_options_metadata.py:112 +#: picard/ui/ui_options_renaming.py:143 msgid "Default" msgstr "Oletus" -#: picard/ui/ui_options_network.py:120 +#: picard/ui/ui_options_network.py:107 msgid "Web Proxy" msgstr "Välityspalvelin" -#: picard/ui/ui_options_network.py:125 +#: picard/ui/ui_options_network.py:112 msgid "Browser Integration" msgstr "Selaimeen yhdistäminen" -#: picard/ui/ui_options_network.py:126 +#: picard/ui/ui_options_network.py:113 msgid "Default listening port:" msgstr "Oletusportti:" -#: picard/ui/ui_options_network.py:127 +#: picard/ui/ui_options_network.py:114 msgid "Listen only on localhost" msgstr "Salli yhteydet vain isäntäkoneelta" -#: picard/ui/ui_options_plugins.py:131 picard/ui/options/plugins.py:38 +#: picard/ui/ui_options_plugins.py:127 picard/ui/options/plugins.py:38 msgid "Plugins" msgstr "Liitännäiset" -#: picard/ui/ui_options_plugins.py:132 picard/ui/options/plugins.py:122 +#: picard/ui/ui_options_plugins.py:128 picard/ui/options/plugins.py:122 msgid "Name" msgstr "Nimi" -#: picard/ui/ui_options_plugins.py:133 picard/util/tags.py:39 +#: picard/ui/ui_options_plugins.py:129 msgid "Version" msgstr "Versio" -#: picard/ui/ui_options_plugins.py:134 picard/ui/options/plugins.py:125 +#: picard/ui/ui_options_plugins.py:130 picard/ui/options/plugins.py:125 msgid "Author" msgstr "Tekijä" -#: picard/ui/ui_options_plugins.py:135 +#: picard/ui/ui_options_plugins.py:131 msgid "Install plugin..." msgstr "Asenna liitännäinen..." -#: picard/ui/ui_options_plugins.py:136 +#: picard/ui/ui_options_plugins.py:132 msgid "Open plugin folder" msgstr "Avaa liitännäiskansio" -#: picard/ui/ui_options_plugins.py:137 +#: picard/ui/ui_options_plugins.py:133 msgid "Download plugins" msgstr "Lataa liitännäisiä" -#: picard/ui/ui_options_plugins.py:138 +#: picard/ui/ui_options_plugins.py:134 msgid "Details" msgstr "Tiedot" -#: picard/ui/ui_options_ratings.py:53 +#: picard/ui/ui_options_ratings.py:49 msgid "Enable track ratings" msgstr "Ota kappaleiden arvostelu käyttöön" -#: picard/ui/ui_options_ratings.py:54 +#: picard/ui/ui_options_ratings.py:50 msgid "" "Picard saves the ratings together with an e-mail address identifying the " "user who did the rating. That way different ratings for different users can " @@ -1490,207 +1416,167 @@ msgid "" "your ratings." msgstr "Picard tallentaa arvostelun yhteydessä käyttäjän sähköpostiosoitteen tiedostoihin. Tämä mahdollistaa useiden käyttäjien omat arvostelut kappaleille. Määritä sähköpostiosoite, jota haluat käyttää arvostelujesi tallentamiseen." -#: picard/ui/ui_options_ratings.py:55 +#: picard/ui/ui_options_ratings.py:51 msgid "E-mail:" msgstr "Sähköpostiosoite:" -#: picard/ui/ui_options_ratings.py:56 +#: picard/ui/ui_options_ratings.py:52 msgid "Submit ratings to MusicBrainz" msgstr "Lähetä arvostelut MusicBrainziin" -#: picard/ui/ui_options_releases.py:215 +#: picard/ui/ui_options_releases.py:104 msgid "Preferred release types" msgstr "Suositut julkaisumuodot" -#: picard/ui/ui_options_releases.py:217 -msgid "Single" -msgstr "Single" - -#: picard/ui/ui_options_releases.py:218 -msgid "EP" -msgstr "EP" - -#: picard/ui/ui_options_releases.py:219 -msgid "Compilation" -msgstr "Kokoelma" - -#: picard/ui/ui_options_releases.py:220 -msgid "Soundtrack" -msgstr "Soundtrack" - -#: picard/ui/ui_options_releases.py:221 -msgid "Spokenword" -msgstr "Puhe" - -#: picard/ui/ui_options_releases.py:222 -msgid "Interview" -msgstr "Haastattelu" - -#: picard/ui/ui_options_releases.py:223 -msgid "Audiobook" -msgstr "Äänikirja" - -#: picard/ui/ui_options_releases.py:224 -msgid "Live" -msgstr "Live-taltiointi" - -#: picard/ui/ui_options_releases.py:225 -msgid "Remix" -msgstr "Remix" - -#: picard/ui/ui_options_releases.py:227 -msgid "Reset all" -msgstr "Oletusasetukset" - -#: picard/ui/ui_options_releases.py:228 +#: picard/ui/ui_options_releases.py:105 msgid "Preferred release countries" msgstr "Suositut julkaisumaat" -#: picard/ui/ui_options_releases.py:229 picard/ui/ui_options_releases.py:232 +#: picard/ui/ui_options_releases.py:106 picard/ui/ui_options_releases.py:109 msgid ">" msgstr ">" -#: picard/ui/ui_options_releases.py:230 picard/ui/ui_options_releases.py:233 +#: picard/ui/ui_options_releases.py:107 picard/ui/ui_options_releases.py:110 msgid "<" msgstr "<" -#: picard/ui/ui_options_releases.py:231 +#: picard/ui/ui_options_releases.py:108 msgid "Preferred release formats" msgstr "Suositut julkaisumuodot" -#: picard/ui/ui_options_renaming.py:134 +#: picard/ui/ui_options_renaming.py:130 msgid "Rename files when saving" msgstr "Nimeä tiedostot tallennettaessa" -#: picard/ui/ui_options_renaming.py:135 +#: picard/ui/ui_options_renaming.py:131 msgid "Replace non-ASCII characters" msgstr "Korvaa ei-ASCII merkit" -#: picard/ui/ui_options_renaming.py:136 +#: picard/ui/ui_options_renaming.py:132 msgid "Windows compatibility" msgstr "Windows-yhteensopivuus" -#: picard/ui/ui_options_renaming.py:137 +#: picard/ui/ui_options_renaming.py:133 msgid "Move files to this directory when saving:" msgstr "Siirrä tiedostot tallennettaessa tähän hakemistoon:" -#: picard/ui/ui_options_renaming.py:139 +#: picard/ui/ui_options_renaming.py:135 msgid "Delete empty directories" msgstr "Poista tyhjät hakemistot" -#: picard/ui/ui_options_renaming.py:140 +#: picard/ui/ui_options_renaming.py:136 msgid "Move additional files:" msgstr "Siirrä lisäksi seuraavat tiedostot:" -#: picard/ui/ui_options_renaming.py:141 +#: picard/ui/ui_options_renaming.py:137 msgid "Name files like this" msgstr "Nimeä tiedostot näin" -#: picard/ui/ui_options_renaming.py:148 +#: picard/ui/ui_options_renaming.py:144 msgid "Examples" msgstr "Esimerkit" -#: picard/ui/ui_options_script.py:49 +#: picard/ui/ui_options_script.py:45 msgid "Tagger Script" msgstr "Tunnisteiden haun komentosarja" -#: picard/ui/ui_options_tags.py:165 +#: picard/ui/ui_options_tags.py:152 msgid "Write tags to files" msgstr "Kirjoita tunnisteet tiedostoihin" -#: picard/ui/ui_options_tags.py:166 +#: picard/ui/ui_options_tags.py:153 msgid "Preserve timestamps of tagged files" msgstr "Säilytä tiedostojen aikaleima tallennettaessa" -#: picard/ui/ui_options_tags.py:167 +#: picard/ui/ui_options_tags.py:154 msgid "Before Tagging" -msgstr "" +msgstr "Ennen tunnisteiden kirjoittamista" -#: picard/ui/ui_options_tags.py:168 +#: picard/ui/ui_options_tags.py:155 msgid "Clear existing tags" msgstr "Poista olemassa olevat tunnisteet" -#: picard/ui/ui_options_tags.py:169 +#: picard/ui/ui_options_tags.py:156 msgid "Remove ID3 tags from FLAC files" msgstr "Poista ID3-tunnisteet FLAC-tiedostoista" -#: picard/ui/ui_options_tags.py:170 +#: picard/ui/ui_options_tags.py:157 msgid "Remove APEv2 tags from MP3 files" msgstr "Poista APEv2-tunnisteet MP3-tiedostoista" -#: picard/ui/ui_options_tags.py:171 +#: picard/ui/ui_options_tags.py:158 msgid "" "Preserve these tags from being cleared or overwritten with MusicBrainz data:" msgstr "Estä näiden tunnisteiden poistaminen tai ylikirjoittaminen MusicBrainzin tiedoilla:" -#: picard/ui/ui_options_tags.py:172 +#: picard/ui/ui_options_tags.py:159 msgid "Tags are separated by commas, and are case-sensitive." msgstr "Tunnisteet erotellaan pilkuin ja kirjainkoolla on merkitystä." -#: picard/ui/ui_options_tags.py:173 +#: picard/ui/ui_options_tags.py:160 msgid "Tag Compatibility" -msgstr "" +msgstr "Tunnisteiden yhteensopivuus" -#: picard/ui/ui_options_tags.py:174 +#: picard/ui/ui_options_tags.py:161 msgid "ID3v2 Version" -msgstr "" +msgstr "ID3v2-versio" -#: picard/ui/ui_options_tags.py:175 +#: picard/ui/ui_options_tags.py:162 msgid "2.4" msgstr "2.4" -#: picard/ui/ui_options_tags.py:176 +#: picard/ui/ui_options_tags.py:163 msgid "2.3" msgstr "2.3" -#: picard/ui/ui_options_tags.py:177 +#: picard/ui/ui_options_tags.py:164 msgid "ID3v2 Text Encoding" -msgstr "" +msgstr "ID3v2-merkkikoodaus" -#: picard/ui/ui_options_tags.py:178 +#: picard/ui/ui_options_tags.py:165 msgid "UTF-8" msgstr "UTF-8" -#: picard/ui/ui_options_tags.py:179 +#: picard/ui/ui_options_tags.py:166 msgid "UTF-16" msgstr "UTF-16" -#: picard/ui/ui_options_tags.py:180 +#: picard/ui/ui_options_tags.py:167 msgid "ISO-8859-1" msgstr "ISO-8859-1" -#: picard/ui/ui_options_tags.py:181 +#: picard/ui/ui_options_tags.py:168 msgid "Join multiple ID3v2.3 tags with:" msgstr "Yhdistä useammat ID3v2.3-tunnisteet seuraavalla erottimella:" -#: picard/ui/ui_options_tags.py:182 +#: picard/ui/ui_options_tags.py:169 msgid "" "

Default is '/' to maintain compatibility with previous" " Picard releases.

New alternatives are ';_' or '_/_' or type your own." "

" msgstr "

Oletuksena on '/', joka on yhteensopiva edellisten versioiden kanssa..

Uusia vaihtoehtoja ovat ';_' ja '_/_' tai oma vaihtoehtosi.

" -#: picard/ui/ui_options_tags.py:183 +#: picard/ui/ui_options_tags.py:170 msgid "Also include ID3v1 tags in the files" msgstr "Lisää tiedostoihin myös ID3v1-tunnisteet" -#: picard/ui/ui_passworddialog.py:72 +#: picard/ui/ui_passworddialog.py:68 msgid "Authentication required" msgstr "Tunnistautuminen vaaditaan" -#: picard/ui/ui_passworddialog.py:75 +#: picard/ui/ui_passworddialog.py:71 msgid "Save username and password" msgstr "Tallenna käyttäjätunnus ja salasana" -#: picard/ui/ui_tagsfromfilenames.py:54 +#: picard/ui/ui_tagsfromfilenames.py:50 msgid "Convert File Names to Tags" msgstr "Luo tunnisteet tiedostonimestä" -#: picard/ui/ui_tagsfromfilenames.py:55 +#: picard/ui/ui_tagsfromfilenames.py:51 msgid "Replace underscores with spaces" msgstr "Korvaa alaviivat välilyönneillä" -#: picard/ui/ui_tagsfromfilenames.py:56 +#: picard/ui/ui_tagsfromfilenames.py:52 msgid "&Preview" msgstr "&Esikatsele" @@ -1736,7 +1622,7 @@ msgid "" "

Credits
\n" "Copyright © 2004-2014 Robert Kaye, Lukáš Lalinský and others%(translator-credits)s

\n" "

%(picard-doc-url)s

\n" -msgstr "" +msgstr "

MusicBrainz Picard
\nVersio %(version)s

\n

\nPyQt %(pyqt-version)s
\nMutagen %(mutagen-version)s
\nDiscid %(discid-version)s\n

\n

Tuetut tiedostomuodot
%(formats)s

\n

Lahjoittaminen
\nKiitos, että käytät Picardia. Picard hyödyntää MusicBrainz- tietokantaa, mikä on MetaBrainz-säätiön, tuhansien vapaaehtoisten avustuksella, operoima palvelu. Mikäli pidät tästä sovelluksesta, harkitsethan lahjoittamista MetaBrainz-säätiölle tukeaksesi palvelun ylläpitoa.

\n

Lahjoita nyt!

\n

Tekijätiedot
\nCopyright © 2004-2014 Robert Kaye, Lukáš Lalinský ja muut%(translator-credits)s

\n

%(picard-doc-url)s

\n" #: picard/ui/options/advanced.py:31 msgid "Advanced" @@ -1746,7 +1632,11 @@ msgstr "Lisäasetukset" msgid "Regex Error" msgstr "Regex virhe" -#: picard/ui/options/cover.py:63 +#: picard/ui/options/cover.py:44 +msgid "title" +msgstr "nimi" + +#: picard/ui/options/cover.py:68 msgid "Cover Art" msgstr "Kansikuva" @@ -1762,11 +1652,11 @@ msgstr "Käyttöliittymä" msgid "System default" msgstr "Järjestelmän oletus" -#: picard/ui/options/interface.py:96 +#: picard/ui/options/interface.py:98 msgid "Language changed" msgstr "Kieli vaihdettu" -#: picard/ui/options/interface.py:96 +#: picard/ui/options/interface.py:99 msgid "" "You have changed the interface language. You have to restart Picard in order" " for the change to take effect." @@ -1788,31 +1678,35 @@ msgstr "Tiedosto" msgid "Ratings" msgstr "Arvostelut" -#: picard/ui/options/releases.py:33 +#: picard/ui/options/releases.py:87 msgid "Preferred Releases" msgstr "Julkaisujen suosiminen" +#: picard/ui/options/releases.py:121 +msgid "Reset all" +msgstr "Oletusasetukset" + #: picard/ui/options/renaming.py:37 msgid "File Naming" -msgstr "" +msgstr "Nimeämisasetukset" -#: picard/ui/options/renaming.py:184 +#: picard/ui/options/renaming.py:187 msgid "Error" msgstr "Virhe" -#: picard/ui/options/renaming.py:184 +#: picard/ui/options/renaming.py:187 msgid "The location to move files to must not be empty." msgstr "Tiedostonsiirron kohdehakemistoa ei ole asetettu." -#: picard/ui/options/renaming.py:194 +#: picard/ui/options/renaming.py:197 msgid "The file naming format must not be empty." msgstr "Tiedostonnimeämismuoto ei ole asetettu." -#: picard/ui/options/scripting.py:63 +#: picard/ui/options/scripting.py:99 msgid "Scripting" msgstr "Komentosarjat" -#: picard/ui/options/scripting.py:95 +#: picard/ui/options/scripting.py:131 msgid "Script Error" msgstr "Virhe komentosarjassa" @@ -1922,7 +1816,7 @@ msgstr "Julkaisun lajittelujärjestys" #: picard/util/tags.py:36 msgid "Composer Sort Order" -msgstr "" +msgstr "Säveltäjän lajittelujärjestys" #: picard/util/tags.py:37 msgid "ASIN" @@ -1932,201 +1826,201 @@ msgstr "ASIN" msgid "Grouping" msgstr "Ryhmittely" -#: picard/util/tags.py:40 +#: picard/util/tags.py:39 msgid "ISRC" msgstr "ISRC" -#: picard/util/tags.py:41 +#: picard/util/tags.py:40 msgid "Mood" msgstr "Mieliala" -#: picard/util/tags.py:42 +#: picard/util/tags.py:41 msgid "BPM" msgstr "BPM" -#: picard/util/tags.py:43 +#: picard/util/tags.py:42 msgid "Copyright" msgstr "Tekijänoikeus" -#: picard/util/tags.py:44 +#: picard/util/tags.py:43 msgid "License" msgstr "Lisenssi" -#: picard/util/tags.py:45 +#: picard/util/tags.py:44 msgid "Composer" msgstr "Säveltäjä" -#: picard/util/tags.py:46 +#: picard/util/tags.py:45 msgid "Writer" msgstr "Tekijä" -#: picard/util/tags.py:47 +#: picard/util/tags.py:46 msgid "Conductor" msgstr "Kapellimestari" -#: picard/util/tags.py:48 +#: picard/util/tags.py:47 msgid "Lyricist" msgstr "Sanoittaja" -#: picard/util/tags.py:49 +#: picard/util/tags.py:48 msgid "Arranger" msgstr "Sovittaja" -#: picard/util/tags.py:50 +#: picard/util/tags.py:49 msgid "Producer" msgstr "Tuottaja" -#: picard/util/tags.py:51 +#: picard/util/tags.py:50 msgid "Engineer" msgstr "Insinööri" -#: picard/util/tags.py:52 +#: picard/util/tags.py:51 msgid "Subtitle" msgstr "Alaotsikko" -#: picard/util/tags.py:53 +#: picard/util/tags.py:52 msgid "Disc Subtitle" msgstr "Levyn alaotsikko" -#: picard/util/tags.py:54 +#: picard/util/tags.py:53 msgid "Remixer" msgstr "Remiksaaja" -#: picard/util/tags.py:55 +#: picard/util/tags.py:54 msgid "MusicBrainz Recording Id" msgstr "MusicBrainz äänitteen tunniste" -#: picard/util/tags.py:56 +#: picard/util/tags.py:55 msgid "MusicBrainz Track Id" msgstr "MusicBrainz kappaleen tunniste" -#: picard/util/tags.py:57 +#: picard/util/tags.py:56 msgid "MusicBrainz Release Id" msgstr "MusicBrainz julkaisun tunniste" -#: picard/util/tags.py:58 +#: picard/util/tags.py:57 msgid "MusicBrainz Artist Id" msgstr "MusicBrainz artistin tunniste" -#: picard/util/tags.py:59 +#: picard/util/tags.py:58 msgid "MusicBrainz Release Artist Id" msgstr "MusicBrainz julkaisuartistin tunniste" -#: picard/util/tags.py:60 +#: picard/util/tags.py:59 msgid "MusicBrainz Work Id" msgstr "MusicBrainz teoksen tunniste" -#: picard/util/tags.py:61 +#: picard/util/tags.py:60 msgid "MusicBrainz Release Group Id" msgstr "MusicBrainz julkaisuryhmän tunniste" -#: picard/util/tags.py:62 +#: picard/util/tags.py:61 msgid "MusicBrainz Disc Id" msgstr "MusicBrainz levyn tunniste" -#: picard/util/tags.py:63 -msgid "MusicBrainz Sort Name" -msgstr "MusicBrainz lajittelunimi" - -#: picard/util/tags.py:64 +#: picard/util/tags.py:62 msgid "MusicIP PUID" msgstr "MusicIP PUID" -#: picard/util/tags.py:65 +#: picard/util/tags.py:63 msgid "MusicIP Fingerprint" msgstr "MusicIP-äänitunniste" -#: picard/util/tags.py:66 +#: picard/util/tags.py:64 msgid "AcoustID" msgstr "AcoustID" -#: picard/util/tags.py:67 +#: picard/util/tags.py:65 msgid "AcoustID Fingerprint" msgstr "AcoustID-äänitunniste" -#: picard/util/tags.py:68 +#: picard/util/tags.py:66 msgid "Disc Id" msgstr "Levyn tunniste" -#: picard/util/tags.py:69 -msgid "Website" -msgstr "Verkkosivu" +#: picard/util/tags.py:67 +msgid "Artist Website" +msgstr "Artistin verkkosivu" -#: picard/util/tags.py:70 +#: picard/util/tags.py:68 msgid "Compilation (iTunes)" msgstr "Kokoelma (iTunes)" -#: picard/util/tags.py:71 +#: picard/util/tags.py:69 msgid "Comment" msgstr "Kommentti" -#: picard/util/tags.py:72 +#: picard/util/tags.py:70 msgid "Genre" msgstr "Tyylilaji" -#: picard/util/tags.py:73 +#: picard/util/tags.py:71 msgid "Encoded By" msgstr "Enkoodaaja" -#: picard/util/tags.py:74 +#: picard/util/tags.py:72 +msgid "Encoder Settings" +msgstr "Enkooderin asetukset" + +#: picard/util/tags.py:73 msgid "Performer" msgstr "Esittäjä" -#: picard/util/tags.py:75 +#: picard/util/tags.py:74 msgid "Release Type" msgstr "Julkaisumuoto" -#: picard/util/tags.py:76 +#: picard/util/tags.py:75 msgid "Release Status" msgstr "Julkaisun tila" -#: picard/util/tags.py:77 +#: picard/util/tags.py:76 msgid "Release Country" msgstr "Julkaisumaa" -#: picard/util/tags.py:78 +#: picard/util/tags.py:77 msgid "Record Label" msgstr "Levymerkki" -#: picard/util/tags.py:80 +#: picard/util/tags.py:79 msgid "Catalog Number" msgstr "Luettelonumero" -#: picard/util/tags.py:82 +#: picard/util/tags.py:80 msgid "DJ-Mixer" msgstr "DJ-miksaaja" -#: picard/util/tags.py:83 +#: picard/util/tags.py:81 msgid "Media" msgstr "Media" -#: picard/util/tags.py:84 +#: picard/util/tags.py:82 msgid "Lyrics" msgstr "Sanoitus" -#: picard/util/tags.py:85 +#: picard/util/tags.py:83 msgid "Mixer" msgstr "Miksaaja" -#: picard/util/tags.py:86 +#: picard/util/tags.py:84 msgid "Language" msgstr "Kieli" -#: picard/util/tags.py:87 +#: picard/util/tags.py:85 msgid "Script" msgstr "Kirjoitusjärjestelmä" -#: picard/util/tags.py:89 +#: picard/util/tags.py:87 msgid "Rating" msgstr "Arvostelu" -#: picard/util/tags.py:90 +#: picard/util/tags.py:88 msgid "Artists" -msgstr "" +msgstr "Artistit" -#: picard/util/tags.py:91 +#: picard/util/tags.py:89 msgid "Work" -msgstr "" +msgstr "Teos" #: picard/util/webbrowser2.py:90 msgid "Web Browser Error" diff --git a/po/fo.po b/po/fo.po index f0680cea4..76ebcacb9 100644 --- a/po/fo.po +++ b/po/fo.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: MusicBrainz\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2014-03-20 11:12+0100\n" -"PO-Revision-Date: 2014-03-21 08:44+0000\n" +"POT-Creation-Date: 2014-05-03 17:28+0200\n" +"PO-Revision-Date: 2014-05-04 08:44+0000\n" "Last-Translator: nikki\n" "Language-Team: Faroese (http://www.transifex.com/projects/p/musicbrainz/language/fo/)\n" "MIME-Version: 1.0\n" @@ -19,6 +19,10 @@ msgstr "" "Language: fo\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" +#: contrib/plugins/albumartist_website.py:3 +msgid "Album Artist Website" +msgstr "" + #: contrib/plugins/no_release.py:50 msgid "Enable plugin for all releases by default" msgstr "" @@ -31,63 +35,55 @@ msgstr "" msgid "Remove specific release information..." msgstr "" -#: contrib/plugins/open_in_gui.py:32 -msgid "Open Error" +#: contrib/plugins/standardise_performers.py:3 +msgid "Standardise Performers" msgstr "" -#: contrib/plugins/open_in_gui.py:32 -#, python-format -msgid "" -"Error while opening file:\n" -"\n" -"%s" -msgstr "" - -#: contrib/plugins/lastfm/ui_options_lastfm.py:117 +#: contrib/plugins/lastfm/ui_options_lastfm.py:99 msgid "Last.fm" msgstr "" -#: contrib/plugins/lastfm/ui_options_lastfm.py:118 +#: contrib/plugins/lastfm/ui_options_lastfm.py:100 msgid "Use track tags" msgstr "" -#: contrib/plugins/lastfm/ui_options_lastfm.py:119 +#: contrib/plugins/lastfm/ui_options_lastfm.py:101 msgid "Use artist tags" msgstr "" -#: contrib/plugins/lastfm/ui_options_lastfm.py:120 +#: contrib/plugins/lastfm/ui_options_lastfm.py:102 #: picard/ui/options/tags.py:30 msgid "Tags" msgstr "" -#: contrib/plugins/lastfm/ui_options_lastfm.py:121 -#: picard/ui/ui_options_folksonomy.py:116 +#: contrib/plugins/lastfm/ui_options_lastfm.py:103 +#: picard/ui/ui_options_folksonomy.py:103 msgid "Ignore tags:" msgstr "" -#: contrib/plugins/lastfm/ui_options_lastfm.py:122 -#: picard/ui/ui_options_folksonomy.py:121 +#: contrib/plugins/lastfm/ui_options_lastfm.py:104 +#: picard/ui/ui_options_folksonomy.py:108 msgid "Join multiple tags with:" msgstr "" -#: contrib/plugins/lastfm/ui_options_lastfm.py:123 -#: picard/ui/ui_options_folksonomy.py:122 +#: contrib/plugins/lastfm/ui_options_lastfm.py:105 +#: picard/ui/ui_options_folksonomy.py:109 msgid " / " msgstr "" -#: contrib/plugins/lastfm/ui_options_lastfm.py:124 -#: picard/ui/ui_options_folksonomy.py:123 +#: contrib/plugins/lastfm/ui_options_lastfm.py:106 +#: picard/ui/ui_options_folksonomy.py:110 msgid ", " msgstr "" -#: contrib/plugins/lastfm/ui_options_lastfm.py:125 -#: picard/ui/ui_options_folksonomy.py:118 +#: contrib/plugins/lastfm/ui_options_lastfm.py:107 +#: picard/ui/ui_options_folksonomy.py:105 msgid "Minimal tag usage:" msgstr "" -#: contrib/plugins/lastfm/ui_options_lastfm.py:126 -#: picard/ui/ui_options_folksonomy.py:119 picard/ui/ui_options_matching.py:88 -#: picard/ui/ui_options_matching.py:89 picard/ui/ui_options_matching.py:90 +#: contrib/plugins/lastfm/ui_options_lastfm.py:108 +#: picard/ui/ui_options_folksonomy.py:106 picard/ui/ui_options_matching.py:75 +#: picard/ui/ui_options_matching.py:76 picard/ui/ui_options_matching.py:77 msgid " %" msgstr "" @@ -95,419 +91,306 @@ msgstr "" msgid "Calculate replay &gain..." msgstr "" -#: contrib/plugins/replaygain/__init__.py:66 +#: contrib/plugins/replaygain/__init__.py:67 #, python-format -msgid "Calculating replay gain for \"%s\"..." +msgid "Calculating replay gain for \"%(filename)s\"..." msgstr "" -#: contrib/plugins/replaygain/__init__.py:71 +#: contrib/plugins/replaygain/__init__.py:75 #, python-format -msgid "Replay gain for \"%s\" successfully calculated." +msgid "Replay gain for \"%(filename)s\" successfully calculated." msgstr "" -#: contrib/plugins/replaygain/__init__.py:73 +#: contrib/plugins/replaygain/__init__.py:80 #, python-format -msgid "Could not calculate replay gain for \"%s\"." +msgid "Could not calculate replay gain for \"%(filename)s\"." msgstr "" -#: contrib/plugins/replaygain/__init__.py:76 +#: contrib/plugins/replaygain/__init__.py:85 msgid "Calculate album &gain..." msgstr "" -#: contrib/plugins/replaygain/__init__.py:103 -#: contrib/plugins/replaygain/__init__.py:111 +#: contrib/plugins/replaygain/__init__.py:113 +#: contrib/plugins/replaygain/__init__.py:124 #, python-format -msgid "Calculating album gain for \"%s\"..." +msgid "Calculating album gain for \"%(album)s\"..." msgstr "" -#: contrib/plugins/replaygain/__init__.py:119 +#: contrib/plugins/replaygain/__init__.py:135 #, python-format -msgid "Album gain for \"%s\" successfully calculated." +msgid "Album gain for \"%(album)s\" successfully calculated." msgstr "" -#: contrib/plugins/replaygain/__init__.py:121 +#: contrib/plugins/replaygain/__init__.py:140 #, python-format -msgid "Could not calculate album gain for \"%s\"." +msgid "Could not calculate album gain for \"%(album)s\"." msgstr "" -#: picard/acoustid.py:102 +#: contrib/plugins/replaygain/ui_options_replaygain.py:59 +msgid "Replay Gain" +msgstr "" + +#: contrib/plugins/replaygain/ui_options_replaygain.py:60 +msgid "Path to VorbisGain:" +msgstr "" + +#: contrib/plugins/replaygain/ui_options_replaygain.py:61 +msgid "Path to MP3Gain:" +msgstr "" + +#: contrib/plugins/replaygain/ui_options_replaygain.py:62 +msgid "Path to metaflac:" +msgstr "" + +#: contrib/plugins/replaygain/ui_options_replaygain.py:63 +msgid "Path to wvgain:" +msgstr "" + +#: contrib/plugins/viewvariables/__init__.py:42 #, python-format -msgid "AcoustID lookup network error for '%s'!" +msgid "File: %s" msgstr "" -#: picard/acoustid.py:117 +#: contrib/plugins/viewvariables/__init__.py:47 #, python-format -msgid "AcoustID lookup failed for '%s'!" +msgid "Track: %s %s " msgstr "" -#: picard/acoustid.py:128 +#: contrib/plugins/viewvariables/__init__.py:49 +msgid "Variables" +msgstr "" + +#: contrib/plugins/viewvariables/__init__.py:69 +msgid "File variables" +msgstr "" + +#: contrib/plugins/viewvariables/__init__.py:74 +msgid "Hidden variables" +msgstr "" + +#: contrib/plugins/viewvariables/__init__.py:79 +msgid "Tag variables" +msgstr "" + +#: contrib/plugins/viewvariables/ui_variables_dialog.py:73 +msgid "Variable" +msgstr "" + +#: contrib/plugins/viewvariables/ui_variables_dialog.py:75 +msgid "Value" +msgstr "" + +#: picard/acoustid.py:109 #, python-format -msgid "Acoustid lookup returned no result for file '%s'" +msgid "AcoustID lookup network error for '%(filename)s'!" msgstr "" -#: picard/acoustid.py:132 +#: picard/acoustid.py:133 #, python-format -msgid "Looking up the fingerprint for file %s..." +msgid "AcoustID lookup failed for '%(filename)s'!" msgstr "" -#: picard/acoustidmanager.py:78 -msgid "Submitting AcoustIDs..." -msgstr "" - -#: picard/acoustidmanager.py:83 +#: picard/acoustid.py:155 #, python-format -msgid "AcoustID submission failed with error '%s'" +msgid "AcoustID lookup returned no result for file '%(filename)s'" msgstr "" -#: picard/acoustidmanager.py:85 +#: picard/acoustid.py:166 +#, python-format +msgid "Looking up the fingerprint for file '%(filename)s' ..." +msgstr "" + +#: picard/acoustidmanager.py:80 +msgid "Submitting AcoustIDs ..." +msgstr "" + +#: picard/acoustidmanager.py:94 +#, python-format +msgid "AcoustID submission failed with error '%(error)s'" +msgstr "" + +#: picard/acoustidmanager.py:102 msgid "AcoustIDs successfully submitted." msgstr "" -#: picard/album.py:64 picard/cluster.py:234 +#: picard/album.py:65 picard/cluster.py:255 msgid "Unmatched Files" msgstr "Ósamsvarandi fílur" -#: picard/album.py:187 +#: picard/album.py:188 #, python-format msgid "[could not load album %s]" msgstr "" -#: picard/album.py:272 +#: picard/album.py:277 #, python-format -msgid "Album %s loaded" +msgid "Album %(id)s loaded: %(artist)s - %(album)s" msgstr "" -#: picard/album.py:288 +#: picard/album.py:294 +#, python-format +msgid "Loading album %(id)s ..." +msgstr "" + +#: picard/album.py:303 msgid "[loading album information]" msgstr "" -#: picard/album.py:463 +#: picard/album.py:478 #, python-format msgid "; %i image" msgid_plural "; %i images" msgstr[0] "" msgstr[1] "" -#: picard/cluster.py:150 picard/cluster.py:159 +#: picard/cluster.py:155 picard/cluster.py:168 #, python-format -msgid "No matching releases for cluster %s" +msgid "No matching releases for cluster %(album)s" msgstr "" -#: picard/cluster.py:161 +#: picard/cluster.py:174 #, python-format -msgid "Cluster %s identified!" +msgid "Cluster %(album)s identified!" msgstr "" -#: picard/cluster.py:168 +#: picard/cluster.py:185 #, python-format -msgid "Looking up the metadata for cluster %s..." +msgid "Looking up the metadata for cluster %(album)s..." msgstr "" -#: picard/collection.py:60 +#: picard/collection.py:64 #, python-format -msgid "Added %i release to collection \"%s\"" -msgid_plural "Added %i releases to collection \"%s\"" +msgid "Added %(count)i release to collection \"%(name)s\"" +msgid_plural "Added %(count)i releases to collection \"%(name)s\"" msgstr[0] "" msgstr[1] "" -#: picard/collection.py:72 +#: picard/collection.py:86 #, python-format -msgid "Removed %i release from collection \"%s\"" -msgid_plural "Removed %i releases from collection \"%s\"" +msgid "Removed %(count)i release from collection \"%(name)s\"" +msgid_plural "Removed %(count)i releases from collection \"%(name)s\"" msgstr[0] "" msgstr[1] "" -#: picard/collection.py:81 +#: picard/collection.py:100 #, python-format -msgid "Error loading collections: %s" +msgid "Error loading collections: %(error)s" msgstr "" -#: picard/config_upgrade.py:57 picard/config_upgrade.py:70 +#: picard/config_upgrade.py:58 picard/config_upgrade.py:71 msgid "Various Artists file naming scheme removal" msgstr "" -#: picard/config_upgrade.py:58 +#: picard/config_upgrade.py:59 msgid "" "The separate file naming scheme for various artists albums has been removed in this version of Picard.\n" "Your file naming scheme has automatically been merged with that of single artist albums." msgstr "" -#: picard/config_upgrade.py:71 +#: picard/config_upgrade.py:72 msgid "" "The separate file naming scheme for various artists albums has been removed in this version of Picard.\n" "You currently do not use this option, but have a separate file naming scheme defined.\n" "Do you want to remove it or merge it with your file naming scheme for single artist albums?" msgstr "" -#: picard/config_upgrade.py:77 +#: picard/config_upgrade.py:78 msgid "Merge" msgstr "" -#: picard/config_upgrade.py:77 picard/ui/metadatabox.py:254 +#: picard/config_upgrade.py:78 picard/ui/metadatabox.py:254 msgid "Remove" msgstr "" -#: picard/const.py:67 -msgid "CD" -msgstr "" - -#: picard/const.py:68 -msgid "CD-R" -msgstr "" - -#: picard/const.py:69 -msgid "HDCD" -msgstr "" - -#: picard/const.py:70 -msgid "8cm CD" -msgstr "" - -#: picard/const.py:71 -msgid "Vinyl" -msgstr "" - -#: picard/const.py:72 -msgid "7\" Vinyl" -msgstr "" - -#: picard/const.py:73 -msgid "10\" Vinyl" -msgstr "" - -#: picard/const.py:74 -msgid "12\" Vinyl" -msgstr "" - -#: picard/const.py:75 -msgid "Digital Media" -msgstr "" - -#: picard/const.py:76 -msgid "USB Flash Drive" -msgstr "" - -#: picard/const.py:77 -msgid "slotMusic" -msgstr "" - -#: picard/const.py:78 -msgid "Cassette" -msgstr "" - -#: picard/const.py:79 -msgid "DVD" -msgstr "" - -#: picard/const.py:80 -msgid "DVD-Audio" -msgstr "" - -#: picard/const.py:81 -msgid "DVD-Video" -msgstr "" - -#: picard/const.py:82 -msgid "SACD" -msgstr "" - -#: picard/const.py:83 -msgid "DualDisc" -msgstr "" - -#: picard/const.py:84 -msgid "MiniDisc" -msgstr "" - -#: picard/const.py:85 -msgid "Blu-ray" -msgstr "" - -#: picard/const.py:86 -msgid "HD-DVD" -msgstr "" - -#: picard/const.py:87 -msgid "Videotape" -msgstr "" - -#: picard/const.py:88 -msgid "VHS" -msgstr "" - -#: picard/const.py:89 -msgid "Betamax" -msgstr "" - #: picard/const.py:90 -msgid "VCD" -msgstr "" - -#: picard/const.py:91 -msgid "SVCD" -msgstr "" - -#: picard/const.py:92 -msgid "UMD" -msgstr "" - -#: picard/const.py:93 picard/coverartarchive.py:33 -#: picard/ui/ui_options_releases.py:226 -msgid "Other" -msgstr "Annað" - -#: picard/const.py:94 -msgid "LaserDisc" -msgstr "" - -#: picard/const.py:95 -msgid "Cartridge" -msgstr "" - -#: picard/const.py:96 -msgid "Reel-to-reel" -msgstr "" - -#: picard/const.py:97 -msgid "DAT" -msgstr "" - -#: picard/const.py:98 -msgid "Wax Cylinder" -msgstr "" - -#: picard/const.py:99 -msgid "Piano Roll" -msgstr "" - -#: picard/const.py:100 -msgid "DCC" -msgstr "" - -#: picard/const.py:115 msgid "Danish" msgstr "" -#: picard/const.py:116 +#: picard/const.py:91 msgid "German" msgstr "Týskt" -#: picard/const.py:118 +#: picard/const.py:93 msgid "English" msgstr "Enskt" -#: picard/const.py:119 +#: picard/const.py:94 msgid "English (Canada)" msgstr "Enskt (Canada)" -#: picard/const.py:120 +#: picard/const.py:95 msgid "English (UK)" msgstr "Enskt (Stórabretland)" -#: picard/const.py:122 +#: picard/const.py:97 msgid "Spanish" msgstr "Spanskt" -#: picard/const.py:123 +#: picard/const.py:98 msgid "Estonian" msgstr "Estiskt" -#: picard/const.py:125 +#: picard/const.py:100 msgid "Finnish" msgstr "Finskt" -#: picard/const.py:127 +#: picard/const.py:102 msgid "French" msgstr "Franskt" -#: picard/const.py:136 +#: picard/const.py:111 msgid "Italian" msgstr "Italskt" -#: picard/const.py:143 +#: picard/const.py:118 msgid "Dutch" msgstr "Hollendskt" -#: picard/const.py:145 +#: picard/const.py:120 msgid "Polish" msgstr "Polskt" -#: picard/const.py:147 +#: picard/const.py:122 msgid "Brazilian Portuguese" msgstr "Brasiliansk portugisisk" -#: picard/const.py:154 +#: picard/const.py:129 msgid "Swedish" msgstr "Svenskt" -#: picard/coverart.py:84 +#: picard/coverart.py:85 #, python-format -msgid "Coverart %s downloaded" +msgid "Cover art of type '%(type)s' downloaded for %(albumid)s from %(host)s" msgstr "" -#: picard/coverart.py:240 +#: picard/coverart.py:256 #, python-format -msgid "Downloading http://%s:%i%s" -msgstr "" - -#: picard/coverartarchive.py:24 -msgid "Front" -msgstr "" - -#: picard/coverartarchive.py:25 -msgid "Back" -msgstr "" - -#: picard/coverartarchive.py:26 -msgid "Booklet" -msgstr "" - -#: picard/coverartarchive.py:27 -msgid "Medium" -msgstr "" - -#: picard/coverartarchive.py:28 -msgid "Tray" -msgstr "" - -#: picard/coverartarchive.py:29 -msgid "Obi" +msgid "" +"Downloading cover art of type '%(type)s' for %(albumid)s from %(host)s .." msgstr "" #: picard/coverartarchive.py:30 -msgid "Spine" -msgstr "" - -#: picard/coverartarchive.py:31 picard/ui/mainwindow.py:546 -msgid "Track" -msgstr "" - -#: picard/coverartarchive.py:32 -msgid "Sticker" -msgstr "" - -#: picard/coverartarchive.py:34 msgid "Unknown" msgstr "" -#: picard/file.py:536 +#: picard/file.py:494 #, python-format -msgid "No matching tracks for file %s" +msgid "No matching tracks for file '%(filename)s'" msgstr "" -#: picard/file.py:548 +#: picard/file.py:510 #, python-format -msgid "No matching tracks above the threshold for file %s" +msgid "No matching tracks above the threshold for file '%(filename)s'" msgstr "" -#: picard/file.py:551 +#: picard/file.py:517 #, python-format -msgid "File %s identified!" +msgid "File '%(filename)s' identified!" msgstr "" -#: picard/file.py:567 +#: picard/file.py:537 #, python-format -msgid "Looking up the metadata for file %s..." +msgid "Looking up the metadata for file %(filename)s ..." msgstr "" #: picard/releasegroup.py:53 @@ -518,11 +401,11 @@ msgstr "" msgid "Year" msgstr "" -#: picard/releasegroup.py:55 picard/ui/cdlookup.py:34 +#: picard/releasegroup.py:55 picard/ui/cdlookup.py:35 msgid "Country" msgstr "" -#: picard/releasegroup.py:56 picard/util/tags.py:81 +#: picard/releasegroup.py:56 msgid "Format" msgstr "" @@ -542,16 +425,23 @@ msgstr "" msgid "[no release info]" msgstr "" -#: picard/tagger.py:316 +#: picard/tagger.py:370 #, python-format -msgid "Loading directory %s" +msgid "Adding %(count)d file from '%(directory)s' ..." +msgid_plural "Adding %(count)d files from '%(directory)s' ..." +msgstr[0] "" +msgstr[1] "" + +#: picard/tagger.py:512 +#, python-format +msgid "Removing album %(id)s: %(artist)s - %(album)s" msgstr "" -#: picard/tagger.py:452 +#: picard/tagger.py:528 msgid "CD Lookup Error" msgstr "" -#: picard/tagger.py:453 +#: picard/tagger.py:529 #, python-format msgid "" "Error while reading CD:\n" @@ -559,44 +449,43 @@ msgid "" "%s" msgstr "" -#: picard/ui/cdlookup.py:34 picard/ui/mainwindow.py:544 -#: picard/ui/ui_options_releases.py:216 picard/util/tags.py:21 +#: picard/ui/cdlookup.py:35 picard/ui/mainwindow.py:597 picard/util/tags.py:21 msgid "Album" msgstr "Album" -#: picard/ui/cdlookup.py:34 picard/ui/itemviews.py:96 -#: picard/ui/mainwindow.py:545 picard/util/tags.py:22 +#: picard/ui/cdlookup.py:35 picard/ui/itemviews.py:96 +#: picard/ui/mainwindow.py:598 picard/util/tags.py:22 msgid "Artist" msgstr "Listarfólk" -#: picard/ui/cdlookup.py:34 picard/util/tags.py:24 +#: picard/ui/cdlookup.py:35 picard/util/tags.py:24 msgid "Date" msgstr "Dato" -#: picard/ui/cdlookup.py:35 +#: picard/ui/cdlookup.py:36 msgid "Labels" msgstr "" -#: picard/ui/cdlookup.py:35 +#: picard/ui/cdlookup.py:36 msgid "Catalog #s" msgstr "" -#: picard/ui/cdlookup.py:35 picard/util/tags.py:79 +#: picard/ui/cdlookup.py:36 picard/util/tags.py:78 msgid "Barcode" msgstr "" -#: picard/ui/collectionmenu.py:31 +#: picard/ui/collectionmenu.py:42 msgid "Refresh List" msgstr "" -#: picard/ui/collectionmenu.py:92 +#: picard/ui/collectionmenu.py:86 #, python-format msgid "%s (%i release)" msgid_plural "%s (%i releases)" msgstr[0] "" msgstr[1] "" -#: picard/ui/coverartbox.py:142 +#: picard/ui/coverartbox.py:141 msgid "View release on MusicBrainz" msgstr "" @@ -612,59 +501,59 @@ msgstr "" msgid "&Set as starting directory" msgstr "" -#: picard/ui/infodialog.py:36 picard/ui/infodialog.py:75 +#: picard/ui/infodialog.py:37 picard/ui/infodialog.py:80 msgid "Info" msgstr "" -#: picard/ui/infodialog.py:80 +#: picard/ui/infodialog.py:85 msgid "Filename:" msgstr "" -#: picard/ui/infodialog.py:82 +#: picard/ui/infodialog.py:87 msgid "Format:" msgstr "" -#: picard/ui/infodialog.py:86 +#: picard/ui/infodialog.py:91 msgid "Size:" msgstr "" -#: picard/ui/infodialog.py:90 +#: picard/ui/infodialog.py:95 msgid "Length:" msgstr "" -#: picard/ui/infodialog.py:92 +#: picard/ui/infodialog.py:97 msgid "Bitrate:" msgstr "" -#: picard/ui/infodialog.py:94 +#: picard/ui/infodialog.py:99 msgid "Sample rate:" msgstr "" -#: picard/ui/infodialog.py:96 +#: picard/ui/infodialog.py:101 msgid "Bits per sample:" msgstr "" -#: picard/ui/infodialog.py:100 +#: picard/ui/infodialog.py:105 msgid "Mono" msgstr "" -#: picard/ui/infodialog.py:102 +#: picard/ui/infodialog.py:107 msgid "Stereo" msgstr "" -#: picard/ui/infodialog.py:105 +#: picard/ui/infodialog.py:110 msgid "Channels:" msgstr "" -#: picard/ui/infodialog.py:116 +#: picard/ui/infodialog.py:121 msgid "Album Info" msgstr "" -#: picard/ui/infodialog.py:124 +#: picard/ui/infodialog.py:129 msgid "&Errors" msgstr "" -#: picard/ui/infodialog.py:134 picard/ui/ui_infodialog.py:77 +#: picard/ui/infodialog.py:139 picard/ui/ui_infodialog.py:73 msgid "&Info" msgstr "" @@ -688,7 +577,7 @@ msgstr "" msgid "Title" msgstr "Heiti" -#: picard/ui/itemviews.py:95 picard/util/tags.py:88 +#: picard/ui/itemviews.py:95 picard/util/tags.py:86 msgid "Length" msgstr "" @@ -713,7 +602,7 @@ msgid "Collections" msgstr "" #: picard/ui/itemviews.py:365 -msgid "&Plugins" +msgid "P&lugins" msgstr "" #: picard/ui/itemviews.py:541 @@ -736,12 +625,16 @@ msgstr "" msgid "Contains albums and matched files" msgstr "" -#: picard/ui/logview.py:91 +#: picard/ui/logview.py:109 msgid "Log" msgstr "" -#: picard/ui/logview.py:99 -msgid "Status History" +#: picard/ui/logview.py:113 +msgid "Debug mode" +msgstr "" + +#: picard/ui/logview.py:134 +msgid "Activity History" msgstr "" #: picard/ui/mainwindow.py:74 @@ -775,275 +668,308 @@ msgstr "" #: picard/ui/mainwindow.py:220 msgid "" -"Picard listens on a port to integrate with your browser and downloads " -"release information when you click the \"Tagger\" buttons on the MusicBrainz" -" website" +"Picard listens on this port to integrate with your browser. When you " +"\"Search\" or \"Open in Browser\" from Picard, clicking the \"Tagger\" " +"button on the web page loads the release into Picard." msgstr "" -#: picard/ui/mainwindow.py:240 +#: picard/ui/mainwindow.py:243 #, python-format msgid " Listening on port %(port)d " msgstr "" -#: picard/ui/mainwindow.py:263 +#: picard/ui/mainwindow.py:299 msgid "Submission Error" msgstr "" -#: picard/ui/mainwindow.py:264 +#: picard/ui/mainwindow.py:300 msgid "" "You need to configure your AcoustID API key before you can submit " "fingerprints." msgstr "" -#: picard/ui/mainwindow.py:269 +#: picard/ui/mainwindow.py:305 msgid "&Options..." msgstr "" -#: picard/ui/mainwindow.py:273 +#: picard/ui/mainwindow.py:309 msgid "&Cut" msgstr "" -#: picard/ui/mainwindow.py:278 +#: picard/ui/mainwindow.py:314 msgid "&Paste" msgstr "" -#: picard/ui/mainwindow.py:283 +#: picard/ui/mainwindow.py:319 msgid "&Help..." msgstr "" -#: picard/ui/mainwindow.py:288 +#: picard/ui/mainwindow.py:323 msgid "&About..." msgstr "" -#: picard/ui/mainwindow.py:292 +#: picard/ui/mainwindow.py:327 msgid "&Donate..." msgstr "" -#: picard/ui/mainwindow.py:295 +#: picard/ui/mainwindow.py:330 msgid "&Report a Bug..." msgstr "" -#: picard/ui/mainwindow.py:298 +#: picard/ui/mainwindow.py:333 msgid "&Support Forum..." msgstr "" -#: picard/ui/mainwindow.py:301 +#: picard/ui/mainwindow.py:336 msgid "&Add Files..." msgstr "" -#: picard/ui/mainwindow.py:302 +#: picard/ui/mainwindow.py:337 msgid "Add files to the tagger" msgstr "" -#: picard/ui/mainwindow.py:307 +#: picard/ui/mainwindow.py:342 msgid "A&dd Folder..." msgstr "" -#: picard/ui/mainwindow.py:308 +#: picard/ui/mainwindow.py:343 msgid "Add a folder to the tagger" msgstr "" -#: picard/ui/mainwindow.py:310 +#: picard/ui/mainwindow.py:345 msgid "Ctrl+D" msgstr "" -#: picard/ui/mainwindow.py:313 +#: picard/ui/mainwindow.py:348 msgid "&Save" msgstr "" -#: picard/ui/mainwindow.py:314 +#: picard/ui/mainwindow.py:349 msgid "Save selected files" msgstr "" -#: picard/ui/mainwindow.py:320 +#: picard/ui/mainwindow.py:355 msgid "S&ubmit" msgstr "" -#: picard/ui/mainwindow.py:321 -msgid "Submit fingerprints" +#: picard/ui/mainwindow.py:356 +msgid "Submit acoustic fingerprints" msgstr "" -#: picard/ui/mainwindow.py:325 +#: picard/ui/mainwindow.py:360 msgid "E&xit" msgstr "" -#: picard/ui/mainwindow.py:328 +#: picard/ui/mainwindow.py:363 msgid "Ctrl+Q" msgstr "" -#: picard/ui/mainwindow.py:331 +#: picard/ui/mainwindow.py:366 msgid "&Remove" msgstr "" -#: picard/ui/mainwindow.py:332 +#: picard/ui/mainwindow.py:367 msgid "Remove selected files/albums" msgstr "" -#: picard/ui/mainwindow.py:336 +#: picard/ui/mainwindow.py:371 msgid "Lookup in &Browser" msgstr "" -#: picard/ui/mainwindow.py:337 +#: picard/ui/mainwindow.py:372 msgid "Lookup selected item on MusicBrainz website" msgstr "" -#: picard/ui/mainwindow.py:341 +#: picard/ui/mainwindow.py:376 msgid "File &Browser" msgstr "" -#: picard/ui/mainwindow.py:345 +#: picard/ui/mainwindow.py:380 msgid "Ctrl+B" msgstr "" -#: picard/ui/mainwindow.py:348 +#: picard/ui/mainwindow.py:383 msgid "&Cover Art" msgstr "" -#: picard/ui/mainwindow.py:354 picard/ui/mainwindow.py:539 +#: picard/ui/mainwindow.py:389 picard/ui/mainwindow.py:591 msgid "Search" msgstr "" -#: picard/ui/mainwindow.py:357 -msgid "&CD Lookup..." +#: picard/ui/mainwindow.py:392 +msgid "Lookup &CD..." msgstr "" -#: picard/ui/mainwindow.py:358 picard/ui/mainwindow.py:359 -msgid "Lookup CD" +#: picard/ui/mainwindow.py:393 +msgid "Lookup the details of the CD in your drive" msgstr "" -#: picard/ui/mainwindow.py:361 +#: picard/ui/mainwindow.py:395 msgid "Ctrl+K" msgstr "" -#: picard/ui/mainwindow.py:364 +#: picard/ui/mainwindow.py:398 msgid "&Scan" msgstr "" -#: picard/ui/mainwindow.py:367 +#: picard/ui/mainwindow.py:401 msgid "Ctrl+Y" msgstr "" -#: picard/ui/mainwindow.py:370 +#: picard/ui/mainwindow.py:404 msgid "Cl&uster" msgstr "" -#: picard/ui/mainwindow.py:373 +#: picard/ui/mainwindow.py:407 msgid "Ctrl+U" msgstr "" -#: picard/ui/mainwindow.py:376 +#: picard/ui/mainwindow.py:410 msgid "&Lookup" msgstr "" -#: picard/ui/mainwindow.py:377 picard/ui/mainwindow.py:378 -msgid "Lookup metadata" +#: picard/ui/mainwindow.py:411 +msgid "Lookup selected items in MusicBrainz" msgstr "" -#: picard/ui/mainwindow.py:381 +#: picard/ui/mainwindow.py:416 msgid "Ctrl+L" msgstr "" -#: picard/ui/mainwindow.py:384 +#: picard/ui/mainwindow.py:419 msgid "&Info..." msgstr "" -#: picard/ui/mainwindow.py:387 +#: picard/ui/mainwindow.py:422 msgid "Ctrl+I" msgstr "" -#: picard/ui/mainwindow.py:390 +#: picard/ui/mainwindow.py:425 msgid "&Refresh" msgstr "" -#: picard/ui/mainwindow.py:391 +#: picard/ui/mainwindow.py:426 msgid "Ctrl+R" msgstr "" -#: picard/ui/mainwindow.py:394 +#: picard/ui/mainwindow.py:429 msgid "&Rename Files" msgstr "" -#: picard/ui/mainwindow.py:399 +#: picard/ui/mainwindow.py:434 msgid "&Move Files" msgstr "" -#: picard/ui/mainwindow.py:404 +#: picard/ui/mainwindow.py:439 msgid "Save &Tags" msgstr "" -#: picard/ui/mainwindow.py:409 +#: picard/ui/mainwindow.py:444 msgid "Tags From &File Names..." msgstr "" -#: picard/ui/mainwindow.py:412 -msgid "View &Log..." +#: picard/ui/mainwindow.py:447 +msgid "&Open My Collections in Browser" msgstr "" -#: picard/ui/mainwindow.py:415 -msgid "View Status &History..." +#: picard/ui/mainwindow.py:451 +msgid "View Error/Debug &Log" msgstr "" -#: picard/ui/mainwindow.py:422 -msgid "&Open..." +#: picard/ui/mainwindow.py:454 +msgid "View Activity &History" msgstr "" -#: picard/ui/mainwindow.py:423 -msgid "Open the file" -msgstr "" - -#: picard/ui/mainwindow.py:426 -msgid "Open &Folder..." -msgstr "" - -#: picard/ui/mainwindow.py:427 -msgid "Open the containing folder" -msgstr "" - -#: picard/ui/mainwindow.py:448 -msgid "&File" -msgstr "" - -#: picard/ui/mainwindow.py:456 -msgid "&Edit" +#: picard/ui/mainwindow.py:461 +msgid "&Play file" msgstr "" #: picard/ui/mainwindow.py:462 +msgid "Play the file in your default media player" +msgstr "" + +#: picard/ui/mainwindow.py:466 +msgid "Open Containing &Folder" +msgstr "" + +#: picard/ui/mainwindow.py:467 +msgid "Open the containing folder in your file explorer" +msgstr "" + +#: picard/ui/mainwindow.py:492 +msgid "&File" +msgstr "" + +#: picard/ui/mainwindow.py:503 +msgid "&Edit" +msgstr "" + +#: picard/ui/mainwindow.py:509 msgid "&View" msgstr "" -#: picard/ui/mainwindow.py:470 +#: picard/ui/mainwindow.py:515 msgid "&Options" msgstr "" -#: picard/ui/mainwindow.py:476 +#: picard/ui/mainwindow.py:521 msgid "&Tools" msgstr "" -#: picard/ui/mainwindow.py:485 picard/ui/util.py:35 +#: picard/ui/mainwindow.py:532 picard/ui/util.py:35 msgid "&Help" msgstr "" -#: picard/ui/mainwindow.py:505 +#: picard/ui/mainwindow.py:553 msgid "Actions" msgstr "" -#: picard/ui/mainwindow.py:608 +#: picard/ui/mainwindow.py:599 +msgid "Track" +msgstr "" + +#: picard/ui/mainwindow.py:662 msgid "All Supported Formats" msgstr "" -#: picard/ui/mainwindow.py:705 +#: picard/ui/mainwindow.py:695 +#, python-format +msgid "Adding directory: '%(directory)s' ..." +msgstr "" + +#: picard/ui/mainwindow.py:702 +#, python-format +msgid "Adding multiple directories from '%(directory)s' ..." +msgstr "" + +#: picard/ui/mainwindow.py:767 msgid "Configuration Required" msgstr "" -#: picard/ui/mainwindow.py:706 +#: picard/ui/mainwindow.py:768 msgid "" "Audio fingerprinting is not yet configured. Would you like to configure it " "now?" msgstr "" -#: picard/ui/mainwindow.py:784 picard/ui/mainwindow.py:791 +#: picard/ui/mainwindow.py:848 #, python-format -msgid " (Error: %s)" +msgid "%(filename)s (error: %(error)s)" +msgstr "" + +#: picard/ui/mainwindow.py:854 +#, python-format +msgid "%(filename)s" +msgstr "" + +#: picard/ui/mainwindow.py:864 +#, python-format +msgid "%(filename)s (%(similarity)d%%) (error: %(error)s)" +msgstr "" + +#: picard/ui/mainwindow.py:871 +#, python-format +msgid "%(filename)s (%(similarity)d%%)" msgstr "" #: picard/ui/metadatabox.py:82 @@ -1098,387 +1024,387 @@ msgid_plural "Use Original Values" msgstr[0] "" msgstr[1] "" -#: picard/ui/passworddialog.py:37 +#: picard/ui/passworddialog.py:40 #, python-format msgid "" "The server %s requires you to login. Please enter your username and " "password." msgstr "" -#: picard/ui/passworddialog.py:75 +#: picard/ui/passworddialog.py:79 #, python-format msgid "" "The proxy %s requires you to login. Please enter your username and password." msgstr "" -#: picard/ui/tagsfromfilenames.py:55 picard/ui/tagsfromfilenames.py:100 +#: picard/ui/tagsfromfilenames.py:56 picard/ui/tagsfromfilenames.py:101 msgid "File Name" msgstr "" -#: picard/ui/ui_cdlookup.py:66 picard/ui/ui_options_cdlookup.py:55 -#: picard/ui/ui_options_cdlookup_select.py:62 picard/ui/options/cdlookup.py:38 +#: picard/ui/ui_cdlookup.py:53 picard/ui/ui_options_cdlookup.py:42 +#: picard/ui/ui_options_cdlookup_select.py:49 picard/ui/options/cdlookup.py:38 msgid "CD Lookup" msgstr "" -#: picard/ui/ui_cdlookup.py:67 +#: picard/ui/ui_cdlookup.py:54 msgid "The following releases on MusicBrainz match the CD:" msgstr "" -#: picard/ui/ui_cdlookup.py:68 +#: picard/ui/ui_cdlookup.py:55 msgid "OK" msgstr "" -#: picard/ui/ui_cdlookup.py:69 +#: picard/ui/ui_cdlookup.py:56 msgid "Lookup manually" msgstr "" -#: picard/ui/ui_cdlookup.py:70 +#: picard/ui/ui_cdlookup.py:57 msgid "Cancel" msgstr "" -#: picard/ui/ui_edittagdialog.py:101 +#: picard/ui/ui_edittagdialog.py:88 msgid "Edit Tag" msgstr "" -#: picard/ui/ui_edittagdialog.py:102 +#: picard/ui/ui_edittagdialog.py:89 msgid "Edit value" msgstr "" -#: picard/ui/ui_edittagdialog.py:103 +#: picard/ui/ui_edittagdialog.py:90 msgid "Add value" msgstr "" -#: picard/ui/ui_edittagdialog.py:104 +#: picard/ui/ui_edittagdialog.py:91 msgid "Remove value" msgstr "" -#: picard/ui/ui_infodialog.py:78 +#: picard/ui/ui_infodialog.py:74 msgid "A&rtwork" msgstr "" -#: picard/ui/ui_infostatus.py:100 +#: picard/ui/ui_infostatus.py:96 msgid "Form" msgstr "" -#: picard/ui/ui_options.py:51 +#: picard/ui/ui_options.py:38 msgid "Options" msgstr "" -#: picard/ui/ui_options_advanced.py:46 +#: picard/ui/ui_options_advanced.py:42 msgid "Advanced options" msgstr "" -#: picard/ui/ui_options_advanced.py:47 +#: picard/ui/ui_options_advanced.py:43 msgid "Ignore file paths matching the following regular expression:" msgstr "" -#: picard/ui/ui_options_cdlookup.py:56 +#: picard/ui/ui_options_cdlookup.py:43 msgid "CD-ROM device to use for lookups:" msgstr "" -#: picard/ui/ui_options_cdlookup_select.py:63 +#: picard/ui/ui_options_cdlookup_select.py:50 msgid "Default CD-ROM drive to use for lookups:" msgstr "" -#: picard/ui/ui_options_cover.py:145 +#: picard/ui/ui_options_cover.py:131 msgid "Location" msgstr "" -#: picard/ui/ui_options_cover.py:146 +#: picard/ui/ui_options_cover.py:132 msgid "Embed cover images into tags" msgstr "" -#: picard/ui/ui_options_cover.py:147 +#: picard/ui/ui_options_cover.py:133 msgid "Only embed a front image" msgstr "" -#: picard/ui/ui_options_cover.py:148 +#: picard/ui/ui_options_cover.py:134 msgid "Save cover images as separate files" msgstr "" -#: picard/ui/ui_options_cover.py:149 +#: picard/ui/ui_options_cover.py:135 msgid "Use the following file name for images:" msgstr "" -#: picard/ui/ui_options_cover.py:150 +#: picard/ui/ui_options_cover.py:136 msgid "Overwrite the file if it already exists" msgstr "" -#: picard/ui/ui_options_cover.py:151 +#: picard/ui/ui_options_cover.py:137 msgid "Coverart Providers" msgstr "" -#: picard/ui/ui_options_cover.py:152 +#: picard/ui/ui_options_cover.py:138 msgid "Amazon" msgstr "" -#: picard/ui/ui_options_cover.py:153 picard/ui/ui_options_cover.py:155 +#: picard/ui/ui_options_cover.py:139 picard/ui/ui_options_cover.py:141 msgid "Cover Art Archive" msgstr "" -#: picard/ui/ui_options_cover.py:154 +#: picard/ui/ui_options_cover.py:140 msgid "Sites on the whitelist" msgstr "" -#: picard/ui/ui_options_cover.py:156 +#: picard/ui/ui_options_cover.py:142 msgid "Only use images of the following size:" msgstr "" -#: picard/ui/ui_options_cover.py:157 +#: picard/ui/ui_options_cover.py:143 msgid "250 px" msgstr "" -#: picard/ui/ui_options_cover.py:158 +#: picard/ui/ui_options_cover.py:144 msgid "500 px" msgstr "" -#: picard/ui/ui_options_cover.py:159 +#: picard/ui/ui_options_cover.py:145 msgid "Full size" msgstr "" -#: picard/ui/ui_options_cover.py:160 +#: picard/ui/ui_options_cover.py:146 msgid "Download only images of the following types:" msgstr "" -#: picard/ui/ui_options_cover.py:161 +#: picard/ui/ui_options_cover.py:147 msgid "Download only approved images" msgstr "" -#: picard/ui/ui_options_cover.py:162 +#: picard/ui/ui_options_cover.py:148 msgid "" "Use the first image type as the filename. This will not change the filename " "of front images." msgstr "" -#: picard/ui/ui_options_fingerprinting.py:83 +#: picard/ui/ui_options_fingerprinting.py:70 msgid "Audio Fingerprinting" msgstr "" -#: picard/ui/ui_options_fingerprinting.py:84 +#: picard/ui/ui_options_fingerprinting.py:71 msgid "Do not use audio fingerprinting" msgstr "" -#: picard/ui/ui_options_fingerprinting.py:85 +#: picard/ui/ui_options_fingerprinting.py:72 msgid "Use AcoustID" msgstr "" -#: picard/ui/ui_options_fingerprinting.py:86 +#: picard/ui/ui_options_fingerprinting.py:73 msgid "AcoustID Settings" msgstr "" -#: picard/ui/ui_options_fingerprinting.py:87 +#: picard/ui/ui_options_fingerprinting.py:74 msgid "Fingerprint calculator:" msgstr "" -#: picard/ui/ui_options_fingerprinting.py:88 -#: picard/ui/ui_options_interface.py:88 picard/ui/ui_options_renaming.py:138 +#: picard/ui/ui_options_fingerprinting.py:75 +#: picard/ui/ui_options_interface.py:75 picard/ui/ui_options_renaming.py:134 msgid "Browse..." msgstr "" -#: picard/ui/ui_options_fingerprinting.py:89 +#: picard/ui/ui_options_fingerprinting.py:76 msgid "Download..." msgstr "" -#: picard/ui/ui_options_fingerprinting.py:90 +#: picard/ui/ui_options_fingerprinting.py:77 msgid "API key:" msgstr "" -#: picard/ui/ui_options_fingerprinting.py:91 +#: picard/ui/ui_options_fingerprinting.py:78 msgid "Get API key..." msgstr "" -#: picard/ui/ui_options_folksonomy.py:115 picard/ui/options/folksonomy.py:28 +#: picard/ui/ui_options_folksonomy.py:102 picard/ui/options/folksonomy.py:28 msgid "Folksonomy Tags" msgstr "" -#: picard/ui/ui_options_folksonomy.py:117 +#: picard/ui/ui_options_folksonomy.py:104 msgid "Only use my tags" msgstr "" -#: picard/ui/ui_options_folksonomy.py:120 +#: picard/ui/ui_options_folksonomy.py:107 msgid "Maximum number of tags:" msgstr "" -#: picard/ui/ui_options_general.py:92 +#: picard/ui/ui_options_general.py:88 msgid "MusicBrainz Server" msgstr "" -#: picard/ui/ui_options_general.py:93 picard/ui/ui_options_network.py:123 +#: picard/ui/ui_options_general.py:89 picard/ui/ui_options_network.py:110 msgid "Port:" msgstr "" -#: picard/ui/ui_options_general.py:94 picard/ui/ui_options_network.py:124 +#: picard/ui/ui_options_general.py:90 picard/ui/ui_options_network.py:111 msgid "Server address:" msgstr "" -#: picard/ui/ui_options_general.py:95 +#: picard/ui/ui_options_general.py:91 msgid "Account Information" msgstr "" -#: picard/ui/ui_options_general.py:96 picard/ui/ui_options_network.py:121 -#: picard/ui/ui_passworddialog.py:74 +#: picard/ui/ui_options_general.py:92 picard/ui/ui_options_network.py:108 +#: picard/ui/ui_passworddialog.py:70 msgid "Password:" msgstr "" -#: picard/ui/ui_options_general.py:97 picard/ui/ui_options_network.py:122 -#: picard/ui/ui_passworddialog.py:73 +#: picard/ui/ui_options_general.py:93 picard/ui/ui_options_network.py:109 +#: picard/ui/ui_passworddialog.py:69 msgid "Username:" msgstr "" -#: picard/ui/ui_options_general.py:98 picard/ui/options/general.py:31 +#: picard/ui/ui_options_general.py:94 picard/ui/options/general.py:31 msgid "General" msgstr "" -#: picard/ui/ui_options_general.py:99 +#: picard/ui/ui_options_general.py:95 msgid "Automatically scan all new files" msgstr "" -#: picard/ui/ui_options_general.py:100 +#: picard/ui/ui_options_general.py:96 msgid "Ignore MBIDs when loading new files" msgstr "" -#: picard/ui/ui_options_interface.py:82 +#: picard/ui/ui_options_interface.py:69 msgid "Miscellaneous" msgstr "" -#: picard/ui/ui_options_interface.py:83 +#: picard/ui/ui_options_interface.py:70 msgid "Show text labels under icons" msgstr "" -#: picard/ui/ui_options_interface.py:84 +#: picard/ui/ui_options_interface.py:71 msgid "Allow selection of multiple directories" msgstr "" -#: picard/ui/ui_options_interface.py:85 +#: picard/ui/ui_options_interface.py:72 msgid "Use advanced query syntax" msgstr "" -#: picard/ui/ui_options_interface.py:86 +#: picard/ui/ui_options_interface.py:73 msgid "Show a quit confirmation dialog for unsaved changes" msgstr "" -#: picard/ui/ui_options_interface.py:87 +#: picard/ui/ui_options_interface.py:74 msgid "Begin browsing in the following directory:" msgstr "" -#: picard/ui/ui_options_interface.py:89 +#: picard/ui/ui_options_interface.py:76 msgid "User interface language:" msgstr "" -#: picard/ui/ui_options_matching.py:86 +#: picard/ui/ui_options_matching.py:73 msgid "Thresholds" msgstr "" -#: picard/ui/ui_options_matching.py:87 +#: picard/ui/ui_options_matching.py:74 msgid "Minimal similarity for matching files to tracks:" msgstr "" -#: picard/ui/ui_options_matching.py:91 +#: picard/ui/ui_options_matching.py:78 msgid "Minimal similarity for file lookups:" msgstr "" -#: picard/ui/ui_options_matching.py:92 +#: picard/ui/ui_options_matching.py:79 msgid "Minimal similarity for cluster lookups:" msgstr "" -#: picard/ui/ui_options_metadata.py:114 picard/ui/options/metadata.py:29 +#: picard/ui/ui_options_metadata.py:101 picard/ui/options/metadata.py:29 msgid "Metadata" msgstr "" -#: picard/ui/ui_options_metadata.py:115 +#: picard/ui/ui_options_metadata.py:102 msgid "Translate artist names to this locale where possible:" msgstr "" -#: picard/ui/ui_options_metadata.py:116 +#: picard/ui/ui_options_metadata.py:103 msgid "Use standardized artist names" msgstr "" -#: picard/ui/ui_options_metadata.py:117 +#: picard/ui/ui_options_metadata.py:104 msgid "Convert Unicode punctuation characters to ASCII" msgstr "" -#: picard/ui/ui_options_metadata.py:118 +#: picard/ui/ui_options_metadata.py:105 msgid "Use release relationships" msgstr "" -#: picard/ui/ui_options_metadata.py:119 +#: picard/ui/ui_options_metadata.py:106 msgid "Use track relationships" msgstr "" -#: picard/ui/ui_options_metadata.py:120 +#: picard/ui/ui_options_metadata.py:107 msgid "Use folksonomy tags as genre" msgstr "" -#: picard/ui/ui_options_metadata.py:121 +#: picard/ui/ui_options_metadata.py:108 msgid "Custom Fields" msgstr "" -#: picard/ui/ui_options_metadata.py:122 +#: picard/ui/ui_options_metadata.py:109 msgid "Various artists:" msgstr "" -#: picard/ui/ui_options_metadata.py:123 +#: picard/ui/ui_options_metadata.py:110 msgid "Non-album tracks:" msgstr "" -#: picard/ui/ui_options_metadata.py:124 picard/ui/ui_options_metadata.py:125 -#: picard/ui/ui_options_renaming.py:147 +#: picard/ui/ui_options_metadata.py:111 picard/ui/ui_options_metadata.py:112 +#: picard/ui/ui_options_renaming.py:143 msgid "Default" msgstr "" -#: picard/ui/ui_options_network.py:120 +#: picard/ui/ui_options_network.py:107 msgid "Web Proxy" msgstr "" -#: picard/ui/ui_options_network.py:125 +#: picard/ui/ui_options_network.py:112 msgid "Browser Integration" msgstr "" -#: picard/ui/ui_options_network.py:126 +#: picard/ui/ui_options_network.py:113 msgid "Default listening port:" msgstr "" -#: picard/ui/ui_options_network.py:127 +#: picard/ui/ui_options_network.py:114 msgid "Listen only on localhost" msgstr "" -#: picard/ui/ui_options_plugins.py:131 picard/ui/options/plugins.py:38 +#: picard/ui/ui_options_plugins.py:127 picard/ui/options/plugins.py:38 msgid "Plugins" msgstr "" -#: picard/ui/ui_options_plugins.py:132 picard/ui/options/plugins.py:122 +#: picard/ui/ui_options_plugins.py:128 picard/ui/options/plugins.py:122 msgid "Name" msgstr "" -#: picard/ui/ui_options_plugins.py:133 picard/util/tags.py:39 +#: picard/ui/ui_options_plugins.py:129 msgid "Version" msgstr "Útgáva" -#: picard/ui/ui_options_plugins.py:134 picard/ui/options/plugins.py:125 +#: picard/ui/ui_options_plugins.py:130 picard/ui/options/plugins.py:125 msgid "Author" msgstr "" -#: picard/ui/ui_options_plugins.py:135 +#: picard/ui/ui_options_plugins.py:131 msgid "Install plugin..." msgstr "" -#: picard/ui/ui_options_plugins.py:136 +#: picard/ui/ui_options_plugins.py:132 msgid "Open plugin folder" msgstr "" -#: picard/ui/ui_options_plugins.py:137 +#: picard/ui/ui_options_plugins.py:133 msgid "Download plugins" msgstr "" -#: picard/ui/ui_options_plugins.py:138 +#: picard/ui/ui_options_plugins.py:134 msgid "Details" msgstr "" -#: picard/ui/ui_options_ratings.py:53 +#: picard/ui/ui_options_ratings.py:49 msgid "Enable track ratings" msgstr "" -#: picard/ui/ui_options_ratings.py:54 +#: picard/ui/ui_options_ratings.py:50 msgid "" "Picard saves the ratings together with an e-mail address identifying the " "user who did the rating. That way different ratings for different users can " @@ -1486,207 +1412,167 @@ msgid "" "your ratings." msgstr "" -#: picard/ui/ui_options_ratings.py:55 +#: picard/ui/ui_options_ratings.py:51 msgid "E-mail:" msgstr "" -#: picard/ui/ui_options_ratings.py:56 +#: picard/ui/ui_options_ratings.py:52 msgid "Submit ratings to MusicBrainz" msgstr "" -#: picard/ui/ui_options_releases.py:215 +#: picard/ui/ui_options_releases.py:104 msgid "Preferred release types" msgstr "" -#: picard/ui/ui_options_releases.py:217 -msgid "Single" -msgstr "" - -#: picard/ui/ui_options_releases.py:218 -msgid "EP" -msgstr "" - -#: picard/ui/ui_options_releases.py:219 -msgid "Compilation" -msgstr "" - -#: picard/ui/ui_options_releases.py:220 -msgid "Soundtrack" -msgstr "" - -#: picard/ui/ui_options_releases.py:221 -msgid "Spokenword" -msgstr "" - -#: picard/ui/ui_options_releases.py:222 -msgid "Interview" -msgstr "" - -#: picard/ui/ui_options_releases.py:223 -msgid "Audiobook" -msgstr "" - -#: picard/ui/ui_options_releases.py:224 -msgid "Live" -msgstr "" - -#: picard/ui/ui_options_releases.py:225 -msgid "Remix" -msgstr "" - -#: picard/ui/ui_options_releases.py:227 -msgid "Reset all" -msgstr "" - -#: picard/ui/ui_options_releases.py:228 +#: picard/ui/ui_options_releases.py:105 msgid "Preferred release countries" msgstr "" -#: picard/ui/ui_options_releases.py:229 picard/ui/ui_options_releases.py:232 +#: picard/ui/ui_options_releases.py:106 picard/ui/ui_options_releases.py:109 msgid ">" msgstr "" -#: picard/ui/ui_options_releases.py:230 picard/ui/ui_options_releases.py:233 +#: picard/ui/ui_options_releases.py:107 picard/ui/ui_options_releases.py:110 msgid "<" msgstr "" -#: picard/ui/ui_options_releases.py:231 +#: picard/ui/ui_options_releases.py:108 msgid "Preferred release formats" msgstr "" -#: picard/ui/ui_options_renaming.py:134 +#: picard/ui/ui_options_renaming.py:130 msgid "Rename files when saving" msgstr "" -#: picard/ui/ui_options_renaming.py:135 +#: picard/ui/ui_options_renaming.py:131 msgid "Replace non-ASCII characters" msgstr "" -#: picard/ui/ui_options_renaming.py:136 +#: picard/ui/ui_options_renaming.py:132 msgid "Windows compatibility" msgstr "" -#: picard/ui/ui_options_renaming.py:137 +#: picard/ui/ui_options_renaming.py:133 msgid "Move files to this directory when saving:" msgstr "" -#: picard/ui/ui_options_renaming.py:139 +#: picard/ui/ui_options_renaming.py:135 msgid "Delete empty directories" msgstr "" -#: picard/ui/ui_options_renaming.py:140 +#: picard/ui/ui_options_renaming.py:136 msgid "Move additional files:" msgstr "" -#: picard/ui/ui_options_renaming.py:141 +#: picard/ui/ui_options_renaming.py:137 msgid "Name files like this" msgstr "" -#: picard/ui/ui_options_renaming.py:148 +#: picard/ui/ui_options_renaming.py:144 msgid "Examples" msgstr "" -#: picard/ui/ui_options_script.py:49 +#: picard/ui/ui_options_script.py:45 msgid "Tagger Script" msgstr "" -#: picard/ui/ui_options_tags.py:165 +#: picard/ui/ui_options_tags.py:152 msgid "Write tags to files" msgstr "" -#: picard/ui/ui_options_tags.py:166 +#: picard/ui/ui_options_tags.py:153 msgid "Preserve timestamps of tagged files" msgstr "" -#: picard/ui/ui_options_tags.py:167 +#: picard/ui/ui_options_tags.py:154 msgid "Before Tagging" msgstr "" -#: picard/ui/ui_options_tags.py:168 +#: picard/ui/ui_options_tags.py:155 msgid "Clear existing tags" msgstr "" -#: picard/ui/ui_options_tags.py:169 +#: picard/ui/ui_options_tags.py:156 msgid "Remove ID3 tags from FLAC files" msgstr "" -#: picard/ui/ui_options_tags.py:170 +#: picard/ui/ui_options_tags.py:157 msgid "Remove APEv2 tags from MP3 files" msgstr "" -#: picard/ui/ui_options_tags.py:171 +#: picard/ui/ui_options_tags.py:158 msgid "" "Preserve these tags from being cleared or overwritten with MusicBrainz data:" msgstr "" -#: picard/ui/ui_options_tags.py:172 +#: picard/ui/ui_options_tags.py:159 msgid "Tags are separated by commas, and are case-sensitive." msgstr "" -#: picard/ui/ui_options_tags.py:173 +#: picard/ui/ui_options_tags.py:160 msgid "Tag Compatibility" msgstr "" -#: picard/ui/ui_options_tags.py:174 +#: picard/ui/ui_options_tags.py:161 msgid "ID3v2 Version" msgstr "" -#: picard/ui/ui_options_tags.py:175 +#: picard/ui/ui_options_tags.py:162 msgid "2.4" msgstr "" -#: picard/ui/ui_options_tags.py:176 +#: picard/ui/ui_options_tags.py:163 msgid "2.3" msgstr "" -#: picard/ui/ui_options_tags.py:177 +#: picard/ui/ui_options_tags.py:164 msgid "ID3v2 Text Encoding" msgstr "" -#: picard/ui/ui_options_tags.py:178 +#: picard/ui/ui_options_tags.py:165 msgid "UTF-8" msgstr "" -#: picard/ui/ui_options_tags.py:179 +#: picard/ui/ui_options_tags.py:166 msgid "UTF-16" msgstr "" -#: picard/ui/ui_options_tags.py:180 +#: picard/ui/ui_options_tags.py:167 msgid "ISO-8859-1" msgstr "" -#: picard/ui/ui_options_tags.py:181 +#: picard/ui/ui_options_tags.py:168 msgid "Join multiple ID3v2.3 tags with:" msgstr "" -#: picard/ui/ui_options_tags.py:182 +#: picard/ui/ui_options_tags.py:169 msgid "" "

Default is '/' to maintain compatibility with previous" " Picard releases.

New alternatives are ';_' or '_/_' or type your own." "

" msgstr "" -#: picard/ui/ui_options_tags.py:183 +#: picard/ui/ui_options_tags.py:170 msgid "Also include ID3v1 tags in the files" msgstr "" -#: picard/ui/ui_passworddialog.py:72 +#: picard/ui/ui_passworddialog.py:68 msgid "Authentication required" msgstr "" -#: picard/ui/ui_passworddialog.py:75 +#: picard/ui/ui_passworddialog.py:71 msgid "Save username and password" msgstr "" -#: picard/ui/ui_tagsfromfilenames.py:54 +#: picard/ui/ui_tagsfromfilenames.py:50 msgid "Convert File Names to Tags" msgstr "" -#: picard/ui/ui_tagsfromfilenames.py:55 +#: picard/ui/ui_tagsfromfilenames.py:51 msgid "Replace underscores with spaces" msgstr "" -#: picard/ui/ui_tagsfromfilenames.py:56 +#: picard/ui/ui_tagsfromfilenames.py:52 msgid "&Preview" msgstr "" @@ -1742,7 +1628,11 @@ msgstr "" msgid "Regex Error" msgstr "" -#: picard/ui/options/cover.py:63 +#: picard/ui/options/cover.py:44 +msgid "title" +msgstr "" + +#: picard/ui/options/cover.py:68 msgid "Cover Art" msgstr "" @@ -1758,11 +1648,11 @@ msgstr "" msgid "System default" msgstr "" -#: picard/ui/options/interface.py:96 +#: picard/ui/options/interface.py:98 msgid "Language changed" msgstr "" -#: picard/ui/options/interface.py:96 +#: picard/ui/options/interface.py:99 msgid "" "You have changed the interface language. You have to restart Picard in order" " for the change to take effect." @@ -1784,31 +1674,35 @@ msgstr "" msgid "Ratings" msgstr "" -#: picard/ui/options/releases.py:33 +#: picard/ui/options/releases.py:87 msgid "Preferred Releases" msgstr "" +#: picard/ui/options/releases.py:121 +msgid "Reset all" +msgstr "" + #: picard/ui/options/renaming.py:37 msgid "File Naming" msgstr "" -#: picard/ui/options/renaming.py:184 +#: picard/ui/options/renaming.py:187 msgid "Error" msgstr "" -#: picard/ui/options/renaming.py:184 +#: picard/ui/options/renaming.py:187 msgid "The location to move files to must not be empty." msgstr "" -#: picard/ui/options/renaming.py:194 +#: picard/ui/options/renaming.py:197 msgid "The file naming format must not be empty." msgstr "" -#: picard/ui/options/scripting.py:63 +#: picard/ui/options/scripting.py:99 msgid "Scripting" msgstr "" -#: picard/ui/options/scripting.py:95 +#: picard/ui/options/scripting.py:131 msgid "Script Error" msgstr "" @@ -1928,199 +1822,199 @@ msgstr "" msgid "Grouping" msgstr "Bólkan" -#: picard/util/tags.py:40 +#: picard/util/tags.py:39 msgid "ISRC" msgstr "" -#: picard/util/tags.py:41 +#: picard/util/tags.py:40 msgid "Mood" msgstr "" -#: picard/util/tags.py:42 +#: picard/util/tags.py:41 msgid "BPM" msgstr "" -#: picard/util/tags.py:43 +#: picard/util/tags.py:42 msgid "Copyright" msgstr "Upphavsrættindi" -#: picard/util/tags.py:44 +#: picard/util/tags.py:43 msgid "License" msgstr "" -#: picard/util/tags.py:45 +#: picard/util/tags.py:44 msgid "Composer" msgstr "" -#: picard/util/tags.py:46 +#: picard/util/tags.py:45 msgid "Writer" msgstr "" -#: picard/util/tags.py:47 +#: picard/util/tags.py:46 msgid "Conductor" msgstr "" -#: picard/util/tags.py:48 +#: picard/util/tags.py:47 msgid "Lyricist" msgstr "" -#: picard/util/tags.py:49 +#: picard/util/tags.py:48 msgid "Arranger" msgstr "" -#: picard/util/tags.py:50 +#: picard/util/tags.py:49 msgid "Producer" msgstr "" -#: picard/util/tags.py:51 +#: picard/util/tags.py:50 msgid "Engineer" msgstr "" -#: picard/util/tags.py:52 +#: picard/util/tags.py:51 msgid "Subtitle" msgstr "" -#: picard/util/tags.py:53 +#: picard/util/tags.py:52 msgid "Disc Subtitle" msgstr "" -#: picard/util/tags.py:54 +#: picard/util/tags.py:53 msgid "Remixer" msgstr "" -#: picard/util/tags.py:55 +#: picard/util/tags.py:54 msgid "MusicBrainz Recording Id" msgstr "" -#: picard/util/tags.py:56 +#: picard/util/tags.py:55 msgid "MusicBrainz Track Id" msgstr "" -#: picard/util/tags.py:57 +#: picard/util/tags.py:56 msgid "MusicBrainz Release Id" msgstr "" -#: picard/util/tags.py:58 +#: picard/util/tags.py:57 msgid "MusicBrainz Artist Id" msgstr "" -#: picard/util/tags.py:59 +#: picard/util/tags.py:58 msgid "MusicBrainz Release Artist Id" msgstr "" -#: picard/util/tags.py:60 +#: picard/util/tags.py:59 msgid "MusicBrainz Work Id" msgstr "" -#: picard/util/tags.py:61 +#: picard/util/tags.py:60 msgid "MusicBrainz Release Group Id" msgstr "" -#: picard/util/tags.py:62 +#: picard/util/tags.py:61 msgid "MusicBrainz Disc Id" msgstr "" -#: picard/util/tags.py:63 -msgid "MusicBrainz Sort Name" -msgstr "" - -#: picard/util/tags.py:64 +#: picard/util/tags.py:62 msgid "MusicIP PUID" msgstr "" -#: picard/util/tags.py:65 +#: picard/util/tags.py:63 msgid "MusicIP Fingerprint" msgstr "" -#: picard/util/tags.py:66 +#: picard/util/tags.py:64 msgid "AcoustID" msgstr "" -#: picard/util/tags.py:67 +#: picard/util/tags.py:65 msgid "AcoustID Fingerprint" msgstr "" -#: picard/util/tags.py:68 +#: picard/util/tags.py:66 msgid "Disc Id" msgstr "" -#: picard/util/tags.py:69 -msgid "Website" +#: picard/util/tags.py:67 +msgid "Artist Website" msgstr "" -#: picard/util/tags.py:70 +#: picard/util/tags.py:68 msgid "Compilation (iTunes)" msgstr "" -#: picard/util/tags.py:71 +#: picard/util/tags.py:69 msgid "Comment" msgstr "" -#: picard/util/tags.py:72 +#: picard/util/tags.py:70 msgid "Genre" msgstr "" -#: picard/util/tags.py:73 +#: picard/util/tags.py:71 msgid "Encoded By" msgstr "" -#: picard/util/tags.py:74 +#: picard/util/tags.py:72 +msgid "Encoder Settings" +msgstr "" + +#: picard/util/tags.py:73 msgid "Performer" msgstr "" -#: picard/util/tags.py:75 +#: picard/util/tags.py:74 msgid "Release Type" msgstr "" -#: picard/util/tags.py:76 +#: picard/util/tags.py:75 msgid "Release Status" msgstr "" -#: picard/util/tags.py:77 +#: picard/util/tags.py:76 msgid "Release Country" msgstr "" -#: picard/util/tags.py:78 +#: picard/util/tags.py:77 msgid "Record Label" msgstr "" -#: picard/util/tags.py:80 +#: picard/util/tags.py:79 msgid "Catalog Number" msgstr "" -#: picard/util/tags.py:82 +#: picard/util/tags.py:80 msgid "DJ-Mixer" msgstr "" -#: picard/util/tags.py:83 +#: picard/util/tags.py:81 msgid "Media" msgstr "" -#: picard/util/tags.py:84 +#: picard/util/tags.py:82 msgid "Lyrics" msgstr "" -#: picard/util/tags.py:85 +#: picard/util/tags.py:83 msgid "Mixer" msgstr "" -#: picard/util/tags.py:86 +#: picard/util/tags.py:84 msgid "Language" msgstr "" -#: picard/util/tags.py:87 +#: picard/util/tags.py:85 msgid "Script" msgstr "" -#: picard/util/tags.py:89 +#: picard/util/tags.py:87 msgid "Rating" msgstr "" -#: picard/util/tags.py:90 +#: picard/util/tags.py:88 msgid "Artists" msgstr "" -#: picard/util/tags.py:91 +#: picard/util/tags.py:89 msgid "Work" msgstr "" diff --git a/po/fr.po b/po/fr.po index 4b16bde08..3b6e4804c 100644 --- a/po/fr.po +++ b/po/fr.po @@ -21,8 +21,8 @@ msgid "" msgstr "" "Project-Id-Version: MusicBrainz\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2014-04-12 14:32+0200\n" -"PO-Revision-Date: 2014-04-13 14:33+0000\n" +"POT-Creation-Date: 2014-05-03 17:28+0200\n" +"PO-Revision-Date: 2014-05-04 20:11+0000\n" "Last-Translator: Alain-Olivier Breysse\n" "Language-Team: French (http://www.transifex.com/projects/p/musicbrainz/language/fr/)\n" "MIME-Version: 1.0\n" @@ -32,6 +32,10 @@ msgstr "" "Language: fr\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n" +#: contrib/plugins/albumartist_website.py:3 +msgid "Album Artist Website" +msgstr "Site Web de l'artiste de l'album" + #: contrib/plugins/no_release.py:50 msgid "Enable plugin for all releases by default" msgstr "Activer ce greffon pour toutes les parutions par défaut" @@ -44,6 +48,10 @@ msgstr "Balises à supprimer (séparées par des virgules)" msgid "Remove specific release information..." msgstr "Supprimer les informations spécifiques à la parution..." +#: contrib/plugins/standardise_performers.py:3 +msgid "Standardise Performers" +msgstr "Standardiser les interprètes" + #: contrib/plugins/lastfm/ui_options_lastfm.py:99 msgid "Last.fm" msgstr "Last.fm" @@ -96,40 +104,40 @@ msgstr " %" msgid "Calculate replay &gain..." msgstr "Calcule le &gain de lecture Replaygain..." -#: contrib/plugins/replaygain/__init__.py:66 +#: contrib/plugins/replaygain/__init__.py:67 #, python-format -msgid "Calculating replay gain for \"%s\"..." -msgstr "Calcule le gain de lecture Replaygain pour « %s »..." +msgid "Calculating replay gain for \"%(filename)s\"..." +msgstr "Calcul du gain de lecture pour « %(filename)s »..." -#: contrib/plugins/replaygain/__init__.py:71 +#: contrib/plugins/replaygain/__init__.py:75 #, python-format -msgid "Replay gain for \"%s\" successfully calculated." -msgstr "Gain de lecture Replaygain pour « %s » calculé avec succès." +msgid "Replay gain for \"%(filename)s\" successfully calculated." +msgstr "Le gain de lecture pour « %(filename)s » a été calculé avec succès." -#: contrib/plugins/replaygain/__init__.py:73 +#: contrib/plugins/replaygain/__init__.py:80 #, python-format -msgid "Could not calculate replay gain for \"%s\"." -msgstr "N'a pas pu calculer le gain de lecture Replaygain pour « %s »." +msgid "Could not calculate replay gain for \"%(filename)s\"." +msgstr "Impossible de calculer le gain de lecture pour « %(filename)s »." -#: contrib/plugins/replaygain/__init__.py:76 +#: contrib/plugins/replaygain/__init__.py:85 msgid "Calculate album &gain..." msgstr "Calcule le &gain Replaygain de l'album..." -#: contrib/plugins/replaygain/__init__.py:103 -#: contrib/plugins/replaygain/__init__.py:111 +#: contrib/plugins/replaygain/__init__.py:113 +#: contrib/plugins/replaygain/__init__.py:124 #, python-format -msgid "Calculating album gain for \"%s\"..." -msgstr "Calcule le &gain Replaygain pour l'album « %s »..." +msgid "Calculating album gain for \"%(album)s\"..." +msgstr "Calcul du gain pour l'album « %(album)s » ..." -#: contrib/plugins/replaygain/__init__.py:119 +#: contrib/plugins/replaygain/__init__.py:135 #, python-format -msgid "Album gain for \"%s\" successfully calculated." -msgstr "Gain Replaygain de l'album « %s » calculé avec succès." +msgid "Album gain for \"%(album)s\" successfully calculated." +msgstr "Le gain de l'album « %(album)s » a été calculé avec succès." -#: contrib/plugins/replaygain/__init__.py:121 +#: contrib/plugins/replaygain/__init__.py:140 #, python-format -msgid "Could not calculate album gain for \"%s\"." -msgstr "N'a pas pu calculer le gain Replaygain pour l'album « %s »." +msgid "Could not calculate album gain for \"%(album)s\"." +msgstr "Impossible de calculer le gain de l'album pour « %(album)s »." #: contrib/plugins/replaygain/ui_options_replaygain.py:59 msgid "Replay Gain" @@ -151,385 +159,252 @@ msgstr "Chemin vers metaflac :" msgid "Path to wvgain:" msgstr "Chemin vers wvgain :" -#: picard/acoustid.py:102 +#: contrib/plugins/viewvariables/__init__.py:42 #, python-format -msgid "AcoustID lookup network error for '%s'!" -msgstr "Erreur réseau lors de la recherche d'Acoustid pour « %s » !" +msgid "File: %s" +msgstr "Fichier : %s" -#: picard/acoustid.py:117 +#: contrib/plugins/viewvariables/__init__.py:47 #, python-format -msgid "AcoustID lookup failed for '%s'!" -msgstr "La recherche d'Acoustid a échoué pour « %s » !" +msgid "Track: %s %s " +msgstr "Piste : %s %s" -#: picard/acoustid.py:128 +#: contrib/plugins/viewvariables/__init__.py:49 +msgid "Variables" +msgstr "Variables" + +#: contrib/plugins/viewvariables/__init__.py:69 +msgid "File variables" +msgstr "Variables de fichier" + +#: contrib/plugins/viewvariables/__init__.py:74 +msgid "Hidden variables" +msgstr "Variables cachées" + +#: contrib/plugins/viewvariables/__init__.py:79 +msgid "Tag variables" +msgstr "Variables de balise" + +#: contrib/plugins/viewvariables/ui_variables_dialog.py:73 +msgid "Variable" +msgstr "Variable" + +#: contrib/plugins/viewvariables/ui_variables_dialog.py:75 +msgid "Value" +msgstr "Valeur" + +#: picard/acoustid.py:109 #, python-format -msgid "Acoustid lookup returned no result for file '%s'" -msgstr "La recherche d'Acoustid n'a retourné aucun résultat pour le fichier « %s »" +msgid "AcoustID lookup network error for '%(filename)s'!" +msgstr "Erreur réseau lors de la recherche d'AcoustID pour « %(filename)s » !" -#: picard/acoustid.py:132 +#: picard/acoustid.py:133 #, python-format -msgid "Looking up the fingerprint for file %s..." -msgstr "Recherche de l'empreinte du fichier %s..." +msgid "AcoustID lookup failed for '%(filename)s'!" +msgstr "La recherche d'AcoustID a échoué pour « %(filename)s » !" -#: picard/acoustidmanager.py:78 -msgid "Submitting AcoustIDs..." -msgstr "Envoi des AcoustIDs en cours..." - -#: picard/acoustidmanager.py:83 +#: picard/acoustid.py:155 #, python-format -msgid "AcoustID submission failed with error '%s'" -msgstr "L'envoi d'AcoustID a échoué avec l'erreur « %s »" +msgid "AcoustID lookup returned no result for file '%(filename)s'" +msgstr "La recherche d'AcoustID n'a retourné aucun résultat pour le fichier « %(filename)s »" -#: picard/acoustidmanager.py:85 +#: picard/acoustid.py:166 +#, python-format +msgid "Looking up the fingerprint for file '%(filename)s' ..." +msgstr "Recherche d'empreinte pour le fichier « %(filename)s »..." + +#: picard/acoustidmanager.py:80 +msgid "Submitting AcoustIDs ..." +msgstr "Envoi des AcoustID..." + +#: picard/acoustidmanager.py:94 +#, python-format +msgid "AcoustID submission failed with error '%(error)s'" +msgstr "L'envoi d'AcoustID a échoué avec l'erreur « %(error)s »" + +#: picard/acoustidmanager.py:102 msgid "AcoustIDs successfully submitted." msgstr "Les AcoustIDs ont été envoyés avec succès." -#: picard/album.py:64 picard/cluster.py:234 +#: picard/album.py:65 picard/cluster.py:255 msgid "Unmatched Files" msgstr "Fichiers sans concordance" -#: picard/album.py:187 +#: picard/album.py:188 #, python-format msgid "[could not load album %s]" msgstr "[impossible de charger l'album %s]" -#: picard/album.py:275 +#: picard/album.py:277 #, python-format -msgid "Album %s loaded: %s - %s" -msgstr "Album %s chargé : %s - %s" +msgid "Album %(id)s loaded: %(artist)s - %(album)s" +msgstr "Album %(id)s chargé : %(artist)s - %(album)s" -#: picard/album.py:292 +#: picard/album.py:294 +#, python-format +msgid "Loading album %(id)s ..." +msgstr "Chargement de l'album %(id)s..." + +#: picard/album.py:303 msgid "[loading album information]" msgstr "[chargement des informations de l'album]" -#: picard/album.py:467 +#: picard/album.py:478 #, python-format msgid "; %i image" msgid_plural "; %i images" msgstr[0] "; %i image" msgstr[1] "; %i images" -#: picard/cluster.py:150 picard/cluster.py:159 +#: picard/cluster.py:155 picard/cluster.py:168 #, python-format -msgid "No matching releases for cluster %s" -msgstr "Aucune parution ne correspond à la grappe %s" +msgid "No matching releases for cluster %(album)s" +msgstr "Aucune parution ne correspond à la grappe %(album)s" -#: picard/cluster.py:161 +#: picard/cluster.py:174 #, python-format -msgid "Cluster %s identified!" -msgstr "Grappe %s identifiée !" +msgid "Cluster %(album)s identified!" +msgstr "La grappe %(album)s a été identifiée !" -#: picard/cluster.py:168 +#: picard/cluster.py:185 #, python-format -msgid "Looking up the metadata for cluster %s..." -msgstr "Recherche des métadonnées pour la grappe %s…" +msgid "Looking up the metadata for cluster %(album)s..." +msgstr "Recherche des métadonnées pour la grappe %(album)s..." -#: picard/collection.py:60 +#: picard/collection.py:64 #, python-format -msgid "Added %i release to collection \"%s\"" -msgid_plural "Added %i releases to collection \"%s\"" -msgstr[0] "Parution %i ajoutée à la collection « %s »" -msgstr[1] "Parutions %i ajoutées à la collection « %s »" +msgid "Added %(count)i release to collection \"%(name)s\"" +msgid_plural "Added %(count)i releases to collection \"%(name)s\"" +msgstr[0] "%(count)i parution a été ajoutée à la collection « %(name)s »" +msgstr[1] "%(count)i parutions ont été ajoutées à la collection « %(name)s »" -#: picard/collection.py:72 +#: picard/collection.py:86 #, python-format -msgid "Removed %i release from collection \"%s\"" -msgid_plural "Removed %i releases from collection \"%s\"" -msgstr[0] "Parution %i enlevée à la collection « %s »" -msgstr[1] "Parutions %i enlevées à la collection « %s »" +msgid "Removed %(count)i release from collection \"%(name)s\"" +msgid_plural "Removed %(count)i releases from collection \"%(name)s\"" +msgstr[0] "%(count)i parution a été enlevée de la collection « %(name)s »" +msgstr[1] "%(count)i parutions ont été enlevées de la collection « %(name)s »" -#: picard/collection.py:81 +#: picard/collection.py:100 #, python-format -msgid "Error loading collections: %s" -msgstr "Erreur au chargements des collections : %s" +msgid "Error loading collections: %(error)s" +msgstr "Erreur lors du chargement des collections : %(error)s" -#: picard/config_upgrade.py:57 picard/config_upgrade.py:70 +#: picard/config_upgrade.py:58 picard/config_upgrade.py:71 msgid "Various Artists file naming scheme removal" msgstr "Suppression du schéma de nommage « artistes divers »" -#: picard/config_upgrade.py:58 +#: picard/config_upgrade.py:59 msgid "" "The separate file naming scheme for various artists albums has been removed in this version of Picard.\n" "Your file naming scheme has automatically been merged with that of single artist albums." msgstr "Le schéma de nommage de fichier spécifique pour les albums par des artistes divers a été supprimé dans cette version de Picard,\nVotre schéma de nommage de fichier a été automatiquement fusionné avec celui des albums à un seul artiste." -#: picard/config_upgrade.py:71 +#: picard/config_upgrade.py:72 msgid "" "The separate file naming scheme for various artists albums has been removed in this version of Picard.\n" "You currently do not use this option, but have a separate file naming scheme defined.\n" "Do you want to remove it or merge it with your file naming scheme for single artist albums?" msgstr "Le schéma de nommage de fichier spécifique pour les albums par des artistes divers a été supprimé dans cette version de Picard,\nVous n'utilisez pas cette option actuellement, mais un modèle séparé de nommage de fichier est défini.\nVoulez-vous le supprimer ou le fusionner avec votre schéma pour les albums à un seul artiste ?" -#: picard/config_upgrade.py:77 +#: picard/config_upgrade.py:78 msgid "Merge" msgstr "Fusionner" -#: picard/config_upgrade.py:77 picard/ui/metadatabox.py:254 +#: picard/config_upgrade.py:78 picard/ui/metadatabox.py:254 msgid "Remove" msgstr "Supprimer" -#: picard/const.py:67 -msgid "CD" -msgstr "CD" - -#: picard/const.py:68 -msgid "CD-R" -msgstr "CD-R" - -#: picard/const.py:69 -msgid "HDCD" -msgstr "HDCD" - -#: picard/const.py:70 -msgid "8cm CD" -msgstr "CD 8cm" - -#: picard/const.py:71 -msgid "Vinyl" -msgstr "Vinyle" - -#: picard/const.py:72 -msgid "7\" Vinyl" -msgstr "Vinyle 7\"" - -#: picard/const.py:73 -msgid "10\" Vinyl" -msgstr "Vinyle 10\"" - -#: picard/const.py:74 -msgid "12\" Vinyl" -msgstr "Vinyle 12\"" - -#: picard/const.py:75 -msgid "Digital Media" -msgstr "Support numérique" - -#: picard/const.py:76 -msgid "USB Flash Drive" -msgstr "Lecteur flash USB" - -#: picard/const.py:77 -msgid "slotMusic" -msgstr "slotMusic" - -#: picard/const.py:78 -msgid "Cassette" -msgstr "Cassette" - -#: picard/const.py:79 -msgid "DVD" -msgstr "DVD" - -#: picard/const.py:80 -msgid "DVD-Audio" -msgstr "DVD-Audio" - -#: picard/const.py:81 -msgid "DVD-Video" -msgstr "DVD-Vidéo" - -#: picard/const.py:82 -msgid "SACD" -msgstr "SACD" - -#: picard/const.py:83 -msgid "DualDisc" -msgstr "DualDisc" - -#: picard/const.py:84 -msgid "MiniDisc" -msgstr "MiniDisc" - -#: picard/const.py:85 -msgid "Blu-ray" -msgstr "Blu-ray" - -#: picard/const.py:86 -msgid "HD-DVD" -msgstr "HD-DVD" - -#: picard/const.py:87 -msgid "Videotape" -msgstr "Cassette vidéo" - -#: picard/const.py:88 -msgid "VHS" -msgstr "VHS" - -#: picard/const.py:89 -msgid "Betamax" -msgstr "Betamax" - #: picard/const.py:90 -msgid "VCD" -msgstr "VCD" - -#: picard/const.py:91 -msgid "SVCD" -msgstr "SVCD" - -#: picard/const.py:92 -msgid "UMD" -msgstr "UMD" - -#: picard/const.py:93 picard/coverartarchive.py:33 -#: picard/ui/ui_options_releases.py:222 -msgid "Other" -msgstr "Autre" - -#: picard/const.py:94 -msgid "LaserDisc" -msgstr "LaserDisc" - -#: picard/const.py:95 -msgid "Cartridge" -msgstr "Cartouche" - -#: picard/const.py:96 -msgid "Reel-to-reel" -msgstr "Magnétophone" - -#: picard/const.py:97 -msgid "DAT" -msgstr "Bande DAT" - -#: picard/const.py:98 -msgid "Wax Cylinder" -msgstr "Cylindre phonographique en cire" - -#: picard/const.py:99 -msgid "Piano Roll" -msgstr "Rouleau de piano" - -#: picard/const.py:100 -msgid "DCC" -msgstr "DCC" - -#: picard/const.py:115 msgid "Danish" msgstr "Danois" -#: picard/const.py:116 +#: picard/const.py:91 msgid "German" msgstr "Allemand" -#: picard/const.py:118 +#: picard/const.py:93 msgid "English" msgstr "Anglais" -#: picard/const.py:119 +#: picard/const.py:94 msgid "English (Canada)" msgstr "Anglais (Canada)" -#: picard/const.py:120 +#: picard/const.py:95 msgid "English (UK)" msgstr "Anglais (Royaume Uni)" -#: picard/const.py:122 +#: picard/const.py:97 msgid "Spanish" msgstr "Espagnol" -#: picard/const.py:123 +#: picard/const.py:98 msgid "Estonian" msgstr "Estonien" -#: picard/const.py:125 +#: picard/const.py:100 msgid "Finnish" msgstr "Finnois" -#: picard/const.py:127 +#: picard/const.py:102 msgid "French" msgstr "Français" -#: picard/const.py:136 +#: picard/const.py:111 msgid "Italian" msgstr "Italien" -#: picard/const.py:143 +#: picard/const.py:118 msgid "Dutch" msgstr "Hollandais" -#: picard/const.py:145 +#: picard/const.py:120 msgid "Polish" msgstr "Polonais" -#: picard/const.py:147 +#: picard/const.py:122 msgid "Brazilian Portuguese" msgstr "Portugais brésilien" -#: picard/const.py:154 +#: picard/const.py:129 msgid "Swedish" msgstr "suédois" -#: picard/coverart.py:86 +#: picard/coverart.py:85 #, python-format -msgid "Cover art of type '%s' downloaded for %s from %s" -msgstr "Illustration de type « %s » téléchargée pour %s de %s" +msgid "Cover art of type '%(type)s' downloaded for %(albumid)s from %(host)s" +msgstr "L'illustration de type « %(type)s » a été téléchargée pour %(albumid)s à partir de %(host)s" -#: picard/coverart.py:260 +#: picard/coverart.py:256 #, python-format -msgid "Downloading cover art of type '%s' for %s from %s ..." -msgstr "Téléchargement d'une illustration de type « %s » pour %s de %s..." - -#: picard/coverartarchive.py:24 -msgid "Front" -msgstr "Face avant" - -#: picard/coverartarchive.py:25 -msgid "Back" -msgstr "Face arrière" - -#: picard/coverartarchive.py:26 -msgid "Booklet" -msgstr "Livret" - -#: picard/coverartarchive.py:27 -msgid "Medium" -msgstr "Support" - -#: picard/coverartarchive.py:28 -msgid "Tray" -msgstr "Plateau" - -#: picard/coverartarchive.py:29 -msgid "Obi" -msgstr "Obi" +msgid "" +"Downloading cover art of type '%(type)s' for %(albumid)s from %(host)s .." +msgstr "Téléchargement d'une illustration de type « %(type)s » pour %(albumid)s à partir de %(host)s..." #: picard/coverartarchive.py:30 -msgid "Spine" -msgstr "Tranche" - -#: picard/coverartarchive.py:31 picard/ui/mainwindow.py:566 -msgid "Track" -msgstr "Piste" - -#: picard/coverartarchive.py:32 -msgid "Sticker" -msgstr "Autocollant" - -#: picard/coverartarchive.py:34 msgid "Unknown" msgstr "Inconnu" -#: picard/file.py:485 +#: picard/file.py:494 #, python-format -msgid "No matching tracks for file %s" -msgstr "Pas de piste correspondant au fichier %s" +msgid "No matching tracks for file '%(filename)s'" +msgstr "Aucune piste correspondante pour le fichier « %(filename)s »" -#: picard/file.py:497 +#: picard/file.py:510 #, python-format -msgid "No matching tracks above the threshold for file %s" -msgstr "Pas de piste correspondant au-dessus du seuil pour le fichier %s" +msgid "No matching tracks above the threshold for file '%(filename)s'" +msgstr "Aucune piste correspondante au-dessus du seuil pour le fichier « %(filename)s »" -#: picard/file.py:500 +#: picard/file.py:517 #, python-format -msgid "File %s identified!" -msgstr "Fichier %s identifié !" +msgid "File '%(filename)s' identified!" +msgstr "Le fichier « %(filename)s » a été identifié !" -#: picard/file.py:516 +#: picard/file.py:537 #, python-format -msgid "Looking up the metadata for file %s..." -msgstr "Recherche des métadonnées du fichier %s ..." +msgid "Looking up the metadata for file %(filename)s ..." +msgstr "Recherche des métadonnées pour le fichier « %(filename)s »..." #: picard/releasegroup.py:53 msgid "Tracks" @@ -563,21 +438,23 @@ msgstr "[pas de code-barres]" msgid "[no release info]" msgstr "[aucune information de parution]" -#: picard/tagger.py:348 +#: picard/tagger.py:370 #, python-format -msgid "Adding %d files from '%s' ..." -msgstr "Ajout de %d fichiers de « %s »..." +msgid "Adding %(count)d file from '%(directory)s' ..." +msgid_plural "Adding %(count)d files from '%(directory)s' ..." +msgstr[0] "Ajout d'%(count)d fichier de « %(directory)s »..." +msgstr[1] "Ajout de %(count)d fichiers de « %(directory)s »..." -#: picard/tagger.py:482 +#: picard/tagger.py:512 #, python-format -msgid "Removing album %s: %s - %s" -msgstr "Suppression de l'album %s : %s - %s" +msgid "Removing album %(id)s: %(artist)s - %(album)s" +msgstr "Suppression de l'album %(id)s : %(artist)s - %(album)s" -#: picard/tagger.py:493 +#: picard/tagger.py:528 msgid "CD Lookup Error" msgstr "Erreur lors de la recherche du CD" -#: picard/tagger.py:494 +#: picard/tagger.py:529 #, python-format msgid "" "Error while reading CD:\n" @@ -585,13 +462,12 @@ msgid "" "%s" msgstr "Erreur pendant la lecture du CD :\n\n%s" -#: picard/ui/cdlookup.py:35 picard/ui/mainwindow.py:564 -#: picard/ui/ui_options_releases.py:212 picard/util/tags.py:21 +#: picard/ui/cdlookup.py:35 picard/ui/mainwindow.py:597 picard/util/tags.py:21 msgid "Album" msgstr "Album" #: picard/ui/cdlookup.py:35 picard/ui/itemviews.py:96 -#: picard/ui/mainwindow.py:565 picard/util/tags.py:22 +#: picard/ui/mainwindow.py:598 picard/util/tags.py:22 msgid "Artist" msgstr "Artiste" @@ -762,13 +638,17 @@ msgstr "affichage de l'album" msgid "Contains albums and matched files" msgstr "Contient des albums et fichiers concordants" -#: picard/ui/logview.py:92 +#: picard/ui/logview.py:109 msgid "Log" msgstr "Journal" -#: picard/ui/logview.py:100 -msgid "Status History" -msgstr "Historique des états" +#: picard/ui/logview.py:113 +msgid "Debug mode" +msgstr "Mode de débogage" + +#: picard/ui/logview.py:134 +msgid "Activity History" +msgstr "Historique d'activité" #: picard/ui/mainwindow.py:74 msgid "MusicBrainz Picard" @@ -811,280 +691,299 @@ msgstr "Picard écoute ce port pour s'intégrer à votre navigateur. Quand vous msgid " Listening on port %(port)d " msgstr " Écoute sur le port %(port)d " -#: picard/ui/mainwindow.py:266 +#: picard/ui/mainwindow.py:299 msgid "Submission Error" msgstr "Erreur d'envoi" -#: picard/ui/mainwindow.py:267 +#: picard/ui/mainwindow.py:300 msgid "" "You need to configure your AcoustID API key before you can submit " "fingerprints." msgstr "Vous devez configurer votre clef d'API AcoustID avant de pouvoir envoyer des empreintes" -#: picard/ui/mainwindow.py:272 +#: picard/ui/mainwindow.py:305 msgid "&Options..." msgstr "&Options..." -#: picard/ui/mainwindow.py:276 +#: picard/ui/mainwindow.py:309 msgid "&Cut" msgstr "&Couper" -#: picard/ui/mainwindow.py:281 +#: picard/ui/mainwindow.py:314 msgid "&Paste" msgstr "C&oller" -#: picard/ui/mainwindow.py:286 +#: picard/ui/mainwindow.py:319 msgid "&Help..." msgstr "&Aide..." -#: picard/ui/mainwindow.py:290 +#: picard/ui/mainwindow.py:323 msgid "&About..." msgstr "À &propos..." -#: picard/ui/mainwindow.py:294 +#: picard/ui/mainwindow.py:327 msgid "&Donate..." msgstr "&Faire un don..." -#: picard/ui/mainwindow.py:297 +#: picard/ui/mainwindow.py:330 msgid "&Report a Bug..." msgstr "&Signaler un bogue..." -#: picard/ui/mainwindow.py:300 +#: picard/ui/mainwindow.py:333 msgid "&Support Forum..." msgstr "&Forum de soutien..." -#: picard/ui/mainwindow.py:303 +#: picard/ui/mainwindow.py:336 msgid "&Add Files..." msgstr "&Ajouter des fichiers..." -#: picard/ui/mainwindow.py:304 +#: picard/ui/mainwindow.py:337 msgid "Add files to the tagger" msgstr "Ajouter des fichiers au baliseur" -#: picard/ui/mainwindow.py:309 +#: picard/ui/mainwindow.py:342 msgid "A&dd Folder..." msgstr "Ajouter un &dossier..." -#: picard/ui/mainwindow.py:310 +#: picard/ui/mainwindow.py:343 msgid "Add a folder to the tagger" msgstr "Ajouter un dossier au baliseur" -#: picard/ui/mainwindow.py:312 +#: picard/ui/mainwindow.py:345 msgid "Ctrl+D" msgstr "Ctrl+D" -#: picard/ui/mainwindow.py:315 +#: picard/ui/mainwindow.py:348 msgid "&Save" msgstr "&Enregistrer" -#: picard/ui/mainwindow.py:316 +#: picard/ui/mainwindow.py:349 msgid "Save selected files" msgstr "Enregistrer les fichiers sélectionnées" -#: picard/ui/mainwindow.py:322 +#: picard/ui/mainwindow.py:355 msgid "S&ubmit" msgstr "&Envoyer" -#: picard/ui/mainwindow.py:323 +#: picard/ui/mainwindow.py:356 msgid "Submit acoustic fingerprints" msgstr "Envoyer les empreintes acoustiques" -#: picard/ui/mainwindow.py:327 +#: picard/ui/mainwindow.py:360 msgid "E&xit" msgstr "&Quitter" -#: picard/ui/mainwindow.py:330 +#: picard/ui/mainwindow.py:363 msgid "Ctrl+Q" msgstr "Ctrl+Q" -#: picard/ui/mainwindow.py:333 +#: picard/ui/mainwindow.py:366 msgid "&Remove" msgstr "&Enlever" -#: picard/ui/mainwindow.py:334 +#: picard/ui/mainwindow.py:367 msgid "Remove selected files/albums" msgstr "Enlever les fichiers/albums sélectionnés" -#: picard/ui/mainwindow.py:338 +#: picard/ui/mainwindow.py:371 msgid "Lookup in &Browser" msgstr "Rechercher dans le &navigateur" -#: picard/ui/mainwindow.py:339 +#: picard/ui/mainwindow.py:372 msgid "Lookup selected item on MusicBrainz website" msgstr "Rechercher les éléments sélectionnés sur le site de MusicBrainz" -#: picard/ui/mainwindow.py:343 +#: picard/ui/mainwindow.py:376 msgid "File &Browser" msgstr "&Navigateur de fichiers" -#: picard/ui/mainwindow.py:347 +#: picard/ui/mainwindow.py:380 msgid "Ctrl+B" msgstr "Ctrl+B" -#: picard/ui/mainwindow.py:350 +#: picard/ui/mainwindow.py:383 msgid "&Cover Art" msgstr "&Illustration" -#: picard/ui/mainwindow.py:356 picard/ui/mainwindow.py:558 +#: picard/ui/mainwindow.py:389 picard/ui/mainwindow.py:591 msgid "Search" msgstr "Rechercher" -#: picard/ui/mainwindow.py:359 +#: picard/ui/mainwindow.py:392 msgid "Lookup &CD..." msgstr "Rechercher le &CD..." -#: picard/ui/mainwindow.py:360 +#: picard/ui/mainwindow.py:393 msgid "Lookup the details of the CD in your drive" msgstr "Rechercher les détails du CD présent dans votre lecteur" -#: picard/ui/mainwindow.py:362 +#: picard/ui/mainwindow.py:395 msgid "Ctrl+K" msgstr "Ctrl+K" -#: picard/ui/mainwindow.py:365 +#: picard/ui/mainwindow.py:398 msgid "&Scan" msgstr "&Analyser" -#: picard/ui/mainwindow.py:368 +#: picard/ui/mainwindow.py:401 msgid "Ctrl+Y" msgstr "Ctrl+Y" -#: picard/ui/mainwindow.py:371 +#: picard/ui/mainwindow.py:404 msgid "Cl&uster" msgstr "&Grappes" -#: picard/ui/mainwindow.py:374 +#: picard/ui/mainwindow.py:407 msgid "Ctrl+U" msgstr "Ctrl+U" -#: picard/ui/mainwindow.py:377 +#: picard/ui/mainwindow.py:410 msgid "&Lookup" msgstr "&Rechercher" -#: picard/ui/mainwindow.py:378 +#: picard/ui/mainwindow.py:411 msgid "Lookup selected items in MusicBrainz" msgstr "Rechercher les éléments sélectionnés sur MusicBrainz" -#: picard/ui/mainwindow.py:383 +#: picard/ui/mainwindow.py:416 msgid "Ctrl+L" msgstr "Ctrl+L" -#: picard/ui/mainwindow.py:386 +#: picard/ui/mainwindow.py:419 msgid "&Info..." msgstr "&Infos..." -#: picard/ui/mainwindow.py:389 +#: picard/ui/mainwindow.py:422 msgid "Ctrl+I" msgstr "Ctrl+I" -#: picard/ui/mainwindow.py:392 +#: picard/ui/mainwindow.py:425 msgid "&Refresh" msgstr "&Rafraîchir" -#: picard/ui/mainwindow.py:393 +#: picard/ui/mainwindow.py:426 msgid "Ctrl+R" msgstr "Ctrl+R" -#: picard/ui/mainwindow.py:396 +#: picard/ui/mainwindow.py:429 msgid "&Rename Files" msgstr "&Renommer les fichiers" -#: picard/ui/mainwindow.py:401 +#: picard/ui/mainwindow.py:434 msgid "&Move Files" msgstr "&Déplacer les fichiers" -#: picard/ui/mainwindow.py:406 +#: picard/ui/mainwindow.py:439 msgid "Save &Tags" msgstr "Enregistrer les &balises" -#: picard/ui/mainwindow.py:411 +#: picard/ui/mainwindow.py:444 msgid "Tags From &File Names..." msgstr "Baliser à partir des noms de &fichier..." -#: picard/ui/mainwindow.py:414 +#: picard/ui/mainwindow.py:447 msgid "&Open My Collections in Browser" msgstr "&Ouvrir Mes collections dans le navigateur" -#: picard/ui/mainwindow.py:418 +#: picard/ui/mainwindow.py:451 msgid "View Error/Debug &Log" -msgstr "Voir le &journal d'erreur/de débogage" +msgstr "Voir le &journal des erreurs/de débogage" -#: picard/ui/mainwindow.py:421 +#: picard/ui/mainwindow.py:454 msgid "View Activity &History" msgstr "Voir l'&historique et l'activité" -#: picard/ui/mainwindow.py:428 +#: picard/ui/mainwindow.py:461 msgid "&Play file" msgstr "&Lire le fichier" -#: picard/ui/mainwindow.py:429 +#: picard/ui/mainwindow.py:462 msgid "Play the file in your default media player" msgstr "Lire le fichier dans votre lecteur multimédia par défaut" -#: picard/ui/mainwindow.py:433 +#: picard/ui/mainwindow.py:466 msgid "Open Containing &Folder" msgstr "Ouvrir le &dossier conteneur" -#: picard/ui/mainwindow.py:434 +#: picard/ui/mainwindow.py:467 msgid "Open the containing folder in your file explorer" msgstr "Ouvre le dossier conteneur dans votre explorateur de fichiers" -#: picard/ui/mainwindow.py:459 +#: picard/ui/mainwindow.py:492 msgid "&File" msgstr "&Fichier" -#: picard/ui/mainwindow.py:470 +#: picard/ui/mainwindow.py:503 msgid "&Edit" msgstr "&Éditer" -#: picard/ui/mainwindow.py:476 +#: picard/ui/mainwindow.py:509 msgid "&View" msgstr "&Afficher" -#: picard/ui/mainwindow.py:482 +#: picard/ui/mainwindow.py:515 msgid "&Options" msgstr "&Options" -#: picard/ui/mainwindow.py:488 +#: picard/ui/mainwindow.py:521 msgid "&Tools" msgstr "Ou&tils" -#: picard/ui/mainwindow.py:499 picard/ui/util.py:35 +#: picard/ui/mainwindow.py:532 picard/ui/util.py:35 msgid "&Help" msgstr "&Aide" -#: picard/ui/mainwindow.py:520 +#: picard/ui/mainwindow.py:553 msgid "Actions" msgstr "Actions" -#: picard/ui/mainwindow.py:629 +#: picard/ui/mainwindow.py:599 +msgid "Track" +msgstr "Piste" + +#: picard/ui/mainwindow.py:662 msgid "All Supported Formats" msgstr "Tous les formats pris en charge" -#: picard/ui/mainwindow.py:661 +#: picard/ui/mainwindow.py:695 #, python-format -msgid "Adding directory: '%s' ..." -msgstr "Ajout du dossier : « %s »..." +msgid "Adding directory: '%(directory)s' ..." +msgstr "Ajout du répertoire : « %(directory)s »..." -#: picard/ui/mainwindow.py:665 +#: picard/ui/mainwindow.py:702 #, python-format -msgid "Adding multiple directories from: '%s' ..." -msgstr "Ajout de répertoires multiples à partir de : « %s »..." +msgid "Adding multiple directories from '%(directory)s' ..." +msgstr "Ajout de répertoires multiples à partir de « %(directory)s »..." -#: picard/ui/mainwindow.py:728 +#: picard/ui/mainwindow.py:767 msgid "Configuration Required" msgstr "Configuration requise" -#: picard/ui/mainwindow.py:729 +#: picard/ui/mainwindow.py:768 msgid "" "Audio fingerprinting is not yet configured. Would you like to configure it " "now?" msgstr "La prise d'empreinte audio-acoustique n'a pas été configurée. Voulez-vous la configurer maintenant ?" -#: picard/ui/mainwindow.py:811 picard/ui/mainwindow.py:818 +#: picard/ui/mainwindow.py:848 #, python-format -msgid " (Error: %s)" -msgstr " (Erreur : %s)" +msgid "%(filename)s (error: %(error)s)" +msgstr "%(filename)s (erreur : %(error)s)" + +#: picard/ui/mainwindow.py:854 +#, python-format +msgid "%(filename)s" +msgstr "%(filename)s" + +#: picard/ui/mainwindow.py:864 +#, python-format +msgid "%(filename)s (%(similarity)d%%) (error: %(error)s)" +msgstr "%(filename)s (%(similarity)d%%) (erreur : %(error)s)" + +#: picard/ui/mainwindow.py:871 +#, python-format +msgid "%(filename)s (%(similarity)d%%)" +msgstr "%(filename)s (%(similarity)d%%)" #: picard/ui/metadatabox.py:82 #, python-format @@ -1138,14 +1037,14 @@ msgid_plural "Use Original Values" msgstr[0] "Utiliser la valeur d'origine" msgstr[1] "Utiliser les valeurs d'origine" -#: picard/ui/passworddialog.py:39 +#: picard/ui/passworddialog.py:40 #, python-format msgid "" "The server %s requires you to login. Please enter your username and " "password." msgstr "Le serveur %s requiert votre connexion. Veuillez entrer vos nom d'utilisateur et mot de passe." -#: picard/ui/passworddialog.py:77 +#: picard/ui/passworddialog.py:79 #, python-format msgid "" "The proxy %s requires you to login. Please enter your username and password." @@ -1220,71 +1119,71 @@ msgstr "Lecteur de CD-ROM à utiliser pour les consultations :" msgid "Default CD-ROM drive to use for lookups:" msgstr "Lecteur de CD-ROM par défaut à utiliser pour les consultations :" -#: picard/ui/ui_options_cover.py:132 +#: picard/ui/ui_options_cover.py:131 msgid "Location" msgstr "Emplacement" -#: picard/ui/ui_options_cover.py:133 +#: picard/ui/ui_options_cover.py:132 msgid "Embed cover images into tags" msgstr "Intégrer les images de couverture dans les balises" -#: picard/ui/ui_options_cover.py:134 +#: picard/ui/ui_options_cover.py:133 msgid "Only embed a front image" msgstr "Intégrer seulement l'image du devant" -#: picard/ui/ui_options_cover.py:135 +#: picard/ui/ui_options_cover.py:134 msgid "Save cover images as separate files" msgstr "Enregistrer les images de couverture dans des fichiers séparés" -#: picard/ui/ui_options_cover.py:136 +#: picard/ui/ui_options_cover.py:135 msgid "Use the following file name for images:" msgstr "Utiliser le nom de fichier suivant pour les images :" -#: picard/ui/ui_options_cover.py:137 +#: picard/ui/ui_options_cover.py:136 msgid "Overwrite the file if it already exists" msgstr "Écraser le fichier s'il existe déjà" -#: picard/ui/ui_options_cover.py:138 +#: picard/ui/ui_options_cover.py:137 msgid "Coverart Providers" msgstr "Fournisseurs d'Illustrations" -#: picard/ui/ui_options_cover.py:139 +#: picard/ui/ui_options_cover.py:138 msgid "Amazon" msgstr "Amazon" -#: picard/ui/ui_options_cover.py:140 picard/ui/ui_options_cover.py:142 +#: picard/ui/ui_options_cover.py:139 picard/ui/ui_options_cover.py:141 msgid "Cover Art Archive" msgstr "Cover Art Archive (archive d'illustrations)" -#: picard/ui/ui_options_cover.py:141 +#: picard/ui/ui_options_cover.py:140 msgid "Sites on the whitelist" msgstr "Sites dans la liste blanche" -#: picard/ui/ui_options_cover.py:143 +#: picard/ui/ui_options_cover.py:142 msgid "Only use images of the following size:" msgstr "Utiliser seulement les images de la taille suivante :" -#: picard/ui/ui_options_cover.py:144 +#: picard/ui/ui_options_cover.py:143 msgid "250 px" msgstr "250 px" -#: picard/ui/ui_options_cover.py:145 +#: picard/ui/ui_options_cover.py:144 msgid "500 px" msgstr "500 px" -#: picard/ui/ui_options_cover.py:146 +#: picard/ui/ui_options_cover.py:145 msgid "Full size" msgstr "Pleine taille" -#: picard/ui/ui_options_cover.py:147 +#: picard/ui/ui_options_cover.py:146 msgid "Download only images of the following types:" msgstr "Ne télécharger que les images des types suivants :" -#: picard/ui/ui_options_cover.py:148 +#: picard/ui/ui_options_cover.py:147 msgid "Download only approved images" msgstr "Ne télécharger que des images approuvées" -#: picard/ui/ui_options_cover.py:149 +#: picard/ui/ui_options_cover.py:148 msgid "" "Use the first image type as the filename. This will not change the filename " "of front images." @@ -1534,63 +1433,23 @@ msgstr "Courriel :" msgid "Submit ratings to MusicBrainz" msgstr "Envoyer des évaluations à MusicBrainz" -#: picard/ui/ui_options_releases.py:211 +#: picard/ui/ui_options_releases.py:104 msgid "Preferred release types" msgstr "Type de parution préféré" -#: picard/ui/ui_options_releases.py:213 -msgid "Single" -msgstr "Single" - -#: picard/ui/ui_options_releases.py:214 -msgid "EP" -msgstr "EP" - -#: picard/ui/ui_options_releases.py:215 -msgid "Compilation" -msgstr "Compilation" - -#: picard/ui/ui_options_releases.py:216 -msgid "Soundtrack" -msgstr "Bande originale" - -#: picard/ui/ui_options_releases.py:217 -msgid "Spokenword" -msgstr "Parole" - -#: picard/ui/ui_options_releases.py:218 -msgid "Interview" -msgstr "Entretien" - -#: picard/ui/ui_options_releases.py:219 -msgid "Audiobook" -msgstr "Livre audio" - -#: picard/ui/ui_options_releases.py:220 -msgid "Live" -msgstr "En public" - -#: picard/ui/ui_options_releases.py:221 -msgid "Remix" -msgstr "Remix" - -#: picard/ui/ui_options_releases.py:223 -msgid "Reset all" -msgstr "Tout réinitialiser" - -#: picard/ui/ui_options_releases.py:224 +#: picard/ui/ui_options_releases.py:105 msgid "Preferred release countries" msgstr "Pays préféré des parutions" -#: picard/ui/ui_options_releases.py:225 picard/ui/ui_options_releases.py:228 +#: picard/ui/ui_options_releases.py:106 picard/ui/ui_options_releases.py:109 msgid ">" msgstr ">" -#: picard/ui/ui_options_releases.py:226 picard/ui/ui_options_releases.py:229 +#: picard/ui/ui_options_releases.py:107 picard/ui/ui_options_releases.py:110 msgid "<" msgstr "<" -#: picard/ui/ui_options_releases.py:227 +#: picard/ui/ui_options_releases.py:108 msgid "Preferred release formats" msgstr "Format préféré des parutions" @@ -1782,7 +1641,11 @@ msgstr "Avancé" msgid "Regex Error" msgstr "Erreur dans l'expression régulière" -#: picard/ui/options/cover.py:63 +#: picard/ui/options/cover.py:44 +msgid "title" +msgstr "titre" + +#: picard/ui/options/cover.py:68 msgid "Cover Art" msgstr "Illustrations" @@ -1798,11 +1661,11 @@ msgstr "Interface utilisateur" msgid "System default" msgstr "Valeur par défaut du système" -#: picard/ui/options/interface.py:96 +#: picard/ui/options/interface.py:98 msgid "Language changed" msgstr "Langue changée" -#: picard/ui/options/interface.py:96 +#: picard/ui/options/interface.py:99 msgid "" "You have changed the interface language. You have to restart Picard in order" " for the change to take effect." @@ -1824,31 +1687,35 @@ msgstr "Fichier" msgid "Ratings" msgstr "Évaluations" -#: picard/ui/options/releases.py:33 +#: picard/ui/options/releases.py:87 msgid "Preferred Releases" msgstr "Parutions préférées" +#: picard/ui/options/releases.py:121 +msgid "Reset all" +msgstr "Tout réinitialiser" + #: picard/ui/options/renaming.py:37 msgid "File Naming" msgstr "Nommage de fichiers" -#: picard/ui/options/renaming.py:184 +#: picard/ui/options/renaming.py:187 msgid "Error" msgstr "Erreur" -#: picard/ui/options/renaming.py:184 +#: picard/ui/options/renaming.py:187 msgid "The location to move files to must not be empty." msgstr "La destination où déplacer les fichiers ne doit pas être vide." -#: picard/ui/options/renaming.py:194 +#: picard/ui/options/renaming.py:197 msgid "The file naming format must not be empty." msgstr "Le format de nommage de fichiers ne doit pas être vide." -#: picard/ui/options/scripting.py:98 +#: picard/ui/options/scripting.py:99 msgid "Scripting" msgstr "Scripts" -#: picard/ui/options/scripting.py:130 +#: picard/ui/options/scripting.py:131 msgid "Script Error" msgstr "Erreur de script" diff --git a/po/fy.po b/po/fy.po index 7f0e7a3d4..b36b592f9 100644 --- a/po/fy.po +++ b/po/fy.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: MusicBrainz\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2014-03-20 11:12+0100\n" -"PO-Revision-Date: 2014-03-21 08:44+0000\n" +"POT-Creation-Date: 2014-05-03 17:28+0200\n" +"PO-Revision-Date: 2014-05-04 08:44+0000\n" "Last-Translator: nikki\n" "Language-Team: Western Frisian (http://www.transifex.com/projects/p/musicbrainz/language/fy/)\n" "MIME-Version: 1.0\n" @@ -19,6 +19,10 @@ msgstr "" "Language: fy\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" +#: contrib/plugins/albumartist_website.py:3 +msgid "Album Artist Website" +msgstr "" + #: contrib/plugins/no_release.py:50 msgid "Enable plugin for all releases by default" msgstr "" @@ -31,63 +35,55 @@ msgstr "" msgid "Remove specific release information..." msgstr "" -#: contrib/plugins/open_in_gui.py:32 -msgid "Open Error" +#: contrib/plugins/standardise_performers.py:3 +msgid "Standardise Performers" msgstr "" -#: contrib/plugins/open_in_gui.py:32 -#, python-format -msgid "" -"Error while opening file:\n" -"\n" -"%s" -msgstr "" - -#: contrib/plugins/lastfm/ui_options_lastfm.py:117 +#: contrib/plugins/lastfm/ui_options_lastfm.py:99 msgid "Last.fm" msgstr "" -#: contrib/plugins/lastfm/ui_options_lastfm.py:118 +#: contrib/plugins/lastfm/ui_options_lastfm.py:100 msgid "Use track tags" msgstr "" -#: contrib/plugins/lastfm/ui_options_lastfm.py:119 +#: contrib/plugins/lastfm/ui_options_lastfm.py:101 msgid "Use artist tags" msgstr "" -#: contrib/plugins/lastfm/ui_options_lastfm.py:120 +#: contrib/plugins/lastfm/ui_options_lastfm.py:102 #: picard/ui/options/tags.py:30 msgid "Tags" msgstr "" -#: contrib/plugins/lastfm/ui_options_lastfm.py:121 -#: picard/ui/ui_options_folksonomy.py:116 +#: contrib/plugins/lastfm/ui_options_lastfm.py:103 +#: picard/ui/ui_options_folksonomy.py:103 msgid "Ignore tags:" msgstr "" -#: contrib/plugins/lastfm/ui_options_lastfm.py:122 -#: picard/ui/ui_options_folksonomy.py:121 +#: contrib/plugins/lastfm/ui_options_lastfm.py:104 +#: picard/ui/ui_options_folksonomy.py:108 msgid "Join multiple tags with:" msgstr "" -#: contrib/plugins/lastfm/ui_options_lastfm.py:123 -#: picard/ui/ui_options_folksonomy.py:122 +#: contrib/plugins/lastfm/ui_options_lastfm.py:105 +#: picard/ui/ui_options_folksonomy.py:109 msgid " / " msgstr "" -#: contrib/plugins/lastfm/ui_options_lastfm.py:124 -#: picard/ui/ui_options_folksonomy.py:123 +#: contrib/plugins/lastfm/ui_options_lastfm.py:106 +#: picard/ui/ui_options_folksonomy.py:110 msgid ", " msgstr "" -#: contrib/plugins/lastfm/ui_options_lastfm.py:125 -#: picard/ui/ui_options_folksonomy.py:118 +#: contrib/plugins/lastfm/ui_options_lastfm.py:107 +#: picard/ui/ui_options_folksonomy.py:105 msgid "Minimal tag usage:" msgstr "" -#: contrib/plugins/lastfm/ui_options_lastfm.py:126 -#: picard/ui/ui_options_folksonomy.py:119 picard/ui/ui_options_matching.py:88 -#: picard/ui/ui_options_matching.py:89 picard/ui/ui_options_matching.py:90 +#: contrib/plugins/lastfm/ui_options_lastfm.py:108 +#: picard/ui/ui_options_folksonomy.py:106 picard/ui/ui_options_matching.py:75 +#: picard/ui/ui_options_matching.py:76 picard/ui/ui_options_matching.py:77 msgid " %" msgstr "" @@ -95,419 +91,306 @@ msgstr "" msgid "Calculate replay &gain..." msgstr "" -#: contrib/plugins/replaygain/__init__.py:66 +#: contrib/plugins/replaygain/__init__.py:67 #, python-format -msgid "Calculating replay gain for \"%s\"..." +msgid "Calculating replay gain for \"%(filename)s\"..." msgstr "" -#: contrib/plugins/replaygain/__init__.py:71 +#: contrib/plugins/replaygain/__init__.py:75 #, python-format -msgid "Replay gain for \"%s\" successfully calculated." +msgid "Replay gain for \"%(filename)s\" successfully calculated." msgstr "" -#: contrib/plugins/replaygain/__init__.py:73 +#: contrib/plugins/replaygain/__init__.py:80 #, python-format -msgid "Could not calculate replay gain for \"%s\"." +msgid "Could not calculate replay gain for \"%(filename)s\"." msgstr "" -#: contrib/plugins/replaygain/__init__.py:76 +#: contrib/plugins/replaygain/__init__.py:85 msgid "Calculate album &gain..." msgstr "" -#: contrib/plugins/replaygain/__init__.py:103 -#: contrib/plugins/replaygain/__init__.py:111 +#: contrib/plugins/replaygain/__init__.py:113 +#: contrib/plugins/replaygain/__init__.py:124 #, python-format -msgid "Calculating album gain for \"%s\"..." +msgid "Calculating album gain for \"%(album)s\"..." msgstr "" -#: contrib/plugins/replaygain/__init__.py:119 +#: contrib/plugins/replaygain/__init__.py:135 #, python-format -msgid "Album gain for \"%s\" successfully calculated." +msgid "Album gain for \"%(album)s\" successfully calculated." msgstr "" -#: contrib/plugins/replaygain/__init__.py:121 +#: contrib/plugins/replaygain/__init__.py:140 #, python-format -msgid "Could not calculate album gain for \"%s\"." +msgid "Could not calculate album gain for \"%(album)s\"." msgstr "" -#: picard/acoustid.py:102 +#: contrib/plugins/replaygain/ui_options_replaygain.py:59 +msgid "Replay Gain" +msgstr "" + +#: contrib/plugins/replaygain/ui_options_replaygain.py:60 +msgid "Path to VorbisGain:" +msgstr "" + +#: contrib/plugins/replaygain/ui_options_replaygain.py:61 +msgid "Path to MP3Gain:" +msgstr "" + +#: contrib/plugins/replaygain/ui_options_replaygain.py:62 +msgid "Path to metaflac:" +msgstr "" + +#: contrib/plugins/replaygain/ui_options_replaygain.py:63 +msgid "Path to wvgain:" +msgstr "" + +#: contrib/plugins/viewvariables/__init__.py:42 #, python-format -msgid "AcoustID lookup network error for '%s'!" +msgid "File: %s" msgstr "" -#: picard/acoustid.py:117 +#: contrib/plugins/viewvariables/__init__.py:47 #, python-format -msgid "AcoustID lookup failed for '%s'!" +msgid "Track: %s %s " msgstr "" -#: picard/acoustid.py:128 +#: contrib/plugins/viewvariables/__init__.py:49 +msgid "Variables" +msgstr "" + +#: contrib/plugins/viewvariables/__init__.py:69 +msgid "File variables" +msgstr "" + +#: contrib/plugins/viewvariables/__init__.py:74 +msgid "Hidden variables" +msgstr "" + +#: contrib/plugins/viewvariables/__init__.py:79 +msgid "Tag variables" +msgstr "" + +#: contrib/plugins/viewvariables/ui_variables_dialog.py:73 +msgid "Variable" +msgstr "" + +#: contrib/plugins/viewvariables/ui_variables_dialog.py:75 +msgid "Value" +msgstr "" + +#: picard/acoustid.py:109 #, python-format -msgid "Acoustid lookup returned no result for file '%s'" +msgid "AcoustID lookup network error for '%(filename)s'!" msgstr "" -#: picard/acoustid.py:132 +#: picard/acoustid.py:133 #, python-format -msgid "Looking up the fingerprint for file %s..." +msgid "AcoustID lookup failed for '%(filename)s'!" msgstr "" -#: picard/acoustidmanager.py:78 -msgid "Submitting AcoustIDs..." -msgstr "" - -#: picard/acoustidmanager.py:83 +#: picard/acoustid.py:155 #, python-format -msgid "AcoustID submission failed with error '%s'" +msgid "AcoustID lookup returned no result for file '%(filename)s'" msgstr "" -#: picard/acoustidmanager.py:85 +#: picard/acoustid.py:166 +#, python-format +msgid "Looking up the fingerprint for file '%(filename)s' ..." +msgstr "" + +#: picard/acoustidmanager.py:80 +msgid "Submitting AcoustIDs ..." +msgstr "" + +#: picard/acoustidmanager.py:94 +#, python-format +msgid "AcoustID submission failed with error '%(error)s'" +msgstr "" + +#: picard/acoustidmanager.py:102 msgid "AcoustIDs successfully submitted." msgstr "" -#: picard/album.py:64 picard/cluster.py:234 +#: picard/album.py:65 picard/cluster.py:255 msgid "Unmatched Files" msgstr "" -#: picard/album.py:187 +#: picard/album.py:188 #, python-format msgid "[could not load album %s]" msgstr "" -#: picard/album.py:272 +#: picard/album.py:277 #, python-format -msgid "Album %s loaded" +msgid "Album %(id)s loaded: %(artist)s - %(album)s" msgstr "" -#: picard/album.py:288 +#: picard/album.py:294 +#, python-format +msgid "Loading album %(id)s ..." +msgstr "" + +#: picard/album.py:303 msgid "[loading album information]" msgstr "" -#: picard/album.py:463 +#: picard/album.py:478 #, python-format msgid "; %i image" msgid_plural "; %i images" msgstr[0] "" msgstr[1] "" -#: picard/cluster.py:150 picard/cluster.py:159 +#: picard/cluster.py:155 picard/cluster.py:168 #, python-format -msgid "No matching releases for cluster %s" +msgid "No matching releases for cluster %(album)s" msgstr "" -#: picard/cluster.py:161 +#: picard/cluster.py:174 #, python-format -msgid "Cluster %s identified!" +msgid "Cluster %(album)s identified!" msgstr "" -#: picard/cluster.py:168 +#: picard/cluster.py:185 #, python-format -msgid "Looking up the metadata for cluster %s..." +msgid "Looking up the metadata for cluster %(album)s..." msgstr "" -#: picard/collection.py:60 +#: picard/collection.py:64 #, python-format -msgid "Added %i release to collection \"%s\"" -msgid_plural "Added %i releases to collection \"%s\"" +msgid "Added %(count)i release to collection \"%(name)s\"" +msgid_plural "Added %(count)i releases to collection \"%(name)s\"" msgstr[0] "" msgstr[1] "" -#: picard/collection.py:72 +#: picard/collection.py:86 #, python-format -msgid "Removed %i release from collection \"%s\"" -msgid_plural "Removed %i releases from collection \"%s\"" +msgid "Removed %(count)i release from collection \"%(name)s\"" +msgid_plural "Removed %(count)i releases from collection \"%(name)s\"" msgstr[0] "" msgstr[1] "" -#: picard/collection.py:81 +#: picard/collection.py:100 #, python-format -msgid "Error loading collections: %s" +msgid "Error loading collections: %(error)s" msgstr "" -#: picard/config_upgrade.py:57 picard/config_upgrade.py:70 +#: picard/config_upgrade.py:58 picard/config_upgrade.py:71 msgid "Various Artists file naming scheme removal" msgstr "" -#: picard/config_upgrade.py:58 +#: picard/config_upgrade.py:59 msgid "" "The separate file naming scheme for various artists albums has been removed in this version of Picard.\n" "Your file naming scheme has automatically been merged with that of single artist albums." msgstr "" -#: picard/config_upgrade.py:71 +#: picard/config_upgrade.py:72 msgid "" "The separate file naming scheme for various artists albums has been removed in this version of Picard.\n" "You currently do not use this option, but have a separate file naming scheme defined.\n" "Do you want to remove it or merge it with your file naming scheme for single artist albums?" msgstr "" -#: picard/config_upgrade.py:77 +#: picard/config_upgrade.py:78 msgid "Merge" msgstr "" -#: picard/config_upgrade.py:77 picard/ui/metadatabox.py:254 +#: picard/config_upgrade.py:78 picard/ui/metadatabox.py:254 msgid "Remove" msgstr "" -#: picard/const.py:67 -msgid "CD" -msgstr "" - -#: picard/const.py:68 -msgid "CD-R" -msgstr "" - -#: picard/const.py:69 -msgid "HDCD" -msgstr "" - -#: picard/const.py:70 -msgid "8cm CD" -msgstr "" - -#: picard/const.py:71 -msgid "Vinyl" -msgstr "" - -#: picard/const.py:72 -msgid "7\" Vinyl" -msgstr "" - -#: picard/const.py:73 -msgid "10\" Vinyl" -msgstr "" - -#: picard/const.py:74 -msgid "12\" Vinyl" -msgstr "" - -#: picard/const.py:75 -msgid "Digital Media" -msgstr "" - -#: picard/const.py:76 -msgid "USB Flash Drive" -msgstr "" - -#: picard/const.py:77 -msgid "slotMusic" -msgstr "" - -#: picard/const.py:78 -msgid "Cassette" -msgstr "" - -#: picard/const.py:79 -msgid "DVD" -msgstr "" - -#: picard/const.py:80 -msgid "DVD-Audio" -msgstr "" - -#: picard/const.py:81 -msgid "DVD-Video" -msgstr "" - -#: picard/const.py:82 -msgid "SACD" -msgstr "" - -#: picard/const.py:83 -msgid "DualDisc" -msgstr "" - -#: picard/const.py:84 -msgid "MiniDisc" -msgstr "" - -#: picard/const.py:85 -msgid "Blu-ray" -msgstr "" - -#: picard/const.py:86 -msgid "HD-DVD" -msgstr "" - -#: picard/const.py:87 -msgid "Videotape" -msgstr "" - -#: picard/const.py:88 -msgid "VHS" -msgstr "" - -#: picard/const.py:89 -msgid "Betamax" -msgstr "" - #: picard/const.py:90 -msgid "VCD" -msgstr "" - -#: picard/const.py:91 -msgid "SVCD" -msgstr "" - -#: picard/const.py:92 -msgid "UMD" -msgstr "" - -#: picard/const.py:93 picard/coverartarchive.py:33 -#: picard/ui/ui_options_releases.py:226 -msgid "Other" -msgstr "" - -#: picard/const.py:94 -msgid "LaserDisc" -msgstr "" - -#: picard/const.py:95 -msgid "Cartridge" -msgstr "" - -#: picard/const.py:96 -msgid "Reel-to-reel" -msgstr "" - -#: picard/const.py:97 -msgid "DAT" -msgstr "" - -#: picard/const.py:98 -msgid "Wax Cylinder" -msgstr "" - -#: picard/const.py:99 -msgid "Piano Roll" -msgstr "" - -#: picard/const.py:100 -msgid "DCC" -msgstr "" - -#: picard/const.py:115 msgid "Danish" msgstr "" -#: picard/const.py:116 +#: picard/const.py:91 msgid "German" msgstr "Dútsk" -#: picard/const.py:118 +#: picard/const.py:93 msgid "English" msgstr "Ingelsk" -#: picard/const.py:119 +#: picard/const.py:94 msgid "English (Canada)" msgstr "" -#: picard/const.py:120 +#: picard/const.py:95 msgid "English (UK)" msgstr "Ingelsk (GB)" -#: picard/const.py:122 +#: picard/const.py:97 msgid "Spanish" msgstr "Spaansk" -#: picard/const.py:123 +#: picard/const.py:98 msgid "Estonian" msgstr "" -#: picard/const.py:125 +#: picard/const.py:100 msgid "Finnish" msgstr "Finsk" -#: picard/const.py:127 +#: picard/const.py:102 msgid "French" msgstr "Frânsk" -#: picard/const.py:136 +#: picard/const.py:111 msgid "Italian" msgstr "Italjaansk" -#: picard/const.py:143 +#: picard/const.py:118 msgid "Dutch" msgstr "Nederlânsk" -#: picard/const.py:145 +#: picard/const.py:120 msgid "Polish" msgstr "Poalsk" -#: picard/const.py:147 +#: picard/const.py:122 msgid "Brazilian Portuguese" msgstr "" -#: picard/const.py:154 +#: picard/const.py:129 msgid "Swedish" msgstr "Sweedsk" -#: picard/coverart.py:84 +#: picard/coverart.py:85 #, python-format -msgid "Coverart %s downloaded" +msgid "Cover art of type '%(type)s' downloaded for %(albumid)s from %(host)s" msgstr "" -#: picard/coverart.py:240 +#: picard/coverart.py:256 #, python-format -msgid "Downloading http://%s:%i%s" -msgstr "" - -#: picard/coverartarchive.py:24 -msgid "Front" -msgstr "" - -#: picard/coverartarchive.py:25 -msgid "Back" -msgstr "" - -#: picard/coverartarchive.py:26 -msgid "Booklet" -msgstr "" - -#: picard/coverartarchive.py:27 -msgid "Medium" -msgstr "" - -#: picard/coverartarchive.py:28 -msgid "Tray" -msgstr "" - -#: picard/coverartarchive.py:29 -msgid "Obi" +msgid "" +"Downloading cover art of type '%(type)s' for %(albumid)s from %(host)s .." msgstr "" #: picard/coverartarchive.py:30 -msgid "Spine" -msgstr "" - -#: picard/coverartarchive.py:31 picard/ui/mainwindow.py:546 -msgid "Track" -msgstr "Nûmer" - -#: picard/coverartarchive.py:32 -msgid "Sticker" -msgstr "" - -#: picard/coverartarchive.py:34 msgid "Unknown" msgstr "" -#: picard/file.py:536 +#: picard/file.py:494 #, python-format -msgid "No matching tracks for file %s" +msgid "No matching tracks for file '%(filename)s'" msgstr "" -#: picard/file.py:548 +#: picard/file.py:510 #, python-format -msgid "No matching tracks above the threshold for file %s" +msgid "No matching tracks above the threshold for file '%(filename)s'" msgstr "" -#: picard/file.py:551 +#: picard/file.py:517 #, python-format -msgid "File %s identified!" +msgid "File '%(filename)s' identified!" msgstr "" -#: picard/file.py:567 +#: picard/file.py:537 #, python-format -msgid "Looking up the metadata for file %s..." +msgid "Looking up the metadata for file %(filename)s ..." msgstr "" #: picard/releasegroup.py:53 @@ -518,11 +401,11 @@ msgstr "" msgid "Year" msgstr "" -#: picard/releasegroup.py:55 picard/ui/cdlookup.py:34 +#: picard/releasegroup.py:55 picard/ui/cdlookup.py:35 msgid "Country" msgstr "" -#: picard/releasegroup.py:56 picard/util/tags.py:81 +#: picard/releasegroup.py:56 msgid "Format" msgstr "" @@ -542,16 +425,23 @@ msgstr "" msgid "[no release info]" msgstr "" -#: picard/tagger.py:316 +#: picard/tagger.py:370 #, python-format -msgid "Loading directory %s" +msgid "Adding %(count)d file from '%(directory)s' ..." +msgid_plural "Adding %(count)d files from '%(directory)s' ..." +msgstr[0] "" +msgstr[1] "" + +#: picard/tagger.py:512 +#, python-format +msgid "Removing album %(id)s: %(artist)s - %(album)s" msgstr "" -#: picard/tagger.py:452 +#: picard/tagger.py:528 msgid "CD Lookup Error" msgstr "" -#: picard/tagger.py:453 +#: picard/tagger.py:529 #, python-format msgid "" "Error while reading CD:\n" @@ -559,44 +449,43 @@ msgid "" "%s" msgstr "" -#: picard/ui/cdlookup.py:34 picard/ui/mainwindow.py:544 -#: picard/ui/ui_options_releases.py:216 picard/util/tags.py:21 +#: picard/ui/cdlookup.py:35 picard/ui/mainwindow.py:597 picard/util/tags.py:21 msgid "Album" msgstr "Album" -#: picard/ui/cdlookup.py:34 picard/ui/itemviews.py:96 -#: picard/ui/mainwindow.py:545 picard/util/tags.py:22 +#: picard/ui/cdlookup.py:35 picard/ui/itemviews.py:96 +#: picard/ui/mainwindow.py:598 picard/util/tags.py:22 msgid "Artist" msgstr "Artyst" -#: picard/ui/cdlookup.py:34 picard/util/tags.py:24 +#: picard/ui/cdlookup.py:35 picard/util/tags.py:24 msgid "Date" msgstr "" -#: picard/ui/cdlookup.py:35 +#: picard/ui/cdlookup.py:36 msgid "Labels" msgstr "" -#: picard/ui/cdlookup.py:35 +#: picard/ui/cdlookup.py:36 msgid "Catalog #s" msgstr "" -#: picard/ui/cdlookup.py:35 picard/util/tags.py:79 +#: picard/ui/cdlookup.py:36 picard/util/tags.py:78 msgid "Barcode" msgstr "" -#: picard/ui/collectionmenu.py:31 +#: picard/ui/collectionmenu.py:42 msgid "Refresh List" msgstr "" -#: picard/ui/collectionmenu.py:92 +#: picard/ui/collectionmenu.py:86 #, python-format msgid "%s (%i release)" msgid_plural "%s (%i releases)" msgstr[0] "" msgstr[1] "" -#: picard/ui/coverartbox.py:142 +#: picard/ui/coverartbox.py:141 msgid "View release on MusicBrainz" msgstr "" @@ -612,59 +501,59 @@ msgstr "" msgid "&Set as starting directory" msgstr "" -#: picard/ui/infodialog.py:36 picard/ui/infodialog.py:75 +#: picard/ui/infodialog.py:37 picard/ui/infodialog.py:80 msgid "Info" msgstr "" -#: picard/ui/infodialog.py:80 +#: picard/ui/infodialog.py:85 msgid "Filename:" msgstr "" -#: picard/ui/infodialog.py:82 +#: picard/ui/infodialog.py:87 msgid "Format:" msgstr "" -#: picard/ui/infodialog.py:86 +#: picard/ui/infodialog.py:91 msgid "Size:" msgstr "" -#: picard/ui/infodialog.py:90 +#: picard/ui/infodialog.py:95 msgid "Length:" msgstr "" -#: picard/ui/infodialog.py:92 +#: picard/ui/infodialog.py:97 msgid "Bitrate:" msgstr "" -#: picard/ui/infodialog.py:94 +#: picard/ui/infodialog.py:99 msgid "Sample rate:" msgstr "" -#: picard/ui/infodialog.py:96 +#: picard/ui/infodialog.py:101 msgid "Bits per sample:" msgstr "" -#: picard/ui/infodialog.py:100 +#: picard/ui/infodialog.py:105 msgid "Mono" msgstr "" -#: picard/ui/infodialog.py:102 +#: picard/ui/infodialog.py:107 msgid "Stereo" msgstr "" -#: picard/ui/infodialog.py:105 +#: picard/ui/infodialog.py:110 msgid "Channels:" msgstr "" -#: picard/ui/infodialog.py:116 +#: picard/ui/infodialog.py:121 msgid "Album Info" msgstr "" -#: picard/ui/infodialog.py:124 +#: picard/ui/infodialog.py:129 msgid "&Errors" msgstr "" -#: picard/ui/infodialog.py:134 picard/ui/ui_infodialog.py:77 +#: picard/ui/infodialog.py:139 picard/ui/ui_infodialog.py:73 msgid "&Info" msgstr "" @@ -688,7 +577,7 @@ msgstr "" msgid "Title" msgstr "" -#: picard/ui/itemviews.py:95 picard/util/tags.py:88 +#: picard/ui/itemviews.py:95 picard/util/tags.py:86 msgid "Length" msgstr "" @@ -713,7 +602,7 @@ msgid "Collections" msgstr "" #: picard/ui/itemviews.py:365 -msgid "&Plugins" +msgid "P&lugins" msgstr "" #: picard/ui/itemviews.py:541 @@ -736,12 +625,16 @@ msgstr "" msgid "Contains albums and matched files" msgstr "" -#: picard/ui/logview.py:91 +#: picard/ui/logview.py:109 msgid "Log" msgstr "" -#: picard/ui/logview.py:99 -msgid "Status History" +#: picard/ui/logview.py:113 +msgid "Debug mode" +msgstr "" + +#: picard/ui/logview.py:134 +msgid "Activity History" msgstr "" #: picard/ui/mainwindow.py:74 @@ -775,275 +668,308 @@ msgstr "" #: picard/ui/mainwindow.py:220 msgid "" -"Picard listens on a port to integrate with your browser and downloads " -"release information when you click the \"Tagger\" buttons on the MusicBrainz" -" website" +"Picard listens on this port to integrate with your browser. When you " +"\"Search\" or \"Open in Browser\" from Picard, clicking the \"Tagger\" " +"button on the web page loads the release into Picard." msgstr "" -#: picard/ui/mainwindow.py:240 +#: picard/ui/mainwindow.py:243 #, python-format msgid " Listening on port %(port)d " msgstr "" -#: picard/ui/mainwindow.py:263 +#: picard/ui/mainwindow.py:299 msgid "Submission Error" msgstr "" -#: picard/ui/mainwindow.py:264 +#: picard/ui/mainwindow.py:300 msgid "" "You need to configure your AcoustID API key before you can submit " "fingerprints." msgstr "" -#: picard/ui/mainwindow.py:269 +#: picard/ui/mainwindow.py:305 msgid "&Options..." msgstr "&Opsjes..." -#: picard/ui/mainwindow.py:273 +#: picard/ui/mainwindow.py:309 msgid "&Cut" msgstr "" -#: picard/ui/mainwindow.py:278 +#: picard/ui/mainwindow.py:314 msgid "&Paste" msgstr "" -#: picard/ui/mainwindow.py:283 +#: picard/ui/mainwindow.py:319 msgid "&Help..." msgstr "" -#: picard/ui/mainwindow.py:288 +#: picard/ui/mainwindow.py:323 msgid "&About..." msgstr "&Oer..." -#: picard/ui/mainwindow.py:292 +#: picard/ui/mainwindow.py:327 msgid "&Donate..." msgstr "" -#: picard/ui/mainwindow.py:295 +#: picard/ui/mainwindow.py:330 msgid "&Report a Bug..." msgstr "" -#: picard/ui/mainwindow.py:298 +#: picard/ui/mainwindow.py:333 msgid "&Support Forum..." msgstr "" -#: picard/ui/mainwindow.py:301 +#: picard/ui/mainwindow.py:336 msgid "&Add Files..." msgstr "" -#: picard/ui/mainwindow.py:302 +#: picard/ui/mainwindow.py:337 msgid "Add files to the tagger" msgstr "" -#: picard/ui/mainwindow.py:307 +#: picard/ui/mainwindow.py:342 msgid "A&dd Folder..." msgstr "" -#: picard/ui/mainwindow.py:308 +#: picard/ui/mainwindow.py:343 msgid "Add a folder to the tagger" msgstr "" -#: picard/ui/mainwindow.py:310 +#: picard/ui/mainwindow.py:345 msgid "Ctrl+D" msgstr "" -#: picard/ui/mainwindow.py:313 +#: picard/ui/mainwindow.py:348 msgid "&Save" msgstr "" -#: picard/ui/mainwindow.py:314 +#: picard/ui/mainwindow.py:349 msgid "Save selected files" msgstr "" -#: picard/ui/mainwindow.py:320 +#: picard/ui/mainwindow.py:355 msgid "S&ubmit" msgstr "" -#: picard/ui/mainwindow.py:321 -msgid "Submit fingerprints" +#: picard/ui/mainwindow.py:356 +msgid "Submit acoustic fingerprints" msgstr "" -#: picard/ui/mainwindow.py:325 +#: picard/ui/mainwindow.py:360 msgid "E&xit" msgstr "&Ofslute" -#: picard/ui/mainwindow.py:328 +#: picard/ui/mainwindow.py:363 msgid "Ctrl+Q" msgstr "" -#: picard/ui/mainwindow.py:331 +#: picard/ui/mainwindow.py:366 msgid "&Remove" msgstr "" -#: picard/ui/mainwindow.py:332 +#: picard/ui/mainwindow.py:367 msgid "Remove selected files/albums" msgstr "" -#: picard/ui/mainwindow.py:336 +#: picard/ui/mainwindow.py:371 msgid "Lookup in &Browser" msgstr "" -#: picard/ui/mainwindow.py:337 +#: picard/ui/mainwindow.py:372 msgid "Lookup selected item on MusicBrainz website" msgstr "" -#: picard/ui/mainwindow.py:341 +#: picard/ui/mainwindow.py:376 msgid "File &Browser" msgstr "" -#: picard/ui/mainwindow.py:345 +#: picard/ui/mainwindow.py:380 msgid "Ctrl+B" msgstr "" -#: picard/ui/mainwindow.py:348 +#: picard/ui/mainwindow.py:383 msgid "&Cover Art" msgstr "" -#: picard/ui/mainwindow.py:354 picard/ui/mainwindow.py:539 +#: picard/ui/mainwindow.py:389 picard/ui/mainwindow.py:591 msgid "Search" msgstr "Sykje" -#: picard/ui/mainwindow.py:357 -msgid "&CD Lookup..." +#: picard/ui/mainwindow.py:392 +msgid "Lookup &CD..." msgstr "" -#: picard/ui/mainwindow.py:358 picard/ui/mainwindow.py:359 -msgid "Lookup CD" +#: picard/ui/mainwindow.py:393 +msgid "Lookup the details of the CD in your drive" msgstr "" -#: picard/ui/mainwindow.py:361 +#: picard/ui/mainwindow.py:395 msgid "Ctrl+K" msgstr "" -#: picard/ui/mainwindow.py:364 +#: picard/ui/mainwindow.py:398 msgid "&Scan" msgstr "" -#: picard/ui/mainwindow.py:367 +#: picard/ui/mainwindow.py:401 msgid "Ctrl+Y" msgstr "" -#: picard/ui/mainwindow.py:370 +#: picard/ui/mainwindow.py:404 msgid "Cl&uster" msgstr "" -#: picard/ui/mainwindow.py:373 +#: picard/ui/mainwindow.py:407 msgid "Ctrl+U" msgstr "" -#: picard/ui/mainwindow.py:376 +#: picard/ui/mainwindow.py:410 msgid "&Lookup" msgstr "" -#: picard/ui/mainwindow.py:377 picard/ui/mainwindow.py:378 -msgid "Lookup metadata" +#: picard/ui/mainwindow.py:411 +msgid "Lookup selected items in MusicBrainz" msgstr "" -#: picard/ui/mainwindow.py:381 +#: picard/ui/mainwindow.py:416 msgid "Ctrl+L" msgstr "" -#: picard/ui/mainwindow.py:384 +#: picard/ui/mainwindow.py:419 msgid "&Info..." msgstr "" -#: picard/ui/mainwindow.py:387 +#: picard/ui/mainwindow.py:422 msgid "Ctrl+I" msgstr "" -#: picard/ui/mainwindow.py:390 +#: picard/ui/mainwindow.py:425 msgid "&Refresh" msgstr "" -#: picard/ui/mainwindow.py:391 +#: picard/ui/mainwindow.py:426 msgid "Ctrl+R" msgstr "" -#: picard/ui/mainwindow.py:394 +#: picard/ui/mainwindow.py:429 msgid "&Rename Files" msgstr "" -#: picard/ui/mainwindow.py:399 +#: picard/ui/mainwindow.py:434 msgid "&Move Files" msgstr "" -#: picard/ui/mainwindow.py:404 +#: picard/ui/mainwindow.py:439 msgid "Save &Tags" msgstr "" -#: picard/ui/mainwindow.py:409 +#: picard/ui/mainwindow.py:444 msgid "Tags From &File Names..." msgstr "" -#: picard/ui/mainwindow.py:412 -msgid "View &Log..." +#: picard/ui/mainwindow.py:447 +msgid "&Open My Collections in Browser" msgstr "" -#: picard/ui/mainwindow.py:415 -msgid "View Status &History..." +#: picard/ui/mainwindow.py:451 +msgid "View Error/Debug &Log" msgstr "" -#: picard/ui/mainwindow.py:422 -msgid "&Open..." +#: picard/ui/mainwindow.py:454 +msgid "View Activity &History" msgstr "" -#: picard/ui/mainwindow.py:423 -msgid "Open the file" +#: picard/ui/mainwindow.py:461 +msgid "&Play file" msgstr "" -#: picard/ui/mainwindow.py:426 -msgid "Open &Folder..." +#: picard/ui/mainwindow.py:462 +msgid "Play the file in your default media player" msgstr "" -#: picard/ui/mainwindow.py:427 -msgid "Open the containing folder" +#: picard/ui/mainwindow.py:466 +msgid "Open Containing &Folder" msgstr "" -#: picard/ui/mainwindow.py:448 +#: picard/ui/mainwindow.py:467 +msgid "Open the containing folder in your file explorer" +msgstr "" + +#: picard/ui/mainwindow.py:492 msgid "&File" msgstr "&Triem" -#: picard/ui/mainwindow.py:456 +#: picard/ui/mainwindow.py:503 msgid "&Edit" msgstr "Be&wurkje" -#: picard/ui/mainwindow.py:462 +#: picard/ui/mainwindow.py:509 msgid "&View" msgstr "" -#: picard/ui/mainwindow.py:470 +#: picard/ui/mainwindow.py:515 msgid "&Options" msgstr "" -#: picard/ui/mainwindow.py:476 +#: picard/ui/mainwindow.py:521 msgid "&Tools" msgstr "" -#: picard/ui/mainwindow.py:485 picard/ui/util.py:35 +#: picard/ui/mainwindow.py:532 picard/ui/util.py:35 msgid "&Help" msgstr "&Help" -#: picard/ui/mainwindow.py:505 +#: picard/ui/mainwindow.py:553 msgid "Actions" msgstr "" -#: picard/ui/mainwindow.py:608 +#: picard/ui/mainwindow.py:599 +msgid "Track" +msgstr "Nûmer" + +#: picard/ui/mainwindow.py:662 msgid "All Supported Formats" msgstr "" -#: picard/ui/mainwindow.py:705 +#: picard/ui/mainwindow.py:695 +#, python-format +msgid "Adding directory: '%(directory)s' ..." +msgstr "" + +#: picard/ui/mainwindow.py:702 +#, python-format +msgid "Adding multiple directories from '%(directory)s' ..." +msgstr "" + +#: picard/ui/mainwindow.py:767 msgid "Configuration Required" msgstr "" -#: picard/ui/mainwindow.py:706 +#: picard/ui/mainwindow.py:768 msgid "" "Audio fingerprinting is not yet configured. Would you like to configure it " "now?" msgstr "" -#: picard/ui/mainwindow.py:784 picard/ui/mainwindow.py:791 +#: picard/ui/mainwindow.py:848 #, python-format -msgid " (Error: %s)" +msgid "%(filename)s (error: %(error)s)" +msgstr "" + +#: picard/ui/mainwindow.py:854 +#, python-format +msgid "%(filename)s" +msgstr "" + +#: picard/ui/mainwindow.py:864 +#, python-format +msgid "%(filename)s (%(similarity)d%%) (error: %(error)s)" +msgstr "" + +#: picard/ui/mainwindow.py:871 +#, python-format +msgid "%(filename)s (%(similarity)d%%)" msgstr "" #: picard/ui/metadatabox.py:82 @@ -1098,387 +1024,387 @@ msgid_plural "Use Original Values" msgstr[0] "" msgstr[1] "" -#: picard/ui/passworddialog.py:37 +#: picard/ui/passworddialog.py:40 #, python-format msgid "" "The server %s requires you to login. Please enter your username and " "password." msgstr "" -#: picard/ui/passworddialog.py:75 +#: picard/ui/passworddialog.py:79 #, python-format msgid "" "The proxy %s requires you to login. Please enter your username and password." msgstr "" -#: picard/ui/tagsfromfilenames.py:55 picard/ui/tagsfromfilenames.py:100 +#: picard/ui/tagsfromfilenames.py:56 picard/ui/tagsfromfilenames.py:101 msgid "File Name" msgstr "" -#: picard/ui/ui_cdlookup.py:66 picard/ui/ui_options_cdlookup.py:55 -#: picard/ui/ui_options_cdlookup_select.py:62 picard/ui/options/cdlookup.py:38 +#: picard/ui/ui_cdlookup.py:53 picard/ui/ui_options_cdlookup.py:42 +#: picard/ui/ui_options_cdlookup_select.py:49 picard/ui/options/cdlookup.py:38 msgid "CD Lookup" msgstr "" -#: picard/ui/ui_cdlookup.py:67 +#: picard/ui/ui_cdlookup.py:54 msgid "The following releases on MusicBrainz match the CD:" msgstr "" -#: picard/ui/ui_cdlookup.py:68 +#: picard/ui/ui_cdlookup.py:55 msgid "OK" msgstr "" -#: picard/ui/ui_cdlookup.py:69 +#: picard/ui/ui_cdlookup.py:56 msgid "Lookup manually" msgstr "" -#: picard/ui/ui_cdlookup.py:70 +#: picard/ui/ui_cdlookup.py:57 msgid "Cancel" msgstr "Ofbrekke" -#: picard/ui/ui_edittagdialog.py:101 +#: picard/ui/ui_edittagdialog.py:88 msgid "Edit Tag" msgstr "" -#: picard/ui/ui_edittagdialog.py:102 +#: picard/ui/ui_edittagdialog.py:89 msgid "Edit value" msgstr "" -#: picard/ui/ui_edittagdialog.py:103 +#: picard/ui/ui_edittagdialog.py:90 msgid "Add value" msgstr "" -#: picard/ui/ui_edittagdialog.py:104 +#: picard/ui/ui_edittagdialog.py:91 msgid "Remove value" msgstr "" -#: picard/ui/ui_infodialog.py:78 +#: picard/ui/ui_infodialog.py:74 msgid "A&rtwork" msgstr "" -#: picard/ui/ui_infostatus.py:100 +#: picard/ui/ui_infostatus.py:96 msgid "Form" msgstr "" -#: picard/ui/ui_options.py:51 +#: picard/ui/ui_options.py:38 msgid "Options" msgstr "" -#: picard/ui/ui_options_advanced.py:46 +#: picard/ui/ui_options_advanced.py:42 msgid "Advanced options" msgstr "" -#: picard/ui/ui_options_advanced.py:47 +#: picard/ui/ui_options_advanced.py:43 msgid "Ignore file paths matching the following regular expression:" msgstr "" -#: picard/ui/ui_options_cdlookup.py:56 +#: picard/ui/ui_options_cdlookup.py:43 msgid "CD-ROM device to use for lookups:" msgstr "" -#: picard/ui/ui_options_cdlookup_select.py:63 +#: picard/ui/ui_options_cdlookup_select.py:50 msgid "Default CD-ROM drive to use for lookups:" msgstr "" -#: picard/ui/ui_options_cover.py:145 +#: picard/ui/ui_options_cover.py:131 msgid "Location" msgstr "" -#: picard/ui/ui_options_cover.py:146 +#: picard/ui/ui_options_cover.py:132 msgid "Embed cover images into tags" msgstr "" -#: picard/ui/ui_options_cover.py:147 +#: picard/ui/ui_options_cover.py:133 msgid "Only embed a front image" msgstr "" -#: picard/ui/ui_options_cover.py:148 +#: picard/ui/ui_options_cover.py:134 msgid "Save cover images as separate files" msgstr "" -#: picard/ui/ui_options_cover.py:149 +#: picard/ui/ui_options_cover.py:135 msgid "Use the following file name for images:" msgstr "" -#: picard/ui/ui_options_cover.py:150 +#: picard/ui/ui_options_cover.py:136 msgid "Overwrite the file if it already exists" msgstr "" -#: picard/ui/ui_options_cover.py:151 +#: picard/ui/ui_options_cover.py:137 msgid "Coverart Providers" msgstr "" -#: picard/ui/ui_options_cover.py:152 +#: picard/ui/ui_options_cover.py:138 msgid "Amazon" msgstr "" -#: picard/ui/ui_options_cover.py:153 picard/ui/ui_options_cover.py:155 +#: picard/ui/ui_options_cover.py:139 picard/ui/ui_options_cover.py:141 msgid "Cover Art Archive" msgstr "" -#: picard/ui/ui_options_cover.py:154 +#: picard/ui/ui_options_cover.py:140 msgid "Sites on the whitelist" msgstr "" -#: picard/ui/ui_options_cover.py:156 +#: picard/ui/ui_options_cover.py:142 msgid "Only use images of the following size:" msgstr "" -#: picard/ui/ui_options_cover.py:157 +#: picard/ui/ui_options_cover.py:143 msgid "250 px" msgstr "" -#: picard/ui/ui_options_cover.py:158 +#: picard/ui/ui_options_cover.py:144 msgid "500 px" msgstr "" -#: picard/ui/ui_options_cover.py:159 +#: picard/ui/ui_options_cover.py:145 msgid "Full size" msgstr "" -#: picard/ui/ui_options_cover.py:160 +#: picard/ui/ui_options_cover.py:146 msgid "Download only images of the following types:" msgstr "" -#: picard/ui/ui_options_cover.py:161 +#: picard/ui/ui_options_cover.py:147 msgid "Download only approved images" msgstr "" -#: picard/ui/ui_options_cover.py:162 +#: picard/ui/ui_options_cover.py:148 msgid "" "Use the first image type as the filename. This will not change the filename " "of front images." msgstr "" -#: picard/ui/ui_options_fingerprinting.py:83 +#: picard/ui/ui_options_fingerprinting.py:70 msgid "Audio Fingerprinting" msgstr "" -#: picard/ui/ui_options_fingerprinting.py:84 +#: picard/ui/ui_options_fingerprinting.py:71 msgid "Do not use audio fingerprinting" msgstr "" -#: picard/ui/ui_options_fingerprinting.py:85 +#: picard/ui/ui_options_fingerprinting.py:72 msgid "Use AcoustID" msgstr "" -#: picard/ui/ui_options_fingerprinting.py:86 +#: picard/ui/ui_options_fingerprinting.py:73 msgid "AcoustID Settings" msgstr "" -#: picard/ui/ui_options_fingerprinting.py:87 +#: picard/ui/ui_options_fingerprinting.py:74 msgid "Fingerprint calculator:" msgstr "" -#: picard/ui/ui_options_fingerprinting.py:88 -#: picard/ui/ui_options_interface.py:88 picard/ui/ui_options_renaming.py:138 +#: picard/ui/ui_options_fingerprinting.py:75 +#: picard/ui/ui_options_interface.py:75 picard/ui/ui_options_renaming.py:134 msgid "Browse..." msgstr "" -#: picard/ui/ui_options_fingerprinting.py:89 +#: picard/ui/ui_options_fingerprinting.py:76 msgid "Download..." msgstr "" -#: picard/ui/ui_options_fingerprinting.py:90 +#: picard/ui/ui_options_fingerprinting.py:77 msgid "API key:" msgstr "" -#: picard/ui/ui_options_fingerprinting.py:91 +#: picard/ui/ui_options_fingerprinting.py:78 msgid "Get API key..." msgstr "" -#: picard/ui/ui_options_folksonomy.py:115 picard/ui/options/folksonomy.py:28 +#: picard/ui/ui_options_folksonomy.py:102 picard/ui/options/folksonomy.py:28 msgid "Folksonomy Tags" msgstr "" -#: picard/ui/ui_options_folksonomy.py:117 +#: picard/ui/ui_options_folksonomy.py:104 msgid "Only use my tags" msgstr "" -#: picard/ui/ui_options_folksonomy.py:120 +#: picard/ui/ui_options_folksonomy.py:107 msgid "Maximum number of tags:" msgstr "" -#: picard/ui/ui_options_general.py:92 +#: picard/ui/ui_options_general.py:88 msgid "MusicBrainz Server" msgstr "" -#: picard/ui/ui_options_general.py:93 picard/ui/ui_options_network.py:123 +#: picard/ui/ui_options_general.py:89 picard/ui/ui_options_network.py:110 msgid "Port:" msgstr "" -#: picard/ui/ui_options_general.py:94 picard/ui/ui_options_network.py:124 +#: picard/ui/ui_options_general.py:90 picard/ui/ui_options_network.py:111 msgid "Server address:" msgstr "" -#: picard/ui/ui_options_general.py:95 +#: picard/ui/ui_options_general.py:91 msgid "Account Information" msgstr "" -#: picard/ui/ui_options_general.py:96 picard/ui/ui_options_network.py:121 -#: picard/ui/ui_passworddialog.py:74 +#: picard/ui/ui_options_general.py:92 picard/ui/ui_options_network.py:108 +#: picard/ui/ui_passworddialog.py:70 msgid "Password:" msgstr "" -#: picard/ui/ui_options_general.py:97 picard/ui/ui_options_network.py:122 -#: picard/ui/ui_passworddialog.py:73 +#: picard/ui/ui_options_general.py:93 picard/ui/ui_options_network.py:109 +#: picard/ui/ui_passworddialog.py:69 msgid "Username:" msgstr "" -#: picard/ui/ui_options_general.py:98 picard/ui/options/general.py:31 +#: picard/ui/ui_options_general.py:94 picard/ui/options/general.py:31 msgid "General" msgstr "Algemien" -#: picard/ui/ui_options_general.py:99 +#: picard/ui/ui_options_general.py:95 msgid "Automatically scan all new files" msgstr "" -#: picard/ui/ui_options_general.py:100 +#: picard/ui/ui_options_general.py:96 msgid "Ignore MBIDs when loading new files" msgstr "" -#: picard/ui/ui_options_interface.py:82 +#: picard/ui/ui_options_interface.py:69 msgid "Miscellaneous" msgstr "" -#: picard/ui/ui_options_interface.py:83 +#: picard/ui/ui_options_interface.py:70 msgid "Show text labels under icons" msgstr "" -#: picard/ui/ui_options_interface.py:84 +#: picard/ui/ui_options_interface.py:71 msgid "Allow selection of multiple directories" msgstr "" -#: picard/ui/ui_options_interface.py:85 +#: picard/ui/ui_options_interface.py:72 msgid "Use advanced query syntax" msgstr "" -#: picard/ui/ui_options_interface.py:86 +#: picard/ui/ui_options_interface.py:73 msgid "Show a quit confirmation dialog for unsaved changes" msgstr "" -#: picard/ui/ui_options_interface.py:87 +#: picard/ui/ui_options_interface.py:74 msgid "Begin browsing in the following directory:" msgstr "" -#: picard/ui/ui_options_interface.py:89 +#: picard/ui/ui_options_interface.py:76 msgid "User interface language:" msgstr "" -#: picard/ui/ui_options_matching.py:86 +#: picard/ui/ui_options_matching.py:73 msgid "Thresholds" msgstr "" -#: picard/ui/ui_options_matching.py:87 +#: picard/ui/ui_options_matching.py:74 msgid "Minimal similarity for matching files to tracks:" msgstr "" -#: picard/ui/ui_options_matching.py:91 +#: picard/ui/ui_options_matching.py:78 msgid "Minimal similarity for file lookups:" msgstr "" -#: picard/ui/ui_options_matching.py:92 +#: picard/ui/ui_options_matching.py:79 msgid "Minimal similarity for cluster lookups:" msgstr "" -#: picard/ui/ui_options_metadata.py:114 picard/ui/options/metadata.py:29 +#: picard/ui/ui_options_metadata.py:101 picard/ui/options/metadata.py:29 msgid "Metadata" msgstr "" -#: picard/ui/ui_options_metadata.py:115 +#: picard/ui/ui_options_metadata.py:102 msgid "Translate artist names to this locale where possible:" msgstr "" -#: picard/ui/ui_options_metadata.py:116 +#: picard/ui/ui_options_metadata.py:103 msgid "Use standardized artist names" msgstr "" -#: picard/ui/ui_options_metadata.py:117 +#: picard/ui/ui_options_metadata.py:104 msgid "Convert Unicode punctuation characters to ASCII" msgstr "" -#: picard/ui/ui_options_metadata.py:118 +#: picard/ui/ui_options_metadata.py:105 msgid "Use release relationships" msgstr "" -#: picard/ui/ui_options_metadata.py:119 +#: picard/ui/ui_options_metadata.py:106 msgid "Use track relationships" msgstr "" -#: picard/ui/ui_options_metadata.py:120 +#: picard/ui/ui_options_metadata.py:107 msgid "Use folksonomy tags as genre" msgstr "" -#: picard/ui/ui_options_metadata.py:121 +#: picard/ui/ui_options_metadata.py:108 msgid "Custom Fields" msgstr "" -#: picard/ui/ui_options_metadata.py:122 +#: picard/ui/ui_options_metadata.py:109 msgid "Various artists:" msgstr "" -#: picard/ui/ui_options_metadata.py:123 +#: picard/ui/ui_options_metadata.py:110 msgid "Non-album tracks:" msgstr "" -#: picard/ui/ui_options_metadata.py:124 picard/ui/ui_options_metadata.py:125 -#: picard/ui/ui_options_renaming.py:147 +#: picard/ui/ui_options_metadata.py:111 picard/ui/ui_options_metadata.py:112 +#: picard/ui/ui_options_renaming.py:143 msgid "Default" msgstr "Standert" -#: picard/ui/ui_options_network.py:120 +#: picard/ui/ui_options_network.py:107 msgid "Web Proxy" msgstr "Web Proxy" -#: picard/ui/ui_options_network.py:125 +#: picard/ui/ui_options_network.py:112 msgid "Browser Integration" msgstr "" -#: picard/ui/ui_options_network.py:126 +#: picard/ui/ui_options_network.py:113 msgid "Default listening port:" msgstr "" -#: picard/ui/ui_options_network.py:127 +#: picard/ui/ui_options_network.py:114 msgid "Listen only on localhost" msgstr "" -#: picard/ui/ui_options_plugins.py:131 picard/ui/options/plugins.py:38 +#: picard/ui/ui_options_plugins.py:127 picard/ui/options/plugins.py:38 msgid "Plugins" msgstr "" -#: picard/ui/ui_options_plugins.py:132 picard/ui/options/plugins.py:122 +#: picard/ui/ui_options_plugins.py:128 picard/ui/options/plugins.py:122 msgid "Name" msgstr "" -#: picard/ui/ui_options_plugins.py:133 picard/util/tags.py:39 +#: picard/ui/ui_options_plugins.py:129 msgid "Version" msgstr "" -#: picard/ui/ui_options_plugins.py:134 picard/ui/options/plugins.py:125 +#: picard/ui/ui_options_plugins.py:130 picard/ui/options/plugins.py:125 msgid "Author" msgstr "" -#: picard/ui/ui_options_plugins.py:135 +#: picard/ui/ui_options_plugins.py:131 msgid "Install plugin..." msgstr "" -#: picard/ui/ui_options_plugins.py:136 +#: picard/ui/ui_options_plugins.py:132 msgid "Open plugin folder" msgstr "" -#: picard/ui/ui_options_plugins.py:137 +#: picard/ui/ui_options_plugins.py:133 msgid "Download plugins" msgstr "" -#: picard/ui/ui_options_plugins.py:138 +#: picard/ui/ui_options_plugins.py:134 msgid "Details" msgstr "" -#: picard/ui/ui_options_ratings.py:53 +#: picard/ui/ui_options_ratings.py:49 msgid "Enable track ratings" msgstr "" -#: picard/ui/ui_options_ratings.py:54 +#: picard/ui/ui_options_ratings.py:50 msgid "" "Picard saves the ratings together with an e-mail address identifying the " "user who did the rating. That way different ratings for different users can " @@ -1486,207 +1412,167 @@ msgid "" "your ratings." msgstr "" -#: picard/ui/ui_options_ratings.py:55 +#: picard/ui/ui_options_ratings.py:51 msgid "E-mail:" msgstr "" -#: picard/ui/ui_options_ratings.py:56 +#: picard/ui/ui_options_ratings.py:52 msgid "Submit ratings to MusicBrainz" msgstr "" -#: picard/ui/ui_options_releases.py:215 +#: picard/ui/ui_options_releases.py:104 msgid "Preferred release types" msgstr "" -#: picard/ui/ui_options_releases.py:217 -msgid "Single" -msgstr "" - -#: picard/ui/ui_options_releases.py:218 -msgid "EP" -msgstr "" - -#: picard/ui/ui_options_releases.py:219 -msgid "Compilation" -msgstr "" - -#: picard/ui/ui_options_releases.py:220 -msgid "Soundtrack" -msgstr "" - -#: picard/ui/ui_options_releases.py:221 -msgid "Spokenword" -msgstr "" - -#: picard/ui/ui_options_releases.py:222 -msgid "Interview" -msgstr "" - -#: picard/ui/ui_options_releases.py:223 -msgid "Audiobook" -msgstr "" - -#: picard/ui/ui_options_releases.py:224 -msgid "Live" -msgstr "" - -#: picard/ui/ui_options_releases.py:225 -msgid "Remix" -msgstr "" - -#: picard/ui/ui_options_releases.py:227 -msgid "Reset all" -msgstr "" - -#: picard/ui/ui_options_releases.py:228 +#: picard/ui/ui_options_releases.py:105 msgid "Preferred release countries" msgstr "" -#: picard/ui/ui_options_releases.py:229 picard/ui/ui_options_releases.py:232 +#: picard/ui/ui_options_releases.py:106 picard/ui/ui_options_releases.py:109 msgid ">" msgstr "" -#: picard/ui/ui_options_releases.py:230 picard/ui/ui_options_releases.py:233 +#: picard/ui/ui_options_releases.py:107 picard/ui/ui_options_releases.py:110 msgid "<" msgstr "" -#: picard/ui/ui_options_releases.py:231 +#: picard/ui/ui_options_releases.py:108 msgid "Preferred release formats" msgstr "" -#: picard/ui/ui_options_renaming.py:134 +#: picard/ui/ui_options_renaming.py:130 msgid "Rename files when saving" msgstr "" -#: picard/ui/ui_options_renaming.py:135 +#: picard/ui/ui_options_renaming.py:131 msgid "Replace non-ASCII characters" msgstr "" -#: picard/ui/ui_options_renaming.py:136 +#: picard/ui/ui_options_renaming.py:132 msgid "Windows compatibility" msgstr "" -#: picard/ui/ui_options_renaming.py:137 +#: picard/ui/ui_options_renaming.py:133 msgid "Move files to this directory when saving:" msgstr "" -#: picard/ui/ui_options_renaming.py:139 +#: picard/ui/ui_options_renaming.py:135 msgid "Delete empty directories" msgstr "" -#: picard/ui/ui_options_renaming.py:140 +#: picard/ui/ui_options_renaming.py:136 msgid "Move additional files:" msgstr "" -#: picard/ui/ui_options_renaming.py:141 +#: picard/ui/ui_options_renaming.py:137 msgid "Name files like this" msgstr "" -#: picard/ui/ui_options_renaming.py:148 +#: picard/ui/ui_options_renaming.py:144 msgid "Examples" msgstr "" -#: picard/ui/ui_options_script.py:49 +#: picard/ui/ui_options_script.py:45 msgid "Tagger Script" msgstr "" -#: picard/ui/ui_options_tags.py:165 +#: picard/ui/ui_options_tags.py:152 msgid "Write tags to files" msgstr "" -#: picard/ui/ui_options_tags.py:166 +#: picard/ui/ui_options_tags.py:153 msgid "Preserve timestamps of tagged files" msgstr "" -#: picard/ui/ui_options_tags.py:167 +#: picard/ui/ui_options_tags.py:154 msgid "Before Tagging" msgstr "" -#: picard/ui/ui_options_tags.py:168 +#: picard/ui/ui_options_tags.py:155 msgid "Clear existing tags" msgstr "" -#: picard/ui/ui_options_tags.py:169 +#: picard/ui/ui_options_tags.py:156 msgid "Remove ID3 tags from FLAC files" msgstr "" -#: picard/ui/ui_options_tags.py:170 +#: picard/ui/ui_options_tags.py:157 msgid "Remove APEv2 tags from MP3 files" msgstr "" -#: picard/ui/ui_options_tags.py:171 +#: picard/ui/ui_options_tags.py:158 msgid "" "Preserve these tags from being cleared or overwritten with MusicBrainz data:" msgstr "" -#: picard/ui/ui_options_tags.py:172 +#: picard/ui/ui_options_tags.py:159 msgid "Tags are separated by commas, and are case-sensitive." msgstr "" -#: picard/ui/ui_options_tags.py:173 +#: picard/ui/ui_options_tags.py:160 msgid "Tag Compatibility" msgstr "" -#: picard/ui/ui_options_tags.py:174 +#: picard/ui/ui_options_tags.py:161 msgid "ID3v2 Version" msgstr "" -#: picard/ui/ui_options_tags.py:175 +#: picard/ui/ui_options_tags.py:162 msgid "2.4" msgstr "" -#: picard/ui/ui_options_tags.py:176 +#: picard/ui/ui_options_tags.py:163 msgid "2.3" msgstr "" -#: picard/ui/ui_options_tags.py:177 +#: picard/ui/ui_options_tags.py:164 msgid "ID3v2 Text Encoding" msgstr "" -#: picard/ui/ui_options_tags.py:178 +#: picard/ui/ui_options_tags.py:165 msgid "UTF-8" msgstr "" -#: picard/ui/ui_options_tags.py:179 +#: picard/ui/ui_options_tags.py:166 msgid "UTF-16" msgstr "" -#: picard/ui/ui_options_tags.py:180 +#: picard/ui/ui_options_tags.py:167 msgid "ISO-8859-1" msgstr "" -#: picard/ui/ui_options_tags.py:181 +#: picard/ui/ui_options_tags.py:168 msgid "Join multiple ID3v2.3 tags with:" msgstr "" -#: picard/ui/ui_options_tags.py:182 +#: picard/ui/ui_options_tags.py:169 msgid "" "

Default is '/' to maintain compatibility with previous" " Picard releases.

New alternatives are ';_' or '_/_' or type your own." "

" msgstr "" -#: picard/ui/ui_options_tags.py:183 +#: picard/ui/ui_options_tags.py:170 msgid "Also include ID3v1 tags in the files" msgstr "" -#: picard/ui/ui_passworddialog.py:72 +#: picard/ui/ui_passworddialog.py:68 msgid "Authentication required" msgstr "" -#: picard/ui/ui_passworddialog.py:75 +#: picard/ui/ui_passworddialog.py:71 msgid "Save username and password" msgstr "" -#: picard/ui/ui_tagsfromfilenames.py:54 +#: picard/ui/ui_tagsfromfilenames.py:50 msgid "Convert File Names to Tags" msgstr "" -#: picard/ui/ui_tagsfromfilenames.py:55 +#: picard/ui/ui_tagsfromfilenames.py:51 msgid "Replace underscores with spaces" msgstr "" -#: picard/ui/ui_tagsfromfilenames.py:56 +#: picard/ui/ui_tagsfromfilenames.py:52 msgid "&Preview" msgstr "" @@ -1742,7 +1628,11 @@ msgstr "" msgid "Regex Error" msgstr "" -#: picard/ui/options/cover.py:63 +#: picard/ui/options/cover.py:44 +msgid "title" +msgstr "" + +#: picard/ui/options/cover.py:68 msgid "Cover Art" msgstr "" @@ -1758,11 +1648,11 @@ msgstr "" msgid "System default" msgstr "Systeem standert" -#: picard/ui/options/interface.py:96 +#: picard/ui/options/interface.py:98 msgid "Language changed" msgstr "" -#: picard/ui/options/interface.py:96 +#: picard/ui/options/interface.py:99 msgid "" "You have changed the interface language. You have to restart Picard in order" " for the change to take effect." @@ -1784,31 +1674,35 @@ msgstr "Triem" msgid "Ratings" msgstr "" -#: picard/ui/options/releases.py:33 +#: picard/ui/options/releases.py:87 msgid "Preferred Releases" msgstr "" +#: picard/ui/options/releases.py:121 +msgid "Reset all" +msgstr "" + #: picard/ui/options/renaming.py:37 msgid "File Naming" msgstr "" -#: picard/ui/options/renaming.py:184 +#: picard/ui/options/renaming.py:187 msgid "Error" msgstr "" -#: picard/ui/options/renaming.py:184 +#: picard/ui/options/renaming.py:187 msgid "The location to move files to must not be empty." msgstr "" -#: picard/ui/options/renaming.py:194 +#: picard/ui/options/renaming.py:197 msgid "The file naming format must not be empty." msgstr "" -#: picard/ui/options/scripting.py:63 +#: picard/ui/options/scripting.py:99 msgid "Scripting" msgstr "" -#: picard/ui/options/scripting.py:95 +#: picard/ui/options/scripting.py:131 msgid "Script Error" msgstr "" @@ -1928,199 +1822,199 @@ msgstr "" msgid "Grouping" msgstr "" -#: picard/util/tags.py:40 +#: picard/util/tags.py:39 msgid "ISRC" msgstr "" -#: picard/util/tags.py:41 +#: picard/util/tags.py:40 msgid "Mood" msgstr "" -#: picard/util/tags.py:42 +#: picard/util/tags.py:41 msgid "BPM" msgstr "" -#: picard/util/tags.py:43 +#: picard/util/tags.py:42 msgid "Copyright" msgstr "" -#: picard/util/tags.py:44 +#: picard/util/tags.py:43 msgid "License" msgstr "" -#: picard/util/tags.py:45 +#: picard/util/tags.py:44 msgid "Composer" msgstr "" -#: picard/util/tags.py:46 +#: picard/util/tags.py:45 msgid "Writer" msgstr "" -#: picard/util/tags.py:47 +#: picard/util/tags.py:46 msgid "Conductor" msgstr "" -#: picard/util/tags.py:48 +#: picard/util/tags.py:47 msgid "Lyricist" msgstr "" -#: picard/util/tags.py:49 +#: picard/util/tags.py:48 msgid "Arranger" msgstr "" -#: picard/util/tags.py:50 +#: picard/util/tags.py:49 msgid "Producer" msgstr "" -#: picard/util/tags.py:51 +#: picard/util/tags.py:50 msgid "Engineer" msgstr "" -#: picard/util/tags.py:52 +#: picard/util/tags.py:51 msgid "Subtitle" msgstr "" -#: picard/util/tags.py:53 +#: picard/util/tags.py:52 msgid "Disc Subtitle" msgstr "" -#: picard/util/tags.py:54 +#: picard/util/tags.py:53 msgid "Remixer" msgstr "" -#: picard/util/tags.py:55 +#: picard/util/tags.py:54 msgid "MusicBrainz Recording Id" msgstr "" -#: picard/util/tags.py:56 +#: picard/util/tags.py:55 msgid "MusicBrainz Track Id" msgstr "" -#: picard/util/tags.py:57 +#: picard/util/tags.py:56 msgid "MusicBrainz Release Id" msgstr "" -#: picard/util/tags.py:58 +#: picard/util/tags.py:57 msgid "MusicBrainz Artist Id" msgstr "" -#: picard/util/tags.py:59 +#: picard/util/tags.py:58 msgid "MusicBrainz Release Artist Id" msgstr "" -#: picard/util/tags.py:60 +#: picard/util/tags.py:59 msgid "MusicBrainz Work Id" msgstr "" -#: picard/util/tags.py:61 +#: picard/util/tags.py:60 msgid "MusicBrainz Release Group Id" msgstr "" -#: picard/util/tags.py:62 +#: picard/util/tags.py:61 msgid "MusicBrainz Disc Id" msgstr "" -#: picard/util/tags.py:63 -msgid "MusicBrainz Sort Name" -msgstr "" - -#: picard/util/tags.py:64 +#: picard/util/tags.py:62 msgid "MusicIP PUID" msgstr "" -#: picard/util/tags.py:65 +#: picard/util/tags.py:63 msgid "MusicIP Fingerprint" msgstr "" -#: picard/util/tags.py:66 +#: picard/util/tags.py:64 msgid "AcoustID" msgstr "" -#: picard/util/tags.py:67 +#: picard/util/tags.py:65 msgid "AcoustID Fingerprint" msgstr "" -#: picard/util/tags.py:68 +#: picard/util/tags.py:66 msgid "Disc Id" msgstr "" -#: picard/util/tags.py:69 -msgid "Website" +#: picard/util/tags.py:67 +msgid "Artist Website" msgstr "" -#: picard/util/tags.py:70 +#: picard/util/tags.py:68 msgid "Compilation (iTunes)" msgstr "" -#: picard/util/tags.py:71 +#: picard/util/tags.py:69 msgid "Comment" msgstr "" -#: picard/util/tags.py:72 +#: picard/util/tags.py:70 msgid "Genre" msgstr "" -#: picard/util/tags.py:73 +#: picard/util/tags.py:71 msgid "Encoded By" msgstr "" -#: picard/util/tags.py:74 +#: picard/util/tags.py:72 +msgid "Encoder Settings" +msgstr "" + +#: picard/util/tags.py:73 msgid "Performer" msgstr "" -#: picard/util/tags.py:75 +#: picard/util/tags.py:74 msgid "Release Type" msgstr "" -#: picard/util/tags.py:76 +#: picard/util/tags.py:75 msgid "Release Status" msgstr "" -#: picard/util/tags.py:77 +#: picard/util/tags.py:76 msgid "Release Country" msgstr "" -#: picard/util/tags.py:78 +#: picard/util/tags.py:77 msgid "Record Label" msgstr "" -#: picard/util/tags.py:80 +#: picard/util/tags.py:79 msgid "Catalog Number" msgstr "" -#: picard/util/tags.py:82 +#: picard/util/tags.py:80 msgid "DJ-Mixer" msgstr "" -#: picard/util/tags.py:83 +#: picard/util/tags.py:81 msgid "Media" msgstr "" -#: picard/util/tags.py:84 +#: picard/util/tags.py:82 msgid "Lyrics" msgstr "" -#: picard/util/tags.py:85 +#: picard/util/tags.py:83 msgid "Mixer" msgstr "" -#: picard/util/tags.py:86 +#: picard/util/tags.py:84 msgid "Language" msgstr "Taal" -#: picard/util/tags.py:87 +#: picard/util/tags.py:85 msgid "Script" msgstr "" -#: picard/util/tags.py:89 +#: picard/util/tags.py:87 msgid "Rating" msgstr "" -#: picard/util/tags.py:90 +#: picard/util/tags.py:88 msgid "Artists" msgstr "" -#: picard/util/tags.py:91 +#: picard/util/tags.py:89 msgid "Work" msgstr "" diff --git a/po/gl.po b/po/gl.po index 4e0582fb8..7e1876fd2 100644 --- a/po/gl.po +++ b/po/gl.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: MusicBrainz\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2014-03-20 11:12+0100\n" -"PO-Revision-Date: 2014-03-21 08:44+0000\n" +"POT-Creation-Date: 2014-05-03 17:28+0200\n" +"PO-Revision-Date: 2014-05-04 08:44+0000\n" "Last-Translator: nikki\n" "Language-Team: Galician (http://www.transifex.com/projects/p/musicbrainz/language/gl/)\n" "MIME-Version: 1.0\n" @@ -19,6 +19,10 @@ msgstr "" "Language: gl\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" +#: contrib/plugins/albumartist_website.py:3 +msgid "Album Artist Website" +msgstr "" + #: contrib/plugins/no_release.py:50 msgid "Enable plugin for all releases by default" msgstr "" @@ -31,63 +35,55 @@ msgstr "" msgid "Remove specific release information..." msgstr "" -#: contrib/plugins/open_in_gui.py:32 -msgid "Open Error" +#: contrib/plugins/standardise_performers.py:3 +msgid "Standardise Performers" msgstr "" -#: contrib/plugins/open_in_gui.py:32 -#, python-format -msgid "" -"Error while opening file:\n" -"\n" -"%s" -msgstr "" - -#: contrib/plugins/lastfm/ui_options_lastfm.py:117 +#: contrib/plugins/lastfm/ui_options_lastfm.py:99 msgid "Last.fm" msgstr "" -#: contrib/plugins/lastfm/ui_options_lastfm.py:118 +#: contrib/plugins/lastfm/ui_options_lastfm.py:100 msgid "Use track tags" msgstr "" -#: contrib/plugins/lastfm/ui_options_lastfm.py:119 +#: contrib/plugins/lastfm/ui_options_lastfm.py:101 msgid "Use artist tags" msgstr "" -#: contrib/plugins/lastfm/ui_options_lastfm.py:120 +#: contrib/plugins/lastfm/ui_options_lastfm.py:102 #: picard/ui/options/tags.py:30 msgid "Tags" msgstr "Etiquetas" -#: contrib/plugins/lastfm/ui_options_lastfm.py:121 -#: picard/ui/ui_options_folksonomy.py:116 +#: contrib/plugins/lastfm/ui_options_lastfm.py:103 +#: picard/ui/ui_options_folksonomy.py:103 msgid "Ignore tags:" msgstr "Ignorar as etiquetas:" -#: contrib/plugins/lastfm/ui_options_lastfm.py:122 -#: picard/ui/ui_options_folksonomy.py:121 +#: contrib/plugins/lastfm/ui_options_lastfm.py:104 +#: picard/ui/ui_options_folksonomy.py:108 msgid "Join multiple tags with:" msgstr "Unir múltiples etiquetas con:" -#: contrib/plugins/lastfm/ui_options_lastfm.py:123 -#: picard/ui/ui_options_folksonomy.py:122 +#: contrib/plugins/lastfm/ui_options_lastfm.py:105 +#: picard/ui/ui_options_folksonomy.py:109 msgid " / " msgstr " / " -#: contrib/plugins/lastfm/ui_options_lastfm.py:124 -#: picard/ui/ui_options_folksonomy.py:123 +#: contrib/plugins/lastfm/ui_options_lastfm.py:106 +#: picard/ui/ui_options_folksonomy.py:110 msgid ", " msgstr ", " -#: contrib/plugins/lastfm/ui_options_lastfm.py:125 -#: picard/ui/ui_options_folksonomy.py:118 +#: contrib/plugins/lastfm/ui_options_lastfm.py:107 +#: picard/ui/ui_options_folksonomy.py:105 msgid "Minimal tag usage:" msgstr "Uso mínimo de etiquetas:" -#: contrib/plugins/lastfm/ui_options_lastfm.py:126 -#: picard/ui/ui_options_folksonomy.py:119 picard/ui/ui_options_matching.py:88 -#: picard/ui/ui_options_matching.py:89 picard/ui/ui_options_matching.py:90 +#: contrib/plugins/lastfm/ui_options_lastfm.py:108 +#: picard/ui/ui_options_folksonomy.py:106 picard/ui/ui_options_matching.py:75 +#: picard/ui/ui_options_matching.py:76 picard/ui/ui_options_matching.py:77 msgid " %" msgstr " %" @@ -95,420 +91,307 @@ msgstr " %" msgid "Calculate replay &gain..." msgstr "" -#: contrib/plugins/replaygain/__init__.py:66 +#: contrib/plugins/replaygain/__init__.py:67 #, python-format -msgid "Calculating replay gain for \"%s\"..." +msgid "Calculating replay gain for \"%(filename)s\"..." msgstr "" -#: contrib/plugins/replaygain/__init__.py:71 +#: contrib/plugins/replaygain/__init__.py:75 #, python-format -msgid "Replay gain for \"%s\" successfully calculated." +msgid "Replay gain for \"%(filename)s\" successfully calculated." msgstr "" -#: contrib/plugins/replaygain/__init__.py:73 +#: contrib/plugins/replaygain/__init__.py:80 #, python-format -msgid "Could not calculate replay gain for \"%s\"." +msgid "Could not calculate replay gain for \"%(filename)s\"." msgstr "" -#: contrib/plugins/replaygain/__init__.py:76 +#: contrib/plugins/replaygain/__init__.py:85 msgid "Calculate album &gain..." msgstr "" -#: contrib/plugins/replaygain/__init__.py:103 -#: contrib/plugins/replaygain/__init__.py:111 +#: contrib/plugins/replaygain/__init__.py:113 +#: contrib/plugins/replaygain/__init__.py:124 #, python-format -msgid "Calculating album gain for \"%s\"..." +msgid "Calculating album gain for \"%(album)s\"..." msgstr "" -#: contrib/plugins/replaygain/__init__.py:119 +#: contrib/plugins/replaygain/__init__.py:135 #, python-format -msgid "Album gain for \"%s\" successfully calculated." +msgid "Album gain for \"%(album)s\" successfully calculated." msgstr "" -#: contrib/plugins/replaygain/__init__.py:121 +#: contrib/plugins/replaygain/__init__.py:140 #, python-format -msgid "Could not calculate album gain for \"%s\"." +msgid "Could not calculate album gain for \"%(album)s\"." msgstr "" -#: picard/acoustid.py:102 -#, python-format -msgid "AcoustID lookup network error for '%s'!" +#: contrib/plugins/replaygain/ui_options_replaygain.py:59 +msgid "Replay Gain" msgstr "" -#: picard/acoustid.py:117 -#, python-format -msgid "AcoustID lookup failed for '%s'!" +#: contrib/plugins/replaygain/ui_options_replaygain.py:60 +msgid "Path to VorbisGain:" msgstr "" -#: picard/acoustid.py:128 -#, python-format -msgid "Acoustid lookup returned no result for file '%s'" +#: contrib/plugins/replaygain/ui_options_replaygain.py:61 +msgid "Path to MP3Gain:" msgstr "" -#: picard/acoustid.py:132 -#, python-format -msgid "Looking up the fingerprint for file %s..." -msgstr "Buscando a pegada dixital para o ficheiro %s..." - -#: picard/acoustidmanager.py:78 -msgid "Submitting AcoustIDs..." +#: contrib/plugins/replaygain/ui_options_replaygain.py:62 +msgid "Path to metaflac:" msgstr "" -#: picard/acoustidmanager.py:83 -#, python-format -msgid "AcoustID submission failed with error '%s'" +#: contrib/plugins/replaygain/ui_options_replaygain.py:63 +msgid "Path to wvgain:" msgstr "" -#: picard/acoustidmanager.py:85 +#: contrib/plugins/viewvariables/__init__.py:42 +#, python-format +msgid "File: %s" +msgstr "" + +#: contrib/plugins/viewvariables/__init__.py:47 +#, python-format +msgid "Track: %s %s " +msgstr "" + +#: contrib/plugins/viewvariables/__init__.py:49 +msgid "Variables" +msgstr "" + +#: contrib/plugins/viewvariables/__init__.py:69 +msgid "File variables" +msgstr "" + +#: contrib/plugins/viewvariables/__init__.py:74 +msgid "Hidden variables" +msgstr "" + +#: contrib/plugins/viewvariables/__init__.py:79 +msgid "Tag variables" +msgstr "" + +#: contrib/plugins/viewvariables/ui_variables_dialog.py:73 +msgid "Variable" +msgstr "" + +#: contrib/plugins/viewvariables/ui_variables_dialog.py:75 +msgid "Value" +msgstr "" + +#: picard/acoustid.py:109 +#, python-format +msgid "AcoustID lookup network error for '%(filename)s'!" +msgstr "" + +#: picard/acoustid.py:133 +#, python-format +msgid "AcoustID lookup failed for '%(filename)s'!" +msgstr "" + +#: picard/acoustid.py:155 +#, python-format +msgid "AcoustID lookup returned no result for file '%(filename)s'" +msgstr "" + +#: picard/acoustid.py:166 +#, python-format +msgid "Looking up the fingerprint for file '%(filename)s' ..." +msgstr "" + +#: picard/acoustidmanager.py:80 +msgid "Submitting AcoustIDs ..." +msgstr "" + +#: picard/acoustidmanager.py:94 +#, python-format +msgid "AcoustID submission failed with error '%(error)s'" +msgstr "" + +#: picard/acoustidmanager.py:102 msgid "AcoustIDs successfully submitted." msgstr "" -#: picard/album.py:64 picard/cluster.py:234 +#: picard/album.py:65 picard/cluster.py:255 msgid "Unmatched Files" msgstr "Ficheiros sen coincidencias" -#: picard/album.py:187 +#: picard/album.py:188 #, python-format msgid "[could not load album %s]" msgstr "[non foi posíbel cargar o álbum %s]" -#: picard/album.py:272 +#: picard/album.py:277 #, python-format -msgid "Album %s loaded" +msgid "Album %(id)s loaded: %(artist)s - %(album)s" msgstr "" -#: picard/album.py:288 +#: picard/album.py:294 +#, python-format +msgid "Loading album %(id)s ..." +msgstr "" + +#: picard/album.py:303 msgid "[loading album information]" msgstr "[cargando a información do álbum]" -#: picard/album.py:463 +#: picard/album.py:478 #, python-format msgid "; %i image" msgid_plural "; %i images" msgstr[0] "" msgstr[1] "" -#: picard/cluster.py:150 picard/cluster.py:159 +#: picard/cluster.py:155 picard/cluster.py:168 #, python-format -msgid "No matching releases for cluster %s" -msgstr "Non hai ningún lanzamento coincidente para o clúster %s" - -#: picard/cluster.py:161 -#, python-format -msgid "Cluster %s identified!" -msgstr "Identificouse o clúster %s!" - -#: picard/cluster.py:168 -#, python-format -msgid "Looking up the metadata for cluster %s..." -msgstr "Buscando os metadatos para o clúster %s..." - -#: picard/collection.py:60 -#, python-format -msgid "Added %i release to collection \"%s\"" -msgid_plural "Added %i releases to collection \"%s\"" -msgstr[0] "" -msgstr[1] "" - -#: picard/collection.py:72 -#, python-format -msgid "Removed %i release from collection \"%s\"" -msgid_plural "Removed %i releases from collection \"%s\"" -msgstr[0] "" -msgstr[1] "" - -#: picard/collection.py:81 -#, python-format -msgid "Error loading collections: %s" +msgid "No matching releases for cluster %(album)s" msgstr "" -#: picard/config_upgrade.py:57 picard/config_upgrade.py:70 +#: picard/cluster.py:174 +#, python-format +msgid "Cluster %(album)s identified!" +msgstr "" + +#: picard/cluster.py:185 +#, python-format +msgid "Looking up the metadata for cluster %(album)s..." +msgstr "" + +#: picard/collection.py:64 +#, python-format +msgid "Added %(count)i release to collection \"%(name)s\"" +msgid_plural "Added %(count)i releases to collection \"%(name)s\"" +msgstr[0] "" +msgstr[1] "" + +#: picard/collection.py:86 +#, python-format +msgid "Removed %(count)i release from collection \"%(name)s\"" +msgid_plural "Removed %(count)i releases from collection \"%(name)s\"" +msgstr[0] "" +msgstr[1] "" + +#: picard/collection.py:100 +#, python-format +msgid "Error loading collections: %(error)s" +msgstr "" + +#: picard/config_upgrade.py:58 picard/config_upgrade.py:71 msgid "Various Artists file naming scheme removal" msgstr "" -#: picard/config_upgrade.py:58 +#: picard/config_upgrade.py:59 msgid "" "The separate file naming scheme for various artists albums has been removed in this version of Picard.\n" "Your file naming scheme has automatically been merged with that of single artist albums." msgstr "" -#: picard/config_upgrade.py:71 +#: picard/config_upgrade.py:72 msgid "" "The separate file naming scheme for various artists albums has been removed in this version of Picard.\n" "You currently do not use this option, but have a separate file naming scheme defined.\n" "Do you want to remove it or merge it with your file naming scheme for single artist albums?" msgstr "" -#: picard/config_upgrade.py:77 +#: picard/config_upgrade.py:78 msgid "Merge" msgstr "" -#: picard/config_upgrade.py:77 picard/ui/metadatabox.py:254 +#: picard/config_upgrade.py:78 picard/ui/metadatabox.py:254 msgid "Remove" msgstr "" -#: picard/const.py:67 -msgid "CD" -msgstr "CD" - -#: picard/const.py:68 -msgid "CD-R" -msgstr "" - -#: picard/const.py:69 -msgid "HDCD" -msgstr "" - -#: picard/const.py:70 -msgid "8cm CD" -msgstr "" - -#: picard/const.py:71 -msgid "Vinyl" -msgstr "Vinilo" - -#: picard/const.py:72 -msgid "7\" Vinyl" -msgstr "" - -#: picard/const.py:73 -msgid "10\" Vinyl" -msgstr "" - -#: picard/const.py:74 -msgid "12\" Vinyl" -msgstr "" - -#: picard/const.py:75 -msgid "Digital Media" -msgstr "Medios Dixitais" - -#: picard/const.py:76 -msgid "USB Flash Drive" -msgstr "" - -#: picard/const.py:77 -msgid "slotMusic" -msgstr "" - -#: picard/const.py:78 -msgid "Cassette" -msgstr "Casete" - -#: picard/const.py:79 -msgid "DVD" -msgstr "DVD" - -#: picard/const.py:80 -msgid "DVD-Audio" -msgstr "" - -#: picard/const.py:81 -msgid "DVD-Video" -msgstr "" - -#: picard/const.py:82 -msgid "SACD" -msgstr "Super Audio CD" - -#: picard/const.py:83 -msgid "DualDisc" -msgstr "" - -#: picard/const.py:84 -msgid "MiniDisc" -msgstr "MiniDisc" - -#: picard/const.py:85 -msgid "Blu-ray" -msgstr "" - -#: picard/const.py:86 -msgid "HD-DVD" -msgstr "" - -#: picard/const.py:87 -msgid "Videotape" -msgstr "" - -#: picard/const.py:88 -msgid "VHS" -msgstr "" - -#: picard/const.py:89 -msgid "Betamax" -msgstr "" - #: picard/const.py:90 -msgid "VCD" -msgstr "" - -#: picard/const.py:91 -msgid "SVCD" -msgstr "" - -#: picard/const.py:92 -msgid "UMD" -msgstr "" - -#: picard/const.py:93 picard/coverartarchive.py:33 -#: picard/ui/ui_options_releases.py:226 -msgid "Other" -msgstr "Outro" - -#: picard/const.py:94 -msgid "LaserDisc" -msgstr "LaserDisc" - -#: picard/const.py:95 -msgid "Cartridge" -msgstr "" - -#: picard/const.py:96 -msgid "Reel-to-reel" -msgstr "" - -#: picard/const.py:97 -msgid "DAT" -msgstr "DAT" - -#: picard/const.py:98 -msgid "Wax Cylinder" -msgstr "Cilindro de cera" - -#: picard/const.py:99 -msgid "Piano Roll" -msgstr "Rolo para piano" - -#: picard/const.py:100 -msgid "DCC" -msgstr "" - -#: picard/const.py:115 msgid "Danish" msgstr "" -#: picard/const.py:116 +#: picard/const.py:91 msgid "German" msgstr "Alemán" -#: picard/const.py:118 +#: picard/const.py:93 msgid "English" msgstr "Inglés" -#: picard/const.py:119 +#: picard/const.py:94 msgid "English (Canada)" msgstr "Inglés (Canadá)" -#: picard/const.py:120 +#: picard/const.py:95 msgid "English (UK)" msgstr "Inglés (Reino Unido)" -#: picard/const.py:122 +#: picard/const.py:97 msgid "Spanish" msgstr "Español" -#: picard/const.py:123 +#: picard/const.py:98 msgid "Estonian" msgstr "Estoniano" -#: picard/const.py:125 +#: picard/const.py:100 msgid "Finnish" msgstr "Finés" -#: picard/const.py:127 +#: picard/const.py:102 msgid "French" msgstr "Francés" -#: picard/const.py:136 +#: picard/const.py:111 msgid "Italian" msgstr "Italiano" -#: picard/const.py:143 +#: picard/const.py:118 msgid "Dutch" msgstr "Neerlandés" -#: picard/const.py:145 +#: picard/const.py:120 msgid "Polish" msgstr "Polaco" -#: picard/const.py:147 +#: picard/const.py:122 msgid "Brazilian Portuguese" msgstr "Portugués do Brasil" -#: picard/const.py:154 +#: picard/const.py:129 msgid "Swedish" msgstr "Sueco" -#: picard/coverart.py:84 +#: picard/coverart.py:85 #, python-format -msgid "Coverart %s downloaded" +msgid "Cover art of type '%(type)s' downloaded for %(albumid)s from %(host)s" msgstr "" -#: picard/coverart.py:240 +#: picard/coverart.py:256 #, python-format -msgid "Downloading http://%s:%i%s" -msgstr "" - -#: picard/coverartarchive.py:24 -msgid "Front" -msgstr "" - -#: picard/coverartarchive.py:25 -msgid "Back" -msgstr "" - -#: picard/coverartarchive.py:26 -msgid "Booklet" -msgstr "" - -#: picard/coverartarchive.py:27 -msgid "Medium" -msgstr "" - -#: picard/coverartarchive.py:28 -msgid "Tray" -msgstr "" - -#: picard/coverartarchive.py:29 -msgid "Obi" +msgid "" +"Downloading cover art of type '%(type)s' for %(albumid)s from %(host)s .." msgstr "" #: picard/coverartarchive.py:30 -msgid "Spine" -msgstr "" - -#: picard/coverartarchive.py:31 picard/ui/mainwindow.py:546 -msgid "Track" -msgstr "Pista" - -#: picard/coverartarchive.py:32 -msgid "Sticker" -msgstr "" - -#: picard/coverartarchive.py:34 msgid "Unknown" msgstr "" -#: picard/file.py:536 +#: picard/file.py:494 #, python-format -msgid "No matching tracks for file %s" -msgstr "Non hai pistas que coincidan para o ficheiro %s" +msgid "No matching tracks for file '%(filename)s'" +msgstr "" -#: picard/file.py:548 +#: picard/file.py:510 #, python-format -msgid "No matching tracks above the threshold for file %s" -msgstr "Non hai pistas que coincidan por enriba do limiar para o ficheiro %s" +msgid "No matching tracks above the threshold for file '%(filename)s'" +msgstr "" -#: picard/file.py:551 +#: picard/file.py:517 #, python-format -msgid "File %s identified!" -msgstr "Identificouse o ficheiro %s!" +msgid "File '%(filename)s' identified!" +msgstr "" -#: picard/file.py:567 +#: picard/file.py:537 #, python-format -msgid "Looking up the metadata for file %s..." -msgstr "Buscando os metadatos para o ficheiro %s..." +msgid "Looking up the metadata for file %(filename)s ..." +msgstr "" #: picard/releasegroup.py:53 msgid "Tracks" @@ -518,11 +401,11 @@ msgstr "" msgid "Year" msgstr "" -#: picard/releasegroup.py:55 picard/ui/cdlookup.py:34 +#: picard/releasegroup.py:55 picard/ui/cdlookup.py:35 msgid "Country" msgstr "" -#: picard/releasegroup.py:56 picard/util/tags.py:81 +#: picard/releasegroup.py:56 msgid "Format" msgstr "Formato" @@ -542,16 +425,23 @@ msgstr "" msgid "[no release info]" msgstr "" -#: picard/tagger.py:316 +#: picard/tagger.py:370 #, python-format -msgid "Loading directory %s" +msgid "Adding %(count)d file from '%(directory)s' ..." +msgid_plural "Adding %(count)d files from '%(directory)s' ..." +msgstr[0] "" +msgstr[1] "" + +#: picard/tagger.py:512 +#, python-format +msgid "Removing album %(id)s: %(artist)s - %(album)s" msgstr "" -#: picard/tagger.py:452 +#: picard/tagger.py:528 msgid "CD Lookup Error" msgstr "Produciuse un erro na busca do CD" -#: picard/tagger.py:453 +#: picard/tagger.py:529 #, python-format msgid "" "Error while reading CD:\n" @@ -559,44 +449,43 @@ msgid "" "%s" msgstr "Produciuse un erro lendo o CD\n\n%s" -#: picard/ui/cdlookup.py:34 picard/ui/mainwindow.py:544 -#: picard/ui/ui_options_releases.py:216 picard/util/tags.py:21 +#: picard/ui/cdlookup.py:35 picard/ui/mainwindow.py:597 picard/util/tags.py:21 msgid "Album" msgstr "Álbum" -#: picard/ui/cdlookup.py:34 picard/ui/itemviews.py:96 -#: picard/ui/mainwindow.py:545 picard/util/tags.py:22 +#: picard/ui/cdlookup.py:35 picard/ui/itemviews.py:96 +#: picard/ui/mainwindow.py:598 picard/util/tags.py:22 msgid "Artist" msgstr "Artista" -#: picard/ui/cdlookup.py:34 picard/util/tags.py:24 +#: picard/ui/cdlookup.py:35 picard/util/tags.py:24 msgid "Date" msgstr "Data" -#: picard/ui/cdlookup.py:35 +#: picard/ui/cdlookup.py:36 msgid "Labels" msgstr "" -#: picard/ui/cdlookup.py:35 +#: picard/ui/cdlookup.py:36 msgid "Catalog #s" msgstr "" -#: picard/ui/cdlookup.py:35 picard/util/tags.py:79 +#: picard/ui/cdlookup.py:36 picard/util/tags.py:78 msgid "Barcode" msgstr "Código de barras" -#: picard/ui/collectionmenu.py:31 +#: picard/ui/collectionmenu.py:42 msgid "Refresh List" msgstr "" -#: picard/ui/collectionmenu.py:92 +#: picard/ui/collectionmenu.py:86 #, python-format msgid "%s (%i release)" msgid_plural "%s (%i releases)" msgstr[0] "" msgstr[1] "" -#: picard/ui/coverartbox.py:142 +#: picard/ui/coverartbox.py:141 msgid "View release on MusicBrainz" msgstr "" @@ -612,59 +501,59 @@ msgstr "Amosar fic&heiros ocultos" msgid "&Set as starting directory" msgstr "" -#: picard/ui/infodialog.py:36 picard/ui/infodialog.py:75 +#: picard/ui/infodialog.py:37 picard/ui/infodialog.py:80 msgid "Info" msgstr "" -#: picard/ui/infodialog.py:80 +#: picard/ui/infodialog.py:85 msgid "Filename:" msgstr "Nome do ficheiro:" -#: picard/ui/infodialog.py:82 +#: picard/ui/infodialog.py:87 msgid "Format:" msgstr "Formato:" -#: picard/ui/infodialog.py:86 +#: picard/ui/infodialog.py:91 msgid "Size:" msgstr "Tamaño:" -#: picard/ui/infodialog.py:90 +#: picard/ui/infodialog.py:95 msgid "Length:" msgstr "Duración:" -#: picard/ui/infodialog.py:92 +#: picard/ui/infodialog.py:97 msgid "Bitrate:" msgstr "Taxa de bits:" -#: picard/ui/infodialog.py:94 +#: picard/ui/infodialog.py:99 msgid "Sample rate:" msgstr "Taxa de mostra:" -#: picard/ui/infodialog.py:96 +#: picard/ui/infodialog.py:101 msgid "Bits per sample:" msgstr "Bits por mostra:" -#: picard/ui/infodialog.py:100 +#: picard/ui/infodialog.py:105 msgid "Mono" msgstr "Mono" -#: picard/ui/infodialog.py:102 +#: picard/ui/infodialog.py:107 msgid "Stereo" msgstr "Estéreo" -#: picard/ui/infodialog.py:105 +#: picard/ui/infodialog.py:110 msgid "Channels:" msgstr "Canles:" -#: picard/ui/infodialog.py:116 +#: picard/ui/infodialog.py:121 msgid "Album Info" msgstr "" -#: picard/ui/infodialog.py:124 +#: picard/ui/infodialog.py:129 msgid "&Errors" msgstr "" -#: picard/ui/infodialog.py:134 picard/ui/ui_infodialog.py:77 +#: picard/ui/infodialog.py:139 picard/ui/ui_infodialog.py:73 msgid "&Info" msgstr "&Información" @@ -688,7 +577,7 @@ msgstr "" msgid "Title" msgstr "Título" -#: picard/ui/itemviews.py:95 picard/util/tags.py:88 +#: picard/ui/itemviews.py:95 picard/util/tags.py:86 msgid "Length" msgstr "Duración" @@ -713,8 +602,8 @@ msgid "Collections" msgstr "" #: picard/ui/itemviews.py:365 -msgid "&Plugins" -msgstr "&Plugins" +msgid "P&lugins" +msgstr "" #: picard/ui/itemviews.py:541 msgid "file view" @@ -736,12 +625,16 @@ msgstr "" msgid "Contains albums and matched files" msgstr "" -#: picard/ui/logview.py:91 +#: picard/ui/logview.py:109 msgid "Log" msgstr "Rexistro" -#: picard/ui/logview.py:99 -msgid "Status History" +#: picard/ui/logview.py:113 +msgid "Debug mode" +msgstr "" + +#: picard/ui/logview.py:134 +msgid "Activity History" msgstr "" #: picard/ui/mainwindow.py:74 @@ -775,276 +668,309 @@ msgstr "" #: picard/ui/mainwindow.py:220 msgid "" -"Picard listens on a port to integrate with your browser and downloads " -"release information when you click the \"Tagger\" buttons on the MusicBrainz" -" website" +"Picard listens on this port to integrate with your browser. When you " +"\"Search\" or \"Open in Browser\" from Picard, clicking the \"Tagger\" " +"button on the web page loads the release into Picard." msgstr "" -#: picard/ui/mainwindow.py:240 +#: picard/ui/mainwindow.py:243 #, python-format msgid " Listening on port %(port)d " msgstr "" -#: picard/ui/mainwindow.py:263 +#: picard/ui/mainwindow.py:299 msgid "Submission Error" msgstr "" -#: picard/ui/mainwindow.py:264 +#: picard/ui/mainwindow.py:300 msgid "" "You need to configure your AcoustID API key before you can submit " "fingerprints." msgstr "" -#: picard/ui/mainwindow.py:269 +#: picard/ui/mainwindow.py:305 msgid "&Options..." msgstr "&Opcións..." -#: picard/ui/mainwindow.py:273 +#: picard/ui/mainwindow.py:309 msgid "&Cut" msgstr "&Cortar" -#: picard/ui/mainwindow.py:278 +#: picard/ui/mainwindow.py:314 msgid "&Paste" msgstr "&Pegar" -#: picard/ui/mainwindow.py:283 +#: picard/ui/mainwindow.py:319 msgid "&Help..." msgstr "A&xuda" -#: picard/ui/mainwindow.py:288 +#: picard/ui/mainwindow.py:323 msgid "&About..." msgstr "&Acerca de..." -#: picard/ui/mainwindow.py:292 +#: picard/ui/mainwindow.py:327 msgid "&Donate..." msgstr "&Doar..." -#: picard/ui/mainwindow.py:295 +#: picard/ui/mainwindow.py:330 msgid "&Report a Bug..." msgstr "Info&rmar dun erro" -#: picard/ui/mainwindow.py:298 +#: picard/ui/mainwindow.py:333 msgid "&Support Forum..." msgstr "Foro de a&sistencia..." -#: picard/ui/mainwindow.py:301 +#: picard/ui/mainwindow.py:336 msgid "&Add Files..." msgstr "Eng&adir ficheiros..." -#: picard/ui/mainwindow.py:302 +#: picard/ui/mainwindow.py:337 msgid "Add files to the tagger" msgstr "Engadir ficheiros ao etiquetador" -#: picard/ui/mainwindow.py:307 +#: picard/ui/mainwindow.py:342 msgid "A&dd Folder..." msgstr "Enga&dir un cartafol..." -#: picard/ui/mainwindow.py:308 +#: picard/ui/mainwindow.py:343 msgid "Add a folder to the tagger" msgstr "Engadir un cartafol ao etiquetador" -#: picard/ui/mainwindow.py:310 +#: picard/ui/mainwindow.py:345 msgid "Ctrl+D" msgstr "Ctrl+D" -#: picard/ui/mainwindow.py:313 +#: picard/ui/mainwindow.py:348 msgid "&Save" msgstr "&Gardar" -#: picard/ui/mainwindow.py:314 +#: picard/ui/mainwindow.py:349 msgid "Save selected files" msgstr "Gardar os ficheiros seleccionados" -#: picard/ui/mainwindow.py:320 +#: picard/ui/mainwindow.py:355 msgid "S&ubmit" msgstr "" -#: picard/ui/mainwindow.py:321 -msgid "Submit fingerprints" +#: picard/ui/mainwindow.py:356 +msgid "Submit acoustic fingerprints" msgstr "" -#: picard/ui/mainwindow.py:325 +#: picard/ui/mainwindow.py:360 msgid "E&xit" msgstr "&Saír" -#: picard/ui/mainwindow.py:328 +#: picard/ui/mainwindow.py:363 msgid "Ctrl+Q" msgstr "Ctrl+Q" -#: picard/ui/mainwindow.py:331 +#: picard/ui/mainwindow.py:366 msgid "&Remove" msgstr "Borra&r" -#: picard/ui/mainwindow.py:332 +#: picard/ui/mainwindow.py:367 msgid "Remove selected files/albums" msgstr "Borrar os ficheiros ou álbums seleccionados" -#: picard/ui/mainwindow.py:336 +#: picard/ui/mainwindow.py:371 msgid "Lookup in &Browser" msgstr "" -#: picard/ui/mainwindow.py:337 +#: picard/ui/mainwindow.py:372 msgid "Lookup selected item on MusicBrainz website" msgstr "" -#: picard/ui/mainwindow.py:341 +#: picard/ui/mainwindow.py:376 msgid "File &Browser" msgstr "&Navegador de ficheiros" -#: picard/ui/mainwindow.py:345 +#: picard/ui/mainwindow.py:380 msgid "Ctrl+B" msgstr "Ctrl+B" -#: picard/ui/mainwindow.py:348 +#: picard/ui/mainwindow.py:383 msgid "&Cover Art" msgstr "&Imaxe da portada" -#: picard/ui/mainwindow.py:354 picard/ui/mainwindow.py:539 +#: picard/ui/mainwindow.py:389 picard/ui/mainwindow.py:591 msgid "Search" msgstr "Buscar" -#: picard/ui/mainwindow.py:357 -msgid "&CD Lookup..." -msgstr "Buscar &CD..." +#: picard/ui/mainwindow.py:392 +msgid "Lookup &CD..." +msgstr "" -#: picard/ui/mainwindow.py:358 picard/ui/mainwindow.py:359 -msgid "Lookup CD" -msgstr "Buscar CD" +#: picard/ui/mainwindow.py:393 +msgid "Lookup the details of the CD in your drive" +msgstr "" -#: picard/ui/mainwindow.py:361 +#: picard/ui/mainwindow.py:395 msgid "Ctrl+K" msgstr "Ctrl+K" -#: picard/ui/mainwindow.py:364 +#: picard/ui/mainwindow.py:398 msgid "&Scan" msgstr "&Examinar" -#: picard/ui/mainwindow.py:367 +#: picard/ui/mainwindow.py:401 msgid "Ctrl+Y" msgstr "Ctrl+Y" -#: picard/ui/mainwindow.py:370 +#: picard/ui/mainwindow.py:404 msgid "Cl&uster" msgstr "Cl&uster" -#: picard/ui/mainwindow.py:373 +#: picard/ui/mainwindow.py:407 msgid "Ctrl+U" msgstr "Ctrl+U" -#: picard/ui/mainwindow.py:376 +#: picard/ui/mainwindow.py:410 msgid "&Lookup" msgstr "&Buscar" -#: picard/ui/mainwindow.py:377 picard/ui/mainwindow.py:378 -msgid "Lookup metadata" -msgstr "Buscar metadatos" +#: picard/ui/mainwindow.py:411 +msgid "Lookup selected items in MusicBrainz" +msgstr "" -#: picard/ui/mainwindow.py:381 +#: picard/ui/mainwindow.py:416 msgid "Ctrl+L" msgstr "Ctrl+B" -#: picard/ui/mainwindow.py:384 +#: picard/ui/mainwindow.py:419 msgid "&Info..." msgstr "" -#: picard/ui/mainwindow.py:387 +#: picard/ui/mainwindow.py:422 msgid "Ctrl+I" msgstr "" -#: picard/ui/mainwindow.py:390 +#: picard/ui/mainwindow.py:425 msgid "&Refresh" msgstr "Actualiza&r" -#: picard/ui/mainwindow.py:391 +#: picard/ui/mainwindow.py:426 msgid "Ctrl+R" msgstr "" -#: picard/ui/mainwindow.py:394 +#: picard/ui/mainwindow.py:429 msgid "&Rename Files" msgstr "&Renomear ficheiros" -#: picard/ui/mainwindow.py:399 +#: picard/ui/mainwindow.py:434 msgid "&Move Files" msgstr "&Mover ficheiros" -#: picard/ui/mainwindow.py:404 +#: picard/ui/mainwindow.py:439 msgid "Save &Tags" msgstr "Gardar e&tiquetas" -#: picard/ui/mainwindow.py:409 +#: picard/ui/mainwindow.py:444 msgid "Tags From &File Names..." msgstr "Etiquetas a partir de nomes de &ficheiro" -#: picard/ui/mainwindow.py:412 -msgid "View &Log..." -msgstr "Ver o r&existro" - -#: picard/ui/mainwindow.py:415 -msgid "View Status &History..." +#: picard/ui/mainwindow.py:447 +msgid "&Open My Collections in Browser" msgstr "" -#: picard/ui/mainwindow.py:422 -msgid "&Open..." +#: picard/ui/mainwindow.py:451 +msgid "View Error/Debug &Log" msgstr "" -#: picard/ui/mainwindow.py:423 -msgid "Open the file" +#: picard/ui/mainwindow.py:454 +msgid "View Activity &History" msgstr "" -#: picard/ui/mainwindow.py:426 -msgid "Open &Folder..." +#: picard/ui/mainwindow.py:461 +msgid "&Play file" msgstr "" -#: picard/ui/mainwindow.py:427 -msgid "Open the containing folder" +#: picard/ui/mainwindow.py:462 +msgid "Play the file in your default media player" msgstr "" -#: picard/ui/mainwindow.py:448 +#: picard/ui/mainwindow.py:466 +msgid "Open Containing &Folder" +msgstr "" + +#: picard/ui/mainwindow.py:467 +msgid "Open the containing folder in your file explorer" +msgstr "" + +#: picard/ui/mainwindow.py:492 msgid "&File" msgstr "&Ficheiro" -#: picard/ui/mainwindow.py:456 +#: picard/ui/mainwindow.py:503 msgid "&Edit" msgstr "&Editar" -#: picard/ui/mainwindow.py:462 +#: picard/ui/mainwindow.py:509 msgid "&View" msgstr "&Ver" -#: picard/ui/mainwindow.py:470 +#: picard/ui/mainwindow.py:515 msgid "&Options" msgstr "&Opcións" -#: picard/ui/mainwindow.py:476 +#: picard/ui/mainwindow.py:521 msgid "&Tools" msgstr "Ferramen&tas" -#: picard/ui/mainwindow.py:485 picard/ui/util.py:35 +#: picard/ui/mainwindow.py:532 picard/ui/util.py:35 msgid "&Help" msgstr "&Axuda" -#: picard/ui/mainwindow.py:505 +#: picard/ui/mainwindow.py:553 msgid "Actions" msgstr "" -#: picard/ui/mainwindow.py:608 +#: picard/ui/mainwindow.py:599 +msgid "Track" +msgstr "Pista" + +#: picard/ui/mainwindow.py:662 msgid "All Supported Formats" msgstr "Todos os formatos compatíbeis" -#: picard/ui/mainwindow.py:705 +#: picard/ui/mainwindow.py:695 +#, python-format +msgid "Adding directory: '%(directory)s' ..." +msgstr "" + +#: picard/ui/mainwindow.py:702 +#, python-format +msgid "Adding multiple directories from '%(directory)s' ..." +msgstr "" + +#: picard/ui/mainwindow.py:767 msgid "Configuration Required" msgstr "" -#: picard/ui/mainwindow.py:706 +#: picard/ui/mainwindow.py:768 msgid "" "Audio fingerprinting is not yet configured. Would you like to configure it " "now?" msgstr "" -#: picard/ui/mainwindow.py:784 picard/ui/mainwindow.py:791 +#: picard/ui/mainwindow.py:848 #, python-format -msgid " (Error: %s)" -msgstr " (Erro: %s)" +msgid "%(filename)s (error: %(error)s)" +msgstr "" + +#: picard/ui/mainwindow.py:854 +#, python-format +msgid "%(filename)s" +msgstr "" + +#: picard/ui/mainwindow.py:864 +#, python-format +msgid "%(filename)s (%(similarity)d%%) (error: %(error)s)" +msgstr "" + +#: picard/ui/mainwindow.py:871 +#, python-format +msgid "%(filename)s (%(similarity)d%%)" +msgstr "" #: picard/ui/metadatabox.py:82 #, python-format @@ -1098,387 +1024,387 @@ msgid_plural "Use Original Values" msgstr[0] "" msgstr[1] "" -#: picard/ui/passworddialog.py:37 +#: picard/ui/passworddialog.py:40 #, python-format msgid "" "The server %s requires you to login. Please enter your username and " "password." msgstr "O servidor %s require inicio de sesión. Introduza o seu nome de usuario e contrasinal" -#: picard/ui/passworddialog.py:75 +#: picard/ui/passworddialog.py:79 #, python-format msgid "" "The proxy %s requires you to login. Please enter your username and password." msgstr "" -#: picard/ui/tagsfromfilenames.py:55 picard/ui/tagsfromfilenames.py:100 +#: picard/ui/tagsfromfilenames.py:56 picard/ui/tagsfromfilenames.py:101 msgid "File Name" msgstr "Nome do ficheiro" -#: picard/ui/ui_cdlookup.py:66 picard/ui/ui_options_cdlookup.py:55 -#: picard/ui/ui_options_cdlookup_select.py:62 picard/ui/options/cdlookup.py:38 +#: picard/ui/ui_cdlookup.py:53 picard/ui/ui_options_cdlookup.py:42 +#: picard/ui/ui_options_cdlookup_select.py:49 picard/ui/options/cdlookup.py:38 msgid "CD Lookup" msgstr "Buscar CD" -#: picard/ui/ui_cdlookup.py:67 +#: picard/ui/ui_cdlookup.py:54 msgid "The following releases on MusicBrainz match the CD:" msgstr "Os seguintes lanzamentos en MusicBrainz coinciden co CD:" -#: picard/ui/ui_cdlookup.py:68 +#: picard/ui/ui_cdlookup.py:55 msgid "OK" msgstr "Aceptar" -#: picard/ui/ui_cdlookup.py:69 +#: picard/ui/ui_cdlookup.py:56 msgid "Lookup manually" msgstr "" -#: picard/ui/ui_cdlookup.py:70 +#: picard/ui/ui_cdlookup.py:57 msgid "Cancel" msgstr "Cancelar" -#: picard/ui/ui_edittagdialog.py:101 +#: picard/ui/ui_edittagdialog.py:88 msgid "Edit Tag" msgstr "" -#: picard/ui/ui_edittagdialog.py:102 +#: picard/ui/ui_edittagdialog.py:89 msgid "Edit value" msgstr "" -#: picard/ui/ui_edittagdialog.py:103 +#: picard/ui/ui_edittagdialog.py:90 msgid "Add value" msgstr "" -#: picard/ui/ui_edittagdialog.py:104 +#: picard/ui/ui_edittagdialog.py:91 msgid "Remove value" msgstr "" -#: picard/ui/ui_infodialog.py:78 +#: picard/ui/ui_infodialog.py:74 msgid "A&rtwork" msgstr "G&rafismo" -#: picard/ui/ui_infostatus.py:100 +#: picard/ui/ui_infostatus.py:96 msgid "Form" msgstr "" -#: picard/ui/ui_options.py:51 +#: picard/ui/ui_options.py:38 msgid "Options" msgstr "" -#: picard/ui/ui_options_advanced.py:46 +#: picard/ui/ui_options_advanced.py:42 msgid "Advanced options" msgstr "" -#: picard/ui/ui_options_advanced.py:47 +#: picard/ui/ui_options_advanced.py:43 msgid "Ignore file paths matching the following regular expression:" msgstr "" -#: picard/ui/ui_options_cdlookup.py:56 +#: picard/ui/ui_options_cdlookup.py:43 msgid "CD-ROM device to use for lookups:" msgstr "Dispositivo de CD-ROM a empregar para as buscas:" -#: picard/ui/ui_options_cdlookup_select.py:63 +#: picard/ui/ui_options_cdlookup_select.py:50 msgid "Default CD-ROM drive to use for lookups:" msgstr "Unidade de CD-ROM predeterminada a usar para as buscas:" -#: picard/ui/ui_options_cover.py:145 +#: picard/ui/ui_options_cover.py:131 msgid "Location" msgstr "Lugar" -#: picard/ui/ui_options_cover.py:146 +#: picard/ui/ui_options_cover.py:132 msgid "Embed cover images into tags" msgstr "Incorporar as imaxes de portada dentro das etiquetas" -#: picard/ui/ui_options_cover.py:147 +#: picard/ui/ui_options_cover.py:133 msgid "Only embed a front image" msgstr "" -#: picard/ui/ui_options_cover.py:148 +#: picard/ui/ui_options_cover.py:134 msgid "Save cover images as separate files" msgstr "Gardar as imaxes de portada como ficheiros separados" -#: picard/ui/ui_options_cover.py:149 +#: picard/ui/ui_options_cover.py:135 msgid "Use the following file name for images:" msgstr "" -#: picard/ui/ui_options_cover.py:150 +#: picard/ui/ui_options_cover.py:136 msgid "Overwrite the file if it already exists" msgstr "Sobreescribir o ficheiro se xa existe" -#: picard/ui/ui_options_cover.py:151 +#: picard/ui/ui_options_cover.py:137 msgid "Coverart Providers" msgstr "" -#: picard/ui/ui_options_cover.py:152 +#: picard/ui/ui_options_cover.py:138 msgid "Amazon" msgstr "" -#: picard/ui/ui_options_cover.py:153 picard/ui/ui_options_cover.py:155 +#: picard/ui/ui_options_cover.py:139 picard/ui/ui_options_cover.py:141 msgid "Cover Art Archive" msgstr "" -#: picard/ui/ui_options_cover.py:154 +#: picard/ui/ui_options_cover.py:140 msgid "Sites on the whitelist" msgstr "" -#: picard/ui/ui_options_cover.py:156 +#: picard/ui/ui_options_cover.py:142 msgid "Only use images of the following size:" msgstr "" -#: picard/ui/ui_options_cover.py:157 +#: picard/ui/ui_options_cover.py:143 msgid "250 px" msgstr "" -#: picard/ui/ui_options_cover.py:158 +#: picard/ui/ui_options_cover.py:144 msgid "500 px" msgstr "" -#: picard/ui/ui_options_cover.py:159 +#: picard/ui/ui_options_cover.py:145 msgid "Full size" msgstr "" -#: picard/ui/ui_options_cover.py:160 +#: picard/ui/ui_options_cover.py:146 msgid "Download only images of the following types:" msgstr "" -#: picard/ui/ui_options_cover.py:161 +#: picard/ui/ui_options_cover.py:147 msgid "Download only approved images" msgstr "" -#: picard/ui/ui_options_cover.py:162 +#: picard/ui/ui_options_cover.py:148 msgid "" "Use the first image type as the filename. This will not change the filename " "of front images." msgstr "" -#: picard/ui/ui_options_fingerprinting.py:83 +#: picard/ui/ui_options_fingerprinting.py:70 msgid "Audio Fingerprinting" msgstr "" -#: picard/ui/ui_options_fingerprinting.py:84 +#: picard/ui/ui_options_fingerprinting.py:71 msgid "Do not use audio fingerprinting" msgstr "" -#: picard/ui/ui_options_fingerprinting.py:85 +#: picard/ui/ui_options_fingerprinting.py:72 msgid "Use AcoustID" msgstr "" -#: picard/ui/ui_options_fingerprinting.py:86 +#: picard/ui/ui_options_fingerprinting.py:73 msgid "AcoustID Settings" msgstr "" -#: picard/ui/ui_options_fingerprinting.py:87 +#: picard/ui/ui_options_fingerprinting.py:74 msgid "Fingerprint calculator:" msgstr "" -#: picard/ui/ui_options_fingerprinting.py:88 -#: picard/ui/ui_options_interface.py:88 picard/ui/ui_options_renaming.py:138 +#: picard/ui/ui_options_fingerprinting.py:75 +#: picard/ui/ui_options_interface.py:75 picard/ui/ui_options_renaming.py:134 msgid "Browse..." msgstr "Navegar..." -#: picard/ui/ui_options_fingerprinting.py:89 +#: picard/ui/ui_options_fingerprinting.py:76 msgid "Download..." msgstr "" -#: picard/ui/ui_options_fingerprinting.py:90 +#: picard/ui/ui_options_fingerprinting.py:77 msgid "API key:" msgstr "" -#: picard/ui/ui_options_fingerprinting.py:91 +#: picard/ui/ui_options_fingerprinting.py:78 msgid "Get API key..." msgstr "" -#: picard/ui/ui_options_folksonomy.py:115 picard/ui/options/folksonomy.py:28 +#: picard/ui/ui_options_folksonomy.py:102 picard/ui/options/folksonomy.py:28 msgid "Folksonomy Tags" msgstr "Etiquetas colaborativas (Folcsonomía)" -#: picard/ui/ui_options_folksonomy.py:117 +#: picard/ui/ui_options_folksonomy.py:104 msgid "Only use my tags" msgstr "Usar só as miñas etiquetas" -#: picard/ui/ui_options_folksonomy.py:120 +#: picard/ui/ui_options_folksonomy.py:107 msgid "Maximum number of tags:" msgstr "Número máximo de etiquetas:" -#: picard/ui/ui_options_general.py:92 +#: picard/ui/ui_options_general.py:88 msgid "MusicBrainz Server" msgstr "Servidor MusicBrainz" -#: picard/ui/ui_options_general.py:93 picard/ui/ui_options_network.py:123 +#: picard/ui/ui_options_general.py:89 picard/ui/ui_options_network.py:110 msgid "Port:" msgstr "Porto:" -#: picard/ui/ui_options_general.py:94 picard/ui/ui_options_network.py:124 +#: picard/ui/ui_options_general.py:90 picard/ui/ui_options_network.py:111 msgid "Server address:" msgstr "Enderezo do servidor:" -#: picard/ui/ui_options_general.py:95 +#: picard/ui/ui_options_general.py:91 msgid "Account Information" msgstr "Información da conta" -#: picard/ui/ui_options_general.py:96 picard/ui/ui_options_network.py:121 -#: picard/ui/ui_passworddialog.py:74 +#: picard/ui/ui_options_general.py:92 picard/ui/ui_options_network.py:108 +#: picard/ui/ui_passworddialog.py:70 msgid "Password:" msgstr "Contrasinal:" -#: picard/ui/ui_options_general.py:97 picard/ui/ui_options_network.py:122 -#: picard/ui/ui_passworddialog.py:73 +#: picard/ui/ui_options_general.py:93 picard/ui/ui_options_network.py:109 +#: picard/ui/ui_passworddialog.py:69 msgid "Username:" msgstr "Nome de usuario:" -#: picard/ui/ui_options_general.py:98 picard/ui/options/general.py:31 +#: picard/ui/ui_options_general.py:94 picard/ui/options/general.py:31 msgid "General" msgstr "Xeral" -#: picard/ui/ui_options_general.py:99 +#: picard/ui/ui_options_general.py:95 msgid "Automatically scan all new files" msgstr "Examinar de xeito automático os ficheiros novos" -#: picard/ui/ui_options_general.py:100 +#: picard/ui/ui_options_general.py:96 msgid "Ignore MBIDs when loading new files" msgstr "" -#: picard/ui/ui_options_interface.py:82 +#: picard/ui/ui_options_interface.py:69 msgid "Miscellaneous" msgstr "Misceláneo" -#: picard/ui/ui_options_interface.py:83 +#: picard/ui/ui_options_interface.py:70 msgid "Show text labels under icons" msgstr "Mostrar etiquetas de texto baixo as iconas" -#: picard/ui/ui_options_interface.py:84 +#: picard/ui/ui_options_interface.py:71 msgid "Allow selection of multiple directories" msgstr "Permitir a selección de múltiples directorios" -#: picard/ui/ui_options_interface.py:85 +#: picard/ui/ui_options_interface.py:72 msgid "Use advanced query syntax" msgstr "Usar a sintaxe avanzada de consulta" -#: picard/ui/ui_options_interface.py:86 +#: picard/ui/ui_options_interface.py:73 msgid "Show a quit confirmation dialog for unsaved changes" msgstr "" -#: picard/ui/ui_options_interface.py:87 +#: picard/ui/ui_options_interface.py:74 msgid "Begin browsing in the following directory:" msgstr "" -#: picard/ui/ui_options_interface.py:89 +#: picard/ui/ui_options_interface.py:76 msgid "User interface language:" msgstr "Idioma da interface de usuario:" -#: picard/ui/ui_options_matching.py:86 +#: picard/ui/ui_options_matching.py:73 msgid "Thresholds" msgstr "Limiares" -#: picard/ui/ui_options_matching.py:87 +#: picard/ui/ui_options_matching.py:74 msgid "Minimal similarity for matching files to tracks:" msgstr "Similitude mínima para facer coincidir os ficheiros coas pistas:" -#: picard/ui/ui_options_matching.py:91 +#: picard/ui/ui_options_matching.py:78 msgid "Minimal similarity for file lookups:" msgstr "Similitude mínima para as buscas en ficheiros:" -#: picard/ui/ui_options_matching.py:92 +#: picard/ui/ui_options_matching.py:79 msgid "Minimal similarity for cluster lookups:" msgstr "Similitude mínima para as buscas en clústers:" -#: picard/ui/ui_options_metadata.py:114 picard/ui/options/metadata.py:29 +#: picard/ui/ui_options_metadata.py:101 picard/ui/options/metadata.py:29 msgid "Metadata" msgstr "Metadatos" -#: picard/ui/ui_options_metadata.py:115 +#: picard/ui/ui_options_metadata.py:102 msgid "Translate artist names to this locale where possible:" msgstr "" -#: picard/ui/ui_options_metadata.py:116 +#: picard/ui/ui_options_metadata.py:103 msgid "Use standardized artist names" msgstr "" -#: picard/ui/ui_options_metadata.py:117 +#: picard/ui/ui_options_metadata.py:104 msgid "Convert Unicode punctuation characters to ASCII" msgstr "" -#: picard/ui/ui_options_metadata.py:118 +#: picard/ui/ui_options_metadata.py:105 msgid "Use release relationships" msgstr "Usar relacións de lanzamento" -#: picard/ui/ui_options_metadata.py:119 +#: picard/ui/ui_options_metadata.py:106 msgid "Use track relationships" msgstr "Usar relacións entre pistas" -#: picard/ui/ui_options_metadata.py:120 +#: picard/ui/ui_options_metadata.py:107 msgid "Use folksonomy tags as genre" msgstr "Usar as etiquetas colaborativas (Folcsonomía) como xénero" -#: picard/ui/ui_options_metadata.py:121 +#: picard/ui/ui_options_metadata.py:108 msgid "Custom Fields" msgstr "Campos personalizados" -#: picard/ui/ui_options_metadata.py:122 +#: picard/ui/ui_options_metadata.py:109 msgid "Various artists:" msgstr "Varios artistas:" -#: picard/ui/ui_options_metadata.py:123 +#: picard/ui/ui_options_metadata.py:110 msgid "Non-album tracks:" msgstr "Pistas non pertencentes a un álbum:" -#: picard/ui/ui_options_metadata.py:124 picard/ui/ui_options_metadata.py:125 -#: picard/ui/ui_options_renaming.py:147 +#: picard/ui/ui_options_metadata.py:111 picard/ui/ui_options_metadata.py:112 +#: picard/ui/ui_options_renaming.py:143 msgid "Default" msgstr "Predeterminado" -#: picard/ui/ui_options_network.py:120 +#: picard/ui/ui_options_network.py:107 msgid "Web Proxy" msgstr "Proxy web" -#: picard/ui/ui_options_network.py:125 +#: picard/ui/ui_options_network.py:112 msgid "Browser Integration" msgstr "" -#: picard/ui/ui_options_network.py:126 +#: picard/ui/ui_options_network.py:113 msgid "Default listening port:" msgstr "" -#: picard/ui/ui_options_network.py:127 +#: picard/ui/ui_options_network.py:114 msgid "Listen only on localhost" msgstr "" -#: picard/ui/ui_options_plugins.py:131 picard/ui/options/plugins.py:38 +#: picard/ui/ui_options_plugins.py:127 picard/ui/options/plugins.py:38 msgid "Plugins" msgstr "Plugins" -#: picard/ui/ui_options_plugins.py:132 picard/ui/options/plugins.py:122 +#: picard/ui/ui_options_plugins.py:128 picard/ui/options/plugins.py:122 msgid "Name" msgstr "Nome" -#: picard/ui/ui_options_plugins.py:133 picard/util/tags.py:39 +#: picard/ui/ui_options_plugins.py:129 msgid "Version" msgstr "Versión" -#: picard/ui/ui_options_plugins.py:134 picard/ui/options/plugins.py:125 +#: picard/ui/ui_options_plugins.py:130 picard/ui/options/plugins.py:125 msgid "Author" msgstr "Autor" -#: picard/ui/ui_options_plugins.py:135 +#: picard/ui/ui_options_plugins.py:131 msgid "Install plugin..." msgstr "" -#: picard/ui/ui_options_plugins.py:136 +#: picard/ui/ui_options_plugins.py:132 msgid "Open plugin folder" msgstr "" -#: picard/ui/ui_options_plugins.py:137 +#: picard/ui/ui_options_plugins.py:133 msgid "Download plugins" msgstr "" -#: picard/ui/ui_options_plugins.py:138 +#: picard/ui/ui_options_plugins.py:134 msgid "Details" msgstr "Detalles" -#: picard/ui/ui_options_ratings.py:53 +#: picard/ui/ui_options_ratings.py:49 msgid "Enable track ratings" msgstr "Activar a puntuación de pistas" -#: picard/ui/ui_options_ratings.py:54 +#: picard/ui/ui_options_ratings.py:50 msgid "" "Picard saves the ratings together with an e-mail address identifying the " "user who did the rating. That way different ratings for different users can " @@ -1486,207 +1412,167 @@ msgid "" "your ratings." msgstr "Picard garda a puntuación xunto co enderezo de correo electrónico que identifica ao usuario que fixo a puntuación.Dese xeito, pódense gardar nos ficheiros diferentes puntuacións para diferentes usuarios. Especifique o correo electrónico que quere usar para gardar as súas puntuacións." -#: picard/ui/ui_options_ratings.py:55 +#: picard/ui/ui_options_ratings.py:51 msgid "E-mail:" msgstr "Correo electrónico:" -#: picard/ui/ui_options_ratings.py:56 +#: picard/ui/ui_options_ratings.py:52 msgid "Submit ratings to MusicBrainz" msgstr "Enviar puntuacións a MusicBrainz" -#: picard/ui/ui_options_releases.py:215 +#: picard/ui/ui_options_releases.py:104 msgid "Preferred release types" msgstr "" -#: picard/ui/ui_options_releases.py:217 -msgid "Single" -msgstr "" - -#: picard/ui/ui_options_releases.py:218 -msgid "EP" -msgstr "" - -#: picard/ui/ui_options_releases.py:219 -msgid "Compilation" -msgstr "Compilación" - -#: picard/ui/ui_options_releases.py:220 -msgid "Soundtrack" -msgstr "" - -#: picard/ui/ui_options_releases.py:221 -msgid "Spokenword" -msgstr "" - -#: picard/ui/ui_options_releases.py:222 -msgid "Interview" -msgstr "" - -#: picard/ui/ui_options_releases.py:223 -msgid "Audiobook" -msgstr "" - -#: picard/ui/ui_options_releases.py:224 -msgid "Live" -msgstr "" - -#: picard/ui/ui_options_releases.py:225 -msgid "Remix" -msgstr "" - -#: picard/ui/ui_options_releases.py:227 -msgid "Reset all" -msgstr "" - -#: picard/ui/ui_options_releases.py:228 +#: picard/ui/ui_options_releases.py:105 msgid "Preferred release countries" msgstr "" -#: picard/ui/ui_options_releases.py:229 picard/ui/ui_options_releases.py:232 +#: picard/ui/ui_options_releases.py:106 picard/ui/ui_options_releases.py:109 msgid ">" msgstr "" -#: picard/ui/ui_options_releases.py:230 picard/ui/ui_options_releases.py:233 +#: picard/ui/ui_options_releases.py:107 picard/ui/ui_options_releases.py:110 msgid "<" msgstr "" -#: picard/ui/ui_options_releases.py:231 +#: picard/ui/ui_options_releases.py:108 msgid "Preferred release formats" msgstr "" -#: picard/ui/ui_options_renaming.py:134 +#: picard/ui/ui_options_renaming.py:130 msgid "Rename files when saving" msgstr "Renomear os ficheiros ao gardar" -#: picard/ui/ui_options_renaming.py:135 +#: picard/ui/ui_options_renaming.py:131 msgid "Replace non-ASCII characters" msgstr "Substituír os caracteres non ASCII" -#: picard/ui/ui_options_renaming.py:136 +#: picard/ui/ui_options_renaming.py:132 msgid "Windows compatibility" msgstr "" -#: picard/ui/ui_options_renaming.py:137 +#: picard/ui/ui_options_renaming.py:133 msgid "Move files to this directory when saving:" msgstr "Mover os ficheiros a este directorio cando se garda:" -#: picard/ui/ui_options_renaming.py:139 +#: picard/ui/ui_options_renaming.py:135 msgid "Delete empty directories" msgstr "Borrar directorios baleiros" -#: picard/ui/ui_options_renaming.py:140 +#: picard/ui/ui_options_renaming.py:136 msgid "Move additional files:" msgstr "Mover ficheiros adicionais:" -#: picard/ui/ui_options_renaming.py:141 +#: picard/ui/ui_options_renaming.py:137 msgid "Name files like this" msgstr "Nomear os ficheiros coma este" -#: picard/ui/ui_options_renaming.py:148 +#: picard/ui/ui_options_renaming.py:144 msgid "Examples" msgstr "Exemplos" -#: picard/ui/ui_options_script.py:49 +#: picard/ui/ui_options_script.py:45 msgid "Tagger Script" msgstr "Script etiquetador" -#: picard/ui/ui_options_tags.py:165 +#: picard/ui/ui_options_tags.py:152 msgid "Write tags to files" msgstr "Escribir as etiquetas nos ficheiros" -#: picard/ui/ui_options_tags.py:166 +#: picard/ui/ui_options_tags.py:153 msgid "Preserve timestamps of tagged files" msgstr "" -#: picard/ui/ui_options_tags.py:167 +#: picard/ui/ui_options_tags.py:154 msgid "Before Tagging" msgstr "" -#: picard/ui/ui_options_tags.py:168 +#: picard/ui/ui_options_tags.py:155 msgid "Clear existing tags" msgstr "Limpar as etiquetas existentes" -#: picard/ui/ui_options_tags.py:169 +#: picard/ui/ui_options_tags.py:156 msgid "Remove ID3 tags from FLAC files" msgstr "Eliminar as etiquetas ID3 dos ficheiros FLAC" -#: picard/ui/ui_options_tags.py:170 +#: picard/ui/ui_options_tags.py:157 msgid "Remove APEv2 tags from MP3 files" msgstr "Eliminar as etiquetas APEv2 dos ficheiros MP3" -#: picard/ui/ui_options_tags.py:171 +#: picard/ui/ui_options_tags.py:158 msgid "" "Preserve these tags from being cleared or overwritten with MusicBrainz data:" msgstr "" -#: picard/ui/ui_options_tags.py:172 +#: picard/ui/ui_options_tags.py:159 msgid "Tags are separated by commas, and are case-sensitive." msgstr "" -#: picard/ui/ui_options_tags.py:173 +#: picard/ui/ui_options_tags.py:160 msgid "Tag Compatibility" msgstr "" -#: picard/ui/ui_options_tags.py:174 +#: picard/ui/ui_options_tags.py:161 msgid "ID3v2 Version" msgstr "" -#: picard/ui/ui_options_tags.py:175 +#: picard/ui/ui_options_tags.py:162 msgid "2.4" msgstr "2.4" -#: picard/ui/ui_options_tags.py:176 +#: picard/ui/ui_options_tags.py:163 msgid "2.3" msgstr "2.3" -#: picard/ui/ui_options_tags.py:177 +#: picard/ui/ui_options_tags.py:164 msgid "ID3v2 Text Encoding" msgstr "" -#: picard/ui/ui_options_tags.py:178 +#: picard/ui/ui_options_tags.py:165 msgid "UTF-8" msgstr "UTF-8" -#: picard/ui/ui_options_tags.py:179 +#: picard/ui/ui_options_tags.py:166 msgid "UTF-16" msgstr "UTF-16" -#: picard/ui/ui_options_tags.py:180 +#: picard/ui/ui_options_tags.py:167 msgid "ISO-8859-1" msgstr "ISO-8859-1" -#: picard/ui/ui_options_tags.py:181 +#: picard/ui/ui_options_tags.py:168 msgid "Join multiple ID3v2.3 tags with:" msgstr "" -#: picard/ui/ui_options_tags.py:182 +#: picard/ui/ui_options_tags.py:169 msgid "" "

Default is '/' to maintain compatibility with previous" " Picard releases.

New alternatives are ';_' or '_/_' or type your own." "

" msgstr "" -#: picard/ui/ui_options_tags.py:183 +#: picard/ui/ui_options_tags.py:170 msgid "Also include ID3v1 tags in the files" msgstr "Incluír tamén etiquetas ID3v1 nos ficheiros" -#: picard/ui/ui_passworddialog.py:72 +#: picard/ui/ui_passworddialog.py:68 msgid "Authentication required" msgstr "Autenticación requirida" -#: picard/ui/ui_passworddialog.py:75 +#: picard/ui/ui_passworddialog.py:71 msgid "Save username and password" msgstr "Gardar o nome de usuario e contrasinal" -#: picard/ui/ui_tagsfromfilenames.py:54 +#: picard/ui/ui_tagsfromfilenames.py:50 msgid "Convert File Names to Tags" msgstr "Convertir os nomes dos ficheiros en etiquetas" -#: picard/ui/ui_tagsfromfilenames.py:55 +#: picard/ui/ui_tagsfromfilenames.py:51 msgid "Replace underscores with spaces" msgstr "Substiruír os subliñados por espazos" -#: picard/ui/ui_tagsfromfilenames.py:56 +#: picard/ui/ui_tagsfromfilenames.py:52 msgid "&Preview" msgstr "&Previsualizar" @@ -1742,7 +1628,11 @@ msgstr "Avanzado" msgid "Regex Error" msgstr "" -#: picard/ui/options/cover.py:63 +#: picard/ui/options/cover.py:44 +msgid "title" +msgstr "" + +#: picard/ui/options/cover.py:68 msgid "Cover Art" msgstr "Imaxe da portada" @@ -1758,11 +1648,11 @@ msgstr "Interface de usuario" msgid "System default" msgstr "Predeterminado do sistema" -#: picard/ui/options/interface.py:96 +#: picard/ui/options/interface.py:98 msgid "Language changed" msgstr "Cambiouse o idioma" -#: picard/ui/options/interface.py:96 +#: picard/ui/options/interface.py:99 msgid "" "You have changed the interface language. You have to restart Picard in order" " for the change to take effect." @@ -1784,31 +1674,35 @@ msgstr "Ficheiro" msgid "Ratings" msgstr "Puntuacións" -#: picard/ui/options/releases.py:33 +#: picard/ui/options/releases.py:87 msgid "Preferred Releases" msgstr "" +#: picard/ui/options/releases.py:121 +msgid "Reset all" +msgstr "" + #: picard/ui/options/renaming.py:37 msgid "File Naming" msgstr "" -#: picard/ui/options/renaming.py:184 +#: picard/ui/options/renaming.py:187 msgid "Error" msgstr "Erro" -#: picard/ui/options/renaming.py:184 +#: picard/ui/options/renaming.py:187 msgid "The location to move files to must not be empty." msgstr "O lugar ao que mover os ficheiros non debe estar baleiro" -#: picard/ui/options/renaming.py:194 +#: picard/ui/options/renaming.py:197 msgid "The file naming format must not be empty." msgstr "O formato de nomeado de ficheiros non debe estar baleiro." -#: picard/ui/options/scripting.py:63 +#: picard/ui/options/scripting.py:99 msgid "Scripting" msgstr "Scripting" -#: picard/ui/options/scripting.py:95 +#: picard/ui/options/scripting.py:131 msgid "Script Error" msgstr "Produciuse un erro no script" @@ -1928,199 +1822,199 @@ msgstr "ASIN" msgid "Grouping" msgstr "Agrupamento" -#: picard/util/tags.py:40 +#: picard/util/tags.py:39 msgid "ISRC" msgstr "ISRC" -#: picard/util/tags.py:41 +#: picard/util/tags.py:40 msgid "Mood" msgstr "Estado de ánimo" -#: picard/util/tags.py:42 +#: picard/util/tags.py:41 msgid "BPM" msgstr "BPM" -#: picard/util/tags.py:43 +#: picard/util/tags.py:42 msgid "Copyright" msgstr "Dereitos de autor" -#: picard/util/tags.py:44 +#: picard/util/tags.py:43 msgid "License" msgstr "" -#: picard/util/tags.py:45 +#: picard/util/tags.py:44 msgid "Composer" msgstr "Compositor" -#: picard/util/tags.py:46 +#: picard/util/tags.py:45 msgid "Writer" msgstr "" -#: picard/util/tags.py:47 +#: picard/util/tags.py:46 msgid "Conductor" msgstr "Director" -#: picard/util/tags.py:48 +#: picard/util/tags.py:47 msgid "Lyricist" msgstr "Letrista" -#: picard/util/tags.py:49 +#: picard/util/tags.py:48 msgid "Arranger" msgstr "Arranxista" -#: picard/util/tags.py:50 +#: picard/util/tags.py:49 msgid "Producer" msgstr "Produtor" -#: picard/util/tags.py:51 +#: picard/util/tags.py:50 msgid "Engineer" msgstr "Enxeñeiro" -#: picard/util/tags.py:52 +#: picard/util/tags.py:51 msgid "Subtitle" msgstr "Subtítulo" -#: picard/util/tags.py:53 +#: picard/util/tags.py:52 msgid "Disc Subtitle" msgstr "Subtítulo de disco" -#: picard/util/tags.py:54 +#: picard/util/tags.py:53 msgid "Remixer" msgstr "Remesturador" -#: picard/util/tags.py:55 +#: picard/util/tags.py:54 msgid "MusicBrainz Recording Id" msgstr "" -#: picard/util/tags.py:56 +#: picard/util/tags.py:55 msgid "MusicBrainz Track Id" msgstr "" -#: picard/util/tags.py:57 +#: picard/util/tags.py:56 msgid "MusicBrainz Release Id" msgstr "ID do lanzamento de MusicBrainz" -#: picard/util/tags.py:58 +#: picard/util/tags.py:57 msgid "MusicBrainz Artist Id" msgstr "ID de artista de MusicBrainz" -#: picard/util/tags.py:59 +#: picard/util/tags.py:58 msgid "MusicBrainz Release Artist Id" msgstr "ID de artista do lanzamento de MusicBrainz" -#: picard/util/tags.py:60 +#: picard/util/tags.py:59 msgid "MusicBrainz Work Id" msgstr "" -#: picard/util/tags.py:61 +#: picard/util/tags.py:60 msgid "MusicBrainz Release Group Id" msgstr "" -#: picard/util/tags.py:62 +#: picard/util/tags.py:61 msgid "MusicBrainz Disc Id" msgstr "ID de disco de MusicBrainz" -#: picard/util/tags.py:63 -msgid "MusicBrainz Sort Name" -msgstr "Nome da ordenación en MusicBrainz" - -#: picard/util/tags.py:64 +#: picard/util/tags.py:62 msgid "MusicIP PUID" msgstr "PUID de MusicIP" -#: picard/util/tags.py:65 +#: picard/util/tags.py:63 msgid "MusicIP Fingerprint" msgstr "Pegada dixital de MusicIP" -#: picard/util/tags.py:66 +#: picard/util/tags.py:64 msgid "AcoustID" msgstr "" -#: picard/util/tags.py:67 +#: picard/util/tags.py:65 msgid "AcoustID Fingerprint" msgstr "" -#: picard/util/tags.py:68 +#: picard/util/tags.py:66 msgid "Disc Id" msgstr "ID de disco" -#: picard/util/tags.py:69 -msgid "Website" -msgstr "Sitio web" +#: picard/util/tags.py:67 +msgid "Artist Website" +msgstr "" -#: picard/util/tags.py:70 +#: picard/util/tags.py:68 msgid "Compilation (iTunes)" msgstr "" -#: picard/util/tags.py:71 +#: picard/util/tags.py:69 msgid "Comment" msgstr "Comentario" -#: picard/util/tags.py:72 +#: picard/util/tags.py:70 msgid "Genre" msgstr "Xénero" -#: picard/util/tags.py:73 +#: picard/util/tags.py:71 msgid "Encoded By" msgstr "Codificado por" -#: picard/util/tags.py:74 +#: picard/util/tags.py:72 +msgid "Encoder Settings" +msgstr "" + +#: picard/util/tags.py:73 msgid "Performer" msgstr "Intérprete" -#: picard/util/tags.py:75 +#: picard/util/tags.py:74 msgid "Release Type" msgstr "Tipo de lanzamento" -#: picard/util/tags.py:76 +#: picard/util/tags.py:75 msgid "Release Status" msgstr "Estado de lanzamento" -#: picard/util/tags.py:77 +#: picard/util/tags.py:76 msgid "Release Country" msgstr "País de lanzamento" -#: picard/util/tags.py:78 +#: picard/util/tags.py:77 msgid "Record Label" msgstr "Selo discográfico" -#: picard/util/tags.py:80 +#: picard/util/tags.py:79 msgid "Catalog Number" msgstr "Número de catálogo" -#: picard/util/tags.py:82 +#: picard/util/tags.py:80 msgid "DJ-Mixer" msgstr "DJ-mesturador" -#: picard/util/tags.py:83 +#: picard/util/tags.py:81 msgid "Media" msgstr "Medios" -#: picard/util/tags.py:84 +#: picard/util/tags.py:82 msgid "Lyrics" msgstr "Letras" -#: picard/util/tags.py:85 +#: picard/util/tags.py:83 msgid "Mixer" msgstr "Mesturador" -#: picard/util/tags.py:86 +#: picard/util/tags.py:84 msgid "Language" msgstr "Idioma" -#: picard/util/tags.py:87 +#: picard/util/tags.py:85 msgid "Script" msgstr "Script" -#: picard/util/tags.py:89 +#: picard/util/tags.py:87 msgid "Rating" msgstr "" -#: picard/util/tags.py:90 +#: picard/util/tags.py:88 msgid "Artists" msgstr "" -#: picard/util/tags.py:91 +#: picard/util/tags.py:89 msgid "Work" msgstr "" diff --git a/po/he.po b/po/he.po index e70c41aca..b233ec4c5 100644 --- a/po/he.po +++ b/po/he.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: MusicBrainz\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2014-03-20 11:12+0100\n" -"PO-Revision-Date: 2014-03-21 08:44+0000\n" +"POT-Creation-Date: 2014-05-03 17:28+0200\n" +"PO-Revision-Date: 2014-05-04 08:44+0000\n" "Last-Translator: nikki\n" "Language-Team: Hebrew (http://www.transifex.com/projects/p/musicbrainz/language/he/)\n" "MIME-Version: 1.0\n" @@ -19,6 +19,10 @@ msgstr "" "Language: he\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" +#: contrib/plugins/albumartist_website.py:3 +msgid "Album Artist Website" +msgstr "" + #: contrib/plugins/no_release.py:50 msgid "Enable plugin for all releases by default" msgstr "" @@ -31,63 +35,55 @@ msgstr "" msgid "Remove specific release information..." msgstr "" -#: contrib/plugins/open_in_gui.py:32 -msgid "Open Error" +#: contrib/plugins/standardise_performers.py:3 +msgid "Standardise Performers" msgstr "" -#: contrib/plugins/open_in_gui.py:32 -#, python-format -msgid "" -"Error while opening file:\n" -"\n" -"%s" -msgstr "" - -#: contrib/plugins/lastfm/ui_options_lastfm.py:117 +#: contrib/plugins/lastfm/ui_options_lastfm.py:99 msgid "Last.fm" msgstr "" -#: contrib/plugins/lastfm/ui_options_lastfm.py:118 +#: contrib/plugins/lastfm/ui_options_lastfm.py:100 msgid "Use track tags" msgstr "" -#: contrib/plugins/lastfm/ui_options_lastfm.py:119 +#: contrib/plugins/lastfm/ui_options_lastfm.py:101 msgid "Use artist tags" msgstr "" -#: contrib/plugins/lastfm/ui_options_lastfm.py:120 +#: contrib/plugins/lastfm/ui_options_lastfm.py:102 #: picard/ui/options/tags.py:30 msgid "Tags" msgstr "תגיות" -#: contrib/plugins/lastfm/ui_options_lastfm.py:121 -#: picard/ui/ui_options_folksonomy.py:116 +#: contrib/plugins/lastfm/ui_options_lastfm.py:103 +#: picard/ui/ui_options_folksonomy.py:103 msgid "Ignore tags:" msgstr "התעלם מתגיות:" -#: contrib/plugins/lastfm/ui_options_lastfm.py:122 -#: picard/ui/ui_options_folksonomy.py:121 +#: contrib/plugins/lastfm/ui_options_lastfm.py:104 +#: picard/ui/ui_options_folksonomy.py:108 msgid "Join multiple tags with:" msgstr "צרף מספרתגיות עם:" -#: contrib/plugins/lastfm/ui_options_lastfm.py:123 -#: picard/ui/ui_options_folksonomy.py:122 +#: contrib/plugins/lastfm/ui_options_lastfm.py:105 +#: picard/ui/ui_options_folksonomy.py:109 msgid " / " msgstr " / " -#: contrib/plugins/lastfm/ui_options_lastfm.py:124 -#: picard/ui/ui_options_folksonomy.py:123 +#: contrib/plugins/lastfm/ui_options_lastfm.py:106 +#: picard/ui/ui_options_folksonomy.py:110 msgid ", " msgstr ", " -#: contrib/plugins/lastfm/ui_options_lastfm.py:125 -#: picard/ui/ui_options_folksonomy.py:118 +#: contrib/plugins/lastfm/ui_options_lastfm.py:107 +#: picard/ui/ui_options_folksonomy.py:105 msgid "Minimal tag usage:" msgstr "שימוש מזערי בתגיות:" -#: contrib/plugins/lastfm/ui_options_lastfm.py:126 -#: picard/ui/ui_options_folksonomy.py:119 picard/ui/ui_options_matching.py:88 -#: picard/ui/ui_options_matching.py:89 picard/ui/ui_options_matching.py:90 +#: contrib/plugins/lastfm/ui_options_lastfm.py:108 +#: picard/ui/ui_options_folksonomy.py:106 picard/ui/ui_options_matching.py:75 +#: picard/ui/ui_options_matching.py:76 picard/ui/ui_options_matching.py:77 msgid " %" msgstr " %" @@ -95,420 +91,307 @@ msgstr " %" msgid "Calculate replay &gain..." msgstr "" -#: contrib/plugins/replaygain/__init__.py:66 +#: contrib/plugins/replaygain/__init__.py:67 #, python-format -msgid "Calculating replay gain for \"%s\"..." +msgid "Calculating replay gain for \"%(filename)s\"..." msgstr "" -#: contrib/plugins/replaygain/__init__.py:71 +#: contrib/plugins/replaygain/__init__.py:75 #, python-format -msgid "Replay gain for \"%s\" successfully calculated." +msgid "Replay gain for \"%(filename)s\" successfully calculated." msgstr "" -#: contrib/plugins/replaygain/__init__.py:73 +#: contrib/plugins/replaygain/__init__.py:80 #, python-format -msgid "Could not calculate replay gain for \"%s\"." +msgid "Could not calculate replay gain for \"%(filename)s\"." msgstr "" -#: contrib/plugins/replaygain/__init__.py:76 +#: contrib/plugins/replaygain/__init__.py:85 msgid "Calculate album &gain..." msgstr "" -#: contrib/plugins/replaygain/__init__.py:103 -#: contrib/plugins/replaygain/__init__.py:111 +#: contrib/plugins/replaygain/__init__.py:113 +#: contrib/plugins/replaygain/__init__.py:124 #, python-format -msgid "Calculating album gain for \"%s\"..." +msgid "Calculating album gain for \"%(album)s\"..." msgstr "" -#: contrib/plugins/replaygain/__init__.py:119 +#: contrib/plugins/replaygain/__init__.py:135 #, python-format -msgid "Album gain for \"%s\" successfully calculated." +msgid "Album gain for \"%(album)s\" successfully calculated." msgstr "" -#: contrib/plugins/replaygain/__init__.py:121 +#: contrib/plugins/replaygain/__init__.py:140 #, python-format -msgid "Could not calculate album gain for \"%s\"." +msgid "Could not calculate album gain for \"%(album)s\"." msgstr "" -#: picard/acoustid.py:102 -#, python-format -msgid "AcoustID lookup network error for '%s'!" +#: contrib/plugins/replaygain/ui_options_replaygain.py:59 +msgid "Replay Gain" msgstr "" -#: picard/acoustid.py:117 -#, python-format -msgid "AcoustID lookup failed for '%s'!" +#: contrib/plugins/replaygain/ui_options_replaygain.py:60 +msgid "Path to VorbisGain:" msgstr "" -#: picard/acoustid.py:128 -#, python-format -msgid "Acoustid lookup returned no result for file '%s'" +#: contrib/plugins/replaygain/ui_options_replaygain.py:61 +msgid "Path to MP3Gain:" msgstr "" -#: picard/acoustid.py:132 -#, python-format -msgid "Looking up the fingerprint for file %s..." -msgstr "מחפש את טביעת האצבע עבור הקובץ %s..." - -#: picard/acoustidmanager.py:78 -msgid "Submitting AcoustIDs..." +#: contrib/plugins/replaygain/ui_options_replaygain.py:62 +msgid "Path to metaflac:" msgstr "" -#: picard/acoustidmanager.py:83 -#, python-format -msgid "AcoustID submission failed with error '%s'" +#: contrib/plugins/replaygain/ui_options_replaygain.py:63 +msgid "Path to wvgain:" msgstr "" -#: picard/acoustidmanager.py:85 +#: contrib/plugins/viewvariables/__init__.py:42 +#, python-format +msgid "File: %s" +msgstr "" + +#: contrib/plugins/viewvariables/__init__.py:47 +#, python-format +msgid "Track: %s %s " +msgstr "" + +#: contrib/plugins/viewvariables/__init__.py:49 +msgid "Variables" +msgstr "" + +#: contrib/plugins/viewvariables/__init__.py:69 +msgid "File variables" +msgstr "" + +#: contrib/plugins/viewvariables/__init__.py:74 +msgid "Hidden variables" +msgstr "" + +#: contrib/plugins/viewvariables/__init__.py:79 +msgid "Tag variables" +msgstr "" + +#: contrib/plugins/viewvariables/ui_variables_dialog.py:73 +msgid "Variable" +msgstr "" + +#: contrib/plugins/viewvariables/ui_variables_dialog.py:75 +msgid "Value" +msgstr "" + +#: picard/acoustid.py:109 +#, python-format +msgid "AcoustID lookup network error for '%(filename)s'!" +msgstr "" + +#: picard/acoustid.py:133 +#, python-format +msgid "AcoustID lookup failed for '%(filename)s'!" +msgstr "" + +#: picard/acoustid.py:155 +#, python-format +msgid "AcoustID lookup returned no result for file '%(filename)s'" +msgstr "" + +#: picard/acoustid.py:166 +#, python-format +msgid "Looking up the fingerprint for file '%(filename)s' ..." +msgstr "" + +#: picard/acoustidmanager.py:80 +msgid "Submitting AcoustIDs ..." +msgstr "" + +#: picard/acoustidmanager.py:94 +#, python-format +msgid "AcoustID submission failed with error '%(error)s'" +msgstr "" + +#: picard/acoustidmanager.py:102 msgid "AcoustIDs successfully submitted." msgstr "" -#: picard/album.py:64 picard/cluster.py:234 +#: picard/album.py:65 picard/cluster.py:255 msgid "Unmatched Files" msgstr "קבצים לא תואמים" -#: picard/album.py:187 +#: picard/album.py:188 #, python-format msgid "[could not load album %s]" msgstr "[לא ניתן לטעון את האלבום%s]" -#: picard/album.py:272 +#: picard/album.py:277 #, python-format -msgid "Album %s loaded" +msgid "Album %(id)s loaded: %(artist)s - %(album)s" msgstr "" -#: picard/album.py:288 +#: picard/album.py:294 +#, python-format +msgid "Loading album %(id)s ..." +msgstr "" + +#: picard/album.py:303 msgid "[loading album information]" msgstr "[טוען את נתוני האלבום]" -#: picard/album.py:463 +#: picard/album.py:478 #, python-format msgid "; %i image" msgid_plural "; %i images" msgstr[0] "" msgstr[1] "" -#: picard/cluster.py:150 picard/cluster.py:159 +#: picard/cluster.py:155 picard/cluster.py:168 #, python-format -msgid "No matching releases for cluster %s" -msgstr "לא נמצאו שחרורים תואמים עבור האשכול %s" - -#: picard/cluster.py:161 -#, python-format -msgid "Cluster %s identified!" -msgstr "האשכול %s זוהה!" - -#: picard/cluster.py:168 -#, python-format -msgid "Looking up the metadata for cluster %s..." -msgstr "מחפש את נתוני המטא עבור האשכול %s..." - -#: picard/collection.py:60 -#, python-format -msgid "Added %i release to collection \"%s\"" -msgid_plural "Added %i releases to collection \"%s\"" -msgstr[0] "" -msgstr[1] "" - -#: picard/collection.py:72 -#, python-format -msgid "Removed %i release from collection \"%s\"" -msgid_plural "Removed %i releases from collection \"%s\"" -msgstr[0] "" -msgstr[1] "" - -#: picard/collection.py:81 -#, python-format -msgid "Error loading collections: %s" +msgid "No matching releases for cluster %(album)s" msgstr "" -#: picard/config_upgrade.py:57 picard/config_upgrade.py:70 +#: picard/cluster.py:174 +#, python-format +msgid "Cluster %(album)s identified!" +msgstr "" + +#: picard/cluster.py:185 +#, python-format +msgid "Looking up the metadata for cluster %(album)s..." +msgstr "" + +#: picard/collection.py:64 +#, python-format +msgid "Added %(count)i release to collection \"%(name)s\"" +msgid_plural "Added %(count)i releases to collection \"%(name)s\"" +msgstr[0] "" +msgstr[1] "" + +#: picard/collection.py:86 +#, python-format +msgid "Removed %(count)i release from collection \"%(name)s\"" +msgid_plural "Removed %(count)i releases from collection \"%(name)s\"" +msgstr[0] "" +msgstr[1] "" + +#: picard/collection.py:100 +#, python-format +msgid "Error loading collections: %(error)s" +msgstr "" + +#: picard/config_upgrade.py:58 picard/config_upgrade.py:71 msgid "Various Artists file naming scheme removal" msgstr "" -#: picard/config_upgrade.py:58 +#: picard/config_upgrade.py:59 msgid "" "The separate file naming scheme for various artists albums has been removed in this version of Picard.\n" "Your file naming scheme has automatically been merged with that of single artist albums." msgstr "" -#: picard/config_upgrade.py:71 +#: picard/config_upgrade.py:72 msgid "" "The separate file naming scheme for various artists albums has been removed in this version of Picard.\n" "You currently do not use this option, but have a separate file naming scheme defined.\n" "Do you want to remove it or merge it with your file naming scheme for single artist albums?" msgstr "" -#: picard/config_upgrade.py:77 +#: picard/config_upgrade.py:78 msgid "Merge" msgstr "" -#: picard/config_upgrade.py:77 picard/ui/metadatabox.py:254 +#: picard/config_upgrade.py:78 picard/ui/metadatabox.py:254 msgid "Remove" msgstr "" -#: picard/const.py:67 -msgid "CD" -msgstr "תקליטור" - -#: picard/const.py:68 -msgid "CD-R" -msgstr "" - -#: picard/const.py:69 -msgid "HDCD" -msgstr "" - -#: picard/const.py:70 -msgid "8cm CD" -msgstr "" - -#: picard/const.py:71 -msgid "Vinyl" -msgstr "Vinyl" - -#: picard/const.py:72 -msgid "7\" Vinyl" -msgstr "" - -#: picard/const.py:73 -msgid "10\" Vinyl" -msgstr "" - -#: picard/const.py:74 -msgid "12\" Vinyl" -msgstr "" - -#: picard/const.py:75 -msgid "Digital Media" -msgstr "מדיה דיגיטלית" - -#: picard/const.py:76 -msgid "USB Flash Drive" -msgstr "" - -#: picard/const.py:77 -msgid "slotMusic" -msgstr "" - -#: picard/const.py:78 -msgid "Cassette" -msgstr "קלטת" - -#: picard/const.py:79 -msgid "DVD" -msgstr "DVD" - -#: picard/const.py:80 -msgid "DVD-Audio" -msgstr "" - -#: picard/const.py:81 -msgid "DVD-Video" -msgstr "" - -#: picard/const.py:82 -msgid "SACD" -msgstr "SACD" - -#: picard/const.py:83 -msgid "DualDisc" -msgstr "" - -#: picard/const.py:84 -msgid "MiniDisc" -msgstr "מיני־דיסק" - -#: picard/const.py:85 -msgid "Blu-ray" -msgstr "" - -#: picard/const.py:86 -msgid "HD-DVD" -msgstr "" - -#: picard/const.py:87 -msgid "Videotape" -msgstr "" - -#: picard/const.py:88 -msgid "VHS" -msgstr "" - -#: picard/const.py:89 -msgid "Betamax" -msgstr "" - #: picard/const.py:90 -msgid "VCD" -msgstr "" - -#: picard/const.py:91 -msgid "SVCD" -msgstr "" - -#: picard/const.py:92 -msgid "UMD" -msgstr "" - -#: picard/const.py:93 picard/coverartarchive.py:33 -#: picard/ui/ui_options_releases.py:226 -msgid "Other" -msgstr "אחר" - -#: picard/const.py:94 -msgid "LaserDisc" -msgstr "לייזר־דיסק" - -#: picard/const.py:95 -msgid "Cartridge" -msgstr "" - -#: picard/const.py:96 -msgid "Reel-to-reel" -msgstr "" - -#: picard/const.py:97 -msgid "DAT" -msgstr "DAT" - -#: picard/const.py:98 -msgid "Wax Cylinder" -msgstr "" - -#: picard/const.py:99 -msgid "Piano Roll" -msgstr "" - -#: picard/const.py:100 -msgid "DCC" -msgstr "" - -#: picard/const.py:115 msgid "Danish" msgstr "" -#: picard/const.py:116 +#: picard/const.py:91 msgid "German" msgstr "גרמנית" -#: picard/const.py:118 +#: picard/const.py:93 msgid "English" msgstr "אנגלית" -#: picard/const.py:119 +#: picard/const.py:94 msgid "English (Canada)" msgstr "אנגלית (קנדה)‏" -#: picard/const.py:120 +#: picard/const.py:95 msgid "English (UK)" msgstr "אנגלית (בריטניה)‏" -#: picard/const.py:122 +#: picard/const.py:97 msgid "Spanish" msgstr "ספרדית" -#: picard/const.py:123 +#: picard/const.py:98 msgid "Estonian" msgstr "אסטונית" -#: picard/const.py:125 +#: picard/const.py:100 msgid "Finnish" msgstr "פינית" -#: picard/const.py:127 +#: picard/const.py:102 msgid "French" msgstr "צרפתית" -#: picard/const.py:136 +#: picard/const.py:111 msgid "Italian" msgstr "איטלקית" -#: picard/const.py:143 +#: picard/const.py:118 msgid "Dutch" msgstr "הולנדית" -#: picard/const.py:145 +#: picard/const.py:120 msgid "Polish" msgstr "פולנית" -#: picard/const.py:147 +#: picard/const.py:122 msgid "Brazilian Portuguese" msgstr "פורטוגזית ברזילאית" -#: picard/const.py:154 +#: picard/const.py:129 msgid "Swedish" msgstr "שוודית" -#: picard/coverart.py:84 +#: picard/coverart.py:85 #, python-format -msgid "Coverart %s downloaded" +msgid "Cover art of type '%(type)s' downloaded for %(albumid)s from %(host)s" msgstr "" -#: picard/coverart.py:240 +#: picard/coverart.py:256 #, python-format -msgid "Downloading http://%s:%i%s" -msgstr "" - -#: picard/coverartarchive.py:24 -msgid "Front" -msgstr "" - -#: picard/coverartarchive.py:25 -msgid "Back" -msgstr "" - -#: picard/coverartarchive.py:26 -msgid "Booklet" -msgstr "" - -#: picard/coverartarchive.py:27 -msgid "Medium" -msgstr "" - -#: picard/coverartarchive.py:28 -msgid "Tray" -msgstr "" - -#: picard/coverartarchive.py:29 -msgid "Obi" +msgid "" +"Downloading cover art of type '%(type)s' for %(albumid)s from %(host)s .." msgstr "" #: picard/coverartarchive.py:30 -msgid "Spine" -msgstr "" - -#: picard/coverartarchive.py:31 picard/ui/mainwindow.py:546 -msgid "Track" -msgstr "רצועה" - -#: picard/coverartarchive.py:32 -msgid "Sticker" -msgstr "" - -#: picard/coverartarchive.py:34 msgid "Unknown" msgstr "" -#: picard/file.py:536 +#: picard/file.py:494 #, python-format -msgid "No matching tracks for file %s" -msgstr "לא נמצאו רצועות תואמות עבור הקובץ %s" +msgid "No matching tracks for file '%(filename)s'" +msgstr "" -#: picard/file.py:548 +#: picard/file.py:510 #, python-format -msgid "No matching tracks above the threshold for file %s" -msgstr "אין רצועות בתאימות גדולה מהסף עבור קובץ %s" +msgid "No matching tracks above the threshold for file '%(filename)s'" +msgstr "" -#: picard/file.py:551 +#: picard/file.py:517 #, python-format -msgid "File %s identified!" -msgstr "הקובץ %s זוהה!" +msgid "File '%(filename)s' identified!" +msgstr "" -#: picard/file.py:567 +#: picard/file.py:537 #, python-format -msgid "Looking up the metadata for file %s..." -msgstr "מחפש את נתוני המטא עבור הקובץ %s..." +msgid "Looking up the metadata for file %(filename)s ..." +msgstr "" #: picard/releasegroup.py:53 msgid "Tracks" @@ -518,11 +401,11 @@ msgstr "" msgid "Year" msgstr "" -#: picard/releasegroup.py:55 picard/ui/cdlookup.py:34 +#: picard/releasegroup.py:55 picard/ui/cdlookup.py:35 msgid "Country" msgstr "" -#: picard/releasegroup.py:56 picard/util/tags.py:81 +#: picard/releasegroup.py:56 msgid "Format" msgstr "מבנה" @@ -542,16 +425,23 @@ msgstr "" msgid "[no release info]" msgstr "" -#: picard/tagger.py:316 +#: picard/tagger.py:370 #, python-format -msgid "Loading directory %s" +msgid "Adding %(count)d file from '%(directory)s' ..." +msgid_plural "Adding %(count)d files from '%(directory)s' ..." +msgstr[0] "" +msgstr[1] "" + +#: picard/tagger.py:512 +#, python-format +msgid "Removing album %(id)s: %(artist)s - %(album)s" msgstr "" -#: picard/tagger.py:452 +#: picard/tagger.py:528 msgid "CD Lookup Error" msgstr "שגיאת חיפוש תקליטור" -#: picard/tagger.py:453 +#: picard/tagger.py:529 #, python-format msgid "" "Error while reading CD:\n" @@ -559,44 +449,43 @@ msgid "" "%s" msgstr "שגיאה בעת קריאת התקליטור:\n\n%s" -#: picard/ui/cdlookup.py:34 picard/ui/mainwindow.py:544 -#: picard/ui/ui_options_releases.py:216 picard/util/tags.py:21 +#: picard/ui/cdlookup.py:35 picard/ui/mainwindow.py:597 picard/util/tags.py:21 msgid "Album" msgstr "אלבום" -#: picard/ui/cdlookup.py:34 picard/ui/itemviews.py:96 -#: picard/ui/mainwindow.py:545 picard/util/tags.py:22 +#: picard/ui/cdlookup.py:35 picard/ui/itemviews.py:96 +#: picard/ui/mainwindow.py:598 picard/util/tags.py:22 msgid "Artist" msgstr "אמן" -#: picard/ui/cdlookup.py:34 picard/util/tags.py:24 +#: picard/ui/cdlookup.py:35 picard/util/tags.py:24 msgid "Date" msgstr "תאריך" -#: picard/ui/cdlookup.py:35 +#: picard/ui/cdlookup.py:36 msgid "Labels" msgstr "" -#: picard/ui/cdlookup.py:35 +#: picard/ui/cdlookup.py:36 msgid "Catalog #s" msgstr "" -#: picard/ui/cdlookup.py:35 picard/util/tags.py:79 +#: picard/ui/cdlookup.py:36 picard/util/tags.py:78 msgid "Barcode" msgstr "ברקוד" -#: picard/ui/collectionmenu.py:31 +#: picard/ui/collectionmenu.py:42 msgid "Refresh List" msgstr "" -#: picard/ui/collectionmenu.py:92 +#: picard/ui/collectionmenu.py:86 #, python-format msgid "%s (%i release)" msgid_plural "%s (%i releases)" msgstr[0] "" msgstr[1] "" -#: picard/ui/coverartbox.py:142 +#: picard/ui/coverartbox.py:141 msgid "View release on MusicBrainz" msgstr "" @@ -612,59 +501,59 @@ msgstr "הצג קבצים &מוסתרים" msgid "&Set as starting directory" msgstr "" -#: picard/ui/infodialog.py:36 picard/ui/infodialog.py:75 +#: picard/ui/infodialog.py:37 picard/ui/infodialog.py:80 msgid "Info" msgstr "" -#: picard/ui/infodialog.py:80 +#: picard/ui/infodialog.py:85 msgid "Filename:" msgstr "שם הקובץ:" -#: picard/ui/infodialog.py:82 +#: picard/ui/infodialog.py:87 msgid "Format:" msgstr "תבנית:" -#: picard/ui/infodialog.py:86 +#: picard/ui/infodialog.py:91 msgid "Size:" msgstr "גודל:" -#: picard/ui/infodialog.py:90 +#: picard/ui/infodialog.py:95 msgid "Length:" msgstr "משך:" -#: picard/ui/infodialog.py:92 +#: picard/ui/infodialog.py:97 msgid "Bitrate:" msgstr "קצב סיביות:" -#: picard/ui/infodialog.py:94 +#: picard/ui/infodialog.py:99 msgid "Sample rate:" msgstr "קצב דגימה:" -#: picard/ui/infodialog.py:96 +#: picard/ui/infodialog.py:101 msgid "Bits per sample:" msgstr "סיביות לדגימה:" -#: picard/ui/infodialog.py:100 +#: picard/ui/infodialog.py:105 msgid "Mono" msgstr "מונו" -#: picard/ui/infodialog.py:102 +#: picard/ui/infodialog.py:107 msgid "Stereo" msgstr "סטריאו" -#: picard/ui/infodialog.py:105 +#: picard/ui/infodialog.py:110 msgid "Channels:" msgstr "ערוצים:" -#: picard/ui/infodialog.py:116 +#: picard/ui/infodialog.py:121 msgid "Album Info" msgstr "" -#: picard/ui/infodialog.py:124 +#: picard/ui/infodialog.py:129 msgid "&Errors" msgstr "" -#: picard/ui/infodialog.py:134 picard/ui/ui_infodialog.py:77 +#: picard/ui/infodialog.py:139 picard/ui/ui_infodialog.py:73 msgid "&Info" msgstr "&מידע" @@ -688,7 +577,7 @@ msgstr "" msgid "Title" msgstr "כותרת" -#: picard/ui/itemviews.py:95 picard/util/tags.py:88 +#: picard/ui/itemviews.py:95 picard/util/tags.py:86 msgid "Length" msgstr "משך" @@ -713,8 +602,8 @@ msgid "Collections" msgstr "" #: picard/ui/itemviews.py:365 -msgid "&Plugins" -msgstr "&תוספים" +msgid "P&lugins" +msgstr "" #: picard/ui/itemviews.py:541 msgid "file view" @@ -736,12 +625,16 @@ msgstr "" msgid "Contains albums and matched files" msgstr "" -#: picard/ui/logview.py:91 +#: picard/ui/logview.py:109 msgid "Log" msgstr "רישום" -#: picard/ui/logview.py:99 -msgid "Status History" +#: picard/ui/logview.py:113 +msgid "Debug mode" +msgstr "" + +#: picard/ui/logview.py:134 +msgid "Activity History" msgstr "" #: picard/ui/mainwindow.py:74 @@ -775,276 +668,309 @@ msgstr "" #: picard/ui/mainwindow.py:220 msgid "" -"Picard listens on a port to integrate with your browser and downloads " -"release information when you click the \"Tagger\" buttons on the MusicBrainz" -" website" +"Picard listens on this port to integrate with your browser. When you " +"\"Search\" or \"Open in Browser\" from Picard, clicking the \"Tagger\" " +"button on the web page loads the release into Picard." msgstr "" -#: picard/ui/mainwindow.py:240 +#: picard/ui/mainwindow.py:243 #, python-format msgid " Listening on port %(port)d " msgstr "" -#: picard/ui/mainwindow.py:263 +#: picard/ui/mainwindow.py:299 msgid "Submission Error" msgstr "" -#: picard/ui/mainwindow.py:264 +#: picard/ui/mainwindow.py:300 msgid "" "You need to configure your AcoustID API key before you can submit " "fingerprints." msgstr "" -#: picard/ui/mainwindow.py:269 +#: picard/ui/mainwindow.py:305 msgid "&Options..." msgstr "א&פשרויות..." -#: picard/ui/mainwindow.py:273 +#: picard/ui/mainwindow.py:309 msgid "&Cut" msgstr "&גזור" -#: picard/ui/mainwindow.py:278 +#: picard/ui/mainwindow.py:314 msgid "&Paste" msgstr "ה&דבק" -#: picard/ui/mainwindow.py:283 +#: picard/ui/mainwindow.py:319 msgid "&Help..." msgstr "ע&זרה..." -#: picard/ui/mainwindow.py:288 +#: picard/ui/mainwindow.py:323 msgid "&About..." msgstr "&אודות..." -#: picard/ui/mainwindow.py:292 +#: picard/ui/mainwindow.py:327 msgid "&Donate..." msgstr "&לתרום..." -#: picard/ui/mainwindow.py:295 +#: picard/ui/mainwindow.py:330 msgid "&Report a Bug..." msgstr "&דיווח על תקלה..." -#: picard/ui/mainwindow.py:298 +#: picard/ui/mainwindow.py:333 msgid "&Support Forum..." msgstr "פו&רום התמיכה..." -#: picard/ui/mainwindow.py:301 +#: picard/ui/mainwindow.py:336 msgid "&Add Files..." msgstr "הוסף &קבצים..." -#: picard/ui/mainwindow.py:302 +#: picard/ui/mainwindow.py:337 msgid "Add files to the tagger" msgstr "הוסף קבצים למתייג" -#: picard/ui/mainwindow.py:307 +#: picard/ui/mainwindow.py:342 msgid "A&dd Folder..." msgstr "הו&סף תיקייה..." -#: picard/ui/mainwindow.py:308 +#: picard/ui/mainwindow.py:343 msgid "Add a folder to the tagger" msgstr "הוסף תיקייה למתייג" -#: picard/ui/mainwindow.py:310 +#: picard/ui/mainwindow.py:345 msgid "Ctrl+D" msgstr "Ctrl+D" -#: picard/ui/mainwindow.py:313 +#: picard/ui/mainwindow.py:348 msgid "&Save" msgstr "&שמור" -#: picard/ui/mainwindow.py:314 +#: picard/ui/mainwindow.py:349 msgid "Save selected files" msgstr "שמור את הקבצים הנבחרים" -#: picard/ui/mainwindow.py:320 +#: picard/ui/mainwindow.py:355 msgid "S&ubmit" msgstr "" -#: picard/ui/mainwindow.py:321 -msgid "Submit fingerprints" +#: picard/ui/mainwindow.py:356 +msgid "Submit acoustic fingerprints" msgstr "" -#: picard/ui/mainwindow.py:325 +#: picard/ui/mainwindow.py:360 msgid "E&xit" msgstr "י&ציאה" -#: picard/ui/mainwindow.py:328 +#: picard/ui/mainwindow.py:363 msgid "Ctrl+Q" msgstr "Ctrl+Q" -#: picard/ui/mainwindow.py:331 +#: picard/ui/mainwindow.py:366 msgid "&Remove" msgstr "ה&סר" -#: picard/ui/mainwindow.py:332 +#: picard/ui/mainwindow.py:367 msgid "Remove selected files/albums" msgstr "הסר את הקבצים/האלבומים הנבחרים" -#: picard/ui/mainwindow.py:336 +#: picard/ui/mainwindow.py:371 msgid "Lookup in &Browser" msgstr "" -#: picard/ui/mainwindow.py:337 +#: picard/ui/mainwindow.py:372 msgid "Lookup selected item on MusicBrainz website" msgstr "" -#: picard/ui/mainwindow.py:341 +#: picard/ui/mainwindow.py:376 msgid "File &Browser" msgstr "סייר ה&קבצים" -#: picard/ui/mainwindow.py:345 +#: picard/ui/mainwindow.py:380 msgid "Ctrl+B" msgstr "Ctrl+B" -#: picard/ui/mainwindow.py:348 +#: picard/ui/mainwindow.py:383 msgid "&Cover Art" msgstr "אומנות ה&עטיפה" -#: picard/ui/mainwindow.py:354 picard/ui/mainwindow.py:539 +#: picard/ui/mainwindow.py:389 picard/ui/mainwindow.py:591 msgid "Search" msgstr "חיפוש" -#: picard/ui/mainwindow.py:357 -msgid "&CD Lookup..." -msgstr "&חיפוש תקליטור..." +#: picard/ui/mainwindow.py:392 +msgid "Lookup &CD..." +msgstr "" -#: picard/ui/mainwindow.py:358 picard/ui/mainwindow.py:359 -msgid "Lookup CD" -msgstr "חפש תקליטור" +#: picard/ui/mainwindow.py:393 +msgid "Lookup the details of the CD in your drive" +msgstr "" -#: picard/ui/mainwindow.py:361 +#: picard/ui/mainwindow.py:395 msgid "Ctrl+K" msgstr "Ctrl+K" -#: picard/ui/mainwindow.py:364 +#: picard/ui/mainwindow.py:398 msgid "&Scan" msgstr "&סרוק" -#: picard/ui/mainwindow.py:367 +#: picard/ui/mainwindow.py:401 msgid "Ctrl+Y" msgstr "Ctrl+Y" -#: picard/ui/mainwindow.py:370 +#: picard/ui/mainwindow.py:404 msgid "Cl&uster" msgstr "א&שכול" -#: picard/ui/mainwindow.py:373 +#: picard/ui/mainwindow.py:407 msgid "Ctrl+U" msgstr "Ctrl+U" -#: picard/ui/mainwindow.py:376 +#: picard/ui/mainwindow.py:410 msgid "&Lookup" msgstr "&חיפוש" -#: picard/ui/mainwindow.py:377 picard/ui/mainwindow.py:378 -msgid "Lookup metadata" -msgstr "חיפוש נתוני מטא" +#: picard/ui/mainwindow.py:411 +msgid "Lookup selected items in MusicBrainz" +msgstr "" -#: picard/ui/mainwindow.py:381 +#: picard/ui/mainwindow.py:416 msgid "Ctrl+L" msgstr "Ctrl+L" -#: picard/ui/mainwindow.py:384 +#: picard/ui/mainwindow.py:419 msgid "&Info..." msgstr "" -#: picard/ui/mainwindow.py:387 +#: picard/ui/mainwindow.py:422 msgid "Ctrl+I" msgstr "" -#: picard/ui/mainwindow.py:390 +#: picard/ui/mainwindow.py:425 msgid "&Refresh" msgstr "רע&נן" -#: picard/ui/mainwindow.py:391 +#: picard/ui/mainwindow.py:426 msgid "Ctrl+R" msgstr "" -#: picard/ui/mainwindow.py:394 +#: picard/ui/mainwindow.py:429 msgid "&Rename Files" msgstr "&שנה את שמות הקבצים" -#: picard/ui/mainwindow.py:399 +#: picard/ui/mainwindow.py:434 msgid "&Move Files" msgstr "ה&עבר קבצים" -#: picard/ui/mainwindow.py:404 +#: picard/ui/mainwindow.py:439 msgid "Save &Tags" msgstr "שמור &תגיות" -#: picard/ui/mainwindow.py:409 +#: picard/ui/mainwindow.py:444 msgid "Tags From &File Names..." msgstr "תגיות מ&שמות הקבצים..." -#: picard/ui/mainwindow.py:412 -msgid "View &Log..." -msgstr "ה&צג דוח..." - -#: picard/ui/mainwindow.py:415 -msgid "View Status &History..." +#: picard/ui/mainwindow.py:447 +msgid "&Open My Collections in Browser" msgstr "" -#: picard/ui/mainwindow.py:422 -msgid "&Open..." +#: picard/ui/mainwindow.py:451 +msgid "View Error/Debug &Log" msgstr "" -#: picard/ui/mainwindow.py:423 -msgid "Open the file" +#: picard/ui/mainwindow.py:454 +msgid "View Activity &History" msgstr "" -#: picard/ui/mainwindow.py:426 -msgid "Open &Folder..." +#: picard/ui/mainwindow.py:461 +msgid "&Play file" msgstr "" -#: picard/ui/mainwindow.py:427 -msgid "Open the containing folder" +#: picard/ui/mainwindow.py:462 +msgid "Play the file in your default media player" msgstr "" -#: picard/ui/mainwindow.py:448 +#: picard/ui/mainwindow.py:466 +msgid "Open Containing &Folder" +msgstr "" + +#: picard/ui/mainwindow.py:467 +msgid "Open the containing folder in your file explorer" +msgstr "" + +#: picard/ui/mainwindow.py:492 msgid "&File" msgstr "&קובץ" -#: picard/ui/mainwindow.py:456 +#: picard/ui/mainwindow.py:503 msgid "&Edit" msgstr "ע&ריכה" -#: picard/ui/mainwindow.py:462 +#: picard/ui/mainwindow.py:509 msgid "&View" msgstr "&תצוגה" -#: picard/ui/mainwindow.py:470 +#: picard/ui/mainwindow.py:515 msgid "&Options" msgstr "&אפשרויות" -#: picard/ui/mainwindow.py:476 +#: picard/ui/mainwindow.py:521 msgid "&Tools" msgstr "&כלים" -#: picard/ui/mainwindow.py:485 picard/ui/util.py:35 +#: picard/ui/mainwindow.py:532 picard/ui/util.py:35 msgid "&Help" msgstr "&עזרה" -#: picard/ui/mainwindow.py:505 +#: picard/ui/mainwindow.py:553 msgid "Actions" msgstr "" -#: picard/ui/mainwindow.py:608 +#: picard/ui/mainwindow.py:599 +msgid "Track" +msgstr "רצועה" + +#: picard/ui/mainwindow.py:662 msgid "All Supported Formats" msgstr "כל סוגי הקבצים הנתמכים" -#: picard/ui/mainwindow.py:705 +#: picard/ui/mainwindow.py:695 +#, python-format +msgid "Adding directory: '%(directory)s' ..." +msgstr "" + +#: picard/ui/mainwindow.py:702 +#, python-format +msgid "Adding multiple directories from '%(directory)s' ..." +msgstr "" + +#: picard/ui/mainwindow.py:767 msgid "Configuration Required" msgstr "" -#: picard/ui/mainwindow.py:706 +#: picard/ui/mainwindow.py:768 msgid "" "Audio fingerprinting is not yet configured. Would you like to configure it " "now?" msgstr "" -#: picard/ui/mainwindow.py:784 picard/ui/mainwindow.py:791 +#: picard/ui/mainwindow.py:848 #, python-format -msgid " (Error: %s)" -msgstr " (שגיאה: %s)" +msgid "%(filename)s (error: %(error)s)" +msgstr "" + +#: picard/ui/mainwindow.py:854 +#, python-format +msgid "%(filename)s" +msgstr "" + +#: picard/ui/mainwindow.py:864 +#, python-format +msgid "%(filename)s (%(similarity)d%%) (error: %(error)s)" +msgstr "" + +#: picard/ui/mainwindow.py:871 +#, python-format +msgid "%(filename)s (%(similarity)d%%)" +msgstr "" #: picard/ui/metadatabox.py:82 #, python-format @@ -1098,387 +1024,387 @@ msgid_plural "Use Original Values" msgstr[0] "" msgstr[1] "" -#: picard/ui/passworddialog.py:37 +#: picard/ui/passworddialog.py:40 #, python-format msgid "" "The server %s requires you to login. Please enter your username and " "password." msgstr "השרת %s דורש פרטי כניסה. יש להזין את שם המשתמש והסיסמה." -#: picard/ui/passworddialog.py:75 +#: picard/ui/passworddialog.py:79 #, python-format msgid "" "The proxy %s requires you to login. Please enter your username and password." msgstr "" -#: picard/ui/tagsfromfilenames.py:55 picard/ui/tagsfromfilenames.py:100 +#: picard/ui/tagsfromfilenames.py:56 picard/ui/tagsfromfilenames.py:101 msgid "File Name" msgstr "שם הקובץ" -#: picard/ui/ui_cdlookup.py:66 picard/ui/ui_options_cdlookup.py:55 -#: picard/ui/ui_options_cdlookup_select.py:62 picard/ui/options/cdlookup.py:38 +#: picard/ui/ui_cdlookup.py:53 picard/ui/ui_options_cdlookup.py:42 +#: picard/ui/ui_options_cdlookup_select.py:49 picard/ui/options/cdlookup.py:38 msgid "CD Lookup" msgstr "חיפוש תקליטור" -#: picard/ui/ui_cdlookup.py:67 +#: picard/ui/ui_cdlookup.py:54 msgid "The following releases on MusicBrainz match the CD:" msgstr "המהדורות הבאות ב-MusicBrainz תואמות לתקליטור:" -#: picard/ui/ui_cdlookup.py:68 +#: picard/ui/ui_cdlookup.py:55 msgid "OK" msgstr "אישור" -#: picard/ui/ui_cdlookup.py:69 +#: picard/ui/ui_cdlookup.py:56 msgid "Lookup manually" msgstr "" -#: picard/ui/ui_cdlookup.py:70 +#: picard/ui/ui_cdlookup.py:57 msgid "Cancel" msgstr "ביטול" -#: picard/ui/ui_edittagdialog.py:101 +#: picard/ui/ui_edittagdialog.py:88 msgid "Edit Tag" msgstr "" -#: picard/ui/ui_edittagdialog.py:102 +#: picard/ui/ui_edittagdialog.py:89 msgid "Edit value" msgstr "" -#: picard/ui/ui_edittagdialog.py:103 +#: picard/ui/ui_edittagdialog.py:90 msgid "Add value" msgstr "" -#: picard/ui/ui_edittagdialog.py:104 +#: picard/ui/ui_edittagdialog.py:91 msgid "Remove value" msgstr "" -#: picard/ui/ui_infodialog.py:78 +#: picard/ui/ui_infodialog.py:74 msgid "A&rtwork" msgstr "או&מנות" -#: picard/ui/ui_infostatus.py:100 +#: picard/ui/ui_infostatus.py:96 msgid "Form" msgstr "" -#: picard/ui/ui_options.py:51 +#: picard/ui/ui_options.py:38 msgid "Options" msgstr "" -#: picard/ui/ui_options_advanced.py:46 +#: picard/ui/ui_options_advanced.py:42 msgid "Advanced options" msgstr "" -#: picard/ui/ui_options_advanced.py:47 +#: picard/ui/ui_options_advanced.py:43 msgid "Ignore file paths matching the following regular expression:" msgstr "" -#: picard/ui/ui_options_cdlookup.py:56 +#: picard/ui/ui_options_cdlookup.py:43 msgid "CD-ROM device to use for lookups:" msgstr "התקן התקליטורים המשמש לחיפושים:" -#: picard/ui/ui_options_cdlookup_select.py:63 +#: picard/ui/ui_options_cdlookup_select.py:50 msgid "Default CD-ROM drive to use for lookups:" msgstr "כונן התקליטורים המשמש כברירת המחדל לחיפושים:" -#: picard/ui/ui_options_cover.py:145 +#: picard/ui/ui_options_cover.py:131 msgid "Location" msgstr "מיקום" -#: picard/ui/ui_options_cover.py:146 +#: picard/ui/ui_options_cover.py:132 msgid "Embed cover images into tags" msgstr "הטמע את תמונות העטיפה אל תוך התגיות" -#: picard/ui/ui_options_cover.py:147 +#: picard/ui/ui_options_cover.py:133 msgid "Only embed a front image" msgstr "" -#: picard/ui/ui_options_cover.py:148 +#: picard/ui/ui_options_cover.py:134 msgid "Save cover images as separate files" msgstr "שמור את תמונות העטיפה כקבצים נפרדים" -#: picard/ui/ui_options_cover.py:149 +#: picard/ui/ui_options_cover.py:135 msgid "Use the following file name for images:" msgstr "" -#: picard/ui/ui_options_cover.py:150 +#: picard/ui/ui_options_cover.py:136 msgid "Overwrite the file if it already exists" msgstr "שכתב על הקובץ במידה והוא כבר קיים" -#: picard/ui/ui_options_cover.py:151 +#: picard/ui/ui_options_cover.py:137 msgid "Coverart Providers" msgstr "" -#: picard/ui/ui_options_cover.py:152 +#: picard/ui/ui_options_cover.py:138 msgid "Amazon" msgstr "" -#: picard/ui/ui_options_cover.py:153 picard/ui/ui_options_cover.py:155 +#: picard/ui/ui_options_cover.py:139 picard/ui/ui_options_cover.py:141 msgid "Cover Art Archive" msgstr "" -#: picard/ui/ui_options_cover.py:154 +#: picard/ui/ui_options_cover.py:140 msgid "Sites on the whitelist" msgstr "" -#: picard/ui/ui_options_cover.py:156 +#: picard/ui/ui_options_cover.py:142 msgid "Only use images of the following size:" msgstr "" -#: picard/ui/ui_options_cover.py:157 +#: picard/ui/ui_options_cover.py:143 msgid "250 px" msgstr "" -#: picard/ui/ui_options_cover.py:158 +#: picard/ui/ui_options_cover.py:144 msgid "500 px" msgstr "" -#: picard/ui/ui_options_cover.py:159 +#: picard/ui/ui_options_cover.py:145 msgid "Full size" msgstr "" -#: picard/ui/ui_options_cover.py:160 +#: picard/ui/ui_options_cover.py:146 msgid "Download only images of the following types:" msgstr "" -#: picard/ui/ui_options_cover.py:161 +#: picard/ui/ui_options_cover.py:147 msgid "Download only approved images" msgstr "" -#: picard/ui/ui_options_cover.py:162 +#: picard/ui/ui_options_cover.py:148 msgid "" "Use the first image type as the filename. This will not change the filename " "of front images." msgstr "" -#: picard/ui/ui_options_fingerprinting.py:83 +#: picard/ui/ui_options_fingerprinting.py:70 msgid "Audio Fingerprinting" msgstr "" -#: picard/ui/ui_options_fingerprinting.py:84 +#: picard/ui/ui_options_fingerprinting.py:71 msgid "Do not use audio fingerprinting" msgstr "" -#: picard/ui/ui_options_fingerprinting.py:85 +#: picard/ui/ui_options_fingerprinting.py:72 msgid "Use AcoustID" msgstr "" -#: picard/ui/ui_options_fingerprinting.py:86 +#: picard/ui/ui_options_fingerprinting.py:73 msgid "AcoustID Settings" msgstr "" -#: picard/ui/ui_options_fingerprinting.py:87 +#: picard/ui/ui_options_fingerprinting.py:74 msgid "Fingerprint calculator:" msgstr "" -#: picard/ui/ui_options_fingerprinting.py:88 -#: picard/ui/ui_options_interface.py:88 picard/ui/ui_options_renaming.py:138 +#: picard/ui/ui_options_fingerprinting.py:75 +#: picard/ui/ui_options_interface.py:75 picard/ui/ui_options_renaming.py:134 msgid "Browse..." msgstr "עיון..." -#: picard/ui/ui_options_fingerprinting.py:89 +#: picard/ui/ui_options_fingerprinting.py:76 msgid "Download..." msgstr "" -#: picard/ui/ui_options_fingerprinting.py:90 +#: picard/ui/ui_options_fingerprinting.py:77 msgid "API key:" msgstr "" -#: picard/ui/ui_options_fingerprinting.py:91 +#: picard/ui/ui_options_fingerprinting.py:78 msgid "Get API key..." msgstr "" -#: picard/ui/ui_options_folksonomy.py:115 picard/ui/options/folksonomy.py:28 +#: picard/ui/ui_options_folksonomy.py:102 picard/ui/options/folksonomy.py:28 msgid "Folksonomy Tags" msgstr "תגיות שיתופיות" -#: picard/ui/ui_options_folksonomy.py:117 +#: picard/ui/ui_options_folksonomy.py:104 msgid "Only use my tags" msgstr "השתמש רק בתגיות שלי" -#: picard/ui/ui_options_folksonomy.py:120 +#: picard/ui/ui_options_folksonomy.py:107 msgid "Maximum number of tags:" msgstr "מספר התגיות המירבי:" -#: picard/ui/ui_options_general.py:92 +#: picard/ui/ui_options_general.py:88 msgid "MusicBrainz Server" msgstr "שרת MusicBrainz" -#: picard/ui/ui_options_general.py:93 picard/ui/ui_options_network.py:123 +#: picard/ui/ui_options_general.py:89 picard/ui/ui_options_network.py:110 msgid "Port:" msgstr "פתחה:" -#: picard/ui/ui_options_general.py:94 picard/ui/ui_options_network.py:124 +#: picard/ui/ui_options_general.py:90 picard/ui/ui_options_network.py:111 msgid "Server address:" msgstr "כתובת השרת:" -#: picard/ui/ui_options_general.py:95 +#: picard/ui/ui_options_general.py:91 msgid "Account Information" msgstr "פרטי החשבון" -#: picard/ui/ui_options_general.py:96 picard/ui/ui_options_network.py:121 -#: picard/ui/ui_passworddialog.py:74 +#: picard/ui/ui_options_general.py:92 picard/ui/ui_options_network.py:108 +#: picard/ui/ui_passworddialog.py:70 msgid "Password:" msgstr "סיסמה:" -#: picard/ui/ui_options_general.py:97 picard/ui/ui_options_network.py:122 -#: picard/ui/ui_passworddialog.py:73 +#: picard/ui/ui_options_general.py:93 picard/ui/ui_options_network.py:109 +#: picard/ui/ui_passworddialog.py:69 msgid "Username:" msgstr "שם משתמש:" -#: picard/ui/ui_options_general.py:98 picard/ui/options/general.py:31 +#: picard/ui/ui_options_general.py:94 picard/ui/options/general.py:31 msgid "General" msgstr "כללי" -#: picard/ui/ui_options_general.py:99 +#: picard/ui/ui_options_general.py:95 msgid "Automatically scan all new files" msgstr "סרוק אוטומטית את כל הקבצים החדשים" -#: picard/ui/ui_options_general.py:100 +#: picard/ui/ui_options_general.py:96 msgid "Ignore MBIDs when loading new files" msgstr "" -#: picard/ui/ui_options_interface.py:82 +#: picard/ui/ui_options_interface.py:69 msgid "Miscellaneous" msgstr "שונות" -#: picard/ui/ui_options_interface.py:83 +#: picard/ui/ui_options_interface.py:70 msgid "Show text labels under icons" msgstr "הצג תוויות טקסט מתחת לסמלים" -#: picard/ui/ui_options_interface.py:84 +#: picard/ui/ui_options_interface.py:71 msgid "Allow selection of multiple directories" msgstr "אפשר בחירת תיקיות מרובות" -#: picard/ui/ui_options_interface.py:85 +#: picard/ui/ui_options_interface.py:72 msgid "Use advanced query syntax" msgstr "השתמש בתחביר שאילתות מתקדם" -#: picard/ui/ui_options_interface.py:86 +#: picard/ui/ui_options_interface.py:73 msgid "Show a quit confirmation dialog for unsaved changes" msgstr "" -#: picard/ui/ui_options_interface.py:87 +#: picard/ui/ui_options_interface.py:74 msgid "Begin browsing in the following directory:" msgstr "" -#: picard/ui/ui_options_interface.py:89 +#: picard/ui/ui_options_interface.py:76 msgid "User interface language:" msgstr "שפת ממשק משתמש:" -#: picard/ui/ui_options_matching.py:86 +#: picard/ui/ui_options_matching.py:73 msgid "Thresholds" msgstr "ערכי סף" -#: picard/ui/ui_options_matching.py:87 +#: picard/ui/ui_options_matching.py:74 msgid "Minimal similarity for matching files to tracks:" msgstr "דמיון מזערי להתאמת קבצים לרצועות:" -#: picard/ui/ui_options_matching.py:91 +#: picard/ui/ui_options_matching.py:78 msgid "Minimal similarity for file lookups:" msgstr "דמיון מזערי לחיפושי קבצים:" -#: picard/ui/ui_options_matching.py:92 +#: picard/ui/ui_options_matching.py:79 msgid "Minimal similarity for cluster lookups:" msgstr "דמיון מזערי לחיפושי אשכולות:" -#: picard/ui/ui_options_metadata.py:114 picard/ui/options/metadata.py:29 +#: picard/ui/ui_options_metadata.py:101 picard/ui/options/metadata.py:29 msgid "Metadata" msgstr "נתוני מטא" -#: picard/ui/ui_options_metadata.py:115 +#: picard/ui/ui_options_metadata.py:102 msgid "Translate artist names to this locale where possible:" msgstr "" -#: picard/ui/ui_options_metadata.py:116 +#: picard/ui/ui_options_metadata.py:103 msgid "Use standardized artist names" msgstr "" -#: picard/ui/ui_options_metadata.py:117 +#: picard/ui/ui_options_metadata.py:104 msgid "Convert Unicode punctuation characters to ASCII" msgstr "" -#: picard/ui/ui_options_metadata.py:118 +#: picard/ui/ui_options_metadata.py:105 msgid "Use release relationships" msgstr "השתמש ביחסי מהדורה" -#: picard/ui/ui_options_metadata.py:119 +#: picard/ui/ui_options_metadata.py:106 msgid "Use track relationships" msgstr "השתמש ביחסי הרצועות" -#: picard/ui/ui_options_metadata.py:120 +#: picard/ui/ui_options_metadata.py:107 msgid "Use folksonomy tags as genre" msgstr "השתמש בתיוג שיתופי בתור ז'אנר" -#: picard/ui/ui_options_metadata.py:121 +#: picard/ui/ui_options_metadata.py:108 msgid "Custom Fields" msgstr "שדות מותאמים אישית" -#: picard/ui/ui_options_metadata.py:122 +#: picard/ui/ui_options_metadata.py:109 msgid "Various artists:" msgstr "מגוון אמנים:" -#: picard/ui/ui_options_metadata.py:123 +#: picard/ui/ui_options_metadata.py:110 msgid "Non-album tracks:" msgstr "רצועות ללא-אלבום:" -#: picard/ui/ui_options_metadata.py:124 picard/ui/ui_options_metadata.py:125 -#: picard/ui/ui_options_renaming.py:147 +#: picard/ui/ui_options_metadata.py:111 picard/ui/ui_options_metadata.py:112 +#: picard/ui/ui_options_renaming.py:143 msgid "Default" msgstr "ברירת מחדל" -#: picard/ui/ui_options_network.py:120 +#: picard/ui/ui_options_network.py:107 msgid "Web Proxy" msgstr "מתווך רשת" -#: picard/ui/ui_options_network.py:125 +#: picard/ui/ui_options_network.py:112 msgid "Browser Integration" msgstr "" -#: picard/ui/ui_options_network.py:126 +#: picard/ui/ui_options_network.py:113 msgid "Default listening port:" msgstr "" -#: picard/ui/ui_options_network.py:127 +#: picard/ui/ui_options_network.py:114 msgid "Listen only on localhost" msgstr "" -#: picard/ui/ui_options_plugins.py:131 picard/ui/options/plugins.py:38 +#: picard/ui/ui_options_plugins.py:127 picard/ui/options/plugins.py:38 msgid "Plugins" msgstr "תוספים" -#: picard/ui/ui_options_plugins.py:132 picard/ui/options/plugins.py:122 +#: picard/ui/ui_options_plugins.py:128 picard/ui/options/plugins.py:122 msgid "Name" msgstr "שם" -#: picard/ui/ui_options_plugins.py:133 picard/util/tags.py:39 +#: picard/ui/ui_options_plugins.py:129 msgid "Version" msgstr "גירסה" -#: picard/ui/ui_options_plugins.py:134 picard/ui/options/plugins.py:125 +#: picard/ui/ui_options_plugins.py:130 picard/ui/options/plugins.py:125 msgid "Author" msgstr "מחבר" -#: picard/ui/ui_options_plugins.py:135 +#: picard/ui/ui_options_plugins.py:131 msgid "Install plugin..." msgstr "" -#: picard/ui/ui_options_plugins.py:136 +#: picard/ui/ui_options_plugins.py:132 msgid "Open plugin folder" msgstr "פתיחת תיקיית התוספים" -#: picard/ui/ui_options_plugins.py:137 +#: picard/ui/ui_options_plugins.py:133 msgid "Download plugins" msgstr "הורדת תוספים" -#: picard/ui/ui_options_plugins.py:138 +#: picard/ui/ui_options_plugins.py:134 msgid "Details" msgstr "פרטים" -#: picard/ui/ui_options_ratings.py:53 +#: picard/ui/ui_options_ratings.py:49 msgid "Enable track ratings" msgstr "אפשר דירוג רצועה" -#: picard/ui/ui_options_ratings.py:54 +#: picard/ui/ui_options_ratings.py:50 msgid "" "Picard saves the ratings together with an e-mail address identifying the " "user who did the rating. That way different ratings for different users can " @@ -1486,207 +1412,167 @@ msgid "" "your ratings." msgstr "פיקארד שומרת את הדירוגים ביחד עם כתובת דוא\"ל אשר מזהה את המשתמש שביצע את הדרוג. בדרך זו דרוגים שונים עבור משתמשים שונים יכולים להשמר בקבצים. יש לספק כתובת דוא\"ל שתשמש לשמירת הדירוגים שלך." -#: picard/ui/ui_options_ratings.py:55 +#: picard/ui/ui_options_ratings.py:51 msgid "E-mail:" msgstr "דוא\"ל:" -#: picard/ui/ui_options_ratings.py:56 +#: picard/ui/ui_options_ratings.py:52 msgid "Submit ratings to MusicBrainz" msgstr "שלח דרוגים ל-MusicBrainz" -#: picard/ui/ui_options_releases.py:215 +#: picard/ui/ui_options_releases.py:104 msgid "Preferred release types" msgstr "" -#: picard/ui/ui_options_releases.py:217 -msgid "Single" -msgstr "" - -#: picard/ui/ui_options_releases.py:218 -msgid "EP" -msgstr "" - -#: picard/ui/ui_options_releases.py:219 -msgid "Compilation" -msgstr "אריזה (הידור)" - -#: picard/ui/ui_options_releases.py:220 -msgid "Soundtrack" -msgstr "" - -#: picard/ui/ui_options_releases.py:221 -msgid "Spokenword" -msgstr "" - -#: picard/ui/ui_options_releases.py:222 -msgid "Interview" -msgstr "" - -#: picard/ui/ui_options_releases.py:223 -msgid "Audiobook" -msgstr "" - -#: picard/ui/ui_options_releases.py:224 -msgid "Live" -msgstr "" - -#: picard/ui/ui_options_releases.py:225 -msgid "Remix" -msgstr "" - -#: picard/ui/ui_options_releases.py:227 -msgid "Reset all" -msgstr "" - -#: picard/ui/ui_options_releases.py:228 +#: picard/ui/ui_options_releases.py:105 msgid "Preferred release countries" msgstr "" -#: picard/ui/ui_options_releases.py:229 picard/ui/ui_options_releases.py:232 +#: picard/ui/ui_options_releases.py:106 picard/ui/ui_options_releases.py:109 msgid ">" msgstr "" -#: picard/ui/ui_options_releases.py:230 picard/ui/ui_options_releases.py:233 +#: picard/ui/ui_options_releases.py:107 picard/ui/ui_options_releases.py:110 msgid "<" msgstr "" -#: picard/ui/ui_options_releases.py:231 +#: picard/ui/ui_options_releases.py:108 msgid "Preferred release formats" msgstr "" -#: picard/ui/ui_options_renaming.py:134 +#: picard/ui/ui_options_renaming.py:130 msgid "Rename files when saving" msgstr "שנה שמות קובץ בשמירה" -#: picard/ui/ui_options_renaming.py:135 +#: picard/ui/ui_options_renaming.py:131 msgid "Replace non-ASCII characters" msgstr "החלף תווים שאינם ASCII" -#: picard/ui/ui_options_renaming.py:136 +#: picard/ui/ui_options_renaming.py:132 msgid "Windows compatibility" msgstr "" -#: picard/ui/ui_options_renaming.py:137 +#: picard/ui/ui_options_renaming.py:133 msgid "Move files to this directory when saving:" msgstr "העבר קבצים לספריה זו כאשר בזמן שמירה:" -#: picard/ui/ui_options_renaming.py:139 +#: picard/ui/ui_options_renaming.py:135 msgid "Delete empty directories" msgstr "מחק תיקיות ריקות" -#: picard/ui/ui_options_renaming.py:140 +#: picard/ui/ui_options_renaming.py:136 msgid "Move additional files:" msgstr "העבר קבצים נוספים:" -#: picard/ui/ui_options_renaming.py:141 +#: picard/ui/ui_options_renaming.py:137 msgid "Name files like this" msgstr "שמות קובץ כמו אלו" -#: picard/ui/ui_options_renaming.py:148 +#: picard/ui/ui_options_renaming.py:144 msgid "Examples" msgstr "דוגמאות" -#: picard/ui/ui_options_script.py:49 +#: picard/ui/ui_options_script.py:45 msgid "Tagger Script" msgstr "סקריפט תיוג" -#: picard/ui/ui_options_tags.py:165 +#: picard/ui/ui_options_tags.py:152 msgid "Write tags to files" msgstr "כתוב תגיות לקבצים" -#: picard/ui/ui_options_tags.py:166 +#: picard/ui/ui_options_tags.py:153 msgid "Preserve timestamps of tagged files" msgstr "" -#: picard/ui/ui_options_tags.py:167 +#: picard/ui/ui_options_tags.py:154 msgid "Before Tagging" msgstr "" -#: picard/ui/ui_options_tags.py:168 +#: picard/ui/ui_options_tags.py:155 msgid "Clear existing tags" msgstr "מחק תגיות קיימות" -#: picard/ui/ui_options_tags.py:169 +#: picard/ui/ui_options_tags.py:156 msgid "Remove ID3 tags from FLAC files" msgstr "הסר תגיות ID3 מקבצי FLAC" -#: picard/ui/ui_options_tags.py:170 +#: picard/ui/ui_options_tags.py:157 msgid "Remove APEv2 tags from MP3 files" msgstr "הסר תגיות APEv2 מקבצי MP3" -#: picard/ui/ui_options_tags.py:171 +#: picard/ui/ui_options_tags.py:158 msgid "" "Preserve these tags from being cleared or overwritten with MusicBrainz data:" msgstr "" -#: picard/ui/ui_options_tags.py:172 +#: picard/ui/ui_options_tags.py:159 msgid "Tags are separated by commas, and are case-sensitive." msgstr "" -#: picard/ui/ui_options_tags.py:173 +#: picard/ui/ui_options_tags.py:160 msgid "Tag Compatibility" msgstr "" -#: picard/ui/ui_options_tags.py:174 +#: picard/ui/ui_options_tags.py:161 msgid "ID3v2 Version" msgstr "" -#: picard/ui/ui_options_tags.py:175 +#: picard/ui/ui_options_tags.py:162 msgid "2.4" msgstr "2.4" -#: picard/ui/ui_options_tags.py:176 +#: picard/ui/ui_options_tags.py:163 msgid "2.3" msgstr "2.3" -#: picard/ui/ui_options_tags.py:177 +#: picard/ui/ui_options_tags.py:164 msgid "ID3v2 Text Encoding" msgstr "" -#: picard/ui/ui_options_tags.py:178 +#: picard/ui/ui_options_tags.py:165 msgid "UTF-8" msgstr "UTF-8" -#: picard/ui/ui_options_tags.py:179 +#: picard/ui/ui_options_tags.py:166 msgid "UTF-16" msgstr "UTF-16" -#: picard/ui/ui_options_tags.py:180 +#: picard/ui/ui_options_tags.py:167 msgid "ISO-8859-1" msgstr "ISO-8859-1" -#: picard/ui/ui_options_tags.py:181 +#: picard/ui/ui_options_tags.py:168 msgid "Join multiple ID3v2.3 tags with:" msgstr "" -#: picard/ui/ui_options_tags.py:182 +#: picard/ui/ui_options_tags.py:169 msgid "" "

Default is '/' to maintain compatibility with previous" " Picard releases.

New alternatives are ';_' or '_/_' or type your own." "

" msgstr "" -#: picard/ui/ui_options_tags.py:183 +#: picard/ui/ui_options_tags.py:170 msgid "Also include ID3v1 tags in the files" msgstr "הוסף לקבצים גם תגיות ID3V1" -#: picard/ui/ui_passworddialog.py:72 +#: picard/ui/ui_passworddialog.py:68 msgid "Authentication required" msgstr "נדרשת הזדהות" -#: picard/ui/ui_passworddialog.py:75 +#: picard/ui/ui_passworddialog.py:71 msgid "Save username and password" msgstr "שמור שם משתמש וסיסמא" -#: picard/ui/ui_tagsfromfilenames.py:54 +#: picard/ui/ui_tagsfromfilenames.py:50 msgid "Convert File Names to Tags" msgstr "המר את שמות הקבצים לתגיות" -#: picard/ui/ui_tagsfromfilenames.py:55 +#: picard/ui/ui_tagsfromfilenames.py:51 msgid "Replace underscores with spaces" msgstr "החלף קווים תחתיים ברווחים" -#: picard/ui/ui_tagsfromfilenames.py:56 +#: picard/ui/ui_tagsfromfilenames.py:52 msgid "&Preview" msgstr "&תצוגה מקדימה" @@ -1742,7 +1628,11 @@ msgstr "מתקדם" msgid "Regex Error" msgstr "" -#: picard/ui/options/cover.py:63 +#: picard/ui/options/cover.py:44 +msgid "title" +msgstr "" + +#: picard/ui/options/cover.py:68 msgid "Cover Art" msgstr "אומנות העטיפה" @@ -1758,11 +1648,11 @@ msgstr "מנשק משתמש" msgid "System default" msgstr "ברירת המחדל של המערכת" -#: picard/ui/options/interface.py:96 +#: picard/ui/options/interface.py:98 msgid "Language changed" msgstr "שפה השתנתה" -#: picard/ui/options/interface.py:96 +#: picard/ui/options/interface.py:99 msgid "" "You have changed the interface language. You have to restart Picard in order" " for the change to take effect." @@ -1784,31 +1674,35 @@ msgstr "קובץ" msgid "Ratings" msgstr "דירוג" -#: picard/ui/options/releases.py:33 +#: picard/ui/options/releases.py:87 msgid "Preferred Releases" msgstr "" +#: picard/ui/options/releases.py:121 +msgid "Reset all" +msgstr "" + #: picard/ui/options/renaming.py:37 msgid "File Naming" msgstr "" -#: picard/ui/options/renaming.py:184 +#: picard/ui/options/renaming.py:187 msgid "Error" msgstr "שגיאה" -#: picard/ui/options/renaming.py:184 +#: picard/ui/options/renaming.py:187 msgid "The location to move files to must not be empty." msgstr "המיקום עליו יועברו הקבצים חייב להיות ריק" -#: picard/ui/options/renaming.py:194 +#: picard/ui/options/renaming.py:197 msgid "The file naming format must not be empty." msgstr "מבנה שמות הקבצים לא יכול להיות ריק." -#: picard/ui/options/scripting.py:63 +#: picard/ui/options/scripting.py:99 msgid "Scripting" msgstr "יצירת סקריפט" -#: picard/ui/options/scripting.py:95 +#: picard/ui/options/scripting.py:131 msgid "Script Error" msgstr "שגיאת סקריפט" @@ -1928,199 +1822,199 @@ msgstr "ASIN" msgid "Grouping" msgstr "קיבוץ" -#: picard/util/tags.py:40 +#: picard/util/tags.py:39 msgid "ISRC" msgstr "ISRC" -#: picard/util/tags.py:41 +#: picard/util/tags.py:40 msgid "Mood" msgstr "אווירה" -#: picard/util/tags.py:42 +#: picard/util/tags.py:41 msgid "BPM" msgstr "BPM" -#: picard/util/tags.py:43 +#: picard/util/tags.py:42 msgid "Copyright" msgstr "זכויות יוצרים" -#: picard/util/tags.py:44 +#: picard/util/tags.py:43 msgid "License" msgstr "" -#: picard/util/tags.py:45 +#: picard/util/tags.py:44 msgid "Composer" msgstr "מלחין" -#: picard/util/tags.py:46 +#: picard/util/tags.py:45 msgid "Writer" msgstr "" -#: picard/util/tags.py:47 +#: picard/util/tags.py:46 msgid "Conductor" msgstr "מנצח" -#: picard/util/tags.py:48 +#: picard/util/tags.py:47 msgid "Lyricist" msgstr "כותב המילים" -#: picard/util/tags.py:49 +#: picard/util/tags.py:48 msgid "Arranger" msgstr "מסדר" -#: picard/util/tags.py:50 +#: picard/util/tags.py:49 msgid "Producer" msgstr "מפיק" -#: picard/util/tags.py:51 +#: picard/util/tags.py:50 msgid "Engineer" msgstr "מהנדס" -#: picard/util/tags.py:52 +#: picard/util/tags.py:51 msgid "Subtitle" msgstr "כתובית" -#: picard/util/tags.py:53 +#: picard/util/tags.py:52 msgid "Disc Subtitle" msgstr "כתובית התקליטור" -#: picard/util/tags.py:54 +#: picard/util/tags.py:53 msgid "Remixer" msgstr "מערבל" -#: picard/util/tags.py:55 +#: picard/util/tags.py:54 msgid "MusicBrainz Recording Id" msgstr "" -#: picard/util/tags.py:56 +#: picard/util/tags.py:55 msgid "MusicBrainz Track Id" msgstr "" -#: picard/util/tags.py:57 +#: picard/util/tags.py:56 msgid "MusicBrainz Release Id" msgstr "מזהה מהדורה של MusicBrainz" -#: picard/util/tags.py:58 +#: picard/util/tags.py:57 msgid "MusicBrainz Artist Id" msgstr "מזהה אמן ב-MusicBrainz" -#: picard/util/tags.py:59 +#: picard/util/tags.py:58 msgid "MusicBrainz Release Artist Id" msgstr "מזהה מהדורת אמן ב-MusicBrainz" -#: picard/util/tags.py:60 +#: picard/util/tags.py:59 msgid "MusicBrainz Work Id" msgstr "" -#: picard/util/tags.py:61 +#: picard/util/tags.py:60 msgid "MusicBrainz Release Group Id" msgstr "" -#: picard/util/tags.py:62 +#: picard/util/tags.py:61 msgid "MusicBrainz Disc Id" msgstr "זיהוי דיסק ב-MusicBrainz" -#: picard/util/tags.py:63 -msgid "MusicBrainz Sort Name" -msgstr "שם סיווג ב-MusicBrainz" - -#: picard/util/tags.py:64 +#: picard/util/tags.py:62 msgid "MusicIP PUID" msgstr "מזהה PUID של MusicIP" -#: picard/util/tags.py:65 +#: picard/util/tags.py:63 msgid "MusicIP Fingerprint" msgstr "טביעת אצבע של MusicIP" -#: picard/util/tags.py:66 +#: picard/util/tags.py:64 msgid "AcoustID" msgstr "" -#: picard/util/tags.py:67 +#: picard/util/tags.py:65 msgid "AcoustID Fingerprint" msgstr "" -#: picard/util/tags.py:68 +#: picard/util/tags.py:66 msgid "Disc Id" msgstr "זיהוי דיסק" -#: picard/util/tags.py:69 -msgid "Website" -msgstr "אתר הבית" +#: picard/util/tags.py:67 +msgid "Artist Website" +msgstr "" -#: picard/util/tags.py:70 +#: picard/util/tags.py:68 msgid "Compilation (iTunes)" msgstr "" -#: picard/util/tags.py:71 +#: picard/util/tags.py:69 msgid "Comment" msgstr "הערה" -#: picard/util/tags.py:72 +#: picard/util/tags.py:70 msgid "Genre" msgstr "סגנון" -#: picard/util/tags.py:73 +#: picard/util/tags.py:71 msgid "Encoded By" msgstr "קודד על ידי" -#: picard/util/tags.py:74 +#: picard/util/tags.py:72 +msgid "Encoder Settings" +msgstr "" + +#: picard/util/tags.py:73 msgid "Performer" msgstr "מבצע" -#: picard/util/tags.py:75 +#: picard/util/tags.py:74 msgid "Release Type" msgstr "סוג המהדורה" -#: picard/util/tags.py:76 +#: picard/util/tags.py:75 msgid "Release Status" msgstr "מצב המהדורה" -#: picard/util/tags.py:77 +#: picard/util/tags.py:76 msgid "Release Country" msgstr "מדינת המהדורה" -#: picard/util/tags.py:78 +#: picard/util/tags.py:77 msgid "Record Label" msgstr "מותג ההקלטות" -#: picard/util/tags.py:80 +#: picard/util/tags.py:79 msgid "Catalog Number" msgstr "מספר סידורי" -#: picard/util/tags.py:82 +#: picard/util/tags.py:80 msgid "DJ-Mixer" msgstr "DJ-Mixer" -#: picard/util/tags.py:83 +#: picard/util/tags.py:81 msgid "Media" msgstr "מדיה" -#: picard/util/tags.py:84 +#: picard/util/tags.py:82 msgid "Lyrics" msgstr "מילות השיר" -#: picard/util/tags.py:85 +#: picard/util/tags.py:83 msgid "Mixer" msgstr "מערבל" -#: picard/util/tags.py:86 +#: picard/util/tags.py:84 msgid "Language" msgstr "שפה" -#: picard/util/tags.py:87 +#: picard/util/tags.py:85 msgid "Script" msgstr "סקריפט" -#: picard/util/tags.py:89 +#: picard/util/tags.py:87 msgid "Rating" msgstr "" -#: picard/util/tags.py:90 +#: picard/util/tags.py:88 msgid "Artists" msgstr "" -#: picard/util/tags.py:91 +#: picard/util/tags.py:89 msgid "Work" msgstr "" diff --git a/po/hu.po b/po/hu.po index c4bd35267..c849eb020 100644 --- a/po/hu.po +++ b/po/hu.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: MusicBrainz\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2014-03-20 11:12+0100\n" -"PO-Revision-Date: 2014-03-21 08:44+0000\n" +"POT-Creation-Date: 2014-05-03 17:28+0200\n" +"PO-Revision-Date: 2014-05-04 08:44+0000\n" "Last-Translator: nikki\n" "Language-Team: Hungarian (http://www.transifex.com/projects/p/musicbrainz/language/hu/)\n" "MIME-Version: 1.0\n" @@ -19,6 +19,10 @@ msgstr "" "Language: hu\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" +#: contrib/plugins/albumartist_website.py:3 +msgid "Album Artist Website" +msgstr "" + #: contrib/plugins/no_release.py:50 msgid "Enable plugin for all releases by default" msgstr "" @@ -31,63 +35,55 @@ msgstr "" msgid "Remove specific release information..." msgstr "" -#: contrib/plugins/open_in_gui.py:32 -msgid "Open Error" +#: contrib/plugins/standardise_performers.py:3 +msgid "Standardise Performers" msgstr "" -#: contrib/plugins/open_in_gui.py:32 -#, python-format -msgid "" -"Error while opening file:\n" -"\n" -"%s" -msgstr "" - -#: contrib/plugins/lastfm/ui_options_lastfm.py:117 +#: contrib/plugins/lastfm/ui_options_lastfm.py:99 msgid "Last.fm" msgstr "" -#: contrib/plugins/lastfm/ui_options_lastfm.py:118 +#: contrib/plugins/lastfm/ui_options_lastfm.py:100 msgid "Use track tags" msgstr "" -#: contrib/plugins/lastfm/ui_options_lastfm.py:119 +#: contrib/plugins/lastfm/ui_options_lastfm.py:101 msgid "Use artist tags" msgstr "" -#: contrib/plugins/lastfm/ui_options_lastfm.py:120 +#: contrib/plugins/lastfm/ui_options_lastfm.py:102 #: picard/ui/options/tags.py:30 msgid "Tags" msgstr "Fájl infók" -#: contrib/plugins/lastfm/ui_options_lastfm.py:121 -#: picard/ui/ui_options_folksonomy.py:116 +#: contrib/plugins/lastfm/ui_options_lastfm.py:103 +#: picard/ui/ui_options_folksonomy.py:103 msgid "Ignore tags:" msgstr "Mellőzött cimkék:" -#: contrib/plugins/lastfm/ui_options_lastfm.py:122 -#: picard/ui/ui_options_folksonomy.py:121 +#: contrib/plugins/lastfm/ui_options_lastfm.py:104 +#: picard/ui/ui_options_folksonomy.py:108 msgid "Join multiple tags with:" msgstr "" -#: contrib/plugins/lastfm/ui_options_lastfm.py:123 -#: picard/ui/ui_options_folksonomy.py:122 +#: contrib/plugins/lastfm/ui_options_lastfm.py:105 +#: picard/ui/ui_options_folksonomy.py:109 msgid " / " msgstr " / " -#: contrib/plugins/lastfm/ui_options_lastfm.py:124 -#: picard/ui/ui_options_folksonomy.py:123 +#: contrib/plugins/lastfm/ui_options_lastfm.py:106 +#: picard/ui/ui_options_folksonomy.py:110 msgid ", " msgstr ", " -#: contrib/plugins/lastfm/ui_options_lastfm.py:125 -#: picard/ui/ui_options_folksonomy.py:118 +#: contrib/plugins/lastfm/ui_options_lastfm.py:107 +#: picard/ui/ui_options_folksonomy.py:105 msgid "Minimal tag usage:" msgstr "Minimális cimkehasználat:" -#: contrib/plugins/lastfm/ui_options_lastfm.py:126 -#: picard/ui/ui_options_folksonomy.py:119 picard/ui/ui_options_matching.py:88 -#: picard/ui/ui_options_matching.py:89 picard/ui/ui_options_matching.py:90 +#: contrib/plugins/lastfm/ui_options_lastfm.py:108 +#: picard/ui/ui_options_folksonomy.py:106 picard/ui/ui_options_matching.py:75 +#: picard/ui/ui_options_matching.py:76 picard/ui/ui_options_matching.py:77 msgid " %" msgstr " %" @@ -95,420 +91,307 @@ msgstr " %" msgid "Calculate replay &gain..." msgstr "" -#: contrib/plugins/replaygain/__init__.py:66 +#: contrib/plugins/replaygain/__init__.py:67 #, python-format -msgid "Calculating replay gain for \"%s\"..." +msgid "Calculating replay gain for \"%(filename)s\"..." msgstr "" -#: contrib/plugins/replaygain/__init__.py:71 +#: contrib/plugins/replaygain/__init__.py:75 #, python-format -msgid "Replay gain for \"%s\" successfully calculated." +msgid "Replay gain for \"%(filename)s\" successfully calculated." msgstr "" -#: contrib/plugins/replaygain/__init__.py:73 +#: contrib/plugins/replaygain/__init__.py:80 #, python-format -msgid "Could not calculate replay gain for \"%s\"." +msgid "Could not calculate replay gain for \"%(filename)s\"." msgstr "" -#: contrib/plugins/replaygain/__init__.py:76 +#: contrib/plugins/replaygain/__init__.py:85 msgid "Calculate album &gain..." msgstr "" -#: contrib/plugins/replaygain/__init__.py:103 -#: contrib/plugins/replaygain/__init__.py:111 +#: contrib/plugins/replaygain/__init__.py:113 +#: contrib/plugins/replaygain/__init__.py:124 #, python-format -msgid "Calculating album gain for \"%s\"..." +msgid "Calculating album gain for \"%(album)s\"..." msgstr "" -#: contrib/plugins/replaygain/__init__.py:119 +#: contrib/plugins/replaygain/__init__.py:135 #, python-format -msgid "Album gain for \"%s\" successfully calculated." +msgid "Album gain for \"%(album)s\" successfully calculated." msgstr "" -#: contrib/plugins/replaygain/__init__.py:121 +#: contrib/plugins/replaygain/__init__.py:140 #, python-format -msgid "Could not calculate album gain for \"%s\"." +msgid "Could not calculate album gain for \"%(album)s\"." msgstr "" -#: picard/acoustid.py:102 -#, python-format -msgid "AcoustID lookup network error for '%s'!" +#: contrib/plugins/replaygain/ui_options_replaygain.py:59 +msgid "Replay Gain" msgstr "" -#: picard/acoustid.py:117 -#, python-format -msgid "AcoustID lookup failed for '%s'!" +#: contrib/plugins/replaygain/ui_options_replaygain.py:60 +msgid "Path to VorbisGain:" msgstr "" -#: picard/acoustid.py:128 -#, python-format -msgid "Acoustid lookup returned no result for file '%s'" +#: contrib/plugins/replaygain/ui_options_replaygain.py:61 +msgid "Path to MP3Gain:" msgstr "" -#: picard/acoustid.py:132 -#, python-format -msgid "Looking up the fingerprint for file %s..." -msgstr "Ujjlenyomat lekérdezése %s fájlhoz..." - -#: picard/acoustidmanager.py:78 -msgid "Submitting AcoustIDs..." +#: contrib/plugins/replaygain/ui_options_replaygain.py:62 +msgid "Path to metaflac:" msgstr "" -#: picard/acoustidmanager.py:83 -#, python-format -msgid "AcoustID submission failed with error '%s'" +#: contrib/plugins/replaygain/ui_options_replaygain.py:63 +msgid "Path to wvgain:" msgstr "" -#: picard/acoustidmanager.py:85 +#: contrib/plugins/viewvariables/__init__.py:42 +#, python-format +msgid "File: %s" +msgstr "" + +#: contrib/plugins/viewvariables/__init__.py:47 +#, python-format +msgid "Track: %s %s " +msgstr "" + +#: contrib/plugins/viewvariables/__init__.py:49 +msgid "Variables" +msgstr "" + +#: contrib/plugins/viewvariables/__init__.py:69 +msgid "File variables" +msgstr "" + +#: contrib/plugins/viewvariables/__init__.py:74 +msgid "Hidden variables" +msgstr "" + +#: contrib/plugins/viewvariables/__init__.py:79 +msgid "Tag variables" +msgstr "" + +#: contrib/plugins/viewvariables/ui_variables_dialog.py:73 +msgid "Variable" +msgstr "" + +#: contrib/plugins/viewvariables/ui_variables_dialog.py:75 +msgid "Value" +msgstr "" + +#: picard/acoustid.py:109 +#, python-format +msgid "AcoustID lookup network error for '%(filename)s'!" +msgstr "" + +#: picard/acoustid.py:133 +#, python-format +msgid "AcoustID lookup failed for '%(filename)s'!" +msgstr "" + +#: picard/acoustid.py:155 +#, python-format +msgid "AcoustID lookup returned no result for file '%(filename)s'" +msgstr "" + +#: picard/acoustid.py:166 +#, python-format +msgid "Looking up the fingerprint for file '%(filename)s' ..." +msgstr "" + +#: picard/acoustidmanager.py:80 +msgid "Submitting AcoustIDs ..." +msgstr "" + +#: picard/acoustidmanager.py:94 +#, python-format +msgid "AcoustID submission failed with error '%(error)s'" +msgstr "" + +#: picard/acoustidmanager.py:102 msgid "AcoustIDs successfully submitted." msgstr "" -#: picard/album.py:64 picard/cluster.py:234 +#: picard/album.py:65 picard/cluster.py:255 msgid "Unmatched Files" msgstr "Nem egyező fájlok" -#: picard/album.py:187 +#: picard/album.py:188 #, python-format msgid "[could not load album %s]" msgstr "[nem tölthető be %s album]" -#: picard/album.py:272 +#: picard/album.py:277 #, python-format -msgid "Album %s loaded" +msgid "Album %(id)s loaded: %(artist)s - %(album)s" msgstr "" -#: picard/album.py:288 +#: picard/album.py:294 +#, python-format +msgid "Loading album %(id)s ..." +msgstr "" + +#: picard/album.py:303 msgid "[loading album information]" msgstr "[albuminformáció betöltése]" -#: picard/album.py:463 +#: picard/album.py:478 #, python-format msgid "; %i image" msgid_plural "; %i images" msgstr[0] "" msgstr[1] "" -#: picard/cluster.py:150 picard/cluster.py:159 +#: picard/cluster.py:155 picard/cluster.py:168 #, python-format -msgid "No matching releases for cluster %s" -msgstr "Nincs egyező kiadás %s csoporthoz." - -#: picard/cluster.py:161 -#, python-format -msgid "Cluster %s identified!" -msgstr "%s csoport azonosítva!" - -#: picard/cluster.py:168 -#, python-format -msgid "Looking up the metadata for cluster %s..." -msgstr "Metaadatok lekérdezése a %s csoportról..." - -#: picard/collection.py:60 -#, python-format -msgid "Added %i release to collection \"%s\"" -msgid_plural "Added %i releases to collection \"%s\"" -msgstr[0] "" -msgstr[1] "" - -#: picard/collection.py:72 -#, python-format -msgid "Removed %i release from collection \"%s\"" -msgid_plural "Removed %i releases from collection \"%s\"" -msgstr[0] "" -msgstr[1] "" - -#: picard/collection.py:81 -#, python-format -msgid "Error loading collections: %s" +msgid "No matching releases for cluster %(album)s" msgstr "" -#: picard/config_upgrade.py:57 picard/config_upgrade.py:70 +#: picard/cluster.py:174 +#, python-format +msgid "Cluster %(album)s identified!" +msgstr "" + +#: picard/cluster.py:185 +#, python-format +msgid "Looking up the metadata for cluster %(album)s..." +msgstr "" + +#: picard/collection.py:64 +#, python-format +msgid "Added %(count)i release to collection \"%(name)s\"" +msgid_plural "Added %(count)i releases to collection \"%(name)s\"" +msgstr[0] "" +msgstr[1] "" + +#: picard/collection.py:86 +#, python-format +msgid "Removed %(count)i release from collection \"%(name)s\"" +msgid_plural "Removed %(count)i releases from collection \"%(name)s\"" +msgstr[0] "" +msgstr[1] "" + +#: picard/collection.py:100 +#, python-format +msgid "Error loading collections: %(error)s" +msgstr "" + +#: picard/config_upgrade.py:58 picard/config_upgrade.py:71 msgid "Various Artists file naming scheme removal" msgstr "" -#: picard/config_upgrade.py:58 +#: picard/config_upgrade.py:59 msgid "" "The separate file naming scheme for various artists albums has been removed in this version of Picard.\n" "Your file naming scheme has automatically been merged with that of single artist albums." msgstr "" -#: picard/config_upgrade.py:71 +#: picard/config_upgrade.py:72 msgid "" "The separate file naming scheme for various artists albums has been removed in this version of Picard.\n" "You currently do not use this option, but have a separate file naming scheme defined.\n" "Do you want to remove it or merge it with your file naming scheme for single artist albums?" msgstr "" -#: picard/config_upgrade.py:77 +#: picard/config_upgrade.py:78 msgid "Merge" msgstr "" -#: picard/config_upgrade.py:77 picard/ui/metadatabox.py:254 +#: picard/config_upgrade.py:78 picard/ui/metadatabox.py:254 msgid "Remove" msgstr "" -#: picard/const.py:67 -msgid "CD" -msgstr "CD" - -#: picard/const.py:68 -msgid "CD-R" -msgstr "" - -#: picard/const.py:69 -msgid "HDCD" -msgstr "" - -#: picard/const.py:70 -msgid "8cm CD" -msgstr "" - -#: picard/const.py:71 -msgid "Vinyl" -msgstr "Bakelit" - -#: picard/const.py:72 -msgid "7\" Vinyl" -msgstr "" - -#: picard/const.py:73 -msgid "10\" Vinyl" -msgstr "" - -#: picard/const.py:74 -msgid "12\" Vinyl" -msgstr "" - -#: picard/const.py:75 -msgid "Digital Media" -msgstr "Digitális média" - -#: picard/const.py:76 -msgid "USB Flash Drive" -msgstr "" - -#: picard/const.py:77 -msgid "slotMusic" -msgstr "" - -#: picard/const.py:78 -msgid "Cassette" -msgstr "Kazetta" - -#: picard/const.py:79 -msgid "DVD" -msgstr "DVD" - -#: picard/const.py:80 -msgid "DVD-Audio" -msgstr "" - -#: picard/const.py:81 -msgid "DVD-Video" -msgstr "" - -#: picard/const.py:82 -msgid "SACD" -msgstr "SA-CD" - -#: picard/const.py:83 -msgid "DualDisc" -msgstr "" - -#: picard/const.py:84 -msgid "MiniDisc" -msgstr "MiniDisc" - -#: picard/const.py:85 -msgid "Blu-ray" -msgstr "" - -#: picard/const.py:86 -msgid "HD-DVD" -msgstr "" - -#: picard/const.py:87 -msgid "Videotape" -msgstr "" - -#: picard/const.py:88 -msgid "VHS" -msgstr "" - -#: picard/const.py:89 -msgid "Betamax" -msgstr "" - #: picard/const.py:90 -msgid "VCD" -msgstr "" - -#: picard/const.py:91 -msgid "SVCD" -msgstr "" - -#: picard/const.py:92 -msgid "UMD" -msgstr "" - -#: picard/const.py:93 picard/coverartarchive.py:33 -#: picard/ui/ui_options_releases.py:226 -msgid "Other" -msgstr "Egyéb" - -#: picard/const.py:94 -msgid "LaserDisc" -msgstr "LaserDisc" - -#: picard/const.py:95 -msgid "Cartridge" -msgstr "" - -#: picard/const.py:96 -msgid "Reel-to-reel" -msgstr "" - -#: picard/const.py:97 -msgid "DAT" -msgstr "DAT" - -#: picard/const.py:98 -msgid "Wax Cylinder" -msgstr "Bakelitlemez" - -#: picard/const.py:99 -msgid "Piano Roll" -msgstr "Gépzongora" - -#: picard/const.py:100 -msgid "DCC" -msgstr "" - -#: picard/const.py:115 msgid "Danish" msgstr "" -#: picard/const.py:116 +#: picard/const.py:91 msgid "German" msgstr "Német" -#: picard/const.py:118 +#: picard/const.py:93 msgid "English" msgstr "Angol" -#: picard/const.py:119 +#: picard/const.py:94 msgid "English (Canada)" msgstr "Angol (Kanadai)" -#: picard/const.py:120 +#: picard/const.py:95 msgid "English (UK)" msgstr "Angol (Brit)" -#: picard/const.py:122 +#: picard/const.py:97 msgid "Spanish" msgstr "Spanyol" -#: picard/const.py:123 +#: picard/const.py:98 msgid "Estonian" msgstr "Észt" -#: picard/const.py:125 +#: picard/const.py:100 msgid "Finnish" msgstr "Finn" -#: picard/const.py:127 +#: picard/const.py:102 msgid "French" msgstr "Francia" -#: picard/const.py:136 +#: picard/const.py:111 msgid "Italian" msgstr "Olasz" -#: picard/const.py:143 +#: picard/const.py:118 msgid "Dutch" msgstr "Holland" -#: picard/const.py:145 +#: picard/const.py:120 msgid "Polish" msgstr "Lengyel" -#: picard/const.py:147 +#: picard/const.py:122 msgid "Brazilian Portuguese" msgstr "Portugál (brazil)" -#: picard/const.py:154 +#: picard/const.py:129 msgid "Swedish" msgstr "Svéd" -#: picard/coverart.py:84 +#: picard/coverart.py:85 #, python-format -msgid "Coverart %s downloaded" +msgid "Cover art of type '%(type)s' downloaded for %(albumid)s from %(host)s" msgstr "" -#: picard/coverart.py:240 +#: picard/coverart.py:256 #, python-format -msgid "Downloading http://%s:%i%s" -msgstr "" - -#: picard/coverartarchive.py:24 -msgid "Front" -msgstr "" - -#: picard/coverartarchive.py:25 -msgid "Back" -msgstr "" - -#: picard/coverartarchive.py:26 -msgid "Booklet" -msgstr "" - -#: picard/coverartarchive.py:27 -msgid "Medium" -msgstr "" - -#: picard/coverartarchive.py:28 -msgid "Tray" -msgstr "" - -#: picard/coverartarchive.py:29 -msgid "Obi" +msgid "" +"Downloading cover art of type '%(type)s' for %(albumid)s from %(host)s .." msgstr "" #: picard/coverartarchive.py:30 -msgid "Spine" -msgstr "" - -#: picard/coverartarchive.py:31 picard/ui/mainwindow.py:546 -msgid "Track" -msgstr "Szám" - -#: picard/coverartarchive.py:32 -msgid "Sticker" -msgstr "" - -#: picard/coverartarchive.py:34 msgid "Unknown" msgstr "" -#: picard/file.py:536 +#: picard/file.py:494 #, python-format -msgid "No matching tracks for file %s" -msgstr "%s fájlhoz nem tartozik egyező zeneszám" - -#: picard/file.py:548 -#, python-format -msgid "No matching tracks above the threshold for file %s" +msgid "No matching tracks for file '%(filename)s'" msgstr "" -#: picard/file.py:551 +#: picard/file.py:510 #, python-format -msgid "File %s identified!" -msgstr "%s fájl azonosítva!" +msgid "No matching tracks above the threshold for file '%(filename)s'" +msgstr "" -#: picard/file.py:567 +#: picard/file.py:517 #, python-format -msgid "Looking up the metadata for file %s..." -msgstr "Metaadatok lekérdezése %s fájlhoz..." +msgid "File '%(filename)s' identified!" +msgstr "" + +#: picard/file.py:537 +#, python-format +msgid "Looking up the metadata for file %(filename)s ..." +msgstr "" #: picard/releasegroup.py:53 msgid "Tracks" @@ -518,11 +401,11 @@ msgstr "" msgid "Year" msgstr "" -#: picard/releasegroup.py:55 picard/ui/cdlookup.py:34 +#: picard/releasegroup.py:55 picard/ui/cdlookup.py:35 msgid "Country" msgstr "" -#: picard/releasegroup.py:56 picard/util/tags.py:81 +#: picard/releasegroup.py:56 msgid "Format" msgstr "Formátum" @@ -542,16 +425,23 @@ msgstr "" msgid "[no release info]" msgstr "" -#: picard/tagger.py:316 +#: picard/tagger.py:370 #, python-format -msgid "Loading directory %s" +msgid "Adding %(count)d file from '%(directory)s' ..." +msgid_plural "Adding %(count)d files from '%(directory)s' ..." +msgstr[0] "" +msgstr[1] "" + +#: picard/tagger.py:512 +#, python-format +msgid "Removing album %(id)s: %(artist)s - %(album)s" msgstr "" -#: picard/tagger.py:452 +#: picard/tagger.py:528 msgid "CD Lookup Error" msgstr "CD lekérdezési hiba" -#: picard/tagger.py:453 +#: picard/tagger.py:529 #, python-format msgid "" "Error while reading CD:\n" @@ -559,44 +449,43 @@ msgid "" "%s" msgstr "Hiba a CD olvasásakor:\n\n%s" -#: picard/ui/cdlookup.py:34 picard/ui/mainwindow.py:544 -#: picard/ui/ui_options_releases.py:216 picard/util/tags.py:21 +#: picard/ui/cdlookup.py:35 picard/ui/mainwindow.py:597 picard/util/tags.py:21 msgid "Album" msgstr "Album" -#: picard/ui/cdlookup.py:34 picard/ui/itemviews.py:96 -#: picard/ui/mainwindow.py:545 picard/util/tags.py:22 +#: picard/ui/cdlookup.py:35 picard/ui/itemviews.py:96 +#: picard/ui/mainwindow.py:598 picard/util/tags.py:22 msgid "Artist" msgstr "Előadó" -#: picard/ui/cdlookup.py:34 picard/util/tags.py:24 +#: picard/ui/cdlookup.py:35 picard/util/tags.py:24 msgid "Date" msgstr "Dátum" -#: picard/ui/cdlookup.py:35 +#: picard/ui/cdlookup.py:36 msgid "Labels" msgstr "" -#: picard/ui/cdlookup.py:35 +#: picard/ui/cdlookup.py:36 msgid "Catalog #s" msgstr "" -#: picard/ui/cdlookup.py:35 picard/util/tags.py:79 +#: picard/ui/cdlookup.py:36 picard/util/tags.py:78 msgid "Barcode" msgstr "Vonalkód" -#: picard/ui/collectionmenu.py:31 +#: picard/ui/collectionmenu.py:42 msgid "Refresh List" msgstr "" -#: picard/ui/collectionmenu.py:92 +#: picard/ui/collectionmenu.py:86 #, python-format msgid "%s (%i release)" msgid_plural "%s (%i releases)" msgstr[0] "" msgstr[1] "" -#: picard/ui/coverartbox.py:142 +#: picard/ui/coverartbox.py:141 msgid "View release on MusicBrainz" msgstr "" @@ -612,59 +501,59 @@ msgstr "&Rejtett fájlok megjelenítése" msgid "&Set as starting directory" msgstr "" -#: picard/ui/infodialog.py:36 picard/ui/infodialog.py:75 +#: picard/ui/infodialog.py:37 picard/ui/infodialog.py:80 msgid "Info" msgstr "" -#: picard/ui/infodialog.py:80 +#: picard/ui/infodialog.py:85 msgid "Filename:" msgstr "Fájlnév:" -#: picard/ui/infodialog.py:82 +#: picard/ui/infodialog.py:87 msgid "Format:" msgstr "Formátum:" -#: picard/ui/infodialog.py:86 +#: picard/ui/infodialog.py:91 msgid "Size:" msgstr "Méret:" -#: picard/ui/infodialog.py:90 +#: picard/ui/infodialog.py:95 msgid "Length:" msgstr "Hossz:" -#: picard/ui/infodialog.py:92 +#: picard/ui/infodialog.py:97 msgid "Bitrate:" msgstr "Bitráta:" -#: picard/ui/infodialog.py:94 +#: picard/ui/infodialog.py:99 msgid "Sample rate:" msgstr "Mintavételi frekvencia:" -#: picard/ui/infodialog.py:96 +#: picard/ui/infodialog.py:101 msgid "Bits per sample:" msgstr "Bitek mintánként:" -#: picard/ui/infodialog.py:100 +#: picard/ui/infodialog.py:105 msgid "Mono" msgstr "Mono" -#: picard/ui/infodialog.py:102 +#: picard/ui/infodialog.py:107 msgid "Stereo" msgstr "Sztereó" -#: picard/ui/infodialog.py:105 +#: picard/ui/infodialog.py:110 msgid "Channels:" msgstr "Csatornák:" -#: picard/ui/infodialog.py:116 +#: picard/ui/infodialog.py:121 msgid "Album Info" msgstr "" -#: picard/ui/infodialog.py:124 +#: picard/ui/infodialog.py:129 msgid "&Errors" msgstr "" -#: picard/ui/infodialog.py:134 picard/ui/ui_infodialog.py:77 +#: picard/ui/infodialog.py:139 picard/ui/ui_infodialog.py:73 msgid "&Info" msgstr "&Információ" @@ -688,7 +577,7 @@ msgstr "" msgid "Title" msgstr "Cím" -#: picard/ui/itemviews.py:95 picard/util/tags.py:88 +#: picard/ui/itemviews.py:95 picard/util/tags.py:86 msgid "Length" msgstr "Hossz" @@ -713,8 +602,8 @@ msgid "Collections" msgstr "" #: picard/ui/itemviews.py:365 -msgid "&Plugins" -msgstr "Bő&vítmények" +msgid "P&lugins" +msgstr "" #: picard/ui/itemviews.py:541 msgid "file view" @@ -736,12 +625,16 @@ msgstr "" msgid "Contains albums and matched files" msgstr "" -#: picard/ui/logview.py:91 +#: picard/ui/logview.py:109 msgid "Log" msgstr "Napló" -#: picard/ui/logview.py:99 -msgid "Status History" +#: picard/ui/logview.py:113 +msgid "Debug mode" +msgstr "" + +#: picard/ui/logview.py:134 +msgid "Activity History" msgstr "" #: picard/ui/mainwindow.py:74 @@ -775,276 +668,309 @@ msgstr "" #: picard/ui/mainwindow.py:220 msgid "" -"Picard listens on a port to integrate with your browser and downloads " -"release information when you click the \"Tagger\" buttons on the MusicBrainz" -" website" +"Picard listens on this port to integrate with your browser. When you " +"\"Search\" or \"Open in Browser\" from Picard, clicking the \"Tagger\" " +"button on the web page loads the release into Picard." msgstr "" -#: picard/ui/mainwindow.py:240 +#: picard/ui/mainwindow.py:243 #, python-format msgid " Listening on port %(port)d " msgstr "" -#: picard/ui/mainwindow.py:263 +#: picard/ui/mainwindow.py:299 msgid "Submission Error" msgstr "" -#: picard/ui/mainwindow.py:264 +#: picard/ui/mainwindow.py:300 msgid "" "You need to configure your AcoustID API key before you can submit " "fingerprints." msgstr "" -#: picard/ui/mainwindow.py:269 +#: picard/ui/mainwindow.py:305 msgid "&Options..." msgstr "&Beállítások..." -#: picard/ui/mainwindow.py:273 +#: picard/ui/mainwindow.py:309 msgid "&Cut" msgstr "&Kivágás" -#: picard/ui/mainwindow.py:278 +#: picard/ui/mainwindow.py:314 msgid "&Paste" msgstr "&Beillesztés" -#: picard/ui/mainwindow.py:283 +#: picard/ui/mainwindow.py:319 msgid "&Help..." msgstr "&Segítség..." -#: picard/ui/mainwindow.py:288 +#: picard/ui/mainwindow.py:323 msgid "&About..." msgstr "&Névjegy..." -#: picard/ui/mainwindow.py:292 +#: picard/ui/mainwindow.py:327 msgid "&Donate..." msgstr "&Adomány..." -#: picard/ui/mainwindow.py:295 +#: picard/ui/mainwindow.py:330 msgid "&Report a Bug..." msgstr "&Hiba jelentése..." -#: picard/ui/mainwindow.py:298 +#: picard/ui/mainwindow.py:333 msgid "&Support Forum..." msgstr "&Támogatói Fórum..." -#: picard/ui/mainwindow.py:301 +#: picard/ui/mainwindow.py:336 msgid "&Add Files..." msgstr "&Fájlok hozzáadása..." -#: picard/ui/mainwindow.py:302 +#: picard/ui/mainwindow.py:337 msgid "Add files to the tagger" msgstr "Fájlok hozzáadása a cimkézőhöz" -#: picard/ui/mainwindow.py:307 +#: picard/ui/mainwindow.py:342 msgid "A&dd Folder..." msgstr "Könyvtár &hozzáadása..." -#: picard/ui/mainwindow.py:308 +#: picard/ui/mainwindow.py:343 msgid "Add a folder to the tagger" msgstr "Könyvtár megadása a cimkézőnek" -#: picard/ui/mainwindow.py:310 +#: picard/ui/mainwindow.py:345 msgid "Ctrl+D" msgstr "Ctrl+D" -#: picard/ui/mainwindow.py:313 +#: picard/ui/mainwindow.py:348 msgid "&Save" msgstr "&Mentés" -#: picard/ui/mainwindow.py:314 +#: picard/ui/mainwindow.py:349 msgid "Save selected files" msgstr "Kiválasztott fájlok mentése" -#: picard/ui/mainwindow.py:320 +#: picard/ui/mainwindow.py:355 msgid "S&ubmit" msgstr "" -#: picard/ui/mainwindow.py:321 -msgid "Submit fingerprints" +#: picard/ui/mainwindow.py:356 +msgid "Submit acoustic fingerprints" msgstr "" -#: picard/ui/mainwindow.py:325 +#: picard/ui/mainwindow.py:360 msgid "E&xit" msgstr "K&ilépés" -#: picard/ui/mainwindow.py:328 +#: picard/ui/mainwindow.py:363 msgid "Ctrl+Q" msgstr "Ctrl+Q" -#: picard/ui/mainwindow.py:331 +#: picard/ui/mainwindow.py:366 msgid "&Remove" msgstr "&Eltávolítás" -#: picard/ui/mainwindow.py:332 +#: picard/ui/mainwindow.py:367 msgid "Remove selected files/albums" msgstr "Kijelölt fájlok/albumok eltávolítása" -#: picard/ui/mainwindow.py:336 +#: picard/ui/mainwindow.py:371 msgid "Lookup in &Browser" msgstr "" -#: picard/ui/mainwindow.py:337 +#: picard/ui/mainwindow.py:372 msgid "Lookup selected item on MusicBrainz website" msgstr "" -#: picard/ui/mainwindow.py:341 +#: picard/ui/mainwindow.py:376 msgid "File &Browser" msgstr "Fájl&böngésző" -#: picard/ui/mainwindow.py:345 +#: picard/ui/mainwindow.py:380 msgid "Ctrl+B" msgstr "Ctrl+B" -#: picard/ui/mainwindow.py:348 +#: picard/ui/mainwindow.py:383 msgid "&Cover Art" msgstr "&Borítókép" -#: picard/ui/mainwindow.py:354 picard/ui/mainwindow.py:539 +#: picard/ui/mainwindow.py:389 picard/ui/mainwindow.py:591 msgid "Search" msgstr "Keresés" -#: picard/ui/mainwindow.py:357 -msgid "&CD Lookup..." -msgstr "&CD keresés..." +#: picard/ui/mainwindow.py:392 +msgid "Lookup &CD..." +msgstr "" -#: picard/ui/mainwindow.py:358 picard/ui/mainwindow.py:359 -msgid "Lookup CD" -msgstr "CD keresése" +#: picard/ui/mainwindow.py:393 +msgid "Lookup the details of the CD in your drive" +msgstr "" -#: picard/ui/mainwindow.py:361 +#: picard/ui/mainwindow.py:395 msgid "Ctrl+K" msgstr "Ctrl+K" -#: picard/ui/mainwindow.py:364 +#: picard/ui/mainwindow.py:398 msgid "&Scan" msgstr "K&eresés" -#: picard/ui/mainwindow.py:367 +#: picard/ui/mainwindow.py:401 msgid "Ctrl+Y" msgstr "Ctrl+Y" -#: picard/ui/mainwindow.py:370 +#: picard/ui/mainwindow.py:404 msgid "Cl&uster" msgstr "&Csoport" -#: picard/ui/mainwindow.py:373 +#: picard/ui/mainwindow.py:407 msgid "Ctrl+U" msgstr "Ctrl+U" -#: picard/ui/mainwindow.py:376 +#: picard/ui/mainwindow.py:410 msgid "&Lookup" msgstr "&Lekérdezés" -#: picard/ui/mainwindow.py:377 picard/ui/mainwindow.py:378 -msgid "Lookup metadata" -msgstr "Metaadatok lekérdezése" +#: picard/ui/mainwindow.py:411 +msgid "Lookup selected items in MusicBrainz" +msgstr "" -#: picard/ui/mainwindow.py:381 +#: picard/ui/mainwindow.py:416 msgid "Ctrl+L" msgstr "Ctrl+L" -#: picard/ui/mainwindow.py:384 +#: picard/ui/mainwindow.py:419 msgid "&Info..." msgstr "" -#: picard/ui/mainwindow.py:387 +#: picard/ui/mainwindow.py:422 msgid "Ctrl+I" msgstr "" -#: picard/ui/mainwindow.py:390 +#: picard/ui/mainwindow.py:425 msgid "&Refresh" msgstr "&Frissítés" -#: picard/ui/mainwindow.py:391 +#: picard/ui/mainwindow.py:426 msgid "Ctrl+R" msgstr "" -#: picard/ui/mainwindow.py:394 +#: picard/ui/mainwindow.py:429 msgid "&Rename Files" msgstr "&Fájlok átnevezése" -#: picard/ui/mainwindow.py:399 +#: picard/ui/mainwindow.py:434 msgid "&Move Files" msgstr "&Fájlok mozgatása" -#: picard/ui/mainwindow.py:404 +#: picard/ui/mainwindow.py:439 msgid "Save &Tags" msgstr "&Cimkék mentése" -#: picard/ui/mainwindow.py:409 +#: picard/ui/mainwindow.py:444 msgid "Tags From &File Names..." msgstr "" -#: picard/ui/mainwindow.py:412 -msgid "View &Log..." -msgstr "&Napló megtekintése..." - -#: picard/ui/mainwindow.py:415 -msgid "View Status &History..." +#: picard/ui/mainwindow.py:447 +msgid "&Open My Collections in Browser" msgstr "" -#: picard/ui/mainwindow.py:422 -msgid "&Open..." +#: picard/ui/mainwindow.py:451 +msgid "View Error/Debug &Log" msgstr "" -#: picard/ui/mainwindow.py:423 -msgid "Open the file" +#: picard/ui/mainwindow.py:454 +msgid "View Activity &History" msgstr "" -#: picard/ui/mainwindow.py:426 -msgid "Open &Folder..." +#: picard/ui/mainwindow.py:461 +msgid "&Play file" msgstr "" -#: picard/ui/mainwindow.py:427 -msgid "Open the containing folder" +#: picard/ui/mainwindow.py:462 +msgid "Play the file in your default media player" msgstr "" -#: picard/ui/mainwindow.py:448 +#: picard/ui/mainwindow.py:466 +msgid "Open Containing &Folder" +msgstr "" + +#: picard/ui/mainwindow.py:467 +msgid "Open the containing folder in your file explorer" +msgstr "" + +#: picard/ui/mainwindow.py:492 msgid "&File" msgstr "&Fájl" -#: picard/ui/mainwindow.py:456 +#: picard/ui/mainwindow.py:503 msgid "&Edit" msgstr "&Szerkesztés" -#: picard/ui/mainwindow.py:462 +#: picard/ui/mainwindow.py:509 msgid "&View" msgstr "&Nézet" -#: picard/ui/mainwindow.py:470 +#: picard/ui/mainwindow.py:515 msgid "&Options" msgstr "&Beállítások" -#: picard/ui/mainwindow.py:476 +#: picard/ui/mainwindow.py:521 msgid "&Tools" msgstr "&Eszközök" -#: picard/ui/mainwindow.py:485 picard/ui/util.py:35 +#: picard/ui/mainwindow.py:532 picard/ui/util.py:35 msgid "&Help" msgstr "Segítség" -#: picard/ui/mainwindow.py:505 +#: picard/ui/mainwindow.py:553 msgid "Actions" msgstr "" -#: picard/ui/mainwindow.py:608 +#: picard/ui/mainwindow.py:599 +msgid "Track" +msgstr "Szám" + +#: picard/ui/mainwindow.py:662 msgid "All Supported Formats" msgstr "Minden támogatott formátum" -#: picard/ui/mainwindow.py:705 +#: picard/ui/mainwindow.py:695 +#, python-format +msgid "Adding directory: '%(directory)s' ..." +msgstr "" + +#: picard/ui/mainwindow.py:702 +#, python-format +msgid "Adding multiple directories from '%(directory)s' ..." +msgstr "" + +#: picard/ui/mainwindow.py:767 msgid "Configuration Required" msgstr "" -#: picard/ui/mainwindow.py:706 +#: picard/ui/mainwindow.py:768 msgid "" "Audio fingerprinting is not yet configured. Would you like to configure it " "now?" msgstr "" -#: picard/ui/mainwindow.py:784 picard/ui/mainwindow.py:791 +#: picard/ui/mainwindow.py:848 #, python-format -msgid " (Error: %s)" -msgstr " (Hiba: %s)" +msgid "%(filename)s (error: %(error)s)" +msgstr "" + +#: picard/ui/mainwindow.py:854 +#, python-format +msgid "%(filename)s" +msgstr "" + +#: picard/ui/mainwindow.py:864 +#, python-format +msgid "%(filename)s (%(similarity)d%%) (error: %(error)s)" +msgstr "" + +#: picard/ui/mainwindow.py:871 +#, python-format +msgid "%(filename)s (%(similarity)d%%)" +msgstr "" #: picard/ui/metadatabox.py:82 #, python-format @@ -1098,387 +1024,387 @@ msgid_plural "Use Original Values" msgstr[0] "" msgstr[1] "" -#: picard/ui/passworddialog.py:37 +#: picard/ui/passworddialog.py:40 #, python-format msgid "" "The server %s requires you to login. Please enter your username and " "password." msgstr "%s kiszolgálóra be kell jelentkezni. Kérem adja meg a nevét és a kódszót." -#: picard/ui/passworddialog.py:75 +#: picard/ui/passworddialog.py:79 #, python-format msgid "" "The proxy %s requires you to login. Please enter your username and password." msgstr "" -#: picard/ui/tagsfromfilenames.py:55 picard/ui/tagsfromfilenames.py:100 +#: picard/ui/tagsfromfilenames.py:56 picard/ui/tagsfromfilenames.py:101 msgid "File Name" msgstr "Fájlnév" -#: picard/ui/ui_cdlookup.py:66 picard/ui/ui_options_cdlookup.py:55 -#: picard/ui/ui_options_cdlookup_select.py:62 picard/ui/options/cdlookup.py:38 +#: picard/ui/ui_cdlookup.py:53 picard/ui/ui_options_cdlookup.py:42 +#: picard/ui/ui_options_cdlookup_select.py:49 picard/ui/options/cdlookup.py:38 msgid "CD Lookup" msgstr "CD infó keresése" -#: picard/ui/ui_cdlookup.py:67 +#: picard/ui/ui_cdlookup.py:54 msgid "The following releases on MusicBrainz match the CD:" msgstr "" -#: picard/ui/ui_cdlookup.py:68 +#: picard/ui/ui_cdlookup.py:55 msgid "OK" msgstr "OK" -#: picard/ui/ui_cdlookup.py:69 +#: picard/ui/ui_cdlookup.py:56 msgid "Lookup manually" msgstr "" -#: picard/ui/ui_cdlookup.py:70 +#: picard/ui/ui_cdlookup.py:57 msgid "Cancel" msgstr "Mégsem" -#: picard/ui/ui_edittagdialog.py:101 +#: picard/ui/ui_edittagdialog.py:88 msgid "Edit Tag" msgstr "" -#: picard/ui/ui_edittagdialog.py:102 +#: picard/ui/ui_edittagdialog.py:89 msgid "Edit value" msgstr "" -#: picard/ui/ui_edittagdialog.py:103 +#: picard/ui/ui_edittagdialog.py:90 msgid "Add value" msgstr "" -#: picard/ui/ui_edittagdialog.py:104 +#: picard/ui/ui_edittagdialog.py:91 msgid "Remove value" msgstr "" -#: picard/ui/ui_infodialog.py:78 +#: picard/ui/ui_infodialog.py:74 msgid "A&rtwork" msgstr "&Borítóterv" -#: picard/ui/ui_infostatus.py:100 +#: picard/ui/ui_infostatus.py:96 msgid "Form" msgstr "" -#: picard/ui/ui_options.py:51 +#: picard/ui/ui_options.py:38 msgid "Options" msgstr "" -#: picard/ui/ui_options_advanced.py:46 +#: picard/ui/ui_options_advanced.py:42 msgid "Advanced options" msgstr "" -#: picard/ui/ui_options_advanced.py:47 +#: picard/ui/ui_options_advanced.py:43 msgid "Ignore file paths matching the following regular expression:" msgstr "" -#: picard/ui/ui_options_cdlookup.py:56 +#: picard/ui/ui_options_cdlookup.py:43 msgid "CD-ROM device to use for lookups:" msgstr "A lekérdezésekhez használt CD-ROM meghajtó:" -#: picard/ui/ui_options_cdlookup_select.py:63 +#: picard/ui/ui_options_cdlookup_select.py:50 msgid "Default CD-ROM drive to use for lookups:" msgstr "Lekérdezések során használt alapértelmezett CD-ROM meghajtó:" -#: picard/ui/ui_options_cover.py:145 +#: picard/ui/ui_options_cover.py:131 msgid "Location" msgstr "Hely" -#: picard/ui/ui_options_cover.py:146 +#: picard/ui/ui_options_cover.py:132 msgid "Embed cover images into tags" msgstr "Borítókép beágyazása a cimkékbe" -#: picard/ui/ui_options_cover.py:147 +#: picard/ui/ui_options_cover.py:133 msgid "Only embed a front image" msgstr "" -#: picard/ui/ui_options_cover.py:148 +#: picard/ui/ui_options_cover.py:134 msgid "Save cover images as separate files" msgstr "Borítóképek mentése külön fájlba" -#: picard/ui/ui_options_cover.py:149 +#: picard/ui/ui_options_cover.py:135 msgid "Use the following file name for images:" msgstr "" -#: picard/ui/ui_options_cover.py:150 +#: picard/ui/ui_options_cover.py:136 msgid "Overwrite the file if it already exists" msgstr "Létező fájlok felülírása" -#: picard/ui/ui_options_cover.py:151 +#: picard/ui/ui_options_cover.py:137 msgid "Coverart Providers" msgstr "" -#: picard/ui/ui_options_cover.py:152 +#: picard/ui/ui_options_cover.py:138 msgid "Amazon" msgstr "" -#: picard/ui/ui_options_cover.py:153 picard/ui/ui_options_cover.py:155 +#: picard/ui/ui_options_cover.py:139 picard/ui/ui_options_cover.py:141 msgid "Cover Art Archive" msgstr "" -#: picard/ui/ui_options_cover.py:154 +#: picard/ui/ui_options_cover.py:140 msgid "Sites on the whitelist" msgstr "" -#: picard/ui/ui_options_cover.py:156 +#: picard/ui/ui_options_cover.py:142 msgid "Only use images of the following size:" msgstr "" -#: picard/ui/ui_options_cover.py:157 +#: picard/ui/ui_options_cover.py:143 msgid "250 px" msgstr "" -#: picard/ui/ui_options_cover.py:158 +#: picard/ui/ui_options_cover.py:144 msgid "500 px" msgstr "" -#: picard/ui/ui_options_cover.py:159 +#: picard/ui/ui_options_cover.py:145 msgid "Full size" msgstr "" -#: picard/ui/ui_options_cover.py:160 +#: picard/ui/ui_options_cover.py:146 msgid "Download only images of the following types:" msgstr "" -#: picard/ui/ui_options_cover.py:161 +#: picard/ui/ui_options_cover.py:147 msgid "Download only approved images" msgstr "" -#: picard/ui/ui_options_cover.py:162 +#: picard/ui/ui_options_cover.py:148 msgid "" "Use the first image type as the filename. This will not change the filename " "of front images." msgstr "" -#: picard/ui/ui_options_fingerprinting.py:83 +#: picard/ui/ui_options_fingerprinting.py:70 msgid "Audio Fingerprinting" msgstr "" -#: picard/ui/ui_options_fingerprinting.py:84 +#: picard/ui/ui_options_fingerprinting.py:71 msgid "Do not use audio fingerprinting" msgstr "" -#: picard/ui/ui_options_fingerprinting.py:85 +#: picard/ui/ui_options_fingerprinting.py:72 msgid "Use AcoustID" msgstr "" -#: picard/ui/ui_options_fingerprinting.py:86 +#: picard/ui/ui_options_fingerprinting.py:73 msgid "AcoustID Settings" msgstr "" -#: picard/ui/ui_options_fingerprinting.py:87 +#: picard/ui/ui_options_fingerprinting.py:74 msgid "Fingerprint calculator:" msgstr "" -#: picard/ui/ui_options_fingerprinting.py:88 -#: picard/ui/ui_options_interface.py:88 picard/ui/ui_options_renaming.py:138 +#: picard/ui/ui_options_fingerprinting.py:75 +#: picard/ui/ui_options_interface.py:75 picard/ui/ui_options_renaming.py:134 msgid "Browse..." msgstr "Tallózás..." -#: picard/ui/ui_options_fingerprinting.py:89 +#: picard/ui/ui_options_fingerprinting.py:76 msgid "Download..." msgstr "" -#: picard/ui/ui_options_fingerprinting.py:90 +#: picard/ui/ui_options_fingerprinting.py:77 msgid "API key:" msgstr "" -#: picard/ui/ui_options_fingerprinting.py:91 +#: picard/ui/ui_options_fingerprinting.py:78 msgid "Get API key..." msgstr "" -#: picard/ui/ui_options_folksonomy.py:115 picard/ui/options/folksonomy.py:28 +#: picard/ui/ui_options_folksonomy.py:102 picard/ui/options/folksonomy.py:28 msgid "Folksonomy Tags" msgstr "Közösségi cimkék" -#: picard/ui/ui_options_folksonomy.py:117 +#: picard/ui/ui_options_folksonomy.py:104 msgid "Only use my tags" msgstr "Csak saját cimkéim használata" -#: picard/ui/ui_options_folksonomy.py:120 +#: picard/ui/ui_options_folksonomy.py:107 msgid "Maximum number of tags:" msgstr "Cimkék maximális száma:" -#: picard/ui/ui_options_general.py:92 +#: picard/ui/ui_options_general.py:88 msgid "MusicBrainz Server" msgstr "MusicBrainz kiszolgáló" -#: picard/ui/ui_options_general.py:93 picard/ui/ui_options_network.py:123 +#: picard/ui/ui_options_general.py:89 picard/ui/ui_options_network.py:110 msgid "Port:" msgstr "Port:" -#: picard/ui/ui_options_general.py:94 picard/ui/ui_options_network.py:124 +#: picard/ui/ui_options_general.py:90 picard/ui/ui_options_network.py:111 msgid "Server address:" msgstr "A kiszolgáló címe:" -#: picard/ui/ui_options_general.py:95 +#: picard/ui/ui_options_general.py:91 msgid "Account Information" msgstr "Fiókinformációk" -#: picard/ui/ui_options_general.py:96 picard/ui/ui_options_network.py:121 -#: picard/ui/ui_passworddialog.py:74 +#: picard/ui/ui_options_general.py:92 picard/ui/ui_options_network.py:108 +#: picard/ui/ui_passworddialog.py:70 msgid "Password:" msgstr "Jelszó:" -#: picard/ui/ui_options_general.py:97 picard/ui/ui_options_network.py:122 -#: picard/ui/ui_passworddialog.py:73 +#: picard/ui/ui_options_general.py:93 picard/ui/ui_options_network.py:109 +#: picard/ui/ui_passworddialog.py:69 msgid "Username:" msgstr "Felhasználónév:" -#: picard/ui/ui_options_general.py:98 picard/ui/options/general.py:31 +#: picard/ui/ui_options_general.py:94 picard/ui/options/general.py:31 msgid "General" msgstr "Általános" -#: picard/ui/ui_options_general.py:99 +#: picard/ui/ui_options_general.py:95 msgid "Automatically scan all new files" msgstr "Új fájlok automatikus keresése" -#: picard/ui/ui_options_general.py:100 +#: picard/ui/ui_options_general.py:96 msgid "Ignore MBIDs when loading new files" msgstr "" -#: picard/ui/ui_options_interface.py:82 +#: picard/ui/ui_options_interface.py:69 msgid "Miscellaneous" msgstr "Vegyes" -#: picard/ui/ui_options_interface.py:83 +#: picard/ui/ui_options_interface.py:70 msgid "Show text labels under icons" msgstr "Szövegcimkék megjelenítése ikonok alatt" -#: picard/ui/ui_options_interface.py:84 +#: picard/ui/ui_options_interface.py:71 msgid "Allow selection of multiple directories" msgstr "Több mappa kiválasztásának engedélyezése" -#: picard/ui/ui_options_interface.py:85 +#: picard/ui/ui_options_interface.py:72 msgid "Use advanced query syntax" msgstr "Összetett lekérdezés használata" -#: picard/ui/ui_options_interface.py:86 +#: picard/ui/ui_options_interface.py:73 msgid "Show a quit confirmation dialog for unsaved changes" msgstr "" -#: picard/ui/ui_options_interface.py:87 +#: picard/ui/ui_options_interface.py:74 msgid "Begin browsing in the following directory:" msgstr "" -#: picard/ui/ui_options_interface.py:89 +#: picard/ui/ui_options_interface.py:76 msgid "User interface language:" msgstr "Felhasználói felület nyelve:" -#: picard/ui/ui_options_matching.py:86 +#: picard/ui/ui_options_matching.py:73 msgid "Thresholds" msgstr "Küszöbértékek" -#: picard/ui/ui_options_matching.py:87 +#: picard/ui/ui_options_matching.py:74 msgid "Minimal similarity for matching files to tracks:" msgstr "" -#: picard/ui/ui_options_matching.py:91 +#: picard/ui/ui_options_matching.py:78 msgid "Minimal similarity for file lookups:" msgstr "Minimális hasonlóság fájl lekérdezésénél:" -#: picard/ui/ui_options_matching.py:92 +#: picard/ui/ui_options_matching.py:79 msgid "Minimal similarity for cluster lookups:" msgstr "Minimális hasonlóság csoport-lekérdezésnél:" -#: picard/ui/ui_options_metadata.py:114 picard/ui/options/metadata.py:29 +#: picard/ui/ui_options_metadata.py:101 picard/ui/options/metadata.py:29 msgid "Metadata" msgstr "Metaadat" -#: picard/ui/ui_options_metadata.py:115 +#: picard/ui/ui_options_metadata.py:102 msgid "Translate artist names to this locale where possible:" msgstr "" -#: picard/ui/ui_options_metadata.py:116 +#: picard/ui/ui_options_metadata.py:103 msgid "Use standardized artist names" msgstr "" -#: picard/ui/ui_options_metadata.py:117 +#: picard/ui/ui_options_metadata.py:104 msgid "Convert Unicode punctuation characters to ASCII" msgstr "" -#: picard/ui/ui_options_metadata.py:118 +#: picard/ui/ui_options_metadata.py:105 msgid "Use release relationships" msgstr "" -#: picard/ui/ui_options_metadata.py:119 +#: picard/ui/ui_options_metadata.py:106 msgid "Use track relationships" msgstr "Zeneszám összefüggések használata" -#: picard/ui/ui_options_metadata.py:120 +#: picard/ui/ui_options_metadata.py:107 msgid "Use folksonomy tags as genre" msgstr "Küzösség által adott cimkék használata mint műfaj" -#: picard/ui/ui_options_metadata.py:121 +#: picard/ui/ui_options_metadata.py:108 msgid "Custom Fields" msgstr "Egyéni mezők" -#: picard/ui/ui_options_metadata.py:122 +#: picard/ui/ui_options_metadata.py:109 msgid "Various artists:" msgstr "Vegyes előadók:" -#: picard/ui/ui_options_metadata.py:123 +#: picard/ui/ui_options_metadata.py:110 msgid "Non-album tracks:" msgstr "Számok album nélkül:" -#: picard/ui/ui_options_metadata.py:124 picard/ui/ui_options_metadata.py:125 -#: picard/ui/ui_options_renaming.py:147 +#: picard/ui/ui_options_metadata.py:111 picard/ui/ui_options_metadata.py:112 +#: picard/ui/ui_options_renaming.py:143 msgid "Default" msgstr "Alapértelmezett" -#: picard/ui/ui_options_network.py:120 +#: picard/ui/ui_options_network.py:107 msgid "Web Proxy" msgstr "Web Proxy" -#: picard/ui/ui_options_network.py:125 +#: picard/ui/ui_options_network.py:112 msgid "Browser Integration" msgstr "" -#: picard/ui/ui_options_network.py:126 +#: picard/ui/ui_options_network.py:113 msgid "Default listening port:" msgstr "" -#: picard/ui/ui_options_network.py:127 +#: picard/ui/ui_options_network.py:114 msgid "Listen only on localhost" msgstr "" -#: picard/ui/ui_options_plugins.py:131 picard/ui/options/plugins.py:38 +#: picard/ui/ui_options_plugins.py:127 picard/ui/options/plugins.py:38 msgid "Plugins" msgstr "Bővítmények" -#: picard/ui/ui_options_plugins.py:132 picard/ui/options/plugins.py:122 +#: picard/ui/ui_options_plugins.py:128 picard/ui/options/plugins.py:122 msgid "Name" msgstr "Név" -#: picard/ui/ui_options_plugins.py:133 picard/util/tags.py:39 +#: picard/ui/ui_options_plugins.py:129 msgid "Version" msgstr "Verzió" -#: picard/ui/ui_options_plugins.py:134 picard/ui/options/plugins.py:125 +#: picard/ui/ui_options_plugins.py:130 picard/ui/options/plugins.py:125 msgid "Author" msgstr "Szerző" -#: picard/ui/ui_options_plugins.py:135 +#: picard/ui/ui_options_plugins.py:131 msgid "Install plugin..." msgstr "" -#: picard/ui/ui_options_plugins.py:136 +#: picard/ui/ui_options_plugins.py:132 msgid "Open plugin folder" msgstr "Bővítmény-mappa megnyitása" -#: picard/ui/ui_options_plugins.py:137 +#: picard/ui/ui_options_plugins.py:133 msgid "Download plugins" msgstr "Bővítmények letöltése" -#: picard/ui/ui_options_plugins.py:138 +#: picard/ui/ui_options_plugins.py:134 msgid "Details" msgstr "Részletek" -#: picard/ui/ui_options_ratings.py:53 +#: picard/ui/ui_options_ratings.py:49 msgid "Enable track ratings" msgstr "Zeneszámok értékelésének engedélyezése" -#: picard/ui/ui_options_ratings.py:54 +#: picard/ui/ui_options_ratings.py:50 msgid "" "Picard saves the ratings together with an e-mail address identifying the " "user who did the rating. That way different ratings for different users can " @@ -1486,207 +1412,167 @@ msgid "" "your ratings." msgstr "" -#: picard/ui/ui_options_ratings.py:55 +#: picard/ui/ui_options_ratings.py:51 msgid "E-mail:" msgstr "E-mail:" -#: picard/ui/ui_options_ratings.py:56 +#: picard/ui/ui_options_ratings.py:52 msgid "Submit ratings to MusicBrainz" msgstr "Értékelések beküldése a MusicBrainz-nek" -#: picard/ui/ui_options_releases.py:215 +#: picard/ui/ui_options_releases.py:104 msgid "Preferred release types" msgstr "" -#: picard/ui/ui_options_releases.py:217 -msgid "Single" -msgstr "" - -#: picard/ui/ui_options_releases.py:218 -msgid "EP" -msgstr "" - -#: picard/ui/ui_options_releases.py:219 -msgid "Compilation" -msgstr "Válogatás" - -#: picard/ui/ui_options_releases.py:220 -msgid "Soundtrack" -msgstr "" - -#: picard/ui/ui_options_releases.py:221 -msgid "Spokenword" -msgstr "" - -#: picard/ui/ui_options_releases.py:222 -msgid "Interview" -msgstr "" - -#: picard/ui/ui_options_releases.py:223 -msgid "Audiobook" -msgstr "Hangoskönyv" - -#: picard/ui/ui_options_releases.py:224 -msgid "Live" -msgstr "" - -#: picard/ui/ui_options_releases.py:225 -msgid "Remix" -msgstr "" - -#: picard/ui/ui_options_releases.py:227 -msgid "Reset all" -msgstr "" - -#: picard/ui/ui_options_releases.py:228 +#: picard/ui/ui_options_releases.py:105 msgid "Preferred release countries" msgstr "" -#: picard/ui/ui_options_releases.py:229 picard/ui/ui_options_releases.py:232 +#: picard/ui/ui_options_releases.py:106 picard/ui/ui_options_releases.py:109 msgid ">" msgstr "" -#: picard/ui/ui_options_releases.py:230 picard/ui/ui_options_releases.py:233 +#: picard/ui/ui_options_releases.py:107 picard/ui/ui_options_releases.py:110 msgid "<" msgstr "" -#: picard/ui/ui_options_releases.py:231 +#: picard/ui/ui_options_releases.py:108 msgid "Preferred release formats" msgstr "" -#: picard/ui/ui_options_renaming.py:134 +#: picard/ui/ui_options_renaming.py:130 msgid "Rename files when saving" msgstr "Fájlok átnevezése mentéskor" -#: picard/ui/ui_options_renaming.py:135 +#: picard/ui/ui_options_renaming.py:131 msgid "Replace non-ASCII characters" msgstr "Nem-ASCII karakterek helyettesítése" -#: picard/ui/ui_options_renaming.py:136 +#: picard/ui/ui_options_renaming.py:132 msgid "Windows compatibility" msgstr "" -#: picard/ui/ui_options_renaming.py:137 +#: picard/ui/ui_options_renaming.py:133 msgid "Move files to this directory when saving:" msgstr "Fájlok mozgatása ide mentéskor:" -#: picard/ui/ui_options_renaming.py:139 +#: picard/ui/ui_options_renaming.py:135 msgid "Delete empty directories" msgstr "Üres mappák törlése" -#: picard/ui/ui_options_renaming.py:140 +#: picard/ui/ui_options_renaming.py:136 msgid "Move additional files:" msgstr "További fájlok áthelyezése:" -#: picard/ui/ui_options_renaming.py:141 +#: picard/ui/ui_options_renaming.py:137 msgid "Name files like this" msgstr "Fájlok elnevezése ehhez hasonlóan:" -#: picard/ui/ui_options_renaming.py:148 +#: picard/ui/ui_options_renaming.py:144 msgid "Examples" msgstr "Példák" -#: picard/ui/ui_options_script.py:49 +#: picard/ui/ui_options_script.py:45 msgid "Tagger Script" msgstr "Cimkéző parancsfájl" -#: picard/ui/ui_options_tags.py:165 +#: picard/ui/ui_options_tags.py:152 msgid "Write tags to files" msgstr "Cimkék írása a fájlokhoz" -#: picard/ui/ui_options_tags.py:166 +#: picard/ui/ui_options_tags.py:153 msgid "Preserve timestamps of tagged files" msgstr "" -#: picard/ui/ui_options_tags.py:167 +#: picard/ui/ui_options_tags.py:154 msgid "Before Tagging" msgstr "" -#: picard/ui/ui_options_tags.py:168 +#: picard/ui/ui_options_tags.py:155 msgid "Clear existing tags" msgstr "Létező cimkék törlése" -#: picard/ui/ui_options_tags.py:169 +#: picard/ui/ui_options_tags.py:156 msgid "Remove ID3 tags from FLAC files" msgstr "ID3-cimkék törlése FLAC-fájlokból" -#: picard/ui/ui_options_tags.py:170 +#: picard/ui/ui_options_tags.py:157 msgid "Remove APEv2 tags from MP3 files" msgstr "APEv2 cimkék eltávolítása MP3 fájlokból" -#: picard/ui/ui_options_tags.py:171 +#: picard/ui/ui_options_tags.py:158 msgid "" "Preserve these tags from being cleared or overwritten with MusicBrainz data:" msgstr "" -#: picard/ui/ui_options_tags.py:172 +#: picard/ui/ui_options_tags.py:159 msgid "Tags are separated by commas, and are case-sensitive." msgstr "" -#: picard/ui/ui_options_tags.py:173 +#: picard/ui/ui_options_tags.py:160 msgid "Tag Compatibility" msgstr "" -#: picard/ui/ui_options_tags.py:174 +#: picard/ui/ui_options_tags.py:161 msgid "ID3v2 Version" msgstr "" -#: picard/ui/ui_options_tags.py:175 +#: picard/ui/ui_options_tags.py:162 msgid "2.4" msgstr "2.4" -#: picard/ui/ui_options_tags.py:176 +#: picard/ui/ui_options_tags.py:163 msgid "2.3" msgstr "2.3" -#: picard/ui/ui_options_tags.py:177 +#: picard/ui/ui_options_tags.py:164 msgid "ID3v2 Text Encoding" msgstr "" -#: picard/ui/ui_options_tags.py:178 +#: picard/ui/ui_options_tags.py:165 msgid "UTF-8" msgstr "UTF-8" -#: picard/ui/ui_options_tags.py:179 +#: picard/ui/ui_options_tags.py:166 msgid "UTF-16" msgstr "UTF-16" -#: picard/ui/ui_options_tags.py:180 +#: picard/ui/ui_options_tags.py:167 msgid "ISO-8859-1" msgstr "ISO-8859-1" -#: picard/ui/ui_options_tags.py:181 +#: picard/ui/ui_options_tags.py:168 msgid "Join multiple ID3v2.3 tags with:" msgstr "" -#: picard/ui/ui_options_tags.py:182 +#: picard/ui/ui_options_tags.py:169 msgid "" "

Default is '/' to maintain compatibility with previous" " Picard releases.

New alternatives are ';_' or '_/_' or type your own." "

" msgstr "" -#: picard/ui/ui_options_tags.py:183 +#: picard/ui/ui_options_tags.py:170 msgid "Also include ID3v1 tags in the files" msgstr "" -#: picard/ui/ui_passworddialog.py:72 +#: picard/ui/ui_passworddialog.py:68 msgid "Authentication required" msgstr "Hitelesítés szükséges" -#: picard/ui/ui_passworddialog.py:75 +#: picard/ui/ui_passworddialog.py:71 msgid "Save username and password" msgstr "Felhasználónév és kódszó mentése" -#: picard/ui/ui_tagsfromfilenames.py:54 +#: picard/ui/ui_tagsfromfilenames.py:50 msgid "Convert File Names to Tags" msgstr "Fájlnevek átalakítása cimkévé" -#: picard/ui/ui_tagsfromfilenames.py:55 +#: picard/ui/ui_tagsfromfilenames.py:51 msgid "Replace underscores with spaces" msgstr "Aláhúzás helyettesítése szóközzel" -#: picard/ui/ui_tagsfromfilenames.py:56 +#: picard/ui/ui_tagsfromfilenames.py:52 msgid "&Preview" msgstr "&Előnézet" @@ -1742,7 +1628,11 @@ msgstr "Haladó" msgid "Regex Error" msgstr "" -#: picard/ui/options/cover.py:63 +#: picard/ui/options/cover.py:44 +msgid "title" +msgstr "" + +#: picard/ui/options/cover.py:68 msgid "Cover Art" msgstr "Borítóterv" @@ -1758,11 +1648,11 @@ msgstr "Kezelőfelület" msgid "System default" msgstr "A rendszerben alapértelmezett" -#: picard/ui/options/interface.py:96 +#: picard/ui/options/interface.py:98 msgid "Language changed" msgstr "Nyelv megváltoztatva" -#: picard/ui/options/interface.py:96 +#: picard/ui/options/interface.py:99 msgid "" "You have changed the interface language. You have to restart Picard in order" " for the change to take effect." @@ -1784,31 +1674,35 @@ msgstr "Fájl" msgid "Ratings" msgstr "Értékelések" -#: picard/ui/options/releases.py:33 +#: picard/ui/options/releases.py:87 msgid "Preferred Releases" msgstr "" +#: picard/ui/options/releases.py:121 +msgid "Reset all" +msgstr "" + #: picard/ui/options/renaming.py:37 msgid "File Naming" msgstr "" -#: picard/ui/options/renaming.py:184 +#: picard/ui/options/renaming.py:187 msgid "Error" msgstr "Hiba" -#: picard/ui/options/renaming.py:184 +#: picard/ui/options/renaming.py:187 msgid "The location to move files to must not be empty." msgstr "Fájlok mozgatásához megjelölt hely nem lehet üres." -#: picard/ui/options/renaming.py:194 +#: picard/ui/options/renaming.py:197 msgid "The file naming format must not be empty." msgstr "Fájl elnevezés formátuma nem lehet üres." -#: picard/ui/options/scripting.py:63 +#: picard/ui/options/scripting.py:99 msgid "Scripting" msgstr "Parancsfájlok" -#: picard/ui/options/scripting.py:95 +#: picard/ui/options/scripting.py:131 msgid "Script Error" msgstr "Huba a parancsfájlban" @@ -1928,199 +1822,199 @@ msgstr "ASIN" msgid "Grouping" msgstr "Csoportosítás" -#: picard/util/tags.py:40 +#: picard/util/tags.py:39 msgid "ISRC" msgstr "ISRC" -#: picard/util/tags.py:41 +#: picard/util/tags.py:40 msgid "Mood" msgstr "Hangulat" -#: picard/util/tags.py:42 +#: picard/util/tags.py:41 msgid "BPM" msgstr "Ütem/perc" -#: picard/util/tags.py:43 +#: picard/util/tags.py:42 msgid "Copyright" msgstr "Copyright" -#: picard/util/tags.py:44 +#: picard/util/tags.py:43 msgid "License" msgstr "" -#: picard/util/tags.py:45 +#: picard/util/tags.py:44 msgid "Composer" msgstr "Zeneszerző" -#: picard/util/tags.py:46 +#: picard/util/tags.py:45 msgid "Writer" msgstr "" -#: picard/util/tags.py:47 +#: picard/util/tags.py:46 msgid "Conductor" msgstr "Karmester" -#: picard/util/tags.py:48 +#: picard/util/tags.py:47 msgid "Lyricist" msgstr "Dalszöveg" -#: picard/util/tags.py:49 +#: picard/util/tags.py:48 msgid "Arranger" msgstr "Átíró" -#: picard/util/tags.py:50 +#: picard/util/tags.py:49 msgid "Producer" msgstr "Producer" -#: picard/util/tags.py:51 +#: picard/util/tags.py:50 msgid "Engineer" msgstr "Hangmérnök" -#: picard/util/tags.py:52 +#: picard/util/tags.py:51 msgid "Subtitle" msgstr "Felirat" -#: picard/util/tags.py:53 +#: picard/util/tags.py:52 msgid "Disc Subtitle" msgstr "Lemez Felirat" -#: picard/util/tags.py:54 +#: picard/util/tags.py:53 msgid "Remixer" msgstr "Remixer" -#: picard/util/tags.py:55 +#: picard/util/tags.py:54 msgid "MusicBrainz Recording Id" msgstr "" -#: picard/util/tags.py:56 +#: picard/util/tags.py:55 msgid "MusicBrainz Track Id" msgstr "" -#: picard/util/tags.py:57 +#: picard/util/tags.py:56 msgid "MusicBrainz Release Id" msgstr "MusicBrainz album azonosító" -#: picard/util/tags.py:58 +#: picard/util/tags.py:57 msgid "MusicBrainz Artist Id" msgstr "MusicBrainz előadó azonosító" -#: picard/util/tags.py:59 +#: picard/util/tags.py:58 msgid "MusicBrainz Release Artist Id" msgstr "" -#: picard/util/tags.py:60 +#: picard/util/tags.py:59 msgid "MusicBrainz Work Id" msgstr "" -#: picard/util/tags.py:61 +#: picard/util/tags.py:60 msgid "MusicBrainz Release Group Id" msgstr "" -#: picard/util/tags.py:62 +#: picard/util/tags.py:61 msgid "MusicBrainz Disc Id" msgstr "MusicBrainz lemez azonosító" -#: picard/util/tags.py:63 -msgid "MusicBrainz Sort Name" -msgstr "" - -#: picard/util/tags.py:64 +#: picard/util/tags.py:62 msgid "MusicIP PUID" msgstr "MusicIP PUID" -#: picard/util/tags.py:65 +#: picard/util/tags.py:63 msgid "MusicIP Fingerprint" msgstr "MusicIP ujjenyomat" -#: picard/util/tags.py:66 +#: picard/util/tags.py:64 msgid "AcoustID" msgstr "" -#: picard/util/tags.py:67 +#: picard/util/tags.py:65 msgid "AcoustID Fingerprint" msgstr "" -#: picard/util/tags.py:68 +#: picard/util/tags.py:66 msgid "Disc Id" msgstr "lemez azonosító" -#: picard/util/tags.py:69 -msgid "Website" -msgstr "Weboldal" +#: picard/util/tags.py:67 +msgid "Artist Website" +msgstr "" -#: picard/util/tags.py:70 +#: picard/util/tags.py:68 msgid "Compilation (iTunes)" msgstr "" -#: picard/util/tags.py:71 +#: picard/util/tags.py:69 msgid "Comment" msgstr "Megjegyzés" -#: picard/util/tags.py:72 +#: picard/util/tags.py:70 msgid "Genre" msgstr "Műfaj" -#: picard/util/tags.py:73 +#: picard/util/tags.py:71 msgid "Encoded By" msgstr "Kódolta:" -#: picard/util/tags.py:74 +#: picard/util/tags.py:72 +msgid "Encoder Settings" +msgstr "" + +#: picard/util/tags.py:73 msgid "Performer" msgstr "Előadó" -#: picard/util/tags.py:75 +#: picard/util/tags.py:74 msgid "Release Type" msgstr "Kiadás típusa" -#: picard/util/tags.py:76 +#: picard/util/tags.py:75 msgid "Release Status" msgstr "Kiadás állapota" -#: picard/util/tags.py:77 +#: picard/util/tags.py:76 msgid "Release Country" msgstr "Kiadási ország" -#: picard/util/tags.py:78 +#: picard/util/tags.py:77 msgid "Record Label" msgstr "Lemezkiadó cég" -#: picard/util/tags.py:80 +#: picard/util/tags.py:79 msgid "Catalog Number" msgstr "katalógusszám" -#: picard/util/tags.py:82 +#: picard/util/tags.py:80 msgid "DJ-Mixer" msgstr "DJ-Mixer" -#: picard/util/tags.py:83 +#: picard/util/tags.py:81 msgid "Media" msgstr "Média" -#: picard/util/tags.py:84 +#: picard/util/tags.py:82 msgid "Lyrics" msgstr "Dalszövegek" -#: picard/util/tags.py:85 +#: picard/util/tags.py:83 msgid "Mixer" msgstr "Keverő" -#: picard/util/tags.py:86 +#: picard/util/tags.py:84 msgid "Language" msgstr "Nyelv" -#: picard/util/tags.py:87 +#: picard/util/tags.py:85 msgid "Script" msgstr "Szkript" -#: picard/util/tags.py:89 +#: picard/util/tags.py:87 msgid "Rating" msgstr "" -#: picard/util/tags.py:90 +#: picard/util/tags.py:88 msgid "Artists" msgstr "" -#: picard/util/tags.py:91 +#: picard/util/tags.py:89 msgid "Work" msgstr "" diff --git a/po/id.po b/po/id.po index 5026c8679..e1be3260d 100644 --- a/po/id.po +++ b/po/id.po @@ -9,9 +9,9 @@ msgid "" msgstr "" "Project-Id-Version: MusicBrainz\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2014-03-20 11:12+0100\n" -"PO-Revision-Date: 2014-04-02 10:46+0000\n" -"Last-Translator: drbyu \n" +"POT-Creation-Date: 2014-05-03 17:28+0200\n" +"PO-Revision-Date: 2014-05-04 08:44+0000\n" +"Last-Translator: nikki\n" "Language-Team: Indonesian (http://www.transifex.com/projects/p/musicbrainz/language/id/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -20,6 +20,10 @@ msgstr "" "Language: id\n" "Plural-Forms: nplurals=1; plural=0;\n" +#: contrib/plugins/albumartist_website.py:3 +msgid "Album Artist Website" +msgstr "" + #: contrib/plugins/no_release.py:50 msgid "Enable plugin for all releases by default" msgstr "" @@ -32,63 +36,55 @@ msgstr "" msgid "Remove specific release information..." msgstr "" -#: contrib/plugins/open_in_gui.py:32 -msgid "Open Error" +#: contrib/plugins/standardise_performers.py:3 +msgid "Standardise Performers" msgstr "" -#: contrib/plugins/open_in_gui.py:32 -#, python-format -msgid "" -"Error while opening file:\n" -"\n" -"%s" -msgstr "" - -#: contrib/plugins/lastfm/ui_options_lastfm.py:117 +#: contrib/plugins/lastfm/ui_options_lastfm.py:99 msgid "Last.fm" msgstr "" -#: contrib/plugins/lastfm/ui_options_lastfm.py:118 +#: contrib/plugins/lastfm/ui_options_lastfm.py:100 msgid "Use track tags" msgstr "" -#: contrib/plugins/lastfm/ui_options_lastfm.py:119 +#: contrib/plugins/lastfm/ui_options_lastfm.py:101 msgid "Use artist tags" msgstr "" -#: contrib/plugins/lastfm/ui_options_lastfm.py:120 +#: contrib/plugins/lastfm/ui_options_lastfm.py:102 #: picard/ui/options/tags.py:30 msgid "Tags" msgstr "Tanda" -#: contrib/plugins/lastfm/ui_options_lastfm.py:121 -#: picard/ui/ui_options_folksonomy.py:116 +#: contrib/plugins/lastfm/ui_options_lastfm.py:103 +#: picard/ui/ui_options_folksonomy.py:103 msgid "Ignore tags:" msgstr "" -#: contrib/plugins/lastfm/ui_options_lastfm.py:122 -#: picard/ui/ui_options_folksonomy.py:121 +#: contrib/plugins/lastfm/ui_options_lastfm.py:104 +#: picard/ui/ui_options_folksonomy.py:108 msgid "Join multiple tags with:" msgstr "" -#: contrib/plugins/lastfm/ui_options_lastfm.py:123 -#: picard/ui/ui_options_folksonomy.py:122 +#: contrib/plugins/lastfm/ui_options_lastfm.py:105 +#: picard/ui/ui_options_folksonomy.py:109 msgid " / " msgstr "" -#: contrib/plugins/lastfm/ui_options_lastfm.py:124 -#: picard/ui/ui_options_folksonomy.py:123 +#: contrib/plugins/lastfm/ui_options_lastfm.py:106 +#: picard/ui/ui_options_folksonomy.py:110 msgid ", " msgstr "" -#: contrib/plugins/lastfm/ui_options_lastfm.py:125 -#: picard/ui/ui_options_folksonomy.py:118 +#: contrib/plugins/lastfm/ui_options_lastfm.py:107 +#: picard/ui/ui_options_folksonomy.py:105 msgid "Minimal tag usage:" msgstr "" -#: contrib/plugins/lastfm/ui_options_lastfm.py:126 -#: picard/ui/ui_options_folksonomy.py:119 picard/ui/ui_options_matching.py:88 -#: picard/ui/ui_options_matching.py:89 picard/ui/ui_options_matching.py:90 +#: contrib/plugins/lastfm/ui_options_lastfm.py:108 +#: picard/ui/ui_options_folksonomy.py:106 picard/ui/ui_options_matching.py:75 +#: picard/ui/ui_options_matching.py:76 picard/ui/ui_options_matching.py:77 msgid " %" msgstr " %" @@ -96,416 +92,303 @@ msgstr " %" msgid "Calculate replay &gain..." msgstr "" -#: contrib/plugins/replaygain/__init__.py:66 +#: contrib/plugins/replaygain/__init__.py:67 #, python-format -msgid "Calculating replay gain for \"%s\"..." +msgid "Calculating replay gain for \"%(filename)s\"..." msgstr "" -#: contrib/plugins/replaygain/__init__.py:71 +#: contrib/plugins/replaygain/__init__.py:75 #, python-format -msgid "Replay gain for \"%s\" successfully calculated." +msgid "Replay gain for \"%(filename)s\" successfully calculated." msgstr "" -#: contrib/plugins/replaygain/__init__.py:73 +#: contrib/plugins/replaygain/__init__.py:80 #, python-format -msgid "Could not calculate replay gain for \"%s\"." +msgid "Could not calculate replay gain for \"%(filename)s\"." msgstr "" -#: contrib/plugins/replaygain/__init__.py:76 +#: contrib/plugins/replaygain/__init__.py:85 msgid "Calculate album &gain..." msgstr "" -#: contrib/plugins/replaygain/__init__.py:103 -#: contrib/plugins/replaygain/__init__.py:111 +#: contrib/plugins/replaygain/__init__.py:113 +#: contrib/plugins/replaygain/__init__.py:124 #, python-format -msgid "Calculating album gain for \"%s\"..." +msgid "Calculating album gain for \"%(album)s\"..." msgstr "" -#: contrib/plugins/replaygain/__init__.py:119 +#: contrib/plugins/replaygain/__init__.py:135 #, python-format -msgid "Album gain for \"%s\" successfully calculated." +msgid "Album gain for \"%(album)s\" successfully calculated." msgstr "" -#: contrib/plugins/replaygain/__init__.py:121 +#: contrib/plugins/replaygain/__init__.py:140 #, python-format -msgid "Could not calculate album gain for \"%s\"." +msgid "Could not calculate album gain for \"%(album)s\"." msgstr "" -#: picard/acoustid.py:102 +#: contrib/plugins/replaygain/ui_options_replaygain.py:59 +msgid "Replay Gain" +msgstr "" + +#: contrib/plugins/replaygain/ui_options_replaygain.py:60 +msgid "Path to VorbisGain:" +msgstr "" + +#: contrib/plugins/replaygain/ui_options_replaygain.py:61 +msgid "Path to MP3Gain:" +msgstr "" + +#: contrib/plugins/replaygain/ui_options_replaygain.py:62 +msgid "Path to metaflac:" +msgstr "" + +#: contrib/plugins/replaygain/ui_options_replaygain.py:63 +msgid "Path to wvgain:" +msgstr "" + +#: contrib/plugins/viewvariables/__init__.py:42 #, python-format -msgid "AcoustID lookup network error for '%s'!" +msgid "File: %s" msgstr "" -#: picard/acoustid.py:117 +#: contrib/plugins/viewvariables/__init__.py:47 #, python-format -msgid "AcoustID lookup failed for '%s'!" +msgid "Track: %s %s " msgstr "" -#: picard/acoustid.py:128 +#: contrib/plugins/viewvariables/__init__.py:49 +msgid "Variables" +msgstr "" + +#: contrib/plugins/viewvariables/__init__.py:69 +msgid "File variables" +msgstr "" + +#: contrib/plugins/viewvariables/__init__.py:74 +msgid "Hidden variables" +msgstr "" + +#: contrib/plugins/viewvariables/__init__.py:79 +msgid "Tag variables" +msgstr "" + +#: contrib/plugins/viewvariables/ui_variables_dialog.py:73 +msgid "Variable" +msgstr "" + +#: contrib/plugins/viewvariables/ui_variables_dialog.py:75 +msgid "Value" +msgstr "" + +#: picard/acoustid.py:109 #, python-format -msgid "Acoustid lookup returned no result for file '%s'" +msgid "AcoustID lookup network error for '%(filename)s'!" msgstr "" -#: picard/acoustid.py:132 +#: picard/acoustid.py:133 #, python-format -msgid "Looking up the fingerprint for file %s..." +msgid "AcoustID lookup failed for '%(filename)s'!" msgstr "" -#: picard/acoustidmanager.py:78 -msgid "Submitting AcoustIDs..." -msgstr "" - -#: picard/acoustidmanager.py:83 +#: picard/acoustid.py:155 #, python-format -msgid "AcoustID submission failed with error '%s'" +msgid "AcoustID lookup returned no result for file '%(filename)s'" msgstr "" -#: picard/acoustidmanager.py:85 +#: picard/acoustid.py:166 +#, python-format +msgid "Looking up the fingerprint for file '%(filename)s' ..." +msgstr "" + +#: picard/acoustidmanager.py:80 +msgid "Submitting AcoustIDs ..." +msgstr "" + +#: picard/acoustidmanager.py:94 +#, python-format +msgid "AcoustID submission failed with error '%(error)s'" +msgstr "" + +#: picard/acoustidmanager.py:102 msgid "AcoustIDs successfully submitted." msgstr "" -#: picard/album.py:64 picard/cluster.py:234 +#: picard/album.py:65 picard/cluster.py:255 msgid "Unmatched Files" msgstr "Berkas Tidak Cocok" -#: picard/album.py:187 +#: picard/album.py:188 #, python-format msgid "[could not load album %s]" msgstr "[tidak dapat memuat album %s]" -#: picard/album.py:272 +#: picard/album.py:277 #, python-format -msgid "Album %s loaded" +msgid "Album %(id)s loaded: %(artist)s - %(album)s" msgstr "" -#: picard/album.py:288 +#: picard/album.py:294 +#, python-format +msgid "Loading album %(id)s ..." +msgstr "" + +#: picard/album.py:303 msgid "[loading album information]" msgstr "[memuat informasi album]" -#: picard/album.py:463 +#: picard/album.py:478 #, python-format msgid "; %i image" msgid_plural "; %i images" msgstr[0] "" -#: picard/cluster.py:150 picard/cluster.py:159 +#: picard/cluster.py:155 picard/cluster.py:168 #, python-format -msgid "No matching releases for cluster %s" +msgid "No matching releases for cluster %(album)s" msgstr "" -#: picard/cluster.py:161 +#: picard/cluster.py:174 #, python-format -msgid "Cluster %s identified!" -msgstr "Cluster %s teridentifikasi!" - -#: picard/cluster.py:168 -#, python-format -msgid "Looking up the metadata for cluster %s..." +msgid "Cluster %(album)s identified!" msgstr "" -#: picard/collection.py:60 +#: picard/cluster.py:185 #, python-format -msgid "Added %i release to collection \"%s\"" -msgid_plural "Added %i releases to collection \"%s\"" +msgid "Looking up the metadata for cluster %(album)s..." +msgstr "" + +#: picard/collection.py:64 +#, python-format +msgid "Added %(count)i release to collection \"%(name)s\"" +msgid_plural "Added %(count)i releases to collection \"%(name)s\"" msgstr[0] "" -#: picard/collection.py:72 +#: picard/collection.py:86 #, python-format -msgid "Removed %i release from collection \"%s\"" -msgid_plural "Removed %i releases from collection \"%s\"" +msgid "Removed %(count)i release from collection \"%(name)s\"" +msgid_plural "Removed %(count)i releases from collection \"%(name)s\"" msgstr[0] "" -#: picard/collection.py:81 +#: picard/collection.py:100 #, python-format -msgid "Error loading collections: %s" +msgid "Error loading collections: %(error)s" msgstr "" -#: picard/config_upgrade.py:57 picard/config_upgrade.py:70 +#: picard/config_upgrade.py:58 picard/config_upgrade.py:71 msgid "Various Artists file naming scheme removal" msgstr "" -#: picard/config_upgrade.py:58 +#: picard/config_upgrade.py:59 msgid "" "The separate file naming scheme for various artists albums has been removed in this version of Picard.\n" "Your file naming scheme has automatically been merged with that of single artist albums." msgstr "" -#: picard/config_upgrade.py:71 +#: picard/config_upgrade.py:72 msgid "" "The separate file naming scheme for various artists albums has been removed in this version of Picard.\n" "You currently do not use this option, but have a separate file naming scheme defined.\n" "Do you want to remove it or merge it with your file naming scheme for single artist albums?" msgstr "" -#: picard/config_upgrade.py:77 +#: picard/config_upgrade.py:78 msgid "Merge" msgstr "" -#: picard/config_upgrade.py:77 picard/ui/metadatabox.py:254 +#: picard/config_upgrade.py:78 picard/ui/metadatabox.py:254 msgid "Remove" msgstr "Hilangkan" -#: picard/const.py:67 -msgid "CD" -msgstr "CD" - -#: picard/const.py:68 -msgid "CD-R" -msgstr "" - -#: picard/const.py:69 -msgid "HDCD" -msgstr "" - -#: picard/const.py:70 -msgid "8cm CD" -msgstr "" - -#: picard/const.py:71 -msgid "Vinyl" -msgstr "Vinyl" - -#: picard/const.py:72 -msgid "7\" Vinyl" -msgstr "" - -#: picard/const.py:73 -msgid "10\" Vinyl" -msgstr "" - -#: picard/const.py:74 -msgid "12\" Vinyl" -msgstr "" - -#: picard/const.py:75 -msgid "Digital Media" -msgstr "Media Digital" - -#: picard/const.py:76 -msgid "USB Flash Drive" -msgstr "" - -#: picard/const.py:77 -msgid "slotMusic" -msgstr "" - -#: picard/const.py:78 -msgid "Cassette" -msgstr "Kaset" - -#: picard/const.py:79 -msgid "DVD" -msgstr "DVD" - -#: picard/const.py:80 -msgid "DVD-Audio" -msgstr "" - -#: picard/const.py:81 -msgid "DVD-Video" -msgstr "" - -#: picard/const.py:82 -msgid "SACD" -msgstr "SACD" - -#: picard/const.py:83 -msgid "DualDisc" -msgstr "" - -#: picard/const.py:84 -msgid "MiniDisc" -msgstr "MiniDisc" - -#: picard/const.py:85 -msgid "Blu-ray" -msgstr "" - -#: picard/const.py:86 -msgid "HD-DVD" -msgstr "" - -#: picard/const.py:87 -msgid "Videotape" -msgstr "" - -#: picard/const.py:88 -msgid "VHS" -msgstr "" - -#: picard/const.py:89 -msgid "Betamax" -msgstr "" - #: picard/const.py:90 -msgid "VCD" -msgstr "" - -#: picard/const.py:91 -msgid "SVCD" -msgstr "" - -#: picard/const.py:92 -msgid "UMD" -msgstr "" - -#: picard/const.py:93 picard/coverartarchive.py:33 -#: picard/ui/ui_options_releases.py:226 -msgid "Other" -msgstr "Lainnya" - -#: picard/const.py:94 -msgid "LaserDisc" -msgstr "LaserDisc" - -#: picard/const.py:95 -msgid "Cartridge" -msgstr "" - -#: picard/const.py:96 -msgid "Reel-to-reel" -msgstr "" - -#: picard/const.py:97 -msgid "DAT" -msgstr "DAT" - -#: picard/const.py:98 -msgid "Wax Cylinder" -msgstr "" - -#: picard/const.py:99 -msgid "Piano Roll" -msgstr "Piano Roll" - -#: picard/const.py:100 -msgid "DCC" -msgstr "" - -#: picard/const.py:115 msgid "Danish" msgstr "" -#: picard/const.py:116 +#: picard/const.py:91 msgid "German" msgstr "Bahasa Jerman" -#: picard/const.py:118 +#: picard/const.py:93 msgid "English" msgstr "Bahasa Inggris" -#: picard/const.py:119 +#: picard/const.py:94 msgid "English (Canada)" msgstr "Bahasa Inggris (Kanada)" -#: picard/const.py:120 +#: picard/const.py:95 msgid "English (UK)" msgstr "Bahasa Inggris (UK)" -#: picard/const.py:122 +#: picard/const.py:97 msgid "Spanish" msgstr "Bahasa Spanyol" -#: picard/const.py:123 +#: picard/const.py:98 msgid "Estonian" msgstr "Bahasa Estonia" -#: picard/const.py:125 +#: picard/const.py:100 msgid "Finnish" msgstr "Bahasa Finlandia" -#: picard/const.py:127 +#: picard/const.py:102 msgid "French" msgstr "Bahasa Prancis" -#: picard/const.py:136 +#: picard/const.py:111 msgid "Italian" msgstr "Bahasa Italia" -#: picard/const.py:143 +#: picard/const.py:118 msgid "Dutch" msgstr "Bahasa Belanda" -#: picard/const.py:145 +#: picard/const.py:120 msgid "Polish" msgstr "Bahasa Polandia" -#: picard/const.py:147 +#: picard/const.py:122 msgid "Brazilian Portuguese" msgstr "Bahasa Brazil Portugis" -#: picard/const.py:154 +#: picard/const.py:129 msgid "Swedish" msgstr "Bahasa Swedia" -#: picard/coverart.py:84 +#: picard/coverart.py:85 #, python-format -msgid "Coverart %s downloaded" +msgid "Cover art of type '%(type)s' downloaded for %(albumid)s from %(host)s" msgstr "" -#: picard/coverart.py:240 +#: picard/coverart.py:256 #, python-format -msgid "Downloading http://%s:%i%s" -msgstr "" - -#: picard/coverartarchive.py:24 -msgid "Front" -msgstr "" - -#: picard/coverartarchive.py:25 -msgid "Back" -msgstr "" - -#: picard/coverartarchive.py:26 -msgid "Booklet" -msgstr "" - -#: picard/coverartarchive.py:27 -msgid "Medium" -msgstr "" - -#: picard/coverartarchive.py:28 -msgid "Tray" -msgstr "" - -#: picard/coverartarchive.py:29 -msgid "Obi" +msgid "" +"Downloading cover art of type '%(type)s' for %(albumid)s from %(host)s .." msgstr "" #: picard/coverartarchive.py:30 -msgid "Spine" -msgstr "" - -#: picard/coverartarchive.py:31 picard/ui/mainwindow.py:546 -msgid "Track" -msgstr "Trek" - -#: picard/coverartarchive.py:32 -msgid "Sticker" -msgstr "" - -#: picard/coverartarchive.py:34 msgid "Unknown" msgstr "" -#: picard/file.py:536 +#: picard/file.py:494 #, python-format -msgid "No matching tracks for file %s" -msgstr "Tidak ada trek yang cocok untuk berkas %s" - -#: picard/file.py:548 -#, python-format -msgid "No matching tracks above the threshold for file %s" +msgid "No matching tracks for file '%(filename)s'" msgstr "" -#: picard/file.py:551 +#: picard/file.py:510 #, python-format -msgid "File %s identified!" -msgstr "Berkas %s teridentifikasi!" +msgid "No matching tracks above the threshold for file '%(filename)s'" +msgstr "" -#: picard/file.py:567 +#: picard/file.py:517 #, python-format -msgid "Looking up the metadata for file %s..." +msgid "File '%(filename)s' identified!" +msgstr "" + +#: picard/file.py:537 +#, python-format +msgid "Looking up the metadata for file %(filename)s ..." msgstr "" #: picard/releasegroup.py:53 @@ -516,11 +399,11 @@ msgstr "" msgid "Year" msgstr "" -#: picard/releasegroup.py:55 picard/ui/cdlookup.py:34 +#: picard/releasegroup.py:55 picard/ui/cdlookup.py:35 msgid "Country" msgstr "" -#: picard/releasegroup.py:56 picard/util/tags.py:81 +#: picard/releasegroup.py:56 msgid "Format" msgstr "Format" @@ -540,16 +423,22 @@ msgstr "" msgid "[no release info]" msgstr "" -#: picard/tagger.py:316 +#: picard/tagger.py:370 #, python-format -msgid "Loading directory %s" +msgid "Adding %(count)d file from '%(directory)s' ..." +msgid_plural "Adding %(count)d files from '%(directory)s' ..." +msgstr[0] "" + +#: picard/tagger.py:512 +#, python-format +msgid "Removing album %(id)s: %(artist)s - %(album)s" msgstr "" -#: picard/tagger.py:452 +#: picard/tagger.py:528 msgid "CD Lookup Error" msgstr "" -#: picard/tagger.py:453 +#: picard/tagger.py:529 #, python-format msgid "" "Error while reading CD:\n" @@ -557,43 +446,42 @@ msgid "" "%s" msgstr "Kesalahan ketika membaca CD:\n\n%s" -#: picard/ui/cdlookup.py:34 picard/ui/mainwindow.py:544 -#: picard/ui/ui_options_releases.py:216 picard/util/tags.py:21 +#: picard/ui/cdlookup.py:35 picard/ui/mainwindow.py:597 picard/util/tags.py:21 msgid "Album" msgstr "Album" -#: picard/ui/cdlookup.py:34 picard/ui/itemviews.py:96 -#: picard/ui/mainwindow.py:545 picard/util/tags.py:22 +#: picard/ui/cdlookup.py:35 picard/ui/itemviews.py:96 +#: picard/ui/mainwindow.py:598 picard/util/tags.py:22 msgid "Artist" msgstr "Artis" -#: picard/ui/cdlookup.py:34 picard/util/tags.py:24 +#: picard/ui/cdlookup.py:35 picard/util/tags.py:24 msgid "Date" msgstr "Tanggal" -#: picard/ui/cdlookup.py:35 +#: picard/ui/cdlookup.py:36 msgid "Labels" msgstr "" -#: picard/ui/cdlookup.py:35 +#: picard/ui/cdlookup.py:36 msgid "Catalog #s" msgstr "" -#: picard/ui/cdlookup.py:35 picard/util/tags.py:79 +#: picard/ui/cdlookup.py:36 picard/util/tags.py:78 msgid "Barcode" msgstr "" -#: picard/ui/collectionmenu.py:31 +#: picard/ui/collectionmenu.py:42 msgid "Refresh List" msgstr "" -#: picard/ui/collectionmenu.py:92 +#: picard/ui/collectionmenu.py:86 #, python-format msgid "%s (%i release)" msgid_plural "%s (%i releases)" msgstr[0] "" -#: picard/ui/coverartbox.py:142 +#: picard/ui/coverartbox.py:141 msgid "View release on MusicBrainz" msgstr "" @@ -609,59 +497,59 @@ msgstr "Tampilkan file tersembunyi" msgid "&Set as starting directory" msgstr "" -#: picard/ui/infodialog.py:36 picard/ui/infodialog.py:75 +#: picard/ui/infodialog.py:37 picard/ui/infodialog.py:80 msgid "Info" msgstr "" -#: picard/ui/infodialog.py:80 +#: picard/ui/infodialog.py:85 msgid "Filename:" msgstr "Nama berkas:" -#: picard/ui/infodialog.py:82 +#: picard/ui/infodialog.py:87 msgid "Format:" msgstr "Format:" -#: picard/ui/infodialog.py:86 +#: picard/ui/infodialog.py:91 msgid "Size:" msgstr "Ukuran:" -#: picard/ui/infodialog.py:90 +#: picard/ui/infodialog.py:95 msgid "Length:" msgstr "Panjang:" -#: picard/ui/infodialog.py:92 +#: picard/ui/infodialog.py:97 msgid "Bitrate:" msgstr "Bitrate:" -#: picard/ui/infodialog.py:94 +#: picard/ui/infodialog.py:99 msgid "Sample rate:" msgstr "Sample rate:" -#: picard/ui/infodialog.py:96 +#: picard/ui/infodialog.py:101 msgid "Bits per sample:" msgstr "" -#: picard/ui/infodialog.py:100 +#: picard/ui/infodialog.py:105 msgid "Mono" msgstr "Mono" -#: picard/ui/infodialog.py:102 +#: picard/ui/infodialog.py:107 msgid "Stereo" msgstr "Stereo" -#: picard/ui/infodialog.py:105 +#: picard/ui/infodialog.py:110 msgid "Channels:" msgstr "Kanal:" -#: picard/ui/infodialog.py:116 +#: picard/ui/infodialog.py:121 msgid "Album Info" msgstr "" -#: picard/ui/infodialog.py:124 +#: picard/ui/infodialog.py:129 msgid "&Errors" msgstr "" -#: picard/ui/infodialog.py:134 picard/ui/ui_infodialog.py:77 +#: picard/ui/infodialog.py:139 picard/ui/ui_infodialog.py:73 msgid "&Info" msgstr "&Info" @@ -685,7 +573,7 @@ msgstr "" msgid "Title" msgstr "Judul" -#: picard/ui/itemviews.py:95 picard/util/tags.py:88 +#: picard/ui/itemviews.py:95 picard/util/tags.py:86 msgid "Length" msgstr "Panjangnya" @@ -710,8 +598,8 @@ msgid "Collections" msgstr "" #: picard/ui/itemviews.py:365 -msgid "&Plugins" -msgstr "&Plugins" +msgid "P&lugins" +msgstr "" #: picard/ui/itemviews.py:541 msgid "file view" @@ -733,12 +621,16 @@ msgstr "" msgid "Contains albums and matched files" msgstr "" -#: picard/ui/logview.py:91 +#: picard/ui/logview.py:109 msgid "Log" msgstr "Log" -#: picard/ui/logview.py:99 -msgid "Status History" +#: picard/ui/logview.py:113 +msgid "Debug mode" +msgstr "" + +#: picard/ui/logview.py:134 +msgid "Activity History" msgstr "" #: picard/ui/mainwindow.py:74 @@ -771,275 +663,308 @@ msgstr "" #: picard/ui/mainwindow.py:220 msgid "" -"Picard listens on a port to integrate with your browser and downloads " -"release information when you click the \"Tagger\" buttons on the MusicBrainz" -" website" +"Picard listens on this port to integrate with your browser. When you " +"\"Search\" or \"Open in Browser\" from Picard, clicking the \"Tagger\" " +"button on the web page loads the release into Picard." msgstr "" -#: picard/ui/mainwindow.py:240 +#: picard/ui/mainwindow.py:243 #, python-format msgid " Listening on port %(port)d " msgstr "" -#: picard/ui/mainwindow.py:263 +#: picard/ui/mainwindow.py:299 msgid "Submission Error" msgstr "" -#: picard/ui/mainwindow.py:264 +#: picard/ui/mainwindow.py:300 msgid "" "You need to configure your AcoustID API key before you can submit " "fingerprints." msgstr "" -#: picard/ui/mainwindow.py:269 +#: picard/ui/mainwindow.py:305 msgid "&Options..." msgstr "" -#: picard/ui/mainwindow.py:273 +#: picard/ui/mainwindow.py:309 msgid "&Cut" msgstr "" -#: picard/ui/mainwindow.py:278 +#: picard/ui/mainwindow.py:314 msgid "&Paste" msgstr "" -#: picard/ui/mainwindow.py:283 +#: picard/ui/mainwindow.py:319 msgid "&Help..." msgstr "" -#: picard/ui/mainwindow.py:288 +#: picard/ui/mainwindow.py:323 msgid "&About..." msgstr "" -#: picard/ui/mainwindow.py:292 +#: picard/ui/mainwindow.py:327 msgid "&Donate..." msgstr "" -#: picard/ui/mainwindow.py:295 +#: picard/ui/mainwindow.py:330 msgid "&Report a Bug..." msgstr "" -#: picard/ui/mainwindow.py:298 +#: picard/ui/mainwindow.py:333 msgid "&Support Forum..." msgstr "" -#: picard/ui/mainwindow.py:301 +#: picard/ui/mainwindow.py:336 msgid "&Add Files..." msgstr "" -#: picard/ui/mainwindow.py:302 +#: picard/ui/mainwindow.py:337 msgid "Add files to the tagger" msgstr "" -#: picard/ui/mainwindow.py:307 +#: picard/ui/mainwindow.py:342 msgid "A&dd Folder..." msgstr "" -#: picard/ui/mainwindow.py:308 +#: picard/ui/mainwindow.py:343 msgid "Add a folder to the tagger" msgstr "" -#: picard/ui/mainwindow.py:310 +#: picard/ui/mainwindow.py:345 msgid "Ctrl+D" msgstr "Ctrl+D" -#: picard/ui/mainwindow.py:313 +#: picard/ui/mainwindow.py:348 msgid "&Save" msgstr "&Simpan" -#: picard/ui/mainwindow.py:314 +#: picard/ui/mainwindow.py:349 msgid "Save selected files" msgstr "Simpan berkas terpilih" -#: picard/ui/mainwindow.py:320 +#: picard/ui/mainwindow.py:355 msgid "S&ubmit" msgstr "" -#: picard/ui/mainwindow.py:321 -msgid "Submit fingerprints" +#: picard/ui/mainwindow.py:356 +msgid "Submit acoustic fingerprints" msgstr "" -#: picard/ui/mainwindow.py:325 +#: picard/ui/mainwindow.py:360 msgid "E&xit" msgstr "" -#: picard/ui/mainwindow.py:328 +#: picard/ui/mainwindow.py:363 msgid "Ctrl+Q" msgstr "Ctrl+Q" -#: picard/ui/mainwindow.py:331 +#: picard/ui/mainwindow.py:366 msgid "&Remove" msgstr "" -#: picard/ui/mainwindow.py:332 +#: picard/ui/mainwindow.py:367 msgid "Remove selected files/albums" msgstr "Hapus berkas/album terpilih" -#: picard/ui/mainwindow.py:336 +#: picard/ui/mainwindow.py:371 msgid "Lookup in &Browser" msgstr "" -#: picard/ui/mainwindow.py:337 +#: picard/ui/mainwindow.py:372 msgid "Lookup selected item on MusicBrainz website" msgstr "" -#: picard/ui/mainwindow.py:341 +#: picard/ui/mainwindow.py:376 msgid "File &Browser" msgstr "" -#: picard/ui/mainwindow.py:345 +#: picard/ui/mainwindow.py:380 msgid "Ctrl+B" msgstr "Ctrl+B" -#: picard/ui/mainwindow.py:348 +#: picard/ui/mainwindow.py:383 msgid "&Cover Art" msgstr "" -#: picard/ui/mainwindow.py:354 picard/ui/mainwindow.py:539 +#: picard/ui/mainwindow.py:389 picard/ui/mainwindow.py:591 msgid "Search" msgstr "Pencarian" -#: picard/ui/mainwindow.py:357 -msgid "&CD Lookup..." +#: picard/ui/mainwindow.py:392 +msgid "Lookup &CD..." msgstr "" -#: picard/ui/mainwindow.py:358 picard/ui/mainwindow.py:359 -msgid "Lookup CD" +#: picard/ui/mainwindow.py:393 +msgid "Lookup the details of the CD in your drive" msgstr "" -#: picard/ui/mainwindow.py:361 +#: picard/ui/mainwindow.py:395 msgid "Ctrl+K" msgstr "Ctrl+K" -#: picard/ui/mainwindow.py:364 +#: picard/ui/mainwindow.py:398 msgid "&Scan" msgstr "" -#: picard/ui/mainwindow.py:367 +#: picard/ui/mainwindow.py:401 msgid "Ctrl+Y" msgstr "" -#: picard/ui/mainwindow.py:370 +#: picard/ui/mainwindow.py:404 msgid "Cl&uster" msgstr "" -#: picard/ui/mainwindow.py:373 +#: picard/ui/mainwindow.py:407 msgid "Ctrl+U" msgstr "Ctrl+U" -#: picard/ui/mainwindow.py:376 +#: picard/ui/mainwindow.py:410 msgid "&Lookup" msgstr "" -#: picard/ui/mainwindow.py:377 picard/ui/mainwindow.py:378 -msgid "Lookup metadata" +#: picard/ui/mainwindow.py:411 +msgid "Lookup selected items in MusicBrainz" msgstr "" -#: picard/ui/mainwindow.py:381 +#: picard/ui/mainwindow.py:416 msgid "Ctrl+L" msgstr "Ctrl+L" -#: picard/ui/mainwindow.py:384 +#: picard/ui/mainwindow.py:419 msgid "&Info..." msgstr "" -#: picard/ui/mainwindow.py:387 +#: picard/ui/mainwindow.py:422 msgid "Ctrl+I" msgstr "" -#: picard/ui/mainwindow.py:390 +#: picard/ui/mainwindow.py:425 msgid "&Refresh" msgstr "&Refresh" -#: picard/ui/mainwindow.py:391 +#: picard/ui/mainwindow.py:426 msgid "Ctrl+R" msgstr "" -#: picard/ui/mainwindow.py:394 +#: picard/ui/mainwindow.py:429 msgid "&Rename Files" msgstr "" -#: picard/ui/mainwindow.py:399 +#: picard/ui/mainwindow.py:434 msgid "&Move Files" msgstr "" -#: picard/ui/mainwindow.py:404 +#: picard/ui/mainwindow.py:439 msgid "Save &Tags" msgstr "" -#: picard/ui/mainwindow.py:409 +#: picard/ui/mainwindow.py:444 msgid "Tags From &File Names..." msgstr "" -#: picard/ui/mainwindow.py:412 -msgid "View &Log..." +#: picard/ui/mainwindow.py:447 +msgid "&Open My Collections in Browser" msgstr "" -#: picard/ui/mainwindow.py:415 -msgid "View Status &History..." +#: picard/ui/mainwindow.py:451 +msgid "View Error/Debug &Log" msgstr "" -#: picard/ui/mainwindow.py:422 -msgid "&Open..." +#: picard/ui/mainwindow.py:454 +msgid "View Activity &History" msgstr "" -#: picard/ui/mainwindow.py:423 -msgid "Open the file" -msgstr "" - -#: picard/ui/mainwindow.py:426 -msgid "Open &Folder..." -msgstr "" - -#: picard/ui/mainwindow.py:427 -msgid "Open the containing folder" -msgstr "" - -#: picard/ui/mainwindow.py:448 -msgid "&File" -msgstr "" - -#: picard/ui/mainwindow.py:456 -msgid "&Edit" +#: picard/ui/mainwindow.py:461 +msgid "&Play file" msgstr "" #: picard/ui/mainwindow.py:462 +msgid "Play the file in your default media player" +msgstr "" + +#: picard/ui/mainwindow.py:466 +msgid "Open Containing &Folder" +msgstr "" + +#: picard/ui/mainwindow.py:467 +msgid "Open the containing folder in your file explorer" +msgstr "" + +#: picard/ui/mainwindow.py:492 +msgid "&File" +msgstr "" + +#: picard/ui/mainwindow.py:503 +msgid "&Edit" +msgstr "" + +#: picard/ui/mainwindow.py:509 msgid "&View" msgstr "" -#: picard/ui/mainwindow.py:470 +#: picard/ui/mainwindow.py:515 msgid "&Options" msgstr "" -#: picard/ui/mainwindow.py:476 +#: picard/ui/mainwindow.py:521 msgid "&Tools" msgstr "" -#: picard/ui/mainwindow.py:485 picard/ui/util.py:35 +#: picard/ui/mainwindow.py:532 picard/ui/util.py:35 msgid "&Help" msgstr "" -#: picard/ui/mainwindow.py:505 +#: picard/ui/mainwindow.py:553 msgid "Actions" msgstr "" -#: picard/ui/mainwindow.py:608 +#: picard/ui/mainwindow.py:599 +msgid "Track" +msgstr "Trek" + +#: picard/ui/mainwindow.py:662 msgid "All Supported Formats" msgstr "" -#: picard/ui/mainwindow.py:705 +#: picard/ui/mainwindow.py:695 +#, python-format +msgid "Adding directory: '%(directory)s' ..." +msgstr "" + +#: picard/ui/mainwindow.py:702 +#, python-format +msgid "Adding multiple directories from '%(directory)s' ..." +msgstr "" + +#: picard/ui/mainwindow.py:767 msgid "Configuration Required" msgstr "" -#: picard/ui/mainwindow.py:706 +#: picard/ui/mainwindow.py:768 msgid "" "Audio fingerprinting is not yet configured. Would you like to configure it " "now?" msgstr "" -#: picard/ui/mainwindow.py:784 picard/ui/mainwindow.py:791 +#: picard/ui/mainwindow.py:848 #, python-format -msgid " (Error: %s)" +msgid "%(filename)s (error: %(error)s)" +msgstr "" + +#: picard/ui/mainwindow.py:854 +#, python-format +msgid "%(filename)s" +msgstr "" + +#: picard/ui/mainwindow.py:864 +#, python-format +msgid "%(filename)s (%(similarity)d%%) (error: %(error)s)" +msgstr "" + +#: picard/ui/mainwindow.py:871 +#, python-format +msgid "%(filename)s (%(similarity)d%%)" msgstr "" #: picard/ui/metadatabox.py:82 @@ -1091,387 +1016,387 @@ msgid "Use Original Value" msgid_plural "Use Original Values" msgstr[0] "" -#: picard/ui/passworddialog.py:37 +#: picard/ui/passworddialog.py:40 #, python-format msgid "" "The server %s requires you to login. Please enter your username and " "password." msgstr "" -#: picard/ui/passworddialog.py:75 +#: picard/ui/passworddialog.py:79 #, python-format msgid "" "The proxy %s requires you to login. Please enter your username and password." msgstr "" -#: picard/ui/tagsfromfilenames.py:55 picard/ui/tagsfromfilenames.py:100 +#: picard/ui/tagsfromfilenames.py:56 picard/ui/tagsfromfilenames.py:101 msgid "File Name" msgstr "Nama Berkas" -#: picard/ui/ui_cdlookup.py:66 picard/ui/ui_options_cdlookup.py:55 -#: picard/ui/ui_options_cdlookup_select.py:62 picard/ui/options/cdlookup.py:38 +#: picard/ui/ui_cdlookup.py:53 picard/ui/ui_options_cdlookup.py:42 +#: picard/ui/ui_options_cdlookup_select.py:49 picard/ui/options/cdlookup.py:38 msgid "CD Lookup" msgstr "" -#: picard/ui/ui_cdlookup.py:67 +#: picard/ui/ui_cdlookup.py:54 msgid "The following releases on MusicBrainz match the CD:" msgstr "" -#: picard/ui/ui_cdlookup.py:68 +#: picard/ui/ui_cdlookup.py:55 msgid "OK" msgstr "Setuju" -#: picard/ui/ui_cdlookup.py:69 +#: picard/ui/ui_cdlookup.py:56 msgid "Lookup manually" msgstr "" -#: picard/ui/ui_cdlookup.py:70 +#: picard/ui/ui_cdlookup.py:57 msgid "Cancel" msgstr "Batal" -#: picard/ui/ui_edittagdialog.py:101 +#: picard/ui/ui_edittagdialog.py:88 msgid "Edit Tag" msgstr "" -#: picard/ui/ui_edittagdialog.py:102 +#: picard/ui/ui_edittagdialog.py:89 msgid "Edit value" msgstr "" -#: picard/ui/ui_edittagdialog.py:103 +#: picard/ui/ui_edittagdialog.py:90 msgid "Add value" msgstr "" -#: picard/ui/ui_edittagdialog.py:104 +#: picard/ui/ui_edittagdialog.py:91 msgid "Remove value" msgstr "" -#: picard/ui/ui_infodialog.py:78 +#: picard/ui/ui_infodialog.py:74 msgid "A&rtwork" msgstr "A&rtwork" -#: picard/ui/ui_infostatus.py:100 +#: picard/ui/ui_infostatus.py:96 msgid "Form" msgstr "" -#: picard/ui/ui_options.py:51 +#: picard/ui/ui_options.py:38 msgid "Options" msgstr "Pilihan" -#: picard/ui/ui_options_advanced.py:46 +#: picard/ui/ui_options_advanced.py:42 msgid "Advanced options" msgstr "" -#: picard/ui/ui_options_advanced.py:47 +#: picard/ui/ui_options_advanced.py:43 msgid "Ignore file paths matching the following regular expression:" msgstr "" -#: picard/ui/ui_options_cdlookup.py:56 +#: picard/ui/ui_options_cdlookup.py:43 msgid "CD-ROM device to use for lookups:" msgstr "" -#: picard/ui/ui_options_cdlookup_select.py:63 +#: picard/ui/ui_options_cdlookup_select.py:50 msgid "Default CD-ROM drive to use for lookups:" msgstr "" -#: picard/ui/ui_options_cover.py:145 +#: picard/ui/ui_options_cover.py:131 msgid "Location" msgstr "Lokasi" -#: picard/ui/ui_options_cover.py:146 +#: picard/ui/ui_options_cover.py:132 msgid "Embed cover images into tags" msgstr "Cantumkan gambar sampul ke dalam label" -#: picard/ui/ui_options_cover.py:147 +#: picard/ui/ui_options_cover.py:133 msgid "Only embed a front image" msgstr "" -#: picard/ui/ui_options_cover.py:148 +#: picard/ui/ui_options_cover.py:134 msgid "Save cover images as separate files" msgstr "Simpan gambar sampul sebagai berkas terpisah" -#: picard/ui/ui_options_cover.py:149 +#: picard/ui/ui_options_cover.py:135 msgid "Use the following file name for images:" msgstr "" -#: picard/ui/ui_options_cover.py:150 +#: picard/ui/ui_options_cover.py:136 msgid "Overwrite the file if it already exists" msgstr "Timpa berkas jika sudah ada" -#: picard/ui/ui_options_cover.py:151 +#: picard/ui/ui_options_cover.py:137 msgid "Coverart Providers" msgstr "" -#: picard/ui/ui_options_cover.py:152 +#: picard/ui/ui_options_cover.py:138 msgid "Amazon" msgstr "" -#: picard/ui/ui_options_cover.py:153 picard/ui/ui_options_cover.py:155 +#: picard/ui/ui_options_cover.py:139 picard/ui/ui_options_cover.py:141 msgid "Cover Art Archive" msgstr "" -#: picard/ui/ui_options_cover.py:154 +#: picard/ui/ui_options_cover.py:140 msgid "Sites on the whitelist" msgstr "" -#: picard/ui/ui_options_cover.py:156 +#: picard/ui/ui_options_cover.py:142 msgid "Only use images of the following size:" msgstr "" -#: picard/ui/ui_options_cover.py:157 +#: picard/ui/ui_options_cover.py:143 msgid "250 px" msgstr "" -#: picard/ui/ui_options_cover.py:158 +#: picard/ui/ui_options_cover.py:144 msgid "500 px" msgstr "" -#: picard/ui/ui_options_cover.py:159 +#: picard/ui/ui_options_cover.py:145 msgid "Full size" msgstr "" -#: picard/ui/ui_options_cover.py:160 +#: picard/ui/ui_options_cover.py:146 msgid "Download only images of the following types:" msgstr "" -#: picard/ui/ui_options_cover.py:161 +#: picard/ui/ui_options_cover.py:147 msgid "Download only approved images" msgstr "" -#: picard/ui/ui_options_cover.py:162 +#: picard/ui/ui_options_cover.py:148 msgid "" "Use the first image type as the filename. This will not change the filename " "of front images." msgstr "" -#: picard/ui/ui_options_fingerprinting.py:83 +#: picard/ui/ui_options_fingerprinting.py:70 msgid "Audio Fingerprinting" msgstr "" -#: picard/ui/ui_options_fingerprinting.py:84 +#: picard/ui/ui_options_fingerprinting.py:71 msgid "Do not use audio fingerprinting" msgstr "" -#: picard/ui/ui_options_fingerprinting.py:85 +#: picard/ui/ui_options_fingerprinting.py:72 msgid "Use AcoustID" msgstr "" -#: picard/ui/ui_options_fingerprinting.py:86 +#: picard/ui/ui_options_fingerprinting.py:73 msgid "AcoustID Settings" msgstr "" -#: picard/ui/ui_options_fingerprinting.py:87 +#: picard/ui/ui_options_fingerprinting.py:74 msgid "Fingerprint calculator:" msgstr "" -#: picard/ui/ui_options_fingerprinting.py:88 -#: picard/ui/ui_options_interface.py:88 picard/ui/ui_options_renaming.py:138 +#: picard/ui/ui_options_fingerprinting.py:75 +#: picard/ui/ui_options_interface.py:75 picard/ui/ui_options_renaming.py:134 msgid "Browse..." msgstr "Jelajah..." -#: picard/ui/ui_options_fingerprinting.py:89 +#: picard/ui/ui_options_fingerprinting.py:76 msgid "Download..." msgstr "" -#: picard/ui/ui_options_fingerprinting.py:90 +#: picard/ui/ui_options_fingerprinting.py:77 msgid "API key:" msgstr "" -#: picard/ui/ui_options_fingerprinting.py:91 +#: picard/ui/ui_options_fingerprinting.py:78 msgid "Get API key..." msgstr "" -#: picard/ui/ui_options_folksonomy.py:115 picard/ui/options/folksonomy.py:28 +#: picard/ui/ui_options_folksonomy.py:102 picard/ui/options/folksonomy.py:28 msgid "Folksonomy Tags" msgstr "" -#: picard/ui/ui_options_folksonomy.py:117 +#: picard/ui/ui_options_folksonomy.py:104 msgid "Only use my tags" msgstr "" -#: picard/ui/ui_options_folksonomy.py:120 +#: picard/ui/ui_options_folksonomy.py:107 msgid "Maximum number of tags:" msgstr "" -#: picard/ui/ui_options_general.py:92 +#: picard/ui/ui_options_general.py:88 msgid "MusicBrainz Server" msgstr "" -#: picard/ui/ui_options_general.py:93 picard/ui/ui_options_network.py:123 +#: picard/ui/ui_options_general.py:89 picard/ui/ui_options_network.py:110 msgid "Port:" msgstr "Port:" -#: picard/ui/ui_options_general.py:94 picard/ui/ui_options_network.py:124 +#: picard/ui/ui_options_general.py:90 picard/ui/ui_options_network.py:111 msgid "Server address:" msgstr "Alamat server:" -#: picard/ui/ui_options_general.py:95 +#: picard/ui/ui_options_general.py:91 msgid "Account Information" msgstr "Informasi Akun" -#: picard/ui/ui_options_general.py:96 picard/ui/ui_options_network.py:121 -#: picard/ui/ui_passworddialog.py:74 +#: picard/ui/ui_options_general.py:92 picard/ui/ui_options_network.py:108 +#: picard/ui/ui_passworddialog.py:70 msgid "Password:" msgstr "Kata Sandi:" -#: picard/ui/ui_options_general.py:97 picard/ui/ui_options_network.py:122 -#: picard/ui/ui_passworddialog.py:73 +#: picard/ui/ui_options_general.py:93 picard/ui/ui_options_network.py:109 +#: picard/ui/ui_passworddialog.py:69 msgid "Username:" msgstr "Nama Pengguna:" -#: picard/ui/ui_options_general.py:98 picard/ui/options/general.py:31 +#: picard/ui/ui_options_general.py:94 picard/ui/options/general.py:31 msgid "General" msgstr "Umum" -#: picard/ui/ui_options_general.py:99 +#: picard/ui/ui_options_general.py:95 msgid "Automatically scan all new files" msgstr "Memindai otomatis semua berkas baru" -#: picard/ui/ui_options_general.py:100 +#: picard/ui/ui_options_general.py:96 msgid "Ignore MBIDs when loading new files" msgstr "" -#: picard/ui/ui_options_interface.py:82 +#: picard/ui/ui_options_interface.py:69 msgid "Miscellaneous" msgstr "Lain-lain" -#: picard/ui/ui_options_interface.py:83 +#: picard/ui/ui_options_interface.py:70 msgid "Show text labels under icons" msgstr "Tampilkan teks label di bawah ikon" -#: picard/ui/ui_options_interface.py:84 +#: picard/ui/ui_options_interface.py:71 msgid "Allow selection of multiple directories" msgstr "Perbolehkan seleksi dari banyak direktori" -#: picard/ui/ui_options_interface.py:85 +#: picard/ui/ui_options_interface.py:72 msgid "Use advanced query syntax" msgstr "" -#: picard/ui/ui_options_interface.py:86 +#: picard/ui/ui_options_interface.py:73 msgid "Show a quit confirmation dialog for unsaved changes" msgstr "" -#: picard/ui/ui_options_interface.py:87 +#: picard/ui/ui_options_interface.py:74 msgid "Begin browsing in the following directory:" msgstr "" -#: picard/ui/ui_options_interface.py:89 +#: picard/ui/ui_options_interface.py:76 msgid "User interface language:" msgstr "Bahasa antarmuka pengguna:" -#: picard/ui/ui_options_matching.py:86 +#: picard/ui/ui_options_matching.py:73 msgid "Thresholds" msgstr "Batas" -#: picard/ui/ui_options_matching.py:87 +#: picard/ui/ui_options_matching.py:74 msgid "Minimal similarity for matching files to tracks:" msgstr "" -#: picard/ui/ui_options_matching.py:91 +#: picard/ui/ui_options_matching.py:78 msgid "Minimal similarity for file lookups:" msgstr "" -#: picard/ui/ui_options_matching.py:92 +#: picard/ui/ui_options_matching.py:79 msgid "Minimal similarity for cluster lookups:" msgstr "" -#: picard/ui/ui_options_metadata.py:114 picard/ui/options/metadata.py:29 +#: picard/ui/ui_options_metadata.py:101 picard/ui/options/metadata.py:29 msgid "Metadata" msgstr "Metadata" -#: picard/ui/ui_options_metadata.py:115 +#: picard/ui/ui_options_metadata.py:102 msgid "Translate artist names to this locale where possible:" msgstr "" -#: picard/ui/ui_options_metadata.py:116 +#: picard/ui/ui_options_metadata.py:103 msgid "Use standardized artist names" msgstr "" -#: picard/ui/ui_options_metadata.py:117 +#: picard/ui/ui_options_metadata.py:104 msgid "Convert Unicode punctuation characters to ASCII" msgstr "" -#: picard/ui/ui_options_metadata.py:118 +#: picard/ui/ui_options_metadata.py:105 msgid "Use release relationships" msgstr "" -#: picard/ui/ui_options_metadata.py:119 +#: picard/ui/ui_options_metadata.py:106 msgid "Use track relationships" msgstr "" -#: picard/ui/ui_options_metadata.py:120 +#: picard/ui/ui_options_metadata.py:107 msgid "Use folksonomy tags as genre" msgstr "" -#: picard/ui/ui_options_metadata.py:121 +#: picard/ui/ui_options_metadata.py:108 msgid "Custom Fields" msgstr "" -#: picard/ui/ui_options_metadata.py:122 +#: picard/ui/ui_options_metadata.py:109 msgid "Various artists:" msgstr "" -#: picard/ui/ui_options_metadata.py:123 +#: picard/ui/ui_options_metadata.py:110 msgid "Non-album tracks:" msgstr "" -#: picard/ui/ui_options_metadata.py:124 picard/ui/ui_options_metadata.py:125 -#: picard/ui/ui_options_renaming.py:147 +#: picard/ui/ui_options_metadata.py:111 picard/ui/ui_options_metadata.py:112 +#: picard/ui/ui_options_renaming.py:143 msgid "Default" msgstr "Standar" -#: picard/ui/ui_options_network.py:120 +#: picard/ui/ui_options_network.py:107 msgid "Web Proxy" msgstr "Web Proxy" -#: picard/ui/ui_options_network.py:125 +#: picard/ui/ui_options_network.py:112 msgid "Browser Integration" msgstr "" -#: picard/ui/ui_options_network.py:126 +#: picard/ui/ui_options_network.py:113 msgid "Default listening port:" msgstr "" -#: picard/ui/ui_options_network.py:127 +#: picard/ui/ui_options_network.py:114 msgid "Listen only on localhost" msgstr "" -#: picard/ui/ui_options_plugins.py:131 picard/ui/options/plugins.py:38 +#: picard/ui/ui_options_plugins.py:127 picard/ui/options/plugins.py:38 msgid "Plugins" msgstr "" -#: picard/ui/ui_options_plugins.py:132 picard/ui/options/plugins.py:122 +#: picard/ui/ui_options_plugins.py:128 picard/ui/options/plugins.py:122 msgid "Name" msgstr "Nama" -#: picard/ui/ui_options_plugins.py:133 picard/util/tags.py:39 +#: picard/ui/ui_options_plugins.py:129 msgid "Version" msgstr "Versi" -#: picard/ui/ui_options_plugins.py:134 picard/ui/options/plugins.py:125 +#: picard/ui/ui_options_plugins.py:130 picard/ui/options/plugins.py:125 msgid "Author" msgstr "Pencipta" -#: picard/ui/ui_options_plugins.py:135 +#: picard/ui/ui_options_plugins.py:131 msgid "Install plugin..." msgstr "" -#: picard/ui/ui_options_plugins.py:136 +#: picard/ui/ui_options_plugins.py:132 msgid "Open plugin folder" msgstr "" -#: picard/ui/ui_options_plugins.py:137 +#: picard/ui/ui_options_plugins.py:133 msgid "Download plugins" msgstr "" -#: picard/ui/ui_options_plugins.py:138 +#: picard/ui/ui_options_plugins.py:134 msgid "Details" msgstr "Detil" -#: picard/ui/ui_options_ratings.py:53 +#: picard/ui/ui_options_ratings.py:49 msgid "Enable track ratings" msgstr "" -#: picard/ui/ui_options_ratings.py:54 +#: picard/ui/ui_options_ratings.py:50 msgid "" "Picard saves the ratings together with an e-mail address identifying the " "user who did the rating. That way different ratings for different users can " @@ -1479,207 +1404,167 @@ msgid "" "your ratings." msgstr "" -#: picard/ui/ui_options_ratings.py:55 +#: picard/ui/ui_options_ratings.py:51 msgid "E-mail:" msgstr "E-mail:" -#: picard/ui/ui_options_ratings.py:56 +#: picard/ui/ui_options_ratings.py:52 msgid "Submit ratings to MusicBrainz" msgstr "" -#: picard/ui/ui_options_releases.py:215 +#: picard/ui/ui_options_releases.py:104 msgid "Preferred release types" msgstr "" -#: picard/ui/ui_options_releases.py:217 -msgid "Single" -msgstr "" - -#: picard/ui/ui_options_releases.py:218 -msgid "EP" -msgstr "" - -#: picard/ui/ui_options_releases.py:219 -msgid "Compilation" -msgstr "Kompilasi" - -#: picard/ui/ui_options_releases.py:220 -msgid "Soundtrack" -msgstr "" - -#: picard/ui/ui_options_releases.py:221 -msgid "Spokenword" -msgstr "" - -#: picard/ui/ui_options_releases.py:222 -msgid "Interview" -msgstr "" - -#: picard/ui/ui_options_releases.py:223 -msgid "Audiobook" -msgstr "" - -#: picard/ui/ui_options_releases.py:224 -msgid "Live" -msgstr "" - -#: picard/ui/ui_options_releases.py:225 -msgid "Remix" -msgstr "" - -#: picard/ui/ui_options_releases.py:227 -msgid "Reset all" -msgstr "" - -#: picard/ui/ui_options_releases.py:228 +#: picard/ui/ui_options_releases.py:105 msgid "Preferred release countries" msgstr "" -#: picard/ui/ui_options_releases.py:229 picard/ui/ui_options_releases.py:232 +#: picard/ui/ui_options_releases.py:106 picard/ui/ui_options_releases.py:109 msgid ">" msgstr "" -#: picard/ui/ui_options_releases.py:230 picard/ui/ui_options_releases.py:233 +#: picard/ui/ui_options_releases.py:107 picard/ui/ui_options_releases.py:110 msgid "<" msgstr "" -#: picard/ui/ui_options_releases.py:231 +#: picard/ui/ui_options_releases.py:108 msgid "Preferred release formats" msgstr "" -#: picard/ui/ui_options_renaming.py:134 +#: picard/ui/ui_options_renaming.py:130 msgid "Rename files when saving" msgstr "Ganti nama berkas ketika menyimpan" -#: picard/ui/ui_options_renaming.py:135 +#: picard/ui/ui_options_renaming.py:131 msgid "Replace non-ASCII characters" msgstr "Ganti karakter non-ASCII" -#: picard/ui/ui_options_renaming.py:136 +#: picard/ui/ui_options_renaming.py:132 msgid "Windows compatibility" msgstr "" -#: picard/ui/ui_options_renaming.py:137 +#: picard/ui/ui_options_renaming.py:133 msgid "Move files to this directory when saving:" msgstr "Pindahkan berkas ke direktori ini jika menyimpan:" -#: picard/ui/ui_options_renaming.py:139 +#: picard/ui/ui_options_renaming.py:135 msgid "Delete empty directories" msgstr "Hapus direktori kosong" -#: picard/ui/ui_options_renaming.py:140 +#: picard/ui/ui_options_renaming.py:136 msgid "Move additional files:" msgstr "Pindah berkas tambahan:" -#: picard/ui/ui_options_renaming.py:141 +#: picard/ui/ui_options_renaming.py:137 msgid "Name files like this" msgstr "Nama berkas seperti ini" -#: picard/ui/ui_options_renaming.py:148 +#: picard/ui/ui_options_renaming.py:144 msgid "Examples" msgstr "Contoh" -#: picard/ui/ui_options_script.py:49 +#: picard/ui/ui_options_script.py:45 msgid "Tagger Script" msgstr "" -#: picard/ui/ui_options_tags.py:165 +#: picard/ui/ui_options_tags.py:152 msgid "Write tags to files" msgstr "" -#: picard/ui/ui_options_tags.py:166 +#: picard/ui/ui_options_tags.py:153 msgid "Preserve timestamps of tagged files" msgstr "" -#: picard/ui/ui_options_tags.py:167 +#: picard/ui/ui_options_tags.py:154 msgid "Before Tagging" msgstr "" -#: picard/ui/ui_options_tags.py:168 +#: picard/ui/ui_options_tags.py:155 msgid "Clear existing tags" msgstr "" -#: picard/ui/ui_options_tags.py:169 +#: picard/ui/ui_options_tags.py:156 msgid "Remove ID3 tags from FLAC files" msgstr "" -#: picard/ui/ui_options_tags.py:170 +#: picard/ui/ui_options_tags.py:157 msgid "Remove APEv2 tags from MP3 files" msgstr "" -#: picard/ui/ui_options_tags.py:171 +#: picard/ui/ui_options_tags.py:158 msgid "" "Preserve these tags from being cleared or overwritten with MusicBrainz data:" msgstr "" -#: picard/ui/ui_options_tags.py:172 +#: picard/ui/ui_options_tags.py:159 msgid "Tags are separated by commas, and are case-sensitive." msgstr "" -#: picard/ui/ui_options_tags.py:173 +#: picard/ui/ui_options_tags.py:160 msgid "Tag Compatibility" msgstr "" -#: picard/ui/ui_options_tags.py:174 +#: picard/ui/ui_options_tags.py:161 msgid "ID3v2 Version" msgstr "" -#: picard/ui/ui_options_tags.py:175 +#: picard/ui/ui_options_tags.py:162 msgid "2.4" msgstr "2,4" -#: picard/ui/ui_options_tags.py:176 +#: picard/ui/ui_options_tags.py:163 msgid "2.3" msgstr "2.3" -#: picard/ui/ui_options_tags.py:177 +#: picard/ui/ui_options_tags.py:164 msgid "ID3v2 Text Encoding" msgstr "" -#: picard/ui/ui_options_tags.py:178 +#: picard/ui/ui_options_tags.py:165 msgid "UTF-8" msgstr "UTF-8" -#: picard/ui/ui_options_tags.py:179 +#: picard/ui/ui_options_tags.py:166 msgid "UTF-16" msgstr "UTF-16" -#: picard/ui/ui_options_tags.py:180 +#: picard/ui/ui_options_tags.py:167 msgid "ISO-8859-1" msgstr "ISO-8859-1" -#: picard/ui/ui_options_tags.py:181 +#: picard/ui/ui_options_tags.py:168 msgid "Join multiple ID3v2.3 tags with:" msgstr "" -#: picard/ui/ui_options_tags.py:182 +#: picard/ui/ui_options_tags.py:169 msgid "" "

Default is '/' to maintain compatibility with previous" " Picard releases.

New alternatives are ';_' or '_/_' or type your own." "

" msgstr "" -#: picard/ui/ui_options_tags.py:183 +#: picard/ui/ui_options_tags.py:170 msgid "Also include ID3v1 tags in the files" msgstr "" -#: picard/ui/ui_passworddialog.py:72 +#: picard/ui/ui_passworddialog.py:68 msgid "Authentication required" msgstr "" -#: picard/ui/ui_passworddialog.py:75 +#: picard/ui/ui_passworddialog.py:71 msgid "Save username and password" msgstr "" -#: picard/ui/ui_tagsfromfilenames.py:54 +#: picard/ui/ui_tagsfromfilenames.py:50 msgid "Convert File Names to Tags" msgstr "" -#: picard/ui/ui_tagsfromfilenames.py:55 +#: picard/ui/ui_tagsfromfilenames.py:51 msgid "Replace underscores with spaces" msgstr "" -#: picard/ui/ui_tagsfromfilenames.py:56 +#: picard/ui/ui_tagsfromfilenames.py:52 msgid "&Preview" msgstr "" @@ -1735,7 +1620,11 @@ msgstr "Tingkat lanjut" msgid "Regex Error" msgstr "" -#: picard/ui/options/cover.py:63 +#: picard/ui/options/cover.py:44 +msgid "title" +msgstr "" + +#: picard/ui/options/cover.py:68 msgid "Cover Art" msgstr "Seni Sampul" @@ -1751,11 +1640,11 @@ msgstr "" msgid "System default" msgstr "Sistem standar" -#: picard/ui/options/interface.py:96 +#: picard/ui/options/interface.py:98 msgid "Language changed" msgstr "Bahasa diganti" -#: picard/ui/options/interface.py:96 +#: picard/ui/options/interface.py:99 msgid "" "You have changed the interface language. You have to restart Picard in order" " for the change to take effect." @@ -1777,31 +1666,35 @@ msgstr "Berkas" msgid "Ratings" msgstr "" -#: picard/ui/options/releases.py:33 +#: picard/ui/options/releases.py:87 msgid "Preferred Releases" msgstr "" +#: picard/ui/options/releases.py:121 +msgid "Reset all" +msgstr "" + #: picard/ui/options/renaming.py:37 msgid "File Naming" msgstr "" -#: picard/ui/options/renaming.py:184 +#: picard/ui/options/renaming.py:187 msgid "Error" msgstr "" -#: picard/ui/options/renaming.py:184 +#: picard/ui/options/renaming.py:187 msgid "The location to move files to must not be empty." msgstr "" -#: picard/ui/options/renaming.py:194 +#: picard/ui/options/renaming.py:197 msgid "The file naming format must not be empty." msgstr "" -#: picard/ui/options/scripting.py:63 +#: picard/ui/options/scripting.py:99 msgid "Scripting" msgstr "" -#: picard/ui/options/scripting.py:95 +#: picard/ui/options/scripting.py:131 msgid "Script Error" msgstr "" @@ -1921,199 +1814,199 @@ msgstr "ASIN" msgid "Grouping" msgstr "Kelompokkan" -#: picard/util/tags.py:40 +#: picard/util/tags.py:39 msgid "ISRC" msgstr "ISRC" -#: picard/util/tags.py:41 +#: picard/util/tags.py:40 msgid "Mood" msgstr "Mood" -#: picard/util/tags.py:42 +#: picard/util/tags.py:41 msgid "BPM" msgstr "BPM" -#: picard/util/tags.py:43 +#: picard/util/tags.py:42 msgid "Copyright" msgstr "Hak Cipta" -#: picard/util/tags.py:44 +#: picard/util/tags.py:43 msgid "License" msgstr "" -#: picard/util/tags.py:45 +#: picard/util/tags.py:44 msgid "Composer" msgstr "Pengarang" -#: picard/util/tags.py:46 +#: picard/util/tags.py:45 msgid "Writer" msgstr "" -#: picard/util/tags.py:47 +#: picard/util/tags.py:46 msgid "Conductor" msgstr "Konduktor" -#: picard/util/tags.py:48 +#: picard/util/tags.py:47 msgid "Lyricist" msgstr "Lirik" -#: picard/util/tags.py:49 +#: picard/util/tags.py:48 msgid "Arranger" msgstr "Penyusun" -#: picard/util/tags.py:50 +#: picard/util/tags.py:49 msgid "Producer" msgstr "Produser" -#: picard/util/tags.py:51 +#: picard/util/tags.py:50 msgid "Engineer" msgstr "Insinyur" -#: picard/util/tags.py:52 +#: picard/util/tags.py:51 msgid "Subtitle" msgstr "Subjudul" -#: picard/util/tags.py:53 +#: picard/util/tags.py:52 msgid "Disc Subtitle" msgstr "Subjudul Cakram" -#: picard/util/tags.py:54 +#: picard/util/tags.py:53 msgid "Remixer" msgstr "Remixer" -#: picard/util/tags.py:55 +#: picard/util/tags.py:54 msgid "MusicBrainz Recording Id" msgstr "" -#: picard/util/tags.py:56 +#: picard/util/tags.py:55 msgid "MusicBrainz Track Id" msgstr "" -#: picard/util/tags.py:57 +#: picard/util/tags.py:56 msgid "MusicBrainz Release Id" msgstr "MusicBrainz Id Rilis" -#: picard/util/tags.py:58 +#: picard/util/tags.py:57 msgid "MusicBrainz Artist Id" msgstr "MusicBrainz Id Artis" -#: picard/util/tags.py:59 +#: picard/util/tags.py:58 msgid "MusicBrainz Release Artist Id" msgstr "" -#: picard/util/tags.py:60 +#: picard/util/tags.py:59 msgid "MusicBrainz Work Id" msgstr "" -#: picard/util/tags.py:61 +#: picard/util/tags.py:60 msgid "MusicBrainz Release Group Id" msgstr "" -#: picard/util/tags.py:62 +#: picard/util/tags.py:61 msgid "MusicBrainz Disc Id" msgstr "Id Cakram MusicBrainz" -#: picard/util/tags.py:63 -msgid "MusicBrainz Sort Name" -msgstr "" - -#: picard/util/tags.py:64 +#: picard/util/tags.py:62 msgid "MusicIP PUID" msgstr "MusicIP PUID" -#: picard/util/tags.py:65 +#: picard/util/tags.py:63 msgid "MusicIP Fingerprint" msgstr "Sidik Jari MusicIP" -#: picard/util/tags.py:66 +#: picard/util/tags.py:64 msgid "AcoustID" msgstr "" -#: picard/util/tags.py:67 +#: picard/util/tags.py:65 msgid "AcoustID Fingerprint" msgstr "" -#: picard/util/tags.py:68 +#: picard/util/tags.py:66 msgid "Disc Id" msgstr "Id Cakram" -#: picard/util/tags.py:69 -msgid "Website" -msgstr "Situs Web" +#: picard/util/tags.py:67 +msgid "Artist Website" +msgstr "" -#: picard/util/tags.py:70 +#: picard/util/tags.py:68 msgid "Compilation (iTunes)" msgstr "" -#: picard/util/tags.py:71 +#: picard/util/tags.py:69 msgid "Comment" msgstr "Komentar" -#: picard/util/tags.py:72 +#: picard/util/tags.py:70 msgid "Genre" msgstr "Aliran" -#: picard/util/tags.py:73 +#: picard/util/tags.py:71 msgid "Encoded By" msgstr "Disandikan Oleh" -#: picard/util/tags.py:74 +#: picard/util/tags.py:72 +msgid "Encoder Settings" +msgstr "" + +#: picard/util/tags.py:73 msgid "Performer" msgstr "Pemain" -#: picard/util/tags.py:75 +#: picard/util/tags.py:74 msgid "Release Type" msgstr "Jenis Rilis" -#: picard/util/tags.py:76 +#: picard/util/tags.py:75 msgid "Release Status" msgstr "Status Rilis" -#: picard/util/tags.py:77 +#: picard/util/tags.py:76 msgid "Release Country" msgstr "Negara Rilis" -#: picard/util/tags.py:78 +#: picard/util/tags.py:77 msgid "Record Label" msgstr "Label Rekaman" -#: picard/util/tags.py:80 +#: picard/util/tags.py:79 msgid "Catalog Number" msgstr "Nomor Katalog" -#: picard/util/tags.py:82 +#: picard/util/tags.py:80 msgid "DJ-Mixer" msgstr "DJ-Mixer" -#: picard/util/tags.py:83 +#: picard/util/tags.py:81 msgid "Media" msgstr "Media" -#: picard/util/tags.py:84 +#: picard/util/tags.py:82 msgid "Lyrics" msgstr "Lirik" -#: picard/util/tags.py:85 +#: picard/util/tags.py:83 msgid "Mixer" msgstr "Mixer" -#: picard/util/tags.py:86 +#: picard/util/tags.py:84 msgid "Language" msgstr "Bahasa" -#: picard/util/tags.py:87 +#: picard/util/tags.py:85 msgid "Script" msgstr "Skrip" -#: picard/util/tags.py:89 +#: picard/util/tags.py:87 msgid "Rating" msgstr "" -#: picard/util/tags.py:90 +#: picard/util/tags.py:88 msgid "Artists" msgstr "" -#: picard/util/tags.py:91 +#: picard/util/tags.py:89 msgid "Work" msgstr "" diff --git a/po/is.po b/po/is.po index 4e183cfd7..4f6612645 100644 --- a/po/is.po +++ b/po/is.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: MusicBrainz\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2014-03-20 11:12+0100\n" -"PO-Revision-Date: 2014-03-21 08:44+0000\n" +"POT-Creation-Date: 2014-05-03 17:28+0200\n" +"PO-Revision-Date: 2014-05-04 08:44+0000\n" "Last-Translator: nikki\n" "Language-Team: Icelandic (http://www.transifex.com/projects/p/musicbrainz/language/is/)\n" "MIME-Version: 1.0\n" @@ -19,6 +19,10 @@ msgstr "" "Language: is\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" +#: contrib/plugins/albumartist_website.py:3 +msgid "Album Artist Website" +msgstr "" + #: contrib/plugins/no_release.py:50 msgid "Enable plugin for all releases by default" msgstr "" @@ -31,63 +35,55 @@ msgstr "" msgid "Remove specific release information..." msgstr "" -#: contrib/plugins/open_in_gui.py:32 -msgid "Open Error" +#: contrib/plugins/standardise_performers.py:3 +msgid "Standardise Performers" msgstr "" -#: contrib/plugins/open_in_gui.py:32 -#, python-format -msgid "" -"Error while opening file:\n" -"\n" -"%s" -msgstr "" - -#: contrib/plugins/lastfm/ui_options_lastfm.py:117 +#: contrib/plugins/lastfm/ui_options_lastfm.py:99 msgid "Last.fm" msgstr "" -#: contrib/plugins/lastfm/ui_options_lastfm.py:118 +#: contrib/plugins/lastfm/ui_options_lastfm.py:100 msgid "Use track tags" msgstr "" -#: contrib/plugins/lastfm/ui_options_lastfm.py:119 +#: contrib/plugins/lastfm/ui_options_lastfm.py:101 msgid "Use artist tags" msgstr "" -#: contrib/plugins/lastfm/ui_options_lastfm.py:120 +#: contrib/plugins/lastfm/ui_options_lastfm.py:102 #: picard/ui/options/tags.py:30 msgid "Tags" msgstr "Tög" -#: contrib/plugins/lastfm/ui_options_lastfm.py:121 -#: picard/ui/ui_options_folksonomy.py:116 +#: contrib/plugins/lastfm/ui_options_lastfm.py:103 +#: picard/ui/ui_options_folksonomy.py:103 msgid "Ignore tags:" msgstr "Hunsa tög:" -#: contrib/plugins/lastfm/ui_options_lastfm.py:122 -#: picard/ui/ui_options_folksonomy.py:121 +#: contrib/plugins/lastfm/ui_options_lastfm.py:104 +#: picard/ui/ui_options_folksonomy.py:108 msgid "Join multiple tags with:" msgstr "Tengja mörg tög með:" -#: contrib/plugins/lastfm/ui_options_lastfm.py:123 -#: picard/ui/ui_options_folksonomy.py:122 +#: contrib/plugins/lastfm/ui_options_lastfm.py:105 +#: picard/ui/ui_options_folksonomy.py:109 msgid " / " msgstr " / " -#: contrib/plugins/lastfm/ui_options_lastfm.py:124 -#: picard/ui/ui_options_folksonomy.py:123 +#: contrib/plugins/lastfm/ui_options_lastfm.py:106 +#: picard/ui/ui_options_folksonomy.py:110 msgid ", " msgstr ", " -#: contrib/plugins/lastfm/ui_options_lastfm.py:125 -#: picard/ui/ui_options_folksonomy.py:118 +#: contrib/plugins/lastfm/ui_options_lastfm.py:107 +#: picard/ui/ui_options_folksonomy.py:105 msgid "Minimal tag usage:" msgstr "Lágmarksnotkun taga:" -#: contrib/plugins/lastfm/ui_options_lastfm.py:126 -#: picard/ui/ui_options_folksonomy.py:119 picard/ui/ui_options_matching.py:88 -#: picard/ui/ui_options_matching.py:89 picard/ui/ui_options_matching.py:90 +#: contrib/plugins/lastfm/ui_options_lastfm.py:108 +#: picard/ui/ui_options_folksonomy.py:106 picard/ui/ui_options_matching.py:75 +#: picard/ui/ui_options_matching.py:76 picard/ui/ui_options_matching.py:77 msgid " %" msgstr " %" @@ -95,420 +91,307 @@ msgstr " %" msgid "Calculate replay &gain..." msgstr "" -#: contrib/plugins/replaygain/__init__.py:66 +#: contrib/plugins/replaygain/__init__.py:67 #, python-format -msgid "Calculating replay gain for \"%s\"..." +msgid "Calculating replay gain for \"%(filename)s\"..." msgstr "" -#: contrib/plugins/replaygain/__init__.py:71 +#: contrib/plugins/replaygain/__init__.py:75 #, python-format -msgid "Replay gain for \"%s\" successfully calculated." +msgid "Replay gain for \"%(filename)s\" successfully calculated." msgstr "" -#: contrib/plugins/replaygain/__init__.py:73 +#: contrib/plugins/replaygain/__init__.py:80 #, python-format -msgid "Could not calculate replay gain for \"%s\"." +msgid "Could not calculate replay gain for \"%(filename)s\"." msgstr "" -#: contrib/plugins/replaygain/__init__.py:76 +#: contrib/plugins/replaygain/__init__.py:85 msgid "Calculate album &gain..." msgstr "" -#: contrib/plugins/replaygain/__init__.py:103 -#: contrib/plugins/replaygain/__init__.py:111 +#: contrib/plugins/replaygain/__init__.py:113 +#: contrib/plugins/replaygain/__init__.py:124 #, python-format -msgid "Calculating album gain for \"%s\"..." +msgid "Calculating album gain for \"%(album)s\"..." msgstr "" -#: contrib/plugins/replaygain/__init__.py:119 +#: contrib/plugins/replaygain/__init__.py:135 #, python-format -msgid "Album gain for \"%s\" successfully calculated." +msgid "Album gain for \"%(album)s\" successfully calculated." msgstr "" -#: contrib/plugins/replaygain/__init__.py:121 +#: contrib/plugins/replaygain/__init__.py:140 #, python-format -msgid "Could not calculate album gain for \"%s\"." +msgid "Could not calculate album gain for \"%(album)s\"." msgstr "" -#: picard/acoustid.py:102 -#, python-format -msgid "AcoustID lookup network error for '%s'!" +#: contrib/plugins/replaygain/ui_options_replaygain.py:59 +msgid "Replay Gain" msgstr "" -#: picard/acoustid.py:117 -#, python-format -msgid "AcoustID lookup failed for '%s'!" +#: contrib/plugins/replaygain/ui_options_replaygain.py:60 +msgid "Path to VorbisGain:" msgstr "" -#: picard/acoustid.py:128 -#, python-format -msgid "Acoustid lookup returned no result for file '%s'" +#: contrib/plugins/replaygain/ui_options_replaygain.py:61 +msgid "Path to MP3Gain:" msgstr "" -#: picard/acoustid.py:132 -#, python-format -msgid "Looking up the fingerprint for file %s..." -msgstr "Fletti upp fingrafari skrár %s..." - -#: picard/acoustidmanager.py:78 -msgid "Submitting AcoustIDs..." +#: contrib/plugins/replaygain/ui_options_replaygain.py:62 +msgid "Path to metaflac:" msgstr "" -#: picard/acoustidmanager.py:83 -#, python-format -msgid "AcoustID submission failed with error '%s'" +#: contrib/plugins/replaygain/ui_options_replaygain.py:63 +msgid "Path to wvgain:" msgstr "" -#: picard/acoustidmanager.py:85 +#: contrib/plugins/viewvariables/__init__.py:42 +#, python-format +msgid "File: %s" +msgstr "" + +#: contrib/plugins/viewvariables/__init__.py:47 +#, python-format +msgid "Track: %s %s " +msgstr "" + +#: contrib/plugins/viewvariables/__init__.py:49 +msgid "Variables" +msgstr "" + +#: contrib/plugins/viewvariables/__init__.py:69 +msgid "File variables" +msgstr "" + +#: contrib/plugins/viewvariables/__init__.py:74 +msgid "Hidden variables" +msgstr "" + +#: contrib/plugins/viewvariables/__init__.py:79 +msgid "Tag variables" +msgstr "" + +#: contrib/plugins/viewvariables/ui_variables_dialog.py:73 +msgid "Variable" +msgstr "" + +#: contrib/plugins/viewvariables/ui_variables_dialog.py:75 +msgid "Value" +msgstr "" + +#: picard/acoustid.py:109 +#, python-format +msgid "AcoustID lookup network error for '%(filename)s'!" +msgstr "" + +#: picard/acoustid.py:133 +#, python-format +msgid "AcoustID lookup failed for '%(filename)s'!" +msgstr "" + +#: picard/acoustid.py:155 +#, python-format +msgid "AcoustID lookup returned no result for file '%(filename)s'" +msgstr "" + +#: picard/acoustid.py:166 +#, python-format +msgid "Looking up the fingerprint for file '%(filename)s' ..." +msgstr "" + +#: picard/acoustidmanager.py:80 +msgid "Submitting AcoustIDs ..." +msgstr "" + +#: picard/acoustidmanager.py:94 +#, python-format +msgid "AcoustID submission failed with error '%(error)s'" +msgstr "" + +#: picard/acoustidmanager.py:102 msgid "AcoustIDs successfully submitted." msgstr "" -#: picard/album.py:64 picard/cluster.py:234 +#: picard/album.py:65 picard/cluster.py:255 msgid "Unmatched Files" msgstr "Óflokkaðar skrár" -#: picard/album.py:187 +#: picard/album.py:188 #, python-format msgid "[could not load album %s]" msgstr "[Gat ekki sótt upplýsingar um plötu %s]" -#: picard/album.py:272 +#: picard/album.py:277 #, python-format -msgid "Album %s loaded" +msgid "Album %(id)s loaded: %(artist)s - %(album)s" msgstr "" -#: picard/album.py:288 +#: picard/album.py:294 +#, python-format +msgid "Loading album %(id)s ..." +msgstr "" + +#: picard/album.py:303 msgid "[loading album information]" msgstr "[Sæki upplýsingar um plötu]" -#: picard/album.py:463 +#: picard/album.py:478 #, python-format msgid "; %i image" msgid_plural "; %i images" msgstr[0] "" msgstr[1] "" -#: picard/cluster.py:150 picard/cluster.py:159 +#: picard/cluster.py:155 picard/cluster.py:168 #, python-format -msgid "No matching releases for cluster %s" -msgstr "Engar þekktar útgáfur passa við klasa %s" - -#: picard/cluster.py:161 -#, python-format -msgid "Cluster %s identified!" -msgstr "Klasi %s fundinn!" - -#: picard/cluster.py:168 -#, python-format -msgid "Looking up the metadata for cluster %s..." -msgstr "Leita að lýsigögnum fyrir klasa %s..." - -#: picard/collection.py:60 -#, python-format -msgid "Added %i release to collection \"%s\"" -msgid_plural "Added %i releases to collection \"%s\"" -msgstr[0] "" -msgstr[1] "" - -#: picard/collection.py:72 -#, python-format -msgid "Removed %i release from collection \"%s\"" -msgid_plural "Removed %i releases from collection \"%s\"" -msgstr[0] "" -msgstr[1] "" - -#: picard/collection.py:81 -#, python-format -msgid "Error loading collections: %s" +msgid "No matching releases for cluster %(album)s" msgstr "" -#: picard/config_upgrade.py:57 picard/config_upgrade.py:70 +#: picard/cluster.py:174 +#, python-format +msgid "Cluster %(album)s identified!" +msgstr "" + +#: picard/cluster.py:185 +#, python-format +msgid "Looking up the metadata for cluster %(album)s..." +msgstr "" + +#: picard/collection.py:64 +#, python-format +msgid "Added %(count)i release to collection \"%(name)s\"" +msgid_plural "Added %(count)i releases to collection \"%(name)s\"" +msgstr[0] "" +msgstr[1] "" + +#: picard/collection.py:86 +#, python-format +msgid "Removed %(count)i release from collection \"%(name)s\"" +msgid_plural "Removed %(count)i releases from collection \"%(name)s\"" +msgstr[0] "" +msgstr[1] "" + +#: picard/collection.py:100 +#, python-format +msgid "Error loading collections: %(error)s" +msgstr "" + +#: picard/config_upgrade.py:58 picard/config_upgrade.py:71 msgid "Various Artists file naming scheme removal" msgstr "" -#: picard/config_upgrade.py:58 +#: picard/config_upgrade.py:59 msgid "" "The separate file naming scheme for various artists albums has been removed in this version of Picard.\n" "Your file naming scheme has automatically been merged with that of single artist albums." msgstr "" -#: picard/config_upgrade.py:71 +#: picard/config_upgrade.py:72 msgid "" "The separate file naming scheme for various artists albums has been removed in this version of Picard.\n" "You currently do not use this option, but have a separate file naming scheme defined.\n" "Do you want to remove it or merge it with your file naming scheme for single artist albums?" msgstr "" -#: picard/config_upgrade.py:77 +#: picard/config_upgrade.py:78 msgid "Merge" msgstr "" -#: picard/config_upgrade.py:77 picard/ui/metadatabox.py:254 +#: picard/config_upgrade.py:78 picard/ui/metadatabox.py:254 msgid "Remove" msgstr "" -#: picard/const.py:67 -msgid "CD" -msgstr "CD" - -#: picard/const.py:68 -msgid "CD-R" -msgstr "" - -#: picard/const.py:69 -msgid "HDCD" -msgstr "" - -#: picard/const.py:70 -msgid "8cm CD" -msgstr "" - -#: picard/const.py:71 -msgid "Vinyl" -msgstr "" - -#: picard/const.py:72 -msgid "7\" Vinyl" -msgstr "" - -#: picard/const.py:73 -msgid "10\" Vinyl" -msgstr "" - -#: picard/const.py:74 -msgid "12\" Vinyl" -msgstr "" - -#: picard/const.py:75 -msgid "Digital Media" -msgstr "Stafrænn miðill" - -#: picard/const.py:76 -msgid "USB Flash Drive" -msgstr "" - -#: picard/const.py:77 -msgid "slotMusic" -msgstr "" - -#: picard/const.py:78 -msgid "Cassette" -msgstr "Kassetta" - -#: picard/const.py:79 -msgid "DVD" -msgstr "DVD" - -#: picard/const.py:80 -msgid "DVD-Audio" -msgstr "" - -#: picard/const.py:81 -msgid "DVD-Video" -msgstr "" - -#: picard/const.py:82 -msgid "SACD" -msgstr "" - -#: picard/const.py:83 -msgid "DualDisc" -msgstr "" - -#: picard/const.py:84 -msgid "MiniDisc" -msgstr "MiniDisc" - -#: picard/const.py:85 -msgid "Blu-ray" -msgstr "" - -#: picard/const.py:86 -msgid "HD-DVD" -msgstr "" - -#: picard/const.py:87 -msgid "Videotape" -msgstr "" - -#: picard/const.py:88 -msgid "VHS" -msgstr "" - -#: picard/const.py:89 -msgid "Betamax" -msgstr "" - #: picard/const.py:90 -msgid "VCD" -msgstr "" - -#: picard/const.py:91 -msgid "SVCD" -msgstr "" - -#: picard/const.py:92 -msgid "UMD" -msgstr "" - -#: picard/const.py:93 picard/coverartarchive.py:33 -#: picard/ui/ui_options_releases.py:226 -msgid "Other" -msgstr "Annað" - -#: picard/const.py:94 -msgid "LaserDisc" -msgstr "LaserDisc" - -#: picard/const.py:95 -msgid "Cartridge" -msgstr "" - -#: picard/const.py:96 -msgid "Reel-to-reel" -msgstr "" - -#: picard/const.py:97 -msgid "DAT" -msgstr "DAT" - -#: picard/const.py:98 -msgid "Wax Cylinder" -msgstr "Vax sívalningur" - -#: picard/const.py:99 -msgid "Piano Roll" -msgstr "" - -#: picard/const.py:100 -msgid "DCC" -msgstr "" - -#: picard/const.py:115 msgid "Danish" msgstr "" -#: picard/const.py:116 +#: picard/const.py:91 msgid "German" msgstr "Þýska" -#: picard/const.py:118 +#: picard/const.py:93 msgid "English" msgstr "Enska" -#: picard/const.py:119 +#: picard/const.py:94 msgid "English (Canada)" msgstr "Enska (Kanada)" -#: picard/const.py:120 +#: picard/const.py:95 msgid "English (UK)" msgstr "Enska (Bretland)" -#: picard/const.py:122 +#: picard/const.py:97 msgid "Spanish" msgstr "Spænska" -#: picard/const.py:123 +#: picard/const.py:98 msgid "Estonian" msgstr "Eistneska" -#: picard/const.py:125 +#: picard/const.py:100 msgid "Finnish" msgstr "Finnska" -#: picard/const.py:127 +#: picard/const.py:102 msgid "French" msgstr "Franska" -#: picard/const.py:136 +#: picard/const.py:111 msgid "Italian" msgstr "Ítalska" -#: picard/const.py:143 +#: picard/const.py:118 msgid "Dutch" msgstr "Hollenska" -#: picard/const.py:145 +#: picard/const.py:120 msgid "Polish" msgstr "Pólska" -#: picard/const.py:147 +#: picard/const.py:122 msgid "Brazilian Portuguese" msgstr "Brasilísk portúgalska" -#: picard/const.py:154 +#: picard/const.py:129 msgid "Swedish" msgstr "Sænska" -#: picard/coverart.py:84 +#: picard/coverart.py:85 #, python-format -msgid "Coverart %s downloaded" +msgid "Cover art of type '%(type)s' downloaded for %(albumid)s from %(host)s" msgstr "" -#: picard/coverart.py:240 +#: picard/coverart.py:256 #, python-format -msgid "Downloading http://%s:%i%s" -msgstr "" - -#: picard/coverartarchive.py:24 -msgid "Front" -msgstr "" - -#: picard/coverartarchive.py:25 -msgid "Back" -msgstr "" - -#: picard/coverartarchive.py:26 -msgid "Booklet" -msgstr "" - -#: picard/coverartarchive.py:27 -msgid "Medium" -msgstr "" - -#: picard/coverartarchive.py:28 -msgid "Tray" -msgstr "" - -#: picard/coverartarchive.py:29 -msgid "Obi" +msgid "" +"Downloading cover art of type '%(type)s' for %(albumid)s from %(host)s .." msgstr "" #: picard/coverartarchive.py:30 -msgid "Spine" -msgstr "" - -#: picard/coverartarchive.py:31 picard/ui/mainwindow.py:546 -msgid "Track" -msgstr "Lag" - -#: picard/coverartarchive.py:32 -msgid "Sticker" -msgstr "" - -#: picard/coverartarchive.py:34 msgid "Unknown" msgstr "" -#: picard/file.py:536 +#: picard/file.py:494 #, python-format -msgid "No matching tracks for file %s" -msgstr "Engar hljóðrásir passa við skrána %s" +msgid "No matching tracks for file '%(filename)s'" +msgstr "" -#: picard/file.py:548 +#: picard/file.py:510 #, python-format -msgid "No matching tracks above the threshold for file %s" -msgstr "Engar hljóðrásir passa með nákvæmni þröskulds við skrána %s" +msgid "No matching tracks above the threshold for file '%(filename)s'" +msgstr "" -#: picard/file.py:551 +#: picard/file.py:517 #, python-format -msgid "File %s identified!" -msgstr "Skráin %s fundin!" +msgid "File '%(filename)s' identified!" +msgstr "" -#: picard/file.py:567 +#: picard/file.py:537 #, python-format -msgid "Looking up the metadata for file %s..." -msgstr "Fletti upp lýsigögnum fyrir skrá %s..." +msgid "Looking up the metadata for file %(filename)s ..." +msgstr "" #: picard/releasegroup.py:53 msgid "Tracks" @@ -518,11 +401,11 @@ msgstr "" msgid "Year" msgstr "" -#: picard/releasegroup.py:55 picard/ui/cdlookup.py:34 +#: picard/releasegroup.py:55 picard/ui/cdlookup.py:35 msgid "Country" msgstr "" -#: picard/releasegroup.py:56 picard/util/tags.py:81 +#: picard/releasegroup.py:56 msgid "Format" msgstr "Snið" @@ -542,16 +425,23 @@ msgstr "" msgid "[no release info]" msgstr "" -#: picard/tagger.py:316 +#: picard/tagger.py:370 #, python-format -msgid "Loading directory %s" +msgid "Adding %(count)d file from '%(directory)s' ..." +msgid_plural "Adding %(count)d files from '%(directory)s' ..." +msgstr[0] "" +msgstr[1] "" + +#: picard/tagger.py:512 +#, python-format +msgid "Removing album %(id)s: %(artist)s - %(album)s" msgstr "" -#: picard/tagger.py:452 +#: picard/tagger.py:528 msgid "CD Lookup Error" msgstr "Villa við geisladiskaleit" -#: picard/tagger.py:453 +#: picard/tagger.py:529 #, python-format msgid "" "Error while reading CD:\n" @@ -559,44 +449,43 @@ msgid "" "%s" msgstr "Villa við lestur á geisladisk;\n\n%s" -#: picard/ui/cdlookup.py:34 picard/ui/mainwindow.py:544 -#: picard/ui/ui_options_releases.py:216 picard/util/tags.py:21 +#: picard/ui/cdlookup.py:35 picard/ui/mainwindow.py:597 picard/util/tags.py:21 msgid "Album" msgstr "Plata" -#: picard/ui/cdlookup.py:34 picard/ui/itemviews.py:96 -#: picard/ui/mainwindow.py:545 picard/util/tags.py:22 +#: picard/ui/cdlookup.py:35 picard/ui/itemviews.py:96 +#: picard/ui/mainwindow.py:598 picard/util/tags.py:22 msgid "Artist" msgstr "Listamaður" -#: picard/ui/cdlookup.py:34 picard/util/tags.py:24 +#: picard/ui/cdlookup.py:35 picard/util/tags.py:24 msgid "Date" msgstr "Dagsetning" -#: picard/ui/cdlookup.py:35 +#: picard/ui/cdlookup.py:36 msgid "Labels" msgstr "" -#: picard/ui/cdlookup.py:35 +#: picard/ui/cdlookup.py:36 msgid "Catalog #s" msgstr "" -#: picard/ui/cdlookup.py:35 picard/util/tags.py:79 +#: picard/ui/cdlookup.py:36 picard/util/tags.py:78 msgid "Barcode" msgstr "Strikamerki" -#: picard/ui/collectionmenu.py:31 +#: picard/ui/collectionmenu.py:42 msgid "Refresh List" msgstr "" -#: picard/ui/collectionmenu.py:92 +#: picard/ui/collectionmenu.py:86 #, python-format msgid "%s (%i release)" msgid_plural "%s (%i releases)" msgstr[0] "" msgstr[1] "" -#: picard/ui/coverartbox.py:142 +#: picard/ui/coverartbox.py:141 msgid "View release on MusicBrainz" msgstr "" @@ -612,59 +501,59 @@ msgstr "Sýna &hulin skjöl" msgid "&Set as starting directory" msgstr "" -#: picard/ui/infodialog.py:36 picard/ui/infodialog.py:75 +#: picard/ui/infodialog.py:37 picard/ui/infodialog.py:80 msgid "Info" msgstr "" -#: picard/ui/infodialog.py:80 +#: picard/ui/infodialog.py:85 msgid "Filename:" msgstr "Skráarnafn:" -#: picard/ui/infodialog.py:82 +#: picard/ui/infodialog.py:87 msgid "Format:" msgstr "Skráasnið:" -#: picard/ui/infodialog.py:86 +#: picard/ui/infodialog.py:91 msgid "Size:" msgstr "Stærð:" -#: picard/ui/infodialog.py:90 +#: picard/ui/infodialog.py:95 msgid "Length:" msgstr "Lengd:" -#: picard/ui/infodialog.py:92 +#: picard/ui/infodialog.py:97 msgid "Bitrate:" msgstr "Bitatíðni:" -#: picard/ui/infodialog.py:94 +#: picard/ui/infodialog.py:99 msgid "Sample rate:" msgstr "Söfnunartíðni:" -#: picard/ui/infodialog.py:96 +#: picard/ui/infodialog.py:101 msgid "Bits per sample:" msgstr "" -#: picard/ui/infodialog.py:100 +#: picard/ui/infodialog.py:105 msgid "Mono" msgstr "Einóma" -#: picard/ui/infodialog.py:102 +#: picard/ui/infodialog.py:107 msgid "Stereo" msgstr "Víðóma" -#: picard/ui/infodialog.py:105 +#: picard/ui/infodialog.py:110 msgid "Channels:" msgstr "Rásir:" -#: picard/ui/infodialog.py:116 +#: picard/ui/infodialog.py:121 msgid "Album Info" msgstr "" -#: picard/ui/infodialog.py:124 +#: picard/ui/infodialog.py:129 msgid "&Errors" msgstr "" -#: picard/ui/infodialog.py:134 picard/ui/ui_infodialog.py:77 +#: picard/ui/infodialog.py:139 picard/ui/ui_infodialog.py:73 msgid "&Info" msgstr "Upplýs&ingar" @@ -688,7 +577,7 @@ msgstr "" msgid "Title" msgstr "Titill" -#: picard/ui/itemviews.py:95 picard/util/tags.py:88 +#: picard/ui/itemviews.py:95 picard/util/tags.py:86 msgid "Length" msgstr "Lengd" @@ -713,8 +602,8 @@ msgid "Collections" msgstr "" #: picard/ui/itemviews.py:365 -msgid "&Plugins" -msgstr "Í&forrit" +msgid "P&lugins" +msgstr "" #: picard/ui/itemviews.py:541 msgid "file view" @@ -736,12 +625,16 @@ msgstr "" msgid "Contains albums and matched files" msgstr "" -#: picard/ui/logview.py:91 +#: picard/ui/logview.py:109 msgid "Log" msgstr "Annálar" -#: picard/ui/logview.py:99 -msgid "Status History" +#: picard/ui/logview.py:113 +msgid "Debug mode" +msgstr "" + +#: picard/ui/logview.py:134 +msgid "Activity History" msgstr "" #: picard/ui/mainwindow.py:74 @@ -775,276 +668,309 @@ msgstr "" #: picard/ui/mainwindow.py:220 msgid "" -"Picard listens on a port to integrate with your browser and downloads " -"release information when you click the \"Tagger\" buttons on the MusicBrainz" -" website" +"Picard listens on this port to integrate with your browser. When you " +"\"Search\" or \"Open in Browser\" from Picard, clicking the \"Tagger\" " +"button on the web page loads the release into Picard." msgstr "" -#: picard/ui/mainwindow.py:240 +#: picard/ui/mainwindow.py:243 #, python-format msgid " Listening on port %(port)d " msgstr "" -#: picard/ui/mainwindow.py:263 +#: picard/ui/mainwindow.py:299 msgid "Submission Error" msgstr "" -#: picard/ui/mainwindow.py:264 +#: picard/ui/mainwindow.py:300 msgid "" "You need to configure your AcoustID API key before you can submit " "fingerprints." msgstr "" -#: picard/ui/mainwindow.py:269 +#: picard/ui/mainwindow.py:305 msgid "&Options..." msgstr "&Stillingar..." -#: picard/ui/mainwindow.py:273 +#: picard/ui/mainwindow.py:309 msgid "&Cut" msgstr "&Klippa" -#: picard/ui/mainwindow.py:278 +#: picard/ui/mainwindow.py:314 msgid "&Paste" msgstr "&Líma" -#: picard/ui/mainwindow.py:283 +#: picard/ui/mainwindow.py:319 msgid "&Help..." msgstr "&Hjálp..." -#: picard/ui/mainwindow.py:288 +#: picard/ui/mainwindow.py:323 msgid "&About..." msgstr "&Um..." -#: picard/ui/mainwindow.py:292 +#: picard/ui/mainwindow.py:327 msgid "&Donate..." msgstr "Veita st&yrk..." -#: picard/ui/mainwindow.py:295 +#: picard/ui/mainwindow.py:330 msgid "&Report a Bug..." msgstr "Tilkynna &villu..." -#: picard/ui/mainwindow.py:298 +#: picard/ui/mainwindow.py:333 msgid "&Support Forum..." msgstr "&Stuðningsvefur..." -#: picard/ui/mainwindow.py:301 +#: picard/ui/mainwindow.py:336 msgid "&Add Files..." msgstr "Bæt&a við skrám..." -#: picard/ui/mainwindow.py:302 +#: picard/ui/mainwindow.py:337 msgid "Add files to the tagger" msgstr "Bæta við skrám til tögunar" -#: picard/ui/mainwindow.py:307 +#: picard/ui/mainwindow.py:342 msgid "A&dd Folder..." msgstr "Bæ&ta við möppu..." -#: picard/ui/mainwindow.py:308 +#: picard/ui/mainwindow.py:343 msgid "Add a folder to the tagger" msgstr "Bæta við möppu af skrám til tögunar" -#: picard/ui/mainwindow.py:310 +#: picard/ui/mainwindow.py:345 msgid "Ctrl+D" msgstr "Ctrl+D" -#: picard/ui/mainwindow.py:313 +#: picard/ui/mainwindow.py:348 msgid "&Save" msgstr "Vi&sta" -#: picard/ui/mainwindow.py:314 +#: picard/ui/mainwindow.py:349 msgid "Save selected files" msgstr "Vista valdar skrár" -#: picard/ui/mainwindow.py:320 +#: picard/ui/mainwindow.py:355 msgid "S&ubmit" msgstr "" -#: picard/ui/mainwindow.py:321 -msgid "Submit fingerprints" +#: picard/ui/mainwindow.py:356 +msgid "Submit acoustic fingerprints" msgstr "" -#: picard/ui/mainwindow.py:325 +#: picard/ui/mainwindow.py:360 msgid "E&xit" msgstr "&Hætta" -#: picard/ui/mainwindow.py:328 +#: picard/ui/mainwindow.py:363 msgid "Ctrl+Q" msgstr "Ctrl+Q" -#: picard/ui/mainwindow.py:331 +#: picard/ui/mainwindow.py:366 msgid "&Remove" msgstr "Fja&rlægja" -#: picard/ui/mainwindow.py:332 +#: picard/ui/mainwindow.py:367 msgid "Remove selected files/albums" msgstr "Fjarlægja valdar skrár/möppur" -#: picard/ui/mainwindow.py:336 +#: picard/ui/mainwindow.py:371 msgid "Lookup in &Browser" msgstr "" -#: picard/ui/mainwindow.py:337 +#: picard/ui/mainwindow.py:372 msgid "Lookup selected item on MusicBrainz website" msgstr "" -#: picard/ui/mainwindow.py:341 +#: picard/ui/mainwindow.py:376 msgid "File &Browser" msgstr "Skráa&flakkari" -#: picard/ui/mainwindow.py:345 +#: picard/ui/mainwindow.py:380 msgid "Ctrl+B" msgstr "Ctrl+B" -#: picard/ui/mainwindow.py:348 +#: picard/ui/mainwindow.py:383 msgid "&Cover Art" msgstr "U&mslag" -#: picard/ui/mainwindow.py:354 picard/ui/mainwindow.py:539 +#: picard/ui/mainwindow.py:389 picard/ui/mainwindow.py:591 msgid "Search" msgstr "Leit" -#: picard/ui/mainwindow.py:357 -msgid "&CD Lookup..." -msgstr "&CD Uppfletting..." +#: picard/ui/mainwindow.py:392 +msgid "Lookup &CD..." +msgstr "" -#: picard/ui/mainwindow.py:358 picard/ui/mainwindow.py:359 -msgid "Lookup CD" -msgstr "Finna geisladisk" +#: picard/ui/mainwindow.py:393 +msgid "Lookup the details of the CD in your drive" +msgstr "" -#: picard/ui/mainwindow.py:361 +#: picard/ui/mainwindow.py:395 msgid "Ctrl+K" msgstr "Ctrl+K" -#: picard/ui/mainwindow.py:364 +#: picard/ui/mainwindow.py:398 msgid "&Scan" msgstr "Hljóð-&kanna" -#: picard/ui/mainwindow.py:367 +#: picard/ui/mainwindow.py:401 msgid "Ctrl+Y" msgstr "Ctrl+Y" -#: picard/ui/mainwindow.py:370 +#: picard/ui/mainwindow.py:404 msgid "Cl&uster" msgstr "Hó&pa saman" -#: picard/ui/mainwindow.py:373 +#: picard/ui/mainwindow.py:407 msgid "Ctrl+U" msgstr "Ctrl+P" -#: picard/ui/mainwindow.py:376 +#: picard/ui/mainwindow.py:410 msgid "&Lookup" msgstr "F&letta upp" -#: picard/ui/mainwindow.py:377 picard/ui/mainwindow.py:378 -msgid "Lookup metadata" -msgstr "Fletta upp lýsigögnum" +#: picard/ui/mainwindow.py:411 +msgid "Lookup selected items in MusicBrainz" +msgstr "" -#: picard/ui/mainwindow.py:381 +#: picard/ui/mainwindow.py:416 msgid "Ctrl+L" msgstr "Ctrl+L" -#: picard/ui/mainwindow.py:384 +#: picard/ui/mainwindow.py:419 msgid "&Info..." msgstr "" -#: picard/ui/mainwindow.py:387 +#: picard/ui/mainwindow.py:422 msgid "Ctrl+I" msgstr "" -#: picard/ui/mainwindow.py:390 +#: picard/ui/mainwindow.py:425 msgid "&Refresh" msgstr "Endu&rlesa" -#: picard/ui/mainwindow.py:391 +#: picard/ui/mainwindow.py:426 msgid "Ctrl+R" msgstr "" -#: picard/ui/mainwindow.py:394 +#: picard/ui/mainwindow.py:429 msgid "&Rename Files" msgstr "Endu&rnefna skrár" -#: picard/ui/mainwindow.py:399 +#: picard/ui/mainwindow.py:434 msgid "&Move Files" msgstr "&Færa skrár" -#: picard/ui/mainwindow.py:404 +#: picard/ui/mainwindow.py:439 msgid "Save &Tags" msgstr "Vista &Tög" -#: picard/ui/mainwindow.py:409 +#: picard/ui/mainwindow.py:444 msgid "Tags From &File Names..." msgstr "Tög &frá skráanöfnum..." -#: picard/ui/mainwindow.py:412 -msgid "View &Log..." -msgstr "Skoða &Annála..." - -#: picard/ui/mainwindow.py:415 -msgid "View Status &History..." +#: picard/ui/mainwindow.py:447 +msgid "&Open My Collections in Browser" msgstr "" -#: picard/ui/mainwindow.py:422 -msgid "&Open..." +#: picard/ui/mainwindow.py:451 +msgid "View Error/Debug &Log" msgstr "" -#: picard/ui/mainwindow.py:423 -msgid "Open the file" +#: picard/ui/mainwindow.py:454 +msgid "View Activity &History" msgstr "" -#: picard/ui/mainwindow.py:426 -msgid "Open &Folder..." +#: picard/ui/mainwindow.py:461 +msgid "&Play file" msgstr "" -#: picard/ui/mainwindow.py:427 -msgid "Open the containing folder" +#: picard/ui/mainwindow.py:462 +msgid "Play the file in your default media player" msgstr "" -#: picard/ui/mainwindow.py:448 +#: picard/ui/mainwindow.py:466 +msgid "Open Containing &Folder" +msgstr "" + +#: picard/ui/mainwindow.py:467 +msgid "Open the containing folder in your file explorer" +msgstr "" + +#: picard/ui/mainwindow.py:492 msgid "&File" msgstr "&Skrá" -#: picard/ui/mainwindow.py:456 +#: picard/ui/mainwindow.py:503 msgid "&Edit" msgstr "Sýs&l" -#: picard/ui/mainwindow.py:462 +#: picard/ui/mainwindow.py:509 msgid "&View" msgstr "&Sýna" -#: picard/ui/mainwindow.py:470 +#: picard/ui/mainwindow.py:515 msgid "&Options" msgstr "&Valkostir" -#: picard/ui/mainwindow.py:476 +#: picard/ui/mainwindow.py:521 msgid "&Tools" msgstr "&Tól" -#: picard/ui/mainwindow.py:485 picard/ui/util.py:35 +#: picard/ui/mainwindow.py:532 picard/ui/util.py:35 msgid "&Help" msgstr "&Hjálp" -#: picard/ui/mainwindow.py:505 +#: picard/ui/mainwindow.py:553 msgid "Actions" msgstr "" -#: picard/ui/mainwindow.py:608 +#: picard/ui/mainwindow.py:599 +msgid "Track" +msgstr "Lag" + +#: picard/ui/mainwindow.py:662 msgid "All Supported Formats" msgstr "Öll studd snið" -#: picard/ui/mainwindow.py:705 +#: picard/ui/mainwindow.py:695 +#, python-format +msgid "Adding directory: '%(directory)s' ..." +msgstr "" + +#: picard/ui/mainwindow.py:702 +#, python-format +msgid "Adding multiple directories from '%(directory)s' ..." +msgstr "" + +#: picard/ui/mainwindow.py:767 msgid "Configuration Required" msgstr "" -#: picard/ui/mainwindow.py:706 +#: picard/ui/mainwindow.py:768 msgid "" "Audio fingerprinting is not yet configured. Would you like to configure it " "now?" msgstr "" -#: picard/ui/mainwindow.py:784 picard/ui/mainwindow.py:791 +#: picard/ui/mainwindow.py:848 #, python-format -msgid " (Error: %s)" -msgstr " (Villa: %s)" +msgid "%(filename)s (error: %(error)s)" +msgstr "" + +#: picard/ui/mainwindow.py:854 +#, python-format +msgid "%(filename)s" +msgstr "" + +#: picard/ui/mainwindow.py:864 +#, python-format +msgid "%(filename)s (%(similarity)d%%) (error: %(error)s)" +msgstr "" + +#: picard/ui/mainwindow.py:871 +#, python-format +msgid "%(filename)s (%(similarity)d%%)" +msgstr "" #: picard/ui/metadatabox.py:82 #, python-format @@ -1098,387 +1024,387 @@ msgid_plural "Use Original Values" msgstr[0] "" msgstr[1] "" -#: picard/ui/passworddialog.py:37 +#: picard/ui/passworddialog.py:40 #, python-format msgid "" "The server %s requires you to login. Please enter your username and " "password." msgstr "Þú verður að skrá þig inn á miðlarann %s. Sláðu inn notandanafn og lykilorð." -#: picard/ui/passworddialog.py:75 +#: picard/ui/passworddialog.py:79 #, python-format msgid "" "The proxy %s requires you to login. Please enter your username and password." msgstr "" -#: picard/ui/tagsfromfilenames.py:55 picard/ui/tagsfromfilenames.py:100 +#: picard/ui/tagsfromfilenames.py:56 picard/ui/tagsfromfilenames.py:101 msgid "File Name" msgstr "Skráarnafn" -#: picard/ui/ui_cdlookup.py:66 picard/ui/ui_options_cdlookup.py:55 -#: picard/ui/ui_options_cdlookup_select.py:62 picard/ui/options/cdlookup.py:38 +#: picard/ui/ui_cdlookup.py:53 picard/ui/ui_options_cdlookup.py:42 +#: picard/ui/ui_options_cdlookup_select.py:49 picard/ui/options/cdlookup.py:38 msgid "CD Lookup" msgstr "Geisladiskaleit" -#: picard/ui/ui_cdlookup.py:67 +#: picard/ui/ui_cdlookup.py:54 msgid "The following releases on MusicBrainz match the CD:" msgstr "Eftirtaldar útgáfur á MusicBrainz passa við geisladiskinn:" -#: picard/ui/ui_cdlookup.py:68 +#: picard/ui/ui_cdlookup.py:55 msgid "OK" msgstr "Í lagi" -#: picard/ui/ui_cdlookup.py:69 +#: picard/ui/ui_cdlookup.py:56 msgid "Lookup manually" msgstr "" -#: picard/ui/ui_cdlookup.py:70 +#: picard/ui/ui_cdlookup.py:57 msgid "Cancel" msgstr "Hætta við" -#: picard/ui/ui_edittagdialog.py:101 +#: picard/ui/ui_edittagdialog.py:88 msgid "Edit Tag" msgstr "" -#: picard/ui/ui_edittagdialog.py:102 +#: picard/ui/ui_edittagdialog.py:89 msgid "Edit value" msgstr "" -#: picard/ui/ui_edittagdialog.py:103 +#: picard/ui/ui_edittagdialog.py:90 msgid "Add value" msgstr "" -#: picard/ui/ui_edittagdialog.py:104 +#: picard/ui/ui_edittagdialog.py:91 msgid "Remove value" msgstr "" -#: picard/ui/ui_infodialog.py:78 +#: picard/ui/ui_infodialog.py:74 msgid "A&rtwork" msgstr "U&mslag" -#: picard/ui/ui_infostatus.py:100 +#: picard/ui/ui_infostatus.py:96 msgid "Form" msgstr "" -#: picard/ui/ui_options.py:51 +#: picard/ui/ui_options.py:38 msgid "Options" msgstr "" -#: picard/ui/ui_options_advanced.py:46 +#: picard/ui/ui_options_advanced.py:42 msgid "Advanced options" msgstr "" -#: picard/ui/ui_options_advanced.py:47 +#: picard/ui/ui_options_advanced.py:43 msgid "Ignore file paths matching the following regular expression:" msgstr "" -#: picard/ui/ui_options_cdlookup.py:56 +#: picard/ui/ui_options_cdlookup.py:43 msgid "CD-ROM device to use for lookups:" msgstr "Geisladrif sem á að nota við geisladiskaleit:" -#: picard/ui/ui_options_cdlookup_select.py:63 +#: picard/ui/ui_options_cdlookup_select.py:50 msgid "Default CD-ROM drive to use for lookups:" msgstr "Sjálfgefið geisladrif sem á að nota við geisladiskaleit:" -#: picard/ui/ui_options_cover.py:145 +#: picard/ui/ui_options_cover.py:131 msgid "Location" msgstr "Staðsetning" -#: picard/ui/ui_options_cover.py:146 +#: picard/ui/ui_options_cover.py:132 msgid "Embed cover images into tags" msgstr "Vista umslag sem tag í hljóðskrá" -#: picard/ui/ui_options_cover.py:147 +#: picard/ui/ui_options_cover.py:133 msgid "Only embed a front image" msgstr "" -#: picard/ui/ui_options_cover.py:148 +#: picard/ui/ui_options_cover.py:134 msgid "Save cover images as separate files" msgstr "Vista umslag sem sérstaka skrá" -#: picard/ui/ui_options_cover.py:149 +#: picard/ui/ui_options_cover.py:135 msgid "Use the following file name for images:" msgstr "" -#: picard/ui/ui_options_cover.py:150 +#: picard/ui/ui_options_cover.py:136 msgid "Overwrite the file if it already exists" msgstr "Skrifa yfir skrá ef hún er til" -#: picard/ui/ui_options_cover.py:151 +#: picard/ui/ui_options_cover.py:137 msgid "Coverart Providers" msgstr "" -#: picard/ui/ui_options_cover.py:152 +#: picard/ui/ui_options_cover.py:138 msgid "Amazon" msgstr "" -#: picard/ui/ui_options_cover.py:153 picard/ui/ui_options_cover.py:155 +#: picard/ui/ui_options_cover.py:139 picard/ui/ui_options_cover.py:141 msgid "Cover Art Archive" msgstr "" -#: picard/ui/ui_options_cover.py:154 +#: picard/ui/ui_options_cover.py:140 msgid "Sites on the whitelist" msgstr "" -#: picard/ui/ui_options_cover.py:156 +#: picard/ui/ui_options_cover.py:142 msgid "Only use images of the following size:" msgstr "" -#: picard/ui/ui_options_cover.py:157 +#: picard/ui/ui_options_cover.py:143 msgid "250 px" msgstr "" -#: picard/ui/ui_options_cover.py:158 +#: picard/ui/ui_options_cover.py:144 msgid "500 px" msgstr "" -#: picard/ui/ui_options_cover.py:159 +#: picard/ui/ui_options_cover.py:145 msgid "Full size" msgstr "" -#: picard/ui/ui_options_cover.py:160 +#: picard/ui/ui_options_cover.py:146 msgid "Download only images of the following types:" msgstr "" -#: picard/ui/ui_options_cover.py:161 +#: picard/ui/ui_options_cover.py:147 msgid "Download only approved images" msgstr "" -#: picard/ui/ui_options_cover.py:162 +#: picard/ui/ui_options_cover.py:148 msgid "" "Use the first image type as the filename. This will not change the filename " "of front images." msgstr "" -#: picard/ui/ui_options_fingerprinting.py:83 +#: picard/ui/ui_options_fingerprinting.py:70 msgid "Audio Fingerprinting" msgstr "" -#: picard/ui/ui_options_fingerprinting.py:84 +#: picard/ui/ui_options_fingerprinting.py:71 msgid "Do not use audio fingerprinting" msgstr "" -#: picard/ui/ui_options_fingerprinting.py:85 +#: picard/ui/ui_options_fingerprinting.py:72 msgid "Use AcoustID" msgstr "" -#: picard/ui/ui_options_fingerprinting.py:86 +#: picard/ui/ui_options_fingerprinting.py:73 msgid "AcoustID Settings" msgstr "" -#: picard/ui/ui_options_fingerprinting.py:87 +#: picard/ui/ui_options_fingerprinting.py:74 msgid "Fingerprint calculator:" msgstr "" -#: picard/ui/ui_options_fingerprinting.py:88 -#: picard/ui/ui_options_interface.py:88 picard/ui/ui_options_renaming.py:138 +#: picard/ui/ui_options_fingerprinting.py:75 +#: picard/ui/ui_options_interface.py:75 picard/ui/ui_options_renaming.py:134 msgid "Browse..." msgstr "Flakka..." -#: picard/ui/ui_options_fingerprinting.py:89 +#: picard/ui/ui_options_fingerprinting.py:76 msgid "Download..." msgstr "" -#: picard/ui/ui_options_fingerprinting.py:90 +#: picard/ui/ui_options_fingerprinting.py:77 msgid "API key:" msgstr "" -#: picard/ui/ui_options_fingerprinting.py:91 +#: picard/ui/ui_options_fingerprinting.py:78 msgid "Get API key..." msgstr "" -#: picard/ui/ui_options_folksonomy.py:115 picard/ui/options/folksonomy.py:28 +#: picard/ui/ui_options_folksonomy.py:102 picard/ui/options/folksonomy.py:28 msgid "Folksonomy Tags" msgstr "" -#: picard/ui/ui_options_folksonomy.py:117 +#: picard/ui/ui_options_folksonomy.py:104 msgid "Only use my tags" msgstr "Aðeins nota mín tög" -#: picard/ui/ui_options_folksonomy.py:120 +#: picard/ui/ui_options_folksonomy.py:107 msgid "Maximum number of tags:" msgstr "Hámarksfjöldi taga:" -#: picard/ui/ui_options_general.py:92 +#: picard/ui/ui_options_general.py:88 msgid "MusicBrainz Server" msgstr "MusicBrainz Miðlari" -#: picard/ui/ui_options_general.py:93 picard/ui/ui_options_network.py:123 +#: picard/ui/ui_options_general.py:89 picard/ui/ui_options_network.py:110 msgid "Port:" msgstr "Gátt:" -#: picard/ui/ui_options_general.py:94 picard/ui/ui_options_network.py:124 +#: picard/ui/ui_options_general.py:90 picard/ui/ui_options_network.py:111 msgid "Server address:" msgstr "Vistfang miðlara:" -#: picard/ui/ui_options_general.py:95 +#: picard/ui/ui_options_general.py:91 msgid "Account Information" msgstr "Notandaupplýsingar" -#: picard/ui/ui_options_general.py:96 picard/ui/ui_options_network.py:121 -#: picard/ui/ui_passworddialog.py:74 +#: picard/ui/ui_options_general.py:92 picard/ui/ui_options_network.py:108 +#: picard/ui/ui_passworddialog.py:70 msgid "Password:" msgstr "Lykilorð:" -#: picard/ui/ui_options_general.py:97 picard/ui/ui_options_network.py:122 -#: picard/ui/ui_passworddialog.py:73 +#: picard/ui/ui_options_general.py:93 picard/ui/ui_options_network.py:109 +#: picard/ui/ui_passworddialog.py:69 msgid "Username:" msgstr "Notandanafn:" -#: picard/ui/ui_options_general.py:98 picard/ui/options/general.py:31 +#: picard/ui/ui_options_general.py:94 picard/ui/options/general.py:31 msgid "General" msgstr "Almennt" -#: picard/ui/ui_options_general.py:99 +#: picard/ui/ui_options_general.py:95 msgid "Automatically scan all new files" msgstr "Sjálfkrafa hljóð-kanna allar nýjar skrár" -#: picard/ui/ui_options_general.py:100 +#: picard/ui/ui_options_general.py:96 msgid "Ignore MBIDs when loading new files" msgstr "" -#: picard/ui/ui_options_interface.py:82 +#: picard/ui/ui_options_interface.py:69 msgid "Miscellaneous" msgstr "Ýmislegt" -#: picard/ui/ui_options_interface.py:83 +#: picard/ui/ui_options_interface.py:70 msgid "Show text labels under icons" msgstr "Sýna texta undir táknmyndum" -#: picard/ui/ui_options_interface.py:84 +#: picard/ui/ui_options_interface.py:71 msgid "Allow selection of multiple directories" msgstr "Leyfa val á mörgum möppum" -#: picard/ui/ui_options_interface.py:85 +#: picard/ui/ui_options_interface.py:72 msgid "Use advanced query syntax" msgstr "" -#: picard/ui/ui_options_interface.py:86 +#: picard/ui/ui_options_interface.py:73 msgid "Show a quit confirmation dialog for unsaved changes" msgstr "" -#: picard/ui/ui_options_interface.py:87 +#: picard/ui/ui_options_interface.py:74 msgid "Begin browsing in the following directory:" msgstr "" -#: picard/ui/ui_options_interface.py:89 +#: picard/ui/ui_options_interface.py:76 msgid "User interface language:" msgstr "Tungumál viðmóts:" -#: picard/ui/ui_options_matching.py:86 +#: picard/ui/ui_options_matching.py:73 msgid "Thresholds" msgstr "Þröskuldar" -#: picard/ui/ui_options_matching.py:87 +#: picard/ui/ui_options_matching.py:74 msgid "Minimal similarity for matching files to tracks:" msgstr "Lágmarks skyldleiki við fundnar hljóðskrár:" -#: picard/ui/ui_options_matching.py:91 +#: picard/ui/ui_options_matching.py:78 msgid "Minimal similarity for file lookups:" msgstr "Lágmarks skyldleiki við fundnar skrár:" -#: picard/ui/ui_options_matching.py:92 +#: picard/ui/ui_options_matching.py:79 msgid "Minimal similarity for cluster lookups:" msgstr "Lágmarks skyldleiki við fundna klasa:" -#: picard/ui/ui_options_metadata.py:114 picard/ui/options/metadata.py:29 +#: picard/ui/ui_options_metadata.py:101 picard/ui/options/metadata.py:29 msgid "Metadata" msgstr "Lýsigögn" -#: picard/ui/ui_options_metadata.py:115 +#: picard/ui/ui_options_metadata.py:102 msgid "Translate artist names to this locale where possible:" msgstr "" -#: picard/ui/ui_options_metadata.py:116 +#: picard/ui/ui_options_metadata.py:103 msgid "Use standardized artist names" msgstr "" -#: picard/ui/ui_options_metadata.py:117 +#: picard/ui/ui_options_metadata.py:104 msgid "Convert Unicode punctuation characters to ASCII" msgstr "" -#: picard/ui/ui_options_metadata.py:118 +#: picard/ui/ui_options_metadata.py:105 msgid "Use release relationships" msgstr "Nota útgáfutengingar" -#: picard/ui/ui_options_metadata.py:119 +#: picard/ui/ui_options_metadata.py:106 msgid "Use track relationships" msgstr "Nota lagatengingar" -#: picard/ui/ui_options_metadata.py:120 +#: picard/ui/ui_options_metadata.py:107 msgid "Use folksonomy tags as genre" msgstr "" -#: picard/ui/ui_options_metadata.py:121 +#: picard/ui/ui_options_metadata.py:108 msgid "Custom Fields" msgstr "Sérsniðnir reitir" -#: picard/ui/ui_options_metadata.py:122 +#: picard/ui/ui_options_metadata.py:109 msgid "Various artists:" msgstr "Ýmsir listamenn:" -#: picard/ui/ui_options_metadata.py:123 +#: picard/ui/ui_options_metadata.py:110 msgid "Non-album tracks:" msgstr "" -#: picard/ui/ui_options_metadata.py:124 picard/ui/ui_options_metadata.py:125 -#: picard/ui/ui_options_renaming.py:147 +#: picard/ui/ui_options_metadata.py:111 picard/ui/ui_options_metadata.py:112 +#: picard/ui/ui_options_renaming.py:143 msgid "Default" msgstr "Sjálfgefið" -#: picard/ui/ui_options_network.py:120 +#: picard/ui/ui_options_network.py:107 msgid "Web Proxy" msgstr "Vefsel" -#: picard/ui/ui_options_network.py:125 +#: picard/ui/ui_options_network.py:112 msgid "Browser Integration" msgstr "" -#: picard/ui/ui_options_network.py:126 +#: picard/ui/ui_options_network.py:113 msgid "Default listening port:" msgstr "" -#: picard/ui/ui_options_network.py:127 +#: picard/ui/ui_options_network.py:114 msgid "Listen only on localhost" msgstr "" -#: picard/ui/ui_options_plugins.py:131 picard/ui/options/plugins.py:38 +#: picard/ui/ui_options_plugins.py:127 picard/ui/options/plugins.py:38 msgid "Plugins" msgstr "Íforrit" -#: picard/ui/ui_options_plugins.py:132 picard/ui/options/plugins.py:122 +#: picard/ui/ui_options_plugins.py:128 picard/ui/options/plugins.py:122 msgid "Name" msgstr "Heiti" -#: picard/ui/ui_options_plugins.py:133 picard/util/tags.py:39 +#: picard/ui/ui_options_plugins.py:129 msgid "Version" msgstr "Útgáfa" -#: picard/ui/ui_options_plugins.py:134 picard/ui/options/plugins.py:125 +#: picard/ui/ui_options_plugins.py:130 picard/ui/options/plugins.py:125 msgid "Author" msgstr "Höfundur" -#: picard/ui/ui_options_plugins.py:135 +#: picard/ui/ui_options_plugins.py:131 msgid "Install plugin..." msgstr "" -#: picard/ui/ui_options_plugins.py:136 +#: picard/ui/ui_options_plugins.py:132 msgid "Open plugin folder" msgstr "Opna íforritamöppu" -#: picard/ui/ui_options_plugins.py:137 +#: picard/ui/ui_options_plugins.py:133 msgid "Download plugins" msgstr "Sækja íforrit" -#: picard/ui/ui_options_plugins.py:138 +#: picard/ui/ui_options_plugins.py:134 msgid "Details" msgstr "Nánar" -#: picard/ui/ui_options_ratings.py:53 +#: picard/ui/ui_options_ratings.py:49 msgid "Enable track ratings" msgstr "" -#: picard/ui/ui_options_ratings.py:54 +#: picard/ui/ui_options_ratings.py:50 msgid "" "Picard saves the ratings together with an e-mail address identifying the " "user who did the rating. That way different ratings for different users can " @@ -1486,207 +1412,167 @@ msgid "" "your ratings." msgstr "" -#: picard/ui/ui_options_ratings.py:55 +#: picard/ui/ui_options_ratings.py:51 msgid "E-mail:" msgstr "Netfang:" -#: picard/ui/ui_options_ratings.py:56 +#: picard/ui/ui_options_ratings.py:52 msgid "Submit ratings to MusicBrainz" msgstr "" -#: picard/ui/ui_options_releases.py:215 +#: picard/ui/ui_options_releases.py:104 msgid "Preferred release types" msgstr "" -#: picard/ui/ui_options_releases.py:217 -msgid "Single" -msgstr "" - -#: picard/ui/ui_options_releases.py:218 -msgid "EP" -msgstr "" - -#: picard/ui/ui_options_releases.py:219 -msgid "Compilation" -msgstr "Safndiskur" - -#: picard/ui/ui_options_releases.py:220 -msgid "Soundtrack" -msgstr "" - -#: picard/ui/ui_options_releases.py:221 -msgid "Spokenword" -msgstr "" - -#: picard/ui/ui_options_releases.py:222 -msgid "Interview" -msgstr "" - -#: picard/ui/ui_options_releases.py:223 -msgid "Audiobook" -msgstr "" - -#: picard/ui/ui_options_releases.py:224 -msgid "Live" -msgstr "" - -#: picard/ui/ui_options_releases.py:225 -msgid "Remix" -msgstr "" - -#: picard/ui/ui_options_releases.py:227 -msgid "Reset all" -msgstr "" - -#: picard/ui/ui_options_releases.py:228 +#: picard/ui/ui_options_releases.py:105 msgid "Preferred release countries" msgstr "" -#: picard/ui/ui_options_releases.py:229 picard/ui/ui_options_releases.py:232 +#: picard/ui/ui_options_releases.py:106 picard/ui/ui_options_releases.py:109 msgid ">" msgstr "" -#: picard/ui/ui_options_releases.py:230 picard/ui/ui_options_releases.py:233 +#: picard/ui/ui_options_releases.py:107 picard/ui/ui_options_releases.py:110 msgid "<" msgstr "" -#: picard/ui/ui_options_releases.py:231 +#: picard/ui/ui_options_releases.py:108 msgid "Preferred release formats" msgstr "" -#: picard/ui/ui_options_renaming.py:134 +#: picard/ui/ui_options_renaming.py:130 msgid "Rename files when saving" msgstr "Endurnefna skrár við vistun" -#: picard/ui/ui_options_renaming.py:135 +#: picard/ui/ui_options_renaming.py:131 msgid "Replace non-ASCII characters" msgstr "Skipta út stöfum sem eru ekki í ASCII stafrófinu" -#: picard/ui/ui_options_renaming.py:136 +#: picard/ui/ui_options_renaming.py:132 msgid "Windows compatibility" msgstr "" -#: picard/ui/ui_options_renaming.py:137 +#: picard/ui/ui_options_renaming.py:133 msgid "Move files to this directory when saving:" msgstr "Færa skrár í þessa möppu við vistun:" -#: picard/ui/ui_options_renaming.py:139 +#: picard/ui/ui_options_renaming.py:135 msgid "Delete empty directories" msgstr "Eyða tómum möppum" -#: picard/ui/ui_options_renaming.py:140 +#: picard/ui/ui_options_renaming.py:136 msgid "Move additional files:" msgstr "Færa að auki eftirtaldar skrár:" -#: picard/ui/ui_options_renaming.py:141 +#: picard/ui/ui_options_renaming.py:137 msgid "Name files like this" msgstr "Nefna skrár þannig" -#: picard/ui/ui_options_renaming.py:148 +#: picard/ui/ui_options_renaming.py:144 msgid "Examples" msgstr "Sýnishorn" -#: picard/ui/ui_options_script.py:49 +#: picard/ui/ui_options_script.py:45 msgid "Tagger Script" msgstr "Tagger Skriftur" -#: picard/ui/ui_options_tags.py:165 +#: picard/ui/ui_options_tags.py:152 msgid "Write tags to files" msgstr "Skrifa tög í skrár" -#: picard/ui/ui_options_tags.py:166 +#: picard/ui/ui_options_tags.py:153 msgid "Preserve timestamps of tagged files" msgstr "" -#: picard/ui/ui_options_tags.py:167 +#: picard/ui/ui_options_tags.py:154 msgid "Before Tagging" msgstr "" -#: picard/ui/ui_options_tags.py:168 +#: picard/ui/ui_options_tags.py:155 msgid "Clear existing tags" msgstr "Hreinsa fyrri tög" -#: picard/ui/ui_options_tags.py:169 +#: picard/ui/ui_options_tags.py:156 msgid "Remove ID3 tags from FLAC files" msgstr "Fjarlægja ID3 tög úr FLAC skrám" -#: picard/ui/ui_options_tags.py:170 +#: picard/ui/ui_options_tags.py:157 msgid "Remove APEv2 tags from MP3 files" msgstr "Fjarlægja APEv2 tög úr MP3 skrám" -#: picard/ui/ui_options_tags.py:171 +#: picard/ui/ui_options_tags.py:158 msgid "" "Preserve these tags from being cleared or overwritten with MusicBrainz data:" msgstr "" -#: picard/ui/ui_options_tags.py:172 +#: picard/ui/ui_options_tags.py:159 msgid "Tags are separated by commas, and are case-sensitive." msgstr "" -#: picard/ui/ui_options_tags.py:173 +#: picard/ui/ui_options_tags.py:160 msgid "Tag Compatibility" msgstr "" -#: picard/ui/ui_options_tags.py:174 +#: picard/ui/ui_options_tags.py:161 msgid "ID3v2 Version" msgstr "" -#: picard/ui/ui_options_tags.py:175 +#: picard/ui/ui_options_tags.py:162 msgid "2.4" msgstr "2.4" -#: picard/ui/ui_options_tags.py:176 +#: picard/ui/ui_options_tags.py:163 msgid "2.3" msgstr "2.3" -#: picard/ui/ui_options_tags.py:177 +#: picard/ui/ui_options_tags.py:164 msgid "ID3v2 Text Encoding" msgstr "" -#: picard/ui/ui_options_tags.py:178 +#: picard/ui/ui_options_tags.py:165 msgid "UTF-8" msgstr "UTF-8" -#: picard/ui/ui_options_tags.py:179 +#: picard/ui/ui_options_tags.py:166 msgid "UTF-16" msgstr "UTF-16" -#: picard/ui/ui_options_tags.py:180 +#: picard/ui/ui_options_tags.py:167 msgid "ISO-8859-1" msgstr "ISO-8859-1" -#: picard/ui/ui_options_tags.py:181 +#: picard/ui/ui_options_tags.py:168 msgid "Join multiple ID3v2.3 tags with:" msgstr "" -#: picard/ui/ui_options_tags.py:182 +#: picard/ui/ui_options_tags.py:169 msgid "" "

Default is '/' to maintain compatibility with previous" " Picard releases.

New alternatives are ';_' or '_/_' or type your own." "

" msgstr "" -#: picard/ui/ui_options_tags.py:183 +#: picard/ui/ui_options_tags.py:170 msgid "Also include ID3v1 tags in the files" msgstr "Skrifa einnig ID3v1 tög í skrár" -#: picard/ui/ui_passworddialog.py:72 +#: picard/ui/ui_passworddialog.py:68 msgid "Authentication required" msgstr "Auðkenningar er þörf" -#: picard/ui/ui_passworddialog.py:75 +#: picard/ui/ui_passworddialog.py:71 msgid "Save username and password" msgstr "Vista notanda og lykilorð" -#: picard/ui/ui_tagsfromfilenames.py:54 +#: picard/ui/ui_tagsfromfilenames.py:50 msgid "Convert File Names to Tags" msgstr "Breyta skráanöfnum í tög" -#: picard/ui/ui_tagsfromfilenames.py:55 +#: picard/ui/ui_tagsfromfilenames.py:51 msgid "Replace underscores with spaces" msgstr "Skipta út undirstrikunum með eyðum" -#: picard/ui/ui_tagsfromfilenames.py:56 +#: picard/ui/ui_tagsfromfilenames.py:52 msgid "&Preview" msgstr "&Forsýn" @@ -1742,7 +1628,11 @@ msgstr "Ítarlegra" msgid "Regex Error" msgstr "" -#: picard/ui/options/cover.py:63 +#: picard/ui/options/cover.py:44 +msgid "title" +msgstr "" + +#: picard/ui/options/cover.py:68 msgid "Cover Art" msgstr "Umslag" @@ -1758,11 +1648,11 @@ msgstr "Notandaviðmót" msgid "System default" msgstr "Sjálfgefnar kerfisstillingar" -#: picard/ui/options/interface.py:96 +#: picard/ui/options/interface.py:98 msgid "Language changed" msgstr "Tungumáli breytt" -#: picard/ui/options/interface.py:96 +#: picard/ui/options/interface.py:99 msgid "" "You have changed the interface language. You have to restart Picard in order" " for the change to take effect." @@ -1784,31 +1674,35 @@ msgstr "Skrá" msgid "Ratings" msgstr "" -#: picard/ui/options/releases.py:33 +#: picard/ui/options/releases.py:87 msgid "Preferred Releases" msgstr "" +#: picard/ui/options/releases.py:121 +msgid "Reset all" +msgstr "" + #: picard/ui/options/renaming.py:37 msgid "File Naming" msgstr "" -#: picard/ui/options/renaming.py:184 +#: picard/ui/options/renaming.py:187 msgid "Error" msgstr "Villa" -#: picard/ui/options/renaming.py:184 +#: picard/ui/options/renaming.py:187 msgid "The location to move files to must not be empty." msgstr "Áfangastaður skráa má ekki vera auð." -#: picard/ui/options/renaming.py:194 +#: picard/ui/options/renaming.py:197 msgid "The file naming format must not be empty." msgstr "Nafnasnið skráa má ekki vera autt." -#: picard/ui/options/scripting.py:63 +#: picard/ui/options/scripting.py:99 msgid "Scripting" msgstr "Skriftun" -#: picard/ui/options/scripting.py:95 +#: picard/ui/options/scripting.py:131 msgid "Script Error" msgstr "Skriftuvilla" @@ -1928,199 +1822,199 @@ msgstr "ASIN" msgid "Grouping" msgstr "Hópun" -#: picard/util/tags.py:40 +#: picard/util/tags.py:39 msgid "ISRC" msgstr "ISRC" -#: picard/util/tags.py:41 +#: picard/util/tags.py:40 msgid "Mood" msgstr "Tegund" -#: picard/util/tags.py:42 +#: picard/util/tags.py:41 msgid "BPM" msgstr "BPM" -#: picard/util/tags.py:43 +#: picard/util/tags.py:42 msgid "Copyright" msgstr "Höfundaréttur" -#: picard/util/tags.py:44 +#: picard/util/tags.py:43 msgid "License" msgstr "" -#: picard/util/tags.py:45 +#: picard/util/tags.py:44 msgid "Composer" msgstr "Tónskáld" -#: picard/util/tags.py:46 +#: picard/util/tags.py:45 msgid "Writer" msgstr "" -#: picard/util/tags.py:47 +#: picard/util/tags.py:46 msgid "Conductor" msgstr "Stjórnandi" -#: picard/util/tags.py:48 +#: picard/util/tags.py:47 msgid "Lyricist" msgstr "Textahöfundur" -#: picard/util/tags.py:49 +#: picard/util/tags.py:48 msgid "Arranger" msgstr "Útsetjari" -#: picard/util/tags.py:50 +#: picard/util/tags.py:49 msgid "Producer" msgstr "Framleiðandi" -#: picard/util/tags.py:51 +#: picard/util/tags.py:50 msgid "Engineer" msgstr "Upptökustjórn" -#: picard/util/tags.py:52 +#: picard/util/tags.py:51 msgid "Subtitle" msgstr "Undirtitill" -#: picard/util/tags.py:53 +#: picard/util/tags.py:52 msgid "Disc Subtitle" msgstr "Undirtitill disks" -#: picard/util/tags.py:54 +#: picard/util/tags.py:53 msgid "Remixer" msgstr "Hljóðblöndun" -#: picard/util/tags.py:55 +#: picard/util/tags.py:54 msgid "MusicBrainz Recording Id" msgstr "" -#: picard/util/tags.py:56 +#: picard/util/tags.py:55 msgid "MusicBrainz Track Id" msgstr "" -#: picard/util/tags.py:57 +#: picard/util/tags.py:56 msgid "MusicBrainz Release Id" msgstr "MusicBrainz Útgáfuauðkenni" -#: picard/util/tags.py:58 +#: picard/util/tags.py:57 msgid "MusicBrainz Artist Id" msgstr "Auðkenni listamanns hjá MusicBrainz" -#: picard/util/tags.py:59 +#: picard/util/tags.py:58 msgid "MusicBrainz Release Artist Id" msgstr "Auðkenni útgáfulistamanns hjá MusicBrainz" -#: picard/util/tags.py:60 +#: picard/util/tags.py:59 msgid "MusicBrainz Work Id" msgstr "" -#: picard/util/tags.py:61 +#: picard/util/tags.py:60 msgid "MusicBrainz Release Group Id" msgstr "" -#: picard/util/tags.py:62 +#: picard/util/tags.py:61 msgid "MusicBrainz Disc Id" msgstr "Diskauðkenni MusicBrainz" -#: picard/util/tags.py:63 -msgid "MusicBrainz Sort Name" -msgstr "Röðun (nafn) MusicBrainz" - -#: picard/util/tags.py:64 +#: picard/util/tags.py:62 msgid "MusicIP PUID" msgstr "MusicIP PUID" -#: picard/util/tags.py:65 +#: picard/util/tags.py:63 msgid "MusicIP Fingerprint" msgstr "MusicIP fingrafar" -#: picard/util/tags.py:66 +#: picard/util/tags.py:64 msgid "AcoustID" msgstr "" -#: picard/util/tags.py:67 +#: picard/util/tags.py:65 msgid "AcoustID Fingerprint" msgstr "" -#: picard/util/tags.py:68 +#: picard/util/tags.py:66 msgid "Disc Id" msgstr "Diskauðkenni" -#: picard/util/tags.py:69 -msgid "Website" -msgstr "Vefsíða" +#: picard/util/tags.py:67 +msgid "Artist Website" +msgstr "" -#: picard/util/tags.py:70 +#: picard/util/tags.py:68 msgid "Compilation (iTunes)" msgstr "" -#: picard/util/tags.py:71 +#: picard/util/tags.py:69 msgid "Comment" msgstr "Athugasemd" -#: picard/util/tags.py:72 +#: picard/util/tags.py:70 msgid "Genre" msgstr "Tegund" -#: picard/util/tags.py:73 +#: picard/util/tags.py:71 msgid "Encoded By" msgstr "Kóðað af" -#: picard/util/tags.py:74 +#: picard/util/tags.py:72 +msgid "Encoder Settings" +msgstr "" + +#: picard/util/tags.py:73 msgid "Performer" msgstr "Flytjandi" -#: picard/util/tags.py:75 +#: picard/util/tags.py:74 msgid "Release Type" msgstr "Útgáfutegund" -#: picard/util/tags.py:76 +#: picard/util/tags.py:75 msgid "Release Status" msgstr "Útgáfutegund" -#: picard/util/tags.py:77 +#: picard/util/tags.py:76 msgid "Release Country" msgstr "Útgáfuland" -#: picard/util/tags.py:78 +#: picard/util/tags.py:77 msgid "Record Label" msgstr "Útgefandi" -#: picard/util/tags.py:80 +#: picard/util/tags.py:79 msgid "Catalog Number" msgstr "Skráarnúmer" -#: picard/util/tags.py:82 +#: picard/util/tags.py:80 msgid "DJ-Mixer" msgstr "DJ-hljóðbreytir" -#: picard/util/tags.py:83 +#: picard/util/tags.py:81 msgid "Media" msgstr "Miðill" -#: picard/util/tags.py:84 +#: picard/util/tags.py:82 msgid "Lyrics" msgstr "Lagatextar" -#: picard/util/tags.py:85 +#: picard/util/tags.py:83 msgid "Mixer" msgstr "Hljóðbreytir" -#: picard/util/tags.py:86 +#: picard/util/tags.py:84 msgid "Language" msgstr "Tungumál" -#: picard/util/tags.py:87 +#: picard/util/tags.py:85 msgid "Script" msgstr "Skrift" -#: picard/util/tags.py:89 +#: picard/util/tags.py:87 msgid "Rating" msgstr "" -#: picard/util/tags.py:90 +#: picard/util/tags.py:88 msgid "Artists" msgstr "" -#: picard/util/tags.py:91 +#: picard/util/tags.py:89 msgid "Work" msgstr "" diff --git a/po/it.po b/po/it.po index eb88da8e2..d0a05825b 100644 --- a/po/it.po +++ b/po/it.po @@ -11,8 +11,8 @@ msgid "" msgstr "" "Project-Id-Version: MusicBrainz\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2014-04-12 14:32+0200\n" -"PO-Revision-Date: 2014-04-13 09:24+0000\n" +"POT-Creation-Date: 2014-05-03 17:28+0200\n" +"PO-Revision-Date: 2014-05-04 11:12+0000\n" "Last-Translator: Luca Salini \n" "Language-Team: Italian (http://www.transifex.com/projects/p/musicbrainz/language/it/)\n" "MIME-Version: 1.0\n" @@ -22,6 +22,10 @@ msgstr "" "Language: it\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" +#: contrib/plugins/albumartist_website.py:3 +msgid "Album Artist Website" +msgstr "Sito web dell'artista dell'album" + #: contrib/plugins/no_release.py:50 msgid "Enable plugin for all releases by default" msgstr "Abilita di default il plugin per tutte le pubblicazioni" @@ -34,6 +38,10 @@ msgstr "Tag da eliminare (separati da virgola)" msgid "Remove specific release information..." msgstr "Rimuovi informazioni specifiche della pubblicazione..." +#: contrib/plugins/standardise_performers.py:3 +msgid "Standardise Performers" +msgstr "Standardizza esecutori" + #: contrib/plugins/lastfm/ui_options_lastfm.py:99 msgid "Last.fm" msgstr "Last.fm" @@ -86,40 +94,40 @@ msgstr " %" msgid "Calculate replay &gain..." msgstr "Calcola il replay &gain..." -#: contrib/plugins/replaygain/__init__.py:66 +#: contrib/plugins/replaygain/__init__.py:67 #, python-format -msgid "Calculating replay gain for \"%s\"..." -msgstr "Calcolo del replay gain di \"%s\" in corso..." +msgid "Calculating replay gain for \"%(filename)s\"..." +msgstr "Calcolo del replay gain di \"%(filename)s\" in corso..." -#: contrib/plugins/replaygain/__init__.py:71 +#: contrib/plugins/replaygain/__init__.py:75 #, python-format -msgid "Replay gain for \"%s\" successfully calculated." -msgstr "Replay gain di \"%s\" calcolato con successo." +msgid "Replay gain for \"%(filename)s\" successfully calculated." +msgstr "Replay gain di \"%(filename)s\" calcolato con successo." -#: contrib/plugins/replaygain/__init__.py:73 +#: contrib/plugins/replaygain/__init__.py:80 #, python-format -msgid "Could not calculate replay gain for \"%s\"." -msgstr "Impossibile calcolare il replay gain di \"%s\"." +msgid "Could not calculate replay gain for \"%(filename)s\"." +msgstr "Impossibile calcolare il replay gain di \"%(filename)s\"." -#: contrib/plugins/replaygain/__init__.py:76 +#: contrib/plugins/replaygain/__init__.py:85 msgid "Calculate album &gain..." msgstr "Calcola l'album &gain..." -#: contrib/plugins/replaygain/__init__.py:103 -#: contrib/plugins/replaygain/__init__.py:111 +#: contrib/plugins/replaygain/__init__.py:113 +#: contrib/plugins/replaygain/__init__.py:124 #, python-format -msgid "Calculating album gain for \"%s\"..." -msgstr "Calcolo dell'album gain di \"%s\" in corso..." +msgid "Calculating album gain for \"%(album)s\"..." +msgstr "Calcolo dell'album gain di \"%(album)s\" in corso..." -#: contrib/plugins/replaygain/__init__.py:119 +#: contrib/plugins/replaygain/__init__.py:135 #, python-format -msgid "Album gain for \"%s\" successfully calculated." -msgstr "Album gain di \"%s\" calcolato con successo." +msgid "Album gain for \"%(album)s\" successfully calculated." +msgstr "Album gain di \"%(album)s\" calcolato con successo." -#: contrib/plugins/replaygain/__init__.py:121 +#: contrib/plugins/replaygain/__init__.py:140 #, python-format -msgid "Could not calculate album gain for \"%s\"." -msgstr "Impossibile calcolare l'album gain di \"%s\"." +msgid "Could not calculate album gain for \"%(album)s\"." +msgstr "Impossibile calcolare l'album gain di \"%(album)s\"." #: contrib/plugins/replaygain/ui_options_replaygain.py:59 msgid "Replay Gain" @@ -141,385 +149,252 @@ msgstr "Percorso di metaflac:" msgid "Path to wvgain:" msgstr "Percorso di wvgain:" -#: picard/acoustid.py:102 +#: contrib/plugins/viewvariables/__init__.py:42 #, python-format -msgid "AcoustID lookup network error for '%s'!" -msgstr "Errore di rete nella ricerca AcoustID per '%s'!" +msgid "File: %s" +msgstr "File: %s" -#: picard/acoustid.py:117 +#: contrib/plugins/viewvariables/__init__.py:47 #, python-format -msgid "AcoustID lookup failed for '%s'!" -msgstr "Ricerca AcoustID fallita per '%s'!" +msgid "Track: %s %s " +msgstr "Traccia: %s %s " -#: picard/acoustid.py:128 +#: contrib/plugins/viewvariables/__init__.py:49 +msgid "Variables" +msgstr "Variabili" + +#: contrib/plugins/viewvariables/__init__.py:69 +msgid "File variables" +msgstr "Variabili file" + +#: contrib/plugins/viewvariables/__init__.py:74 +msgid "Hidden variables" +msgstr "Variabili nascoste" + +#: contrib/plugins/viewvariables/__init__.py:79 +msgid "Tag variables" +msgstr "Variabili tag" + +#: contrib/plugins/viewvariables/ui_variables_dialog.py:73 +msgid "Variable" +msgstr "Variabile" + +#: contrib/plugins/viewvariables/ui_variables_dialog.py:75 +msgid "Value" +msgstr "Valore" + +#: picard/acoustid.py:109 #, python-format -msgid "Acoustid lookup returned no result for file '%s'" -msgstr "La ricerca AcoustID per il file '%s' non ha prodotto risultati" +msgid "AcoustID lookup network error for '%(filename)s'!" +msgstr "Errore di rete nella ricerca AcoustID per '%(filename)s'!" -#: picard/acoustid.py:132 +#: picard/acoustid.py:133 #, python-format -msgid "Looking up the fingerprint for file %s..." -msgstr "Ricerca dell'impronta digitale del file %s in corso..." +msgid "AcoustID lookup failed for '%(filename)s'!" +msgstr "Ricerca AcoustID per '%(filename)s' fallita!" -#: picard/acoustidmanager.py:78 -msgid "Submitting AcoustIDs..." +#: picard/acoustid.py:155 +#, python-format +msgid "AcoustID lookup returned no result for file '%(filename)s'" +msgstr "La ricerca AcoustID per il file '%(filename)s' non ha prodotto risultati" + +#: picard/acoustid.py:166 +#, python-format +msgid "Looking up the fingerprint for file '%(filename)s' ..." +msgstr "Ricerca dell'impronta digitale del file '%(filename)s' in corso..." + +#: picard/acoustidmanager.py:80 +msgid "Submitting AcoustIDs ..." msgstr "Invio AcoustID in corso..." -#: picard/acoustidmanager.py:83 +#: picard/acoustidmanager.py:94 #, python-format -msgid "AcoustID submission failed with error '%s'" -msgstr "Invio AcoustID fallito con errore '%s'" +msgid "AcoustID submission failed with error '%(error)s'" +msgstr "Invio AcoustID fallito con errore '%(error)s'" -#: picard/acoustidmanager.py:85 +#: picard/acoustidmanager.py:102 msgid "AcoustIDs successfully submitted." msgstr "AcoustID inviati con successo." -#: picard/album.py:64 picard/cluster.py:234 +#: picard/album.py:65 picard/cluster.py:255 msgid "Unmatched Files" msgstr "File non riconosciuti" -#: picard/album.py:187 +#: picard/album.py:188 #, python-format msgid "[could not load album %s]" msgstr "[non è stato possibile caricare l'album %s]" -#: picard/album.py:275 +#: picard/album.py:277 #, python-format -msgid "Album %s loaded: %s - %s" -msgstr "Album %s caricato: %s - %s" +msgid "Album %(id)s loaded: %(artist)s - %(album)s" +msgstr "Album %(id)s caricato: %(artist)s - %(album)s" -#: picard/album.py:292 +#: picard/album.py:294 +#, python-format +msgid "Loading album %(id)s ..." +msgstr "Caricamento album %(id)s in corso..." + +#: picard/album.py:303 msgid "[loading album information]" msgstr "[caricamento informazioni album in corso]" -#: picard/album.py:467 +#: picard/album.py:478 #, python-format msgid "; %i image" msgid_plural "; %i images" msgstr[0] "; %i immagine" msgstr[1] "; %i immagini" -#: picard/cluster.py:150 picard/cluster.py:159 +#: picard/cluster.py:155 picard/cluster.py:168 #, python-format -msgid "No matching releases for cluster %s" -msgstr "Nessuna pubblicazione corrispondente al gruppo %s" +msgid "No matching releases for cluster %(album)s" +msgstr "Nessuna pubblicazione corrispondente al gruppo %(album)s" -#: picard/cluster.py:161 +#: picard/cluster.py:174 #, python-format -msgid "Cluster %s identified!" -msgstr "Il gruppo %s è stato identificato!" +msgid "Cluster %(album)s identified!" +msgstr "Il gruppo %(album)s è stato identificato!" -#: picard/cluster.py:168 +#: picard/cluster.py:185 #, python-format -msgid "Looking up the metadata for cluster %s..." -msgstr "Ricerca dei metadati del gruppo %s in corso..." +msgid "Looking up the metadata for cluster %(album)s..." +msgstr "Ricerca dei metadati del gruppo %(album)s in corso..." -#: picard/collection.py:60 +#: picard/collection.py:64 #, python-format -msgid "Added %i release to collection \"%s\"" -msgid_plural "Added %i releases to collection \"%s\"" -msgstr[0] "%i pubblicazione aggiunta alla collezione \"%s\"" -msgstr[1] "%i pubblicazioni aggiunte alla collezione \"%s\"" +msgid "Added %(count)i release to collection \"%(name)s\"" +msgid_plural "Added %(count)i releases to collection \"%(name)s\"" +msgstr[0] "%(count)i pubblicazione aggiunta alla collezione \"%(name)s\"" +msgstr[1] "%(count)i pubblicazioni aggiunte alla collezione \"%(name)s\"" -#: picard/collection.py:72 +#: picard/collection.py:86 #, python-format -msgid "Removed %i release from collection \"%s\"" -msgid_plural "Removed %i releases from collection \"%s\"" -msgstr[0] "%i pubblicazione rimossa dalla collezione \"%s\"" -msgstr[1] "%i pubblicazioni rimosse dalla collezione \"%s\"" +msgid "Removed %(count)i release from collection \"%(name)s\"" +msgid_plural "Removed %(count)i releases from collection \"%(name)s\"" +msgstr[0] "%(count)i pubblicazione rimossa dalla collezione \"%(name)s\"" +msgstr[1] "%(count)i pubblicazioni rimosse dalla collezione \"%(name)s\"" -#: picard/collection.py:81 +#: picard/collection.py:100 #, python-format -msgid "Error loading collections: %s" -msgstr "Errore nel caricamento delle collezioni: %s" +msgid "Error loading collections: %(error)s" +msgstr "Errore nel caricamento delle collezioni: %(error)s" -#: picard/config_upgrade.py:57 picard/config_upgrade.py:70 +#: picard/config_upgrade.py:58 picard/config_upgrade.py:71 msgid "Various Artists file naming scheme removal" msgstr "Rimozione schema di rinominazione file di Artisti vari" -#: picard/config_upgrade.py:58 +#: picard/config_upgrade.py:59 msgid "" "The separate file naming scheme for various artists albums has been removed in this version of Picard.\n" "Your file naming scheme has automatically been merged with that of single artist albums." msgstr "Lo schema di rinominazione file per album di artisti vari è stato rimosso in questa versione di Picard.\nIl tuo schema di rinominazione file è stato unito automaticamente a quello per album di artisti singoli." -#: picard/config_upgrade.py:71 +#: picard/config_upgrade.py:72 msgid "" "The separate file naming scheme for various artists albums has been removed in this version of Picard.\n" "You currently do not use this option, but have a separate file naming scheme defined.\n" "Do you want to remove it or merge it with your file naming scheme for single artist albums?" msgstr "Lo schema di rinominazione file separato per album di artisti vari è stato rimosso in questa versione di Picard.\nAl momento non stai usando questa opzione, ma hai definito uno schema di rinominazione file separato.\nVuoi eliminarlo o unirlo al tuo schema di rinominazione file per album di artisti singoli?" -#: picard/config_upgrade.py:77 +#: picard/config_upgrade.py:78 msgid "Merge" msgstr "Unisci" -#: picard/config_upgrade.py:77 picard/ui/metadatabox.py:254 +#: picard/config_upgrade.py:78 picard/ui/metadatabox.py:254 msgid "Remove" msgstr "Elimina" -#: picard/const.py:67 -msgid "CD" -msgstr "CD" - -#: picard/const.py:68 -msgid "CD-R" -msgstr "CD-R" - -#: picard/const.py:69 -msgid "HDCD" -msgstr "HDCD" - -#: picard/const.py:70 -msgid "8cm CD" -msgstr "CD 8cm" - -#: picard/const.py:71 -msgid "Vinyl" -msgstr "Vinile" - -#: picard/const.py:72 -msgid "7\" Vinyl" -msgstr "Vinile 7\"" - -#: picard/const.py:73 -msgid "10\" Vinyl" -msgstr "Vinile 10\"" - -#: picard/const.py:74 -msgid "12\" Vinyl" -msgstr "Vinile 12\"" - -#: picard/const.py:75 -msgid "Digital Media" -msgstr "Supporto digitale" - -#: picard/const.py:76 -msgid "USB Flash Drive" -msgstr "Unità flash USB" - -#: picard/const.py:77 -msgid "slotMusic" -msgstr "slotMusic" - -#: picard/const.py:78 -msgid "Cassette" -msgstr "Audiocassetta" - -#: picard/const.py:79 -msgid "DVD" -msgstr "DVD" - -#: picard/const.py:80 -msgid "DVD-Audio" -msgstr "DVD-Audio" - -#: picard/const.py:81 -msgid "DVD-Video" -msgstr "DVD-Video" - -#: picard/const.py:82 -msgid "SACD" -msgstr "SACD" - -#: picard/const.py:83 -msgid "DualDisc" -msgstr "DualDisc" - -#: picard/const.py:84 -msgid "MiniDisc" -msgstr "MiniDisc" - -#: picard/const.py:85 -msgid "Blu-ray" -msgstr "Blu-ray" - -#: picard/const.py:86 -msgid "HD-DVD" -msgstr "HD-DVD" - -#: picard/const.py:87 -msgid "Videotape" -msgstr "Videocassetta" - -#: picard/const.py:88 -msgid "VHS" -msgstr "VHS" - -#: picard/const.py:89 -msgid "Betamax" -msgstr "Betamax" - #: picard/const.py:90 -msgid "VCD" -msgstr "VCD" - -#: picard/const.py:91 -msgid "SVCD" -msgstr "SVCD" - -#: picard/const.py:92 -msgid "UMD" -msgstr "UMD" - -#: picard/const.py:93 picard/coverartarchive.py:33 -#: picard/ui/ui_options_releases.py:222 -msgid "Other" -msgstr "Altro" - -#: picard/const.py:94 -msgid "LaserDisc" -msgstr "LaserDisc" - -#: picard/const.py:95 -msgid "Cartridge" -msgstr "Cartuccia" - -#: picard/const.py:96 -msgid "Reel-to-reel" -msgstr "Bobina per registratore" - -#: picard/const.py:97 -msgid "DAT" -msgstr "DAT" - -#: picard/const.py:98 -msgid "Wax Cylinder" -msgstr "Cilindro fonografico" - -#: picard/const.py:99 -msgid "Piano Roll" -msgstr "Rullo per pianola" - -#: picard/const.py:100 -msgid "DCC" -msgstr "DCC" - -#: picard/const.py:115 msgid "Danish" msgstr "Danese" -#: picard/const.py:116 +#: picard/const.py:91 msgid "German" msgstr "Tedesco" -#: picard/const.py:118 +#: picard/const.py:93 msgid "English" msgstr "Inglese" -#: picard/const.py:119 +#: picard/const.py:94 msgid "English (Canada)" msgstr "Inglese (Canada)" -#: picard/const.py:120 +#: picard/const.py:95 msgid "English (UK)" msgstr "Inglese (Regno Unito)" -#: picard/const.py:122 +#: picard/const.py:97 msgid "Spanish" msgstr "Spagnolo" -#: picard/const.py:123 +#: picard/const.py:98 msgid "Estonian" msgstr "Estone" -#: picard/const.py:125 +#: picard/const.py:100 msgid "Finnish" msgstr "Finlandese" -#: picard/const.py:127 +#: picard/const.py:102 msgid "French" msgstr "Francese" -#: picard/const.py:136 +#: picard/const.py:111 msgid "Italian" msgstr "Italiano" -#: picard/const.py:143 +#: picard/const.py:118 msgid "Dutch" msgstr "Olandese" -#: picard/const.py:145 +#: picard/const.py:120 msgid "Polish" msgstr "Polacco" -#: picard/const.py:147 +#: picard/const.py:122 msgid "Brazilian Portuguese" msgstr "Portoghese brasiliano" -#: picard/const.py:154 +#: picard/const.py:129 msgid "Swedish" msgstr "Svedese" -#: picard/coverart.py:86 +#: picard/coverart.py:85 #, python-format -msgid "Cover art of type '%s' downloaded for %s from %s" -msgstr "Copertina di tipo '%s' scaricata da %s per %s" +msgid "Cover art of type '%(type)s' downloaded for %(albumid)s from %(host)s" +msgstr "Copertina di tipo '%(type)s' scaricata da %(host)s per %(albumid)s" -#: picard/coverart.py:260 +#: picard/coverart.py:256 #, python-format -msgid "Downloading cover art of type '%s' for %s from %s ..." -msgstr "Download della copertina di tipo '%s' per %s da %s in corso..." - -#: picard/coverartarchive.py:24 -msgid "Front" -msgstr "Fronte" - -#: picard/coverartarchive.py:25 -msgid "Back" -msgstr "Retro" - -#: picard/coverartarchive.py:26 -msgid "Booklet" -msgstr "Libretto" - -#: picard/coverartarchive.py:27 -msgid "Medium" -msgstr "Supporto" - -#: picard/coverartarchive.py:28 -msgid "Tray" -msgstr "Tray" - -#: picard/coverartarchive.py:29 -msgid "Obi" -msgstr "Obi" +msgid "" +"Downloading cover art of type '%(type)s' for %(albumid)s from %(host)s .." +msgstr "Download della copertina di tipo '%(type)s' per %(albumid)s da %(host)s in corso..." #: picard/coverartarchive.py:30 -msgid "Spine" -msgstr "Dorso" - -#: picard/coverartarchive.py:31 picard/ui/mainwindow.py:566 -msgid "Track" -msgstr "Traccia" - -#: picard/coverartarchive.py:32 -msgid "Sticker" -msgstr "Adesivo" - -#: picard/coverartarchive.py:34 msgid "Unknown" msgstr "Sconosciuto" -#: picard/file.py:485 +#: picard/file.py:494 #, python-format -msgid "No matching tracks for file %s" -msgstr "Nessuna traccia corrispondente al file %s" +msgid "No matching tracks for file '%(filename)s'" +msgstr "Nessuna traccia corrispondente al file '%(filename)s'" -#: picard/file.py:497 +#: picard/file.py:510 #, python-format -msgid "No matching tracks above the threshold for file %s" -msgstr "Nessuna traccia corrispondente sopra la soglia al file %s" +msgid "No matching tracks above the threshold for file '%(filename)s'" +msgstr "Nessuna traccia corrispondente sopra la soglia al file '%(filename)s'" -#: picard/file.py:500 +#: picard/file.py:517 #, python-format -msgid "File %s identified!" -msgstr "Il file %s è stato identificato!" +msgid "File '%(filename)s' identified!" +msgstr "Il file '%(filename)s' è stato identificato!" -#: picard/file.py:516 +#: picard/file.py:537 #, python-format -msgid "Looking up the metadata for file %s..." -msgstr "Ricerca dei metadati del file %s in corso..." +msgid "Looking up the metadata for file %(filename)s ..." +msgstr "Ricerca dei metadati del file %(filename)s in corso..." #: picard/releasegroup.py:53 msgid "Tracks" @@ -553,21 +428,23 @@ msgstr "[nessun codice a barre]" msgid "[no release info]" msgstr "[nessuna informazione sulla pubblicazione]" -#: picard/tagger.py:348 +#: picard/tagger.py:370 #, python-format -msgid "Adding %d files from '%s' ..." -msgstr "Aggiunta di %d file da '%s' in corso..." +msgid "Adding %(count)d file from '%(directory)s' ..." +msgid_plural "Adding %(count)d files from '%(directory)s' ..." +msgstr[0] "Aggiunta di %(count)d file da '%(directory)s' in corso..." +msgstr[1] "Aggiunta di %(count)d file da '%(directory)s' in corso..." -#: picard/tagger.py:482 +#: picard/tagger.py:512 #, python-format -msgid "Removing album %s: %s - %s" -msgstr "Rimozione album %s: %s - %s in corso" +msgid "Removing album %(id)s: %(artist)s - %(album)s" +msgstr "Rimozione album %(id)s: %(artist)s - %(album)s in corso" -#: picard/tagger.py:493 +#: picard/tagger.py:528 msgid "CD Lookup Error" msgstr "Errore di ricerca del CD" -#: picard/tagger.py:494 +#: picard/tagger.py:529 #, python-format msgid "" "Error while reading CD:\n" @@ -575,13 +452,12 @@ msgid "" "%s" msgstr "Errore durante la lettura del CD:\n\n%s" -#: picard/ui/cdlookup.py:35 picard/ui/mainwindow.py:564 -#: picard/ui/ui_options_releases.py:212 picard/util/tags.py:21 +#: picard/ui/cdlookup.py:35 picard/ui/mainwindow.py:597 picard/util/tags.py:21 msgid "Album" msgstr "Album" #: picard/ui/cdlookup.py:35 picard/ui/itemviews.py:96 -#: picard/ui/mainwindow.py:565 picard/util/tags.py:22 +#: picard/ui/mainwindow.py:598 picard/util/tags.py:22 msgid "Artist" msgstr "Artista" @@ -752,13 +628,17 @@ msgstr "visualizzazione album" msgid "Contains albums and matched files" msgstr "Contiene gli album e i file riconosciuti" -#: picard/ui/logview.py:92 +#: picard/ui/logview.py:109 msgid "Log" msgstr "Registro" -#: picard/ui/logview.py:100 -msgid "Status History" -msgstr "Cronologia status" +#: picard/ui/logview.py:113 +msgid "Debug mode" +msgstr "Modalità di debug" + +#: picard/ui/logview.py:134 +msgid "Activity History" +msgstr "Cronologia dell'attività" #: picard/ui/mainwindow.py:74 msgid "MusicBrainz Picard" @@ -801,280 +681,299 @@ msgstr "Picard è in ascolto su questa porta per integrarsi con il tuo browser. msgid " Listening on port %(port)d " msgstr " In ascolto sulla porta %(port)d " -#: picard/ui/mainwindow.py:266 +#: picard/ui/mainwindow.py:299 msgid "Submission Error" msgstr "Errore di invio" -#: picard/ui/mainwindow.py:267 +#: picard/ui/mainwindow.py:300 msgid "" "You need to configure your AcoustID API key before you can submit " "fingerprints." msgstr "Devi configurare la tua chiave API AcoustID prima di poter inviare impronte digitali." -#: picard/ui/mainwindow.py:272 +#: picard/ui/mainwindow.py:305 msgid "&Options..." msgstr "&Opzioni..." -#: picard/ui/mainwindow.py:276 +#: picard/ui/mainwindow.py:309 msgid "&Cut" msgstr "&Taglia" -#: picard/ui/mainwindow.py:281 +#: picard/ui/mainwindow.py:314 msgid "&Paste" msgstr "&Incolla" -#: picard/ui/mainwindow.py:286 +#: picard/ui/mainwindow.py:319 msgid "&Help..." msgstr "&Guida..." -#: picard/ui/mainwindow.py:290 +#: picard/ui/mainwindow.py:323 msgid "&About..." msgstr "&Informazioni su..." -#: picard/ui/mainwindow.py:294 +#: picard/ui/mainwindow.py:327 msgid "&Donate..." msgstr "&Dona..." -#: picard/ui/mainwindow.py:297 +#: picard/ui/mainwindow.py:330 msgid "&Report a Bug..." msgstr "&Segnala un bug..." -#: picard/ui/mainwindow.py:300 +#: picard/ui/mainwindow.py:333 msgid "&Support Forum..." msgstr "&Forum di supporto..." -#: picard/ui/mainwindow.py:303 +#: picard/ui/mainwindow.py:336 msgid "&Add Files..." msgstr "&Aggiungi file..." -#: picard/ui/mainwindow.py:304 +#: picard/ui/mainwindow.py:337 msgid "Add files to the tagger" msgstr "Aggiungi file al tagger" -#: picard/ui/mainwindow.py:309 +#: picard/ui/mainwindow.py:342 msgid "A&dd Folder..." msgstr "A&ggiungi cartella..." -#: picard/ui/mainwindow.py:310 +#: picard/ui/mainwindow.py:343 msgid "Add a folder to the tagger" msgstr "Aggiungi una cartella al tagger" -#: picard/ui/mainwindow.py:312 +#: picard/ui/mainwindow.py:345 msgid "Ctrl+D" msgstr "Ctrl+D" -#: picard/ui/mainwindow.py:315 +#: picard/ui/mainwindow.py:348 msgid "&Save" msgstr "&Salva" -#: picard/ui/mainwindow.py:316 +#: picard/ui/mainwindow.py:349 msgid "Save selected files" msgstr "Salva i file selezionati" -#: picard/ui/mainwindow.py:322 +#: picard/ui/mainwindow.py:355 msgid "S&ubmit" msgstr "I&nvia" -#: picard/ui/mainwindow.py:323 +#: picard/ui/mainwindow.py:356 msgid "Submit acoustic fingerprints" msgstr "Invia impronte digitali acustiche" -#: picard/ui/mainwindow.py:327 +#: picard/ui/mainwindow.py:360 msgid "E&xit" msgstr "E&sci" -#: picard/ui/mainwindow.py:330 +#: picard/ui/mainwindow.py:363 msgid "Ctrl+Q" msgstr "Ctrl+Q" -#: picard/ui/mainwindow.py:333 +#: picard/ui/mainwindow.py:366 msgid "&Remove" msgstr "&Elimina" -#: picard/ui/mainwindow.py:334 +#: picard/ui/mainwindow.py:367 msgid "Remove selected files/albums" msgstr "Elimina i file/album selezionati" -#: picard/ui/mainwindow.py:338 +#: picard/ui/mainwindow.py:371 msgid "Lookup in &Browser" msgstr "Ricerca nel &browser" -#: picard/ui/mainwindow.py:339 +#: picard/ui/mainwindow.py:372 msgid "Lookup selected item on MusicBrainz website" msgstr "Cerca l'elemento selezionato sul sito di MusicBrainz" -#: picard/ui/mainwindow.py:343 +#: picard/ui/mainwindow.py:376 msgid "File &Browser" msgstr "&Gestore file" -#: picard/ui/mainwindow.py:347 +#: picard/ui/mainwindow.py:380 msgid "Ctrl+B" msgstr "Ctrl+B" -#: picard/ui/mainwindow.py:350 +#: picard/ui/mainwindow.py:383 msgid "&Cover Art" msgstr "&Copertina" -#: picard/ui/mainwindow.py:356 picard/ui/mainwindow.py:558 +#: picard/ui/mainwindow.py:389 picard/ui/mainwindow.py:591 msgid "Search" msgstr "Cerca" -#: picard/ui/mainwindow.py:359 +#: picard/ui/mainwindow.py:392 msgid "Lookup &CD..." msgstr "Ricerca &CD..." -#: picard/ui/mainwindow.py:360 +#: picard/ui/mainwindow.py:393 msgid "Lookup the details of the CD in your drive" msgstr "Cerca i dettagli del CD presente nella tua unità disco" -#: picard/ui/mainwindow.py:362 +#: picard/ui/mainwindow.py:395 msgid "Ctrl+K" msgstr "Ctrl+K" -#: picard/ui/mainwindow.py:365 +#: picard/ui/mainwindow.py:398 msgid "&Scan" msgstr "&Analizza" -#: picard/ui/mainwindow.py:368 +#: picard/ui/mainwindow.py:401 msgid "Ctrl+Y" msgstr "Ctrl+Y" -#: picard/ui/mainwindow.py:371 +#: picard/ui/mainwindow.py:404 msgid "Cl&uster" msgstr "Ra&ggruppa" -#: picard/ui/mainwindow.py:374 +#: picard/ui/mainwindow.py:407 msgid "Ctrl+U" msgstr "Ctrl+U" -#: picard/ui/mainwindow.py:377 +#: picard/ui/mainwindow.py:410 msgid "&Lookup" msgstr "&Cerca" -#: picard/ui/mainwindow.py:378 +#: picard/ui/mainwindow.py:411 msgid "Lookup selected items in MusicBrainz" msgstr "Cerca gli elementi selezionati sul sito di MusicBrainz" -#: picard/ui/mainwindow.py:383 +#: picard/ui/mainwindow.py:416 msgid "Ctrl+L" msgstr "Ctrl+L" -#: picard/ui/mainwindow.py:386 +#: picard/ui/mainwindow.py:419 msgid "&Info..." msgstr "&Info..." -#: picard/ui/mainwindow.py:389 +#: picard/ui/mainwindow.py:422 msgid "Ctrl+I" msgstr "Ctrl+I" -#: picard/ui/mainwindow.py:392 +#: picard/ui/mainwindow.py:425 msgid "&Refresh" msgstr "&Aggiorna" -#: picard/ui/mainwindow.py:393 +#: picard/ui/mainwindow.py:426 msgid "Ctrl+R" msgstr "Ctrl+R" -#: picard/ui/mainwindow.py:396 +#: picard/ui/mainwindow.py:429 msgid "&Rename Files" msgstr "&Rinomina file" -#: picard/ui/mainwindow.py:401 +#: picard/ui/mainwindow.py:434 msgid "&Move Files" msgstr "&Sposta file" -#: picard/ui/mainwindow.py:406 +#: picard/ui/mainwindow.py:439 msgid "Save &Tags" msgstr "Salva &tag" -#: picard/ui/mainwindow.py:411 +#: picard/ui/mainwindow.py:444 msgid "Tags From &File Names..." msgstr "Genera tag da nome &file..." -#: picard/ui/mainwindow.py:414 +#: picard/ui/mainwindow.py:447 msgid "&Open My Collections in Browser" msgstr "&Apri le mie collezioni nel browser" -#: picard/ui/mainwindow.py:418 +#: picard/ui/mainwindow.py:451 msgid "View Error/Debug &Log" msgstr "Visualizza &log errori/debug" -#: picard/ui/mainwindow.py:421 +#: picard/ui/mainwindow.py:454 msgid "View Activity &History" msgstr "Visualizza &cronologia dell'attività" -#: picard/ui/mainwindow.py:428 +#: picard/ui/mainwindow.py:461 msgid "&Play file" msgstr "&Riproduci file" -#: picard/ui/mainwindow.py:429 +#: picard/ui/mainwindow.py:462 msgid "Play the file in your default media player" msgstr "Riproduci il file nel tuo lettore multimediale predefinito" -#: picard/ui/mainwindow.py:433 +#: picard/ui/mainwindow.py:466 msgid "Open Containing &Folder" msgstr "Apri &cartella superiore" -#: picard/ui/mainwindow.py:434 +#: picard/ui/mainwindow.py:467 msgid "Open the containing folder in your file explorer" msgstr "Apri la cartella superiore in Esplora risorse" -#: picard/ui/mainwindow.py:459 +#: picard/ui/mainwindow.py:492 msgid "&File" msgstr "&File" -#: picard/ui/mainwindow.py:470 +#: picard/ui/mainwindow.py:503 msgid "&Edit" msgstr "&Modifica" -#: picard/ui/mainwindow.py:476 +#: picard/ui/mainwindow.py:509 msgid "&View" msgstr "&Visualizza" -#: picard/ui/mainwindow.py:482 +#: picard/ui/mainwindow.py:515 msgid "&Options" msgstr "&Opzioni" -#: picard/ui/mainwindow.py:488 +#: picard/ui/mainwindow.py:521 msgid "&Tools" msgstr "&Strumenti" -#: picard/ui/mainwindow.py:499 picard/ui/util.py:35 +#: picard/ui/mainwindow.py:532 picard/ui/util.py:35 msgid "&Help" msgstr "&Aiuto" -#: picard/ui/mainwindow.py:520 +#: picard/ui/mainwindow.py:553 msgid "Actions" msgstr "Azioni" -#: picard/ui/mainwindow.py:629 +#: picard/ui/mainwindow.py:599 +msgid "Track" +msgstr "Traccia" + +#: picard/ui/mainwindow.py:662 msgid "All Supported Formats" msgstr "Tutti i formati supportati" -#: picard/ui/mainwindow.py:661 +#: picard/ui/mainwindow.py:695 #, python-format -msgid "Adding directory: '%s' ..." -msgstr "Aggiunta cartella '%s' in corso..." +msgid "Adding directory: '%(directory)s' ..." +msgstr "Aggiunta cartella '%(directory)s' in corso..." -#: picard/ui/mainwindow.py:665 +#: picard/ui/mainwindow.py:702 #, python-format -msgid "Adding multiple directories from: '%s' ..." -msgstr "Aggiunta cartelle da: '%s' in corso..." +msgid "Adding multiple directories from '%(directory)s' ..." +msgstr "Aggiunta cartelle da '%(directory)s' in corso..." -#: picard/ui/mainwindow.py:728 +#: picard/ui/mainwindow.py:767 msgid "Configuration Required" msgstr "Configurazione richiesta" -#: picard/ui/mainwindow.py:729 +#: picard/ui/mainwindow.py:768 msgid "" "Audio fingerprinting is not yet configured. Would you like to configure it " "now?" msgstr "Il sistema di impronte digitali audio non è ancora configurato. Vuoi configurarlo adesso?" -#: picard/ui/mainwindow.py:811 picard/ui/mainwindow.py:818 +#: picard/ui/mainwindow.py:848 #, python-format -msgid " (Error: %s)" -msgstr " (Errore: %s)" +msgid "%(filename)s (error: %(error)s)" +msgstr "%(filename)s (errore: %(error)s)" + +#: picard/ui/mainwindow.py:854 +#, python-format +msgid "%(filename)s" +msgstr "%(filename)s" + +#: picard/ui/mainwindow.py:864 +#, python-format +msgid "%(filename)s (%(similarity)d%%) (error: %(error)s)" +msgstr "%(filename)s (%(similarity)d%%) (errore: %(error)s)" + +#: picard/ui/mainwindow.py:871 +#, python-format +msgid "%(filename)s (%(similarity)d%%)" +msgstr "%(filename)s (%(similarity)d%%)" #: picard/ui/metadatabox.py:82 #, python-format @@ -1128,14 +1027,14 @@ msgid_plural "Use Original Values" msgstr[0] "" msgstr[1] "Usa valore originale" -#: picard/ui/passworddialog.py:39 +#: picard/ui/passworddialog.py:40 #, python-format msgid "" "The server %s requires you to login. Please enter your username and " "password." msgstr "Il server %s richiede il login. Inserisci nome utente e password." -#: picard/ui/passworddialog.py:77 +#: picard/ui/passworddialog.py:79 #, python-format msgid "" "The proxy %s requires you to login. Please enter your username and password." @@ -1210,71 +1109,71 @@ msgstr "Unità CD da usare per le ricerche:" msgid "Default CD-ROM drive to use for lookups:" msgstr "Unità CD predefinita da usare per le ricerche:" -#: picard/ui/ui_options_cover.py:132 +#: picard/ui/ui_options_cover.py:131 msgid "Location" msgstr "Posizione" -#: picard/ui/ui_options_cover.py:133 +#: picard/ui/ui_options_cover.py:132 msgid "Embed cover images into tags" msgstr "Includi le immagini di copertina nei tag" -#: picard/ui/ui_options_cover.py:134 +#: picard/ui/ui_options_cover.py:133 msgid "Only embed a front image" msgstr "Includi solo la copertina frontale" -#: picard/ui/ui_options_cover.py:135 +#: picard/ui/ui_options_cover.py:134 msgid "Save cover images as separate files" msgstr "Salva l'immagine della copertina come file separato" -#: picard/ui/ui_options_cover.py:136 +#: picard/ui/ui_options_cover.py:135 msgid "Use the following file name for images:" msgstr "Utilizza il seguente nome file per le immagini:" -#: picard/ui/ui_options_cover.py:137 +#: picard/ui/ui_options_cover.py:136 msgid "Overwrite the file if it already exists" msgstr "Sovrascrivi il file se è già presente" -#: picard/ui/ui_options_cover.py:138 +#: picard/ui/ui_options_cover.py:137 msgid "Coverart Providers" msgstr "Fornitori di copertine" -#: picard/ui/ui_options_cover.py:139 +#: picard/ui/ui_options_cover.py:138 msgid "Amazon" msgstr "Amazon" -#: picard/ui/ui_options_cover.py:140 picard/ui/ui_options_cover.py:142 +#: picard/ui/ui_options_cover.py:139 picard/ui/ui_options_cover.py:141 msgid "Cover Art Archive" msgstr "Cover Art Archive" -#: picard/ui/ui_options_cover.py:141 +#: picard/ui/ui_options_cover.py:140 msgid "Sites on the whitelist" msgstr "Siti nella whitelist" -#: picard/ui/ui_options_cover.py:143 +#: picard/ui/ui_options_cover.py:142 msgid "Only use images of the following size:" msgstr "Utilizza solo immagini della seguente dimensione:" -#: picard/ui/ui_options_cover.py:144 +#: picard/ui/ui_options_cover.py:143 msgid "250 px" msgstr "250 px" -#: picard/ui/ui_options_cover.py:145 +#: picard/ui/ui_options_cover.py:144 msgid "500 px" msgstr "500 px" -#: picard/ui/ui_options_cover.py:146 +#: picard/ui/ui_options_cover.py:145 msgid "Full size" msgstr "Dimensione completa" -#: picard/ui/ui_options_cover.py:147 +#: picard/ui/ui_options_cover.py:146 msgid "Download only images of the following types:" msgstr "Scarica solo immagini dei seguenti tipi:" -#: picard/ui/ui_options_cover.py:148 +#: picard/ui/ui_options_cover.py:147 msgid "Download only approved images" msgstr "Scarica solo immagini approvate" -#: picard/ui/ui_options_cover.py:149 +#: picard/ui/ui_options_cover.py:148 msgid "" "Use the first image type as the filename. This will not change the filename " "of front images." @@ -1524,63 +1423,23 @@ msgstr "E-mail:" msgid "Submit ratings to MusicBrainz" msgstr "Invia voti a MusicBrainz" -#: picard/ui/ui_options_releases.py:211 +#: picard/ui/ui_options_releases.py:104 msgid "Preferred release types" msgstr "Tipi di pubblicazione preferiti" -#: picard/ui/ui_options_releases.py:213 -msgid "Single" -msgstr "Singolo" - -#: picard/ui/ui_options_releases.py:214 -msgid "EP" -msgstr "EP" - -#: picard/ui/ui_options_releases.py:215 -msgid "Compilation" -msgstr "Compilation" - -#: picard/ui/ui_options_releases.py:216 -msgid "Soundtrack" -msgstr "Colonna sonora" - -#: picard/ui/ui_options_releases.py:217 -msgid "Spokenword" -msgstr "Spoken word (parlato)" - -#: picard/ui/ui_options_releases.py:218 -msgid "Interview" -msgstr "Intervista" - -#: picard/ui/ui_options_releases.py:219 -msgid "Audiobook" -msgstr "Audiolibro" - -#: picard/ui/ui_options_releases.py:220 -msgid "Live" -msgstr "Live" - -#: picard/ui/ui_options_releases.py:221 -msgid "Remix" -msgstr "Remix" - -#: picard/ui/ui_options_releases.py:223 -msgid "Reset all" -msgstr "Reimposta tutto" - -#: picard/ui/ui_options_releases.py:224 +#: picard/ui/ui_options_releases.py:105 msgid "Preferred release countries" msgstr "Paesi di pubblicazione preferiti" -#: picard/ui/ui_options_releases.py:225 picard/ui/ui_options_releases.py:228 +#: picard/ui/ui_options_releases.py:106 picard/ui/ui_options_releases.py:109 msgid ">" msgstr ">" -#: picard/ui/ui_options_releases.py:226 picard/ui/ui_options_releases.py:229 +#: picard/ui/ui_options_releases.py:107 picard/ui/ui_options_releases.py:110 msgid "<" msgstr "<" -#: picard/ui/ui_options_releases.py:227 +#: picard/ui/ui_options_releases.py:108 msgid "Preferred release formats" msgstr "Formati di pubblicazione preferiti" @@ -1772,7 +1631,11 @@ msgstr "Avanzate" msgid "Regex Error" msgstr "Errore nell'espressione regolare" -#: picard/ui/options/cover.py:63 +#: picard/ui/options/cover.py:44 +msgid "title" +msgstr "titolo" + +#: picard/ui/options/cover.py:68 msgid "Cover Art" msgstr "Copertine" @@ -1788,11 +1651,11 @@ msgstr "Interfaccia utente" msgid "System default" msgstr "Predefinita del sistema" -#: picard/ui/options/interface.py:96 +#: picard/ui/options/interface.py:98 msgid "Language changed" msgstr "Lingua cambiata" -#: picard/ui/options/interface.py:96 +#: picard/ui/options/interface.py:99 msgid "" "You have changed the interface language. You have to restart Picard in order" " for the change to take effect." @@ -1814,31 +1677,35 @@ msgstr "File" msgid "Ratings" msgstr "Voti" -#: picard/ui/options/releases.py:33 +#: picard/ui/options/releases.py:87 msgid "Preferred Releases" msgstr "Pubblicazioni preferite" +#: picard/ui/options/releases.py:121 +msgid "Reset all" +msgstr "Reimposta tutto" + #: picard/ui/options/renaming.py:37 msgid "File Naming" msgstr "Rinominazione file" -#: picard/ui/options/renaming.py:184 +#: picard/ui/options/renaming.py:187 msgid "Error" msgstr "Errore" -#: picard/ui/options/renaming.py:184 +#: picard/ui/options/renaming.py:187 msgid "The location to move files to must not be empty." msgstr "La posizione in cui spostare i file non può essere vuota." -#: picard/ui/options/renaming.py:194 +#: picard/ui/options/renaming.py:197 msgid "The file naming format must not be empty." msgstr "Il formato di rinominazione dei file non può essere vuoto." -#: picard/ui/options/scripting.py:98 +#: picard/ui/options/scripting.py:99 msgid "Scripting" msgstr "Scripting" -#: picard/ui/options/scripting.py:130 +#: picard/ui/options/scripting.py:131 msgid "Script Error" msgstr "Errore causato dallo script" diff --git a/po/ja.po b/po/ja.po index 228a7d3f5..9c3a16bdf 100644 --- a/po/ja.po +++ b/po/ja.po @@ -11,8 +11,8 @@ msgid "" msgstr "" "Project-Id-Version: MusicBrainz\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2014-03-20 11:12+0100\n" -"PO-Revision-Date: 2014-03-21 08:44+0000\n" +"POT-Creation-Date: 2014-05-03 17:28+0200\n" +"PO-Revision-Date: 2014-05-04 08:44+0000\n" "Last-Translator: nikki\n" "Language-Team: Japanese (http://www.transifex.com/projects/p/musicbrainz/language/ja/)\n" "MIME-Version: 1.0\n" @@ -22,6 +22,10 @@ msgstr "" "Language: ja\n" "Plural-Forms: nplurals=1; plural=0;\n" +#: contrib/plugins/albumartist_website.py:3 +msgid "Album Artist Website" +msgstr "" + #: contrib/plugins/no_release.py:50 msgid "Enable plugin for all releases by default" msgstr "デフォルトで全リリースにプラグイン有効" @@ -34,63 +38,55 @@ msgstr "剥ぎ取るタグ(コンマ区切り)" msgid "Remove specific release information..." msgstr "特定のリリース情報を削除…" -#: contrib/plugins/open_in_gui.py:32 -msgid "Open Error" -msgstr "開くエラー" +#: contrib/plugins/standardise_performers.py:3 +msgid "Standardise Performers" +msgstr "" -#: contrib/plugins/open_in_gui.py:32 -#, python-format -msgid "" -"Error while opening file:\n" -"\n" -"%s" -msgstr "ファイルを開くエラー: %s" - -#: contrib/plugins/lastfm/ui_options_lastfm.py:117 +#: contrib/plugins/lastfm/ui_options_lastfm.py:99 msgid "Last.fm" msgstr "Last.fm" -#: contrib/plugins/lastfm/ui_options_lastfm.py:118 +#: contrib/plugins/lastfm/ui_options_lastfm.py:100 msgid "Use track tags" msgstr "トラックのタグを使用する" -#: contrib/plugins/lastfm/ui_options_lastfm.py:119 +#: contrib/plugins/lastfm/ui_options_lastfm.py:101 msgid "Use artist tags" msgstr "アーティストのタグを使用する" -#: contrib/plugins/lastfm/ui_options_lastfm.py:120 +#: contrib/plugins/lastfm/ui_options_lastfm.py:102 #: picard/ui/options/tags.py:30 msgid "Tags" msgstr "タグ" -#: contrib/plugins/lastfm/ui_options_lastfm.py:121 -#: picard/ui/ui_options_folksonomy.py:116 +#: contrib/plugins/lastfm/ui_options_lastfm.py:103 +#: picard/ui/ui_options_folksonomy.py:103 msgid "Ignore tags:" msgstr "タグを無視する:" -#: contrib/plugins/lastfm/ui_options_lastfm.py:122 -#: picard/ui/ui_options_folksonomy.py:121 +#: contrib/plugins/lastfm/ui_options_lastfm.py:104 +#: picard/ui/ui_options_folksonomy.py:108 msgid "Join multiple tags with:" msgstr "タグの区切り文字:" -#: contrib/plugins/lastfm/ui_options_lastfm.py:123 -#: picard/ui/ui_options_folksonomy.py:122 +#: contrib/plugins/lastfm/ui_options_lastfm.py:105 +#: picard/ui/ui_options_folksonomy.py:109 msgid " / " msgstr " / " -#: contrib/plugins/lastfm/ui_options_lastfm.py:124 -#: picard/ui/ui_options_folksonomy.py:123 +#: contrib/plugins/lastfm/ui_options_lastfm.py:106 +#: picard/ui/ui_options_folksonomy.py:110 msgid ", " msgstr ", " -#: contrib/plugins/lastfm/ui_options_lastfm.py:125 -#: picard/ui/ui_options_folksonomy.py:118 +#: contrib/plugins/lastfm/ui_options_lastfm.py:107 +#: picard/ui/ui_options_folksonomy.py:105 msgid "Minimal tag usage:" msgstr "最小限タグ使用:" -#: contrib/plugins/lastfm/ui_options_lastfm.py:126 -#: picard/ui/ui_options_folksonomy.py:119 picard/ui/ui_options_matching.py:88 -#: picard/ui/ui_options_matching.py:89 picard/ui/ui_options_matching.py:90 +#: contrib/plugins/lastfm/ui_options_lastfm.py:108 +#: picard/ui/ui_options_folksonomy.py:106 picard/ui/ui_options_matching.py:75 +#: picard/ui/ui_options_matching.py:76 picard/ui/ui_options_matching.py:77 msgid " %" msgstr " %" @@ -98,417 +94,304 @@ msgstr " %" msgid "Calculate replay &gain..." msgstr "再生利得を計算 (&G)" -#: contrib/plugins/replaygain/__init__.py:66 +#: contrib/plugins/replaygain/__init__.py:67 #, python-format -msgid "Calculating replay gain for \"%s\"..." -msgstr "「%s」の再生利得を計算中" +msgid "Calculating replay gain for \"%(filename)s\"..." +msgstr "" -#: contrib/plugins/replaygain/__init__.py:71 +#: contrib/plugins/replaygain/__init__.py:75 #, python-format -msgid "Replay gain for \"%s\" successfully calculated." -msgstr "「%s」の再生利得を計算した" +msgid "Replay gain for \"%(filename)s\" successfully calculated." +msgstr "" -#: contrib/plugins/replaygain/__init__.py:73 +#: contrib/plugins/replaygain/__init__.py:80 #, python-format -msgid "Could not calculate replay gain for \"%s\"." -msgstr "「%s」の再生利得を計算できなかった。" +msgid "Could not calculate replay gain for \"%(filename)s\"." +msgstr "" -#: contrib/plugins/replaygain/__init__.py:76 +#: contrib/plugins/replaygain/__init__.py:85 msgid "Calculate album &gain..." msgstr "アルバムの利得を計算 (&G)" -#: contrib/plugins/replaygain/__init__.py:103 -#: contrib/plugins/replaygain/__init__.py:111 +#: contrib/plugins/replaygain/__init__.py:113 +#: contrib/plugins/replaygain/__init__.py:124 #, python-format -msgid "Calculating album gain for \"%s\"..." -msgstr "「%s」のアルバム利得を計算中" - -#: contrib/plugins/replaygain/__init__.py:119 -#, python-format -msgid "Album gain for \"%s\" successfully calculated." -msgstr "「%s」のアルバム利得を計算した" - -#: contrib/plugins/replaygain/__init__.py:121 -#, python-format -msgid "Could not calculate album gain for \"%s\"." -msgstr "「%s」のアルバム利得を計算できなかった。" - -#: picard/acoustid.py:102 -#, python-format -msgid "AcoustID lookup network error for '%s'!" +msgid "Calculating album gain for \"%(album)s\"..." msgstr "" -#: picard/acoustid.py:117 +#: contrib/plugins/replaygain/__init__.py:135 #, python-format -msgid "AcoustID lookup failed for '%s'!" +msgid "Album gain for \"%(album)s\" successfully calculated." msgstr "" -#: picard/acoustid.py:128 +#: contrib/plugins/replaygain/__init__.py:140 #, python-format -msgid "Acoustid lookup returned no result for file '%s'" +msgid "Could not calculate album gain for \"%(album)s\"." msgstr "" -#: picard/acoustid.py:132 -#, python-format -msgid "Looking up the fingerprint for file %s..." -msgstr "ファイル %s のフィンガープリントを検索中..." - -#: picard/acoustidmanager.py:78 -msgid "Submitting AcoustIDs..." -msgstr "AcoustID を送信しています..." - -#: picard/acoustidmanager.py:83 -#, python-format -msgid "AcoustID submission failed with error '%s'" +#: contrib/plugins/replaygain/ui_options_replaygain.py:59 +msgid "Replay Gain" msgstr "" -#: picard/acoustidmanager.py:85 +#: contrib/plugins/replaygain/ui_options_replaygain.py:60 +msgid "Path to VorbisGain:" +msgstr "" + +#: contrib/plugins/replaygain/ui_options_replaygain.py:61 +msgid "Path to MP3Gain:" +msgstr "" + +#: contrib/plugins/replaygain/ui_options_replaygain.py:62 +msgid "Path to metaflac:" +msgstr "" + +#: contrib/plugins/replaygain/ui_options_replaygain.py:63 +msgid "Path to wvgain:" +msgstr "" + +#: contrib/plugins/viewvariables/__init__.py:42 +#, python-format +msgid "File: %s" +msgstr "" + +#: contrib/plugins/viewvariables/__init__.py:47 +#, python-format +msgid "Track: %s %s " +msgstr "" + +#: contrib/plugins/viewvariables/__init__.py:49 +msgid "Variables" +msgstr "" + +#: contrib/plugins/viewvariables/__init__.py:69 +msgid "File variables" +msgstr "" + +#: contrib/plugins/viewvariables/__init__.py:74 +msgid "Hidden variables" +msgstr "" + +#: contrib/plugins/viewvariables/__init__.py:79 +msgid "Tag variables" +msgstr "" + +#: contrib/plugins/viewvariables/ui_variables_dialog.py:73 +msgid "Variable" +msgstr "" + +#: contrib/plugins/viewvariables/ui_variables_dialog.py:75 +msgid "Value" +msgstr "" + +#: picard/acoustid.py:109 +#, python-format +msgid "AcoustID lookup network error for '%(filename)s'!" +msgstr "" + +#: picard/acoustid.py:133 +#, python-format +msgid "AcoustID lookup failed for '%(filename)s'!" +msgstr "" + +#: picard/acoustid.py:155 +#, python-format +msgid "AcoustID lookup returned no result for file '%(filename)s'" +msgstr "" + +#: picard/acoustid.py:166 +#, python-format +msgid "Looking up the fingerprint for file '%(filename)s' ..." +msgstr "" + +#: picard/acoustidmanager.py:80 +msgid "Submitting AcoustIDs ..." +msgstr "" + +#: picard/acoustidmanager.py:94 +#, python-format +msgid "AcoustID submission failed with error '%(error)s'" +msgstr "" + +#: picard/acoustidmanager.py:102 msgid "AcoustIDs successfully submitted." msgstr "" -#: picard/album.py:64 picard/cluster.py:234 +#: picard/album.py:65 picard/cluster.py:255 msgid "Unmatched Files" msgstr "マッチしてないファイル" -#: picard/album.py:187 +#: picard/album.py:188 #, python-format msgid "[could not load album %s]" msgstr "[アルバム %s を読み込めません]" -#: picard/album.py:272 +#: picard/album.py:277 #, python-format -msgid "Album %s loaded" -msgstr "アルバム %s ロードした" +msgid "Album %(id)s loaded: %(artist)s - %(album)s" +msgstr "" -#: picard/album.py:288 +#: picard/album.py:294 +#, python-format +msgid "Loading album %(id)s ..." +msgstr "" + +#: picard/album.py:303 msgid "[loading album information]" msgstr "[アルバムの情報を読み込んでいます]" -#: picard/album.py:463 +#: picard/album.py:478 #, python-format msgid "; %i image" msgid_plural "; %i images" msgstr[0] "; %i 画像" -#: picard/cluster.py:150 picard/cluster.py:159 +#: picard/cluster.py:155 picard/cluster.py:168 #, python-format -msgid "No matching releases for cluster %s" -msgstr "クラスタ %s にマッチするリリースはありません" +msgid "No matching releases for cluster %(album)s" +msgstr "" -#: picard/cluster.py:161 +#: picard/cluster.py:174 #, python-format -msgid "Cluster %s identified!" -msgstr "クラスタ %s を同定しました!" +msgid "Cluster %(album)s identified!" +msgstr "" -#: picard/cluster.py:168 +#: picard/cluster.py:185 #, python-format -msgid "Looking up the metadata for cluster %s..." -msgstr "クラスタ %s のメタデータを検索しています..." +msgid "Looking up the metadata for cluster %(album)s..." +msgstr "" -#: picard/collection.py:60 +#: picard/collection.py:64 #, python-format -msgid "Added %i release to collection \"%s\"" -msgid_plural "Added %i releases to collection \"%s\"" -msgstr[0] "コレクション「%s」に %i リリースを追加した" +msgid "Added %(count)i release to collection \"%(name)s\"" +msgid_plural "Added %(count)i releases to collection \"%(name)s\"" +msgstr[0] "" -#: picard/collection.py:72 +#: picard/collection.py:86 #, python-format -msgid "Removed %i release from collection \"%s\"" -msgid_plural "Removed %i releases from collection \"%s\"" -msgstr[0] "コレクション「%s」から %i リリースを取り除いた" +msgid "Removed %(count)i release from collection \"%(name)s\"" +msgid_plural "Removed %(count)i releases from collection \"%(name)s\"" +msgstr[0] "" -#: picard/collection.py:81 +#: picard/collection.py:100 #, python-format -msgid "Error loading collections: %s" -msgstr "コレクション「%s」ロード・エラー" +msgid "Error loading collections: %(error)s" +msgstr "" -#: picard/config_upgrade.py:57 picard/config_upgrade.py:70 +#: picard/config_upgrade.py:58 picard/config_upgrade.py:71 msgid "Various Artists file naming scheme removal" msgstr "Various Artistsの特別ファイル命名体系の削除" -#: picard/config_upgrade.py:58 +#: picard/config_upgrade.py:59 msgid "" "The separate file naming scheme for various artists albums has been removed in this version of Picard.\n" "Your file naming scheme has automatically been merged with that of single artist albums." msgstr "" -#: picard/config_upgrade.py:71 +#: picard/config_upgrade.py:72 msgid "" "The separate file naming scheme for various artists albums has been removed in this version of Picard.\n" "You currently do not use this option, but have a separate file naming scheme defined.\n" "Do you want to remove it or merge it with your file naming scheme for single artist albums?" msgstr "" -#: picard/config_upgrade.py:77 +#: picard/config_upgrade.py:78 msgid "Merge" msgstr "マージ" -#: picard/config_upgrade.py:77 picard/ui/metadatabox.py:254 +#: picard/config_upgrade.py:78 picard/ui/metadatabox.py:254 msgid "Remove" msgstr "削除" -#: picard/const.py:67 -msgid "CD" -msgstr "CD" - -#: picard/const.py:68 -msgid "CD-R" -msgstr "CD-R" - -#: picard/const.py:69 -msgid "HDCD" -msgstr "HDCD" - -#: picard/const.py:70 -msgid "8cm CD" -msgstr "8cm CD" - -#: picard/const.py:71 -msgid "Vinyl" -msgstr "レコード" - -#: picard/const.py:72 -msgid "7\" Vinyl" -msgstr "7インチ バイナル" - -#: picard/const.py:73 -msgid "10\" Vinyl" -msgstr "10インチ バイナル" - -#: picard/const.py:74 -msgid "12\" Vinyl" -msgstr "12インチ バイナル" - -#: picard/const.py:75 -msgid "Digital Media" -msgstr "デジタルメディア" - -#: picard/const.py:76 -msgid "USB Flash Drive" -msgstr "USB フラッシュドライブ" - -#: picard/const.py:77 -msgid "slotMusic" -msgstr "slotMusic" - -#: picard/const.py:78 -msgid "Cassette" -msgstr "カセット" - -#: picard/const.py:79 -msgid "DVD" -msgstr "DVD" - -#: picard/const.py:80 -msgid "DVD-Audio" -msgstr "DVD-Audio" - -#: picard/const.py:81 -msgid "DVD-Video" -msgstr "DVD-Video" - -#: picard/const.py:82 -msgid "SACD" -msgstr "SACD" - -#: picard/const.py:83 -msgid "DualDisc" -msgstr "DualDisc" - -#: picard/const.py:84 -msgid "MiniDisc" -msgstr "MD" - -#: picard/const.py:85 -msgid "Blu-ray" -msgstr "Blu-ray" - -#: picard/const.py:86 -msgid "HD-DVD" -msgstr "HD-DVD" - -#: picard/const.py:87 -msgid "Videotape" -msgstr "ビデオテープ" - -#: picard/const.py:88 -msgid "VHS" -msgstr "VHS" - -#: picard/const.py:89 -msgid "Betamax" -msgstr "ベータマックス" - #: picard/const.py:90 -msgid "VCD" -msgstr "VCD" - -#: picard/const.py:91 -msgid "SVCD" -msgstr "SVCD" - -#: picard/const.py:92 -msgid "UMD" -msgstr "UMD" - -#: picard/const.py:93 picard/coverartarchive.py:33 -#: picard/ui/ui_options_releases.py:226 -msgid "Other" -msgstr "その他" - -#: picard/const.py:94 -msgid "LaserDisc" -msgstr "レーザーディスク" - -#: picard/const.py:95 -msgid "Cartridge" -msgstr "カートリッジ" - -#: picard/const.py:96 -msgid "Reel-to-reel" -msgstr "オープンリール" - -#: picard/const.py:97 -msgid "DAT" -msgstr "DAT" - -#: picard/const.py:98 -msgid "Wax Cylinder" -msgstr "ワックス・シリンダー" - -#: picard/const.py:99 -msgid "Piano Roll" -msgstr "ピアノロール" - -#: picard/const.py:100 -msgid "DCC" -msgstr "DCC" - -#: picard/const.py:115 msgid "Danish" msgstr "デンマーク語" -#: picard/const.py:116 +#: picard/const.py:91 msgid "German" msgstr "ドイツ語" -#: picard/const.py:118 +#: picard/const.py:93 msgid "English" msgstr "英語" -#: picard/const.py:119 +#: picard/const.py:94 msgid "English (Canada)" msgstr "英語(カナダ)" -#: picard/const.py:120 +#: picard/const.py:95 msgid "English (UK)" msgstr "英語(イギリス)" -#: picard/const.py:122 +#: picard/const.py:97 msgid "Spanish" msgstr "スペイン語" -#: picard/const.py:123 +#: picard/const.py:98 msgid "Estonian" msgstr "エストニア語" -#: picard/const.py:125 +#: picard/const.py:100 msgid "Finnish" msgstr "フィンランド語" -#: picard/const.py:127 +#: picard/const.py:102 msgid "French" msgstr "フランス語" -#: picard/const.py:136 +#: picard/const.py:111 msgid "Italian" msgstr "イタリア語" -#: picard/const.py:143 +#: picard/const.py:118 msgid "Dutch" msgstr "オランダ語" -#: picard/const.py:145 +#: picard/const.py:120 msgid "Polish" msgstr "ポーランド語" -#: picard/const.py:147 +#: picard/const.py:122 msgid "Brazilian Portuguese" msgstr "ブラジルポルトガル語" -#: picard/const.py:154 +#: picard/const.py:129 msgid "Swedish" msgstr "スウェーデン語" -#: picard/coverart.py:84 +#: picard/coverart.py:85 #, python-format -msgid "Coverart %s downloaded" -msgstr "表紙画像 %s ダウンロードされた" +msgid "Cover art of type '%(type)s' downloaded for %(albumid)s from %(host)s" +msgstr "" -#: picard/coverart.py:240 +#: picard/coverart.py:256 #, python-format -msgid "Downloading http://%s:%i%s" -msgstr "http://%s:%i%s ダウンロード中" - -#: picard/coverartarchive.py:24 -msgid "Front" -msgstr "表紙" - -#: picard/coverartarchive.py:25 -msgid "Back" -msgstr "裏表紙" - -#: picard/coverartarchive.py:26 -msgid "Booklet" -msgstr "冊子" - -#: picard/coverartarchive.py:27 -msgid "Medium" -msgstr "メディア" - -#: picard/coverartarchive.py:28 -msgid "Tray" -msgstr "トレー" - -#: picard/coverartarchive.py:29 -msgid "Obi" -msgstr "帯" +msgid "" +"Downloading cover art of type '%(type)s' for %(albumid)s from %(host)s .." +msgstr "" #: picard/coverartarchive.py:30 -msgid "Spine" -msgstr "背" - -#: picard/coverartarchive.py:31 picard/ui/mainwindow.py:546 -msgid "Track" -msgstr "トラック" - -#: picard/coverartarchive.py:32 -msgid "Sticker" -msgstr "ステッカー" - -#: picard/coverartarchive.py:34 msgid "Unknown" msgstr "不明" -#: picard/file.py:536 +#: picard/file.py:494 #, python-format -msgid "No matching tracks for file %s" -msgstr "ファイル %s にマッチするトラックはありません" +msgid "No matching tracks for file '%(filename)s'" +msgstr "" -#: picard/file.py:548 +#: picard/file.py:510 #, python-format -msgid "No matching tracks above the threshold for file %s" -msgstr "ファイル %s のしきい値を超えるトラックはありません" +msgid "No matching tracks above the threshold for file '%(filename)s'" +msgstr "" -#: picard/file.py:551 +#: picard/file.py:517 #, python-format -msgid "File %s identified!" -msgstr "ファイル %s を同定しました!" +msgid "File '%(filename)s' identified!" +msgstr "" -#: picard/file.py:567 +#: picard/file.py:537 #, python-format -msgid "Looking up the metadata for file %s..." -msgstr "ファイル %s のメタデータを検索しています..." +msgid "Looking up the metadata for file %(filename)s ..." +msgstr "" #: picard/releasegroup.py:53 msgid "Tracks" @@ -518,11 +401,11 @@ msgstr "" msgid "Year" msgstr "" -#: picard/releasegroup.py:55 picard/ui/cdlookup.py:34 +#: picard/releasegroup.py:55 picard/ui/cdlookup.py:35 msgid "Country" msgstr "国" -#: picard/releasegroup.py:56 picard/util/tags.py:81 +#: picard/releasegroup.py:56 msgid "Format" msgstr "フォーマット" @@ -542,16 +425,22 @@ msgstr "" msgid "[no release info]" msgstr "[リリース情報なし]" -#: picard/tagger.py:316 +#: picard/tagger.py:370 #, python-format -msgid "Loading directory %s" -msgstr "ディレクトリ %s ロード中" +msgid "Adding %(count)d file from '%(directory)s' ..." +msgid_plural "Adding %(count)d files from '%(directory)s' ..." +msgstr[0] "" -#: picard/tagger.py:452 +#: picard/tagger.py:512 +#, python-format +msgid "Removing album %(id)s: %(artist)s - %(album)s" +msgstr "" + +#: picard/tagger.py:528 msgid "CD Lookup Error" msgstr "CD読み込みのエラー" -#: picard/tagger.py:453 +#: picard/tagger.py:529 #, python-format msgid "" "Error while reading CD:\n" @@ -559,43 +448,42 @@ msgid "" "%s" msgstr "CDを読み込む際のエラー:\n\n%s" -#: picard/ui/cdlookup.py:34 picard/ui/mainwindow.py:544 -#: picard/ui/ui_options_releases.py:216 picard/util/tags.py:21 +#: picard/ui/cdlookup.py:35 picard/ui/mainwindow.py:597 picard/util/tags.py:21 msgid "Album" msgstr "アルバム" -#: picard/ui/cdlookup.py:34 picard/ui/itemviews.py:96 -#: picard/ui/mainwindow.py:545 picard/util/tags.py:22 +#: picard/ui/cdlookup.py:35 picard/ui/itemviews.py:96 +#: picard/ui/mainwindow.py:598 picard/util/tags.py:22 msgid "Artist" msgstr "アーティスト" -#: picard/ui/cdlookup.py:34 picard/util/tags.py:24 +#: picard/ui/cdlookup.py:35 picard/util/tags.py:24 msgid "Date" msgstr "日付" -#: picard/ui/cdlookup.py:35 +#: picard/ui/cdlookup.py:36 msgid "Labels" msgstr "レーベル" -#: picard/ui/cdlookup.py:35 +#: picard/ui/cdlookup.py:36 msgid "Catalog #s" msgstr "カタログ番号" -#: picard/ui/cdlookup.py:35 picard/util/tags.py:79 +#: picard/ui/cdlookup.py:36 picard/util/tags.py:78 msgid "Barcode" msgstr "バーコード" -#: picard/ui/collectionmenu.py:31 +#: picard/ui/collectionmenu.py:42 msgid "Refresh List" msgstr "リスト更新" -#: picard/ui/collectionmenu.py:92 +#: picard/ui/collectionmenu.py:86 #, python-format msgid "%s (%i release)" msgid_plural "%s (%i releases)" msgstr[0] "%s (%i リリース)" -#: picard/ui/coverartbox.py:142 +#: picard/ui/coverartbox.py:141 msgid "View release on MusicBrainz" msgstr "リリースをMusicBrainzに提出する" @@ -611,59 +499,59 @@ msgstr "隠しファイルを表示(&H)" msgid "&Set as starting directory" msgstr "" -#: picard/ui/infodialog.py:36 picard/ui/infodialog.py:75 +#: picard/ui/infodialog.py:37 picard/ui/infodialog.py:80 msgid "Info" msgstr "情報" -#: picard/ui/infodialog.py:80 +#: picard/ui/infodialog.py:85 msgid "Filename:" msgstr "ファイル名:" -#: picard/ui/infodialog.py:82 +#: picard/ui/infodialog.py:87 msgid "Format:" msgstr "フォーマット:" -#: picard/ui/infodialog.py:86 +#: picard/ui/infodialog.py:91 msgid "Size:" msgstr "サイズ:" -#: picard/ui/infodialog.py:90 +#: picard/ui/infodialog.py:95 msgid "Length:" msgstr "演奏時間:" -#: picard/ui/infodialog.py:92 +#: picard/ui/infodialog.py:97 msgid "Bitrate:" msgstr "ビットレート:" -#: picard/ui/infodialog.py:94 +#: picard/ui/infodialog.py:99 msgid "Sample rate:" msgstr "サンプルレート:" -#: picard/ui/infodialog.py:96 +#: picard/ui/infodialog.py:101 msgid "Bits per sample:" msgstr "サンプルあたりのビット数:" -#: picard/ui/infodialog.py:100 +#: picard/ui/infodialog.py:105 msgid "Mono" msgstr "モノラル" -#: picard/ui/infodialog.py:102 +#: picard/ui/infodialog.py:107 msgid "Stereo" msgstr "ステレオ" -#: picard/ui/infodialog.py:105 +#: picard/ui/infodialog.py:110 msgid "Channels:" msgstr "チャンネル:" -#: picard/ui/infodialog.py:116 +#: picard/ui/infodialog.py:121 msgid "Album Info" msgstr "アルバム情報" -#: picard/ui/infodialog.py:124 +#: picard/ui/infodialog.py:129 msgid "&Errors" msgstr "エラー (&E)" -#: picard/ui/infodialog.py:134 picard/ui/ui_infodialog.py:77 +#: picard/ui/infodialog.py:139 picard/ui/ui_infodialog.py:73 msgid "&Info" msgstr "情報(&I)" @@ -687,7 +575,7 @@ msgstr "未解決リクエスト" msgid "Title" msgstr "タイトル" -#: picard/ui/itemviews.py:95 picard/util/tags.py:88 +#: picard/ui/itemviews.py:95 picard/util/tags.py:86 msgid "Length" msgstr "演奏時間" @@ -712,8 +600,8 @@ msgid "Collections" msgstr "コレクション" #: picard/ui/itemviews.py:365 -msgid "&Plugins" -msgstr "プラグイン(&P)" +msgid "P&lugins" +msgstr "" #: picard/ui/itemviews.py:541 msgid "file view" @@ -735,12 +623,16 @@ msgstr "アルバム表示" msgid "Contains albums and matched files" msgstr "アルバムとマッチされたファイル含み" -#: picard/ui/logview.py:91 +#: picard/ui/logview.py:109 msgid "Log" msgstr "ログ" -#: picard/ui/logview.py:99 -msgid "Status History" +#: picard/ui/logview.py:113 +msgid "Debug mode" +msgstr "" + +#: picard/ui/logview.py:134 +msgid "Activity History" msgstr "" #: picard/ui/mainwindow.py:74 @@ -773,276 +665,309 @@ msgstr "準備完了" #: picard/ui/mainwindow.py:220 msgid "" -"Picard listens on a port to integrate with your browser and downloads " -"release information when you click the \"Tagger\" buttons on the MusicBrainz" -" website" -msgstr "Picardはブラウザーと繋がるためポートで待機し、MusicBrainzのサイトで「タガー」ボタンを押したら、リリース情報をダウンロードします。" +"Picard listens on this port to integrate with your browser. When you " +"\"Search\" or \"Open in Browser\" from Picard, clicking the \"Tagger\" " +"button on the web page loads the release into Picard." +msgstr "" -#: picard/ui/mainwindow.py:240 +#: picard/ui/mainwindow.py:243 #, python-format msgid " Listening on port %(port)d " msgstr "ポート %(port)d で待機" -#: picard/ui/mainwindow.py:263 +#: picard/ui/mainwindow.py:299 msgid "Submission Error" msgstr "送信失敗" -#: picard/ui/mainwindow.py:264 +#: picard/ui/mainwindow.py:300 msgid "" "You need to configure your AcoustID API key before you can submit " "fingerprints." msgstr "フィンガープリントを送信するにはAcoustIDのAPIキーを設定する必要があります。" -#: picard/ui/mainwindow.py:269 +#: picard/ui/mainwindow.py:305 msgid "&Options..." msgstr "オプション(&O)..." -#: picard/ui/mainwindow.py:273 +#: picard/ui/mainwindow.py:309 msgid "&Cut" msgstr "カット(&C)" -#: picard/ui/mainwindow.py:278 +#: picard/ui/mainwindow.py:314 msgid "&Paste" msgstr "ペースト(&P)" -#: picard/ui/mainwindow.py:283 +#: picard/ui/mainwindow.py:319 msgid "&Help..." msgstr "ヘルプ(&H)..." -#: picard/ui/mainwindow.py:288 +#: picard/ui/mainwindow.py:323 msgid "&About..." msgstr "このソフトウェアについて(&A)..." -#: picard/ui/mainwindow.py:292 +#: picard/ui/mainwindow.py:327 msgid "&Donate..." msgstr "寄付する(&D)..." -#: picard/ui/mainwindow.py:295 +#: picard/ui/mainwindow.py:330 msgid "&Report a Bug..." msgstr "バグを報告(&R)..." -#: picard/ui/mainwindow.py:298 +#: picard/ui/mainwindow.py:333 msgid "&Support Forum..." msgstr "サポートフォーラム(&S)..." -#: picard/ui/mainwindow.py:301 +#: picard/ui/mainwindow.py:336 msgid "&Add Files..." msgstr "ファイルを追加(&A)..." -#: picard/ui/mainwindow.py:302 +#: picard/ui/mainwindow.py:337 msgid "Add files to the tagger" msgstr "ファイルを追加します" -#: picard/ui/mainwindow.py:307 +#: picard/ui/mainwindow.py:342 msgid "A&dd Folder..." msgstr "フォルダを追加(&D)..." -#: picard/ui/mainwindow.py:308 +#: picard/ui/mainwindow.py:343 msgid "Add a folder to the tagger" msgstr "フォルダを追加します" -#: picard/ui/mainwindow.py:310 +#: picard/ui/mainwindow.py:345 msgid "Ctrl+D" msgstr "Ctrl+D" -#: picard/ui/mainwindow.py:313 +#: picard/ui/mainwindow.py:348 msgid "&Save" msgstr "保存(&S)" -#: picard/ui/mainwindow.py:314 +#: picard/ui/mainwindow.py:349 msgid "Save selected files" msgstr "選択したファイルを保存" -#: picard/ui/mainwindow.py:320 +#: picard/ui/mainwindow.py:355 msgid "S&ubmit" msgstr "送信(&U)" -#: picard/ui/mainwindow.py:321 -msgid "Submit fingerprints" -msgstr "フィンガープリントを送信" +#: picard/ui/mainwindow.py:356 +msgid "Submit acoustic fingerprints" +msgstr "" -#: picard/ui/mainwindow.py:325 +#: picard/ui/mainwindow.py:360 msgid "E&xit" msgstr "終了(&X)" -#: picard/ui/mainwindow.py:328 +#: picard/ui/mainwindow.py:363 msgid "Ctrl+Q" msgstr "Ctrl+Q" -#: picard/ui/mainwindow.py:331 +#: picard/ui/mainwindow.py:366 msgid "&Remove" msgstr "削除(&R)" -#: picard/ui/mainwindow.py:332 +#: picard/ui/mainwindow.py:367 msgid "Remove selected files/albums" msgstr "選択したファイルやアルバムを削除" -#: picard/ui/mainwindow.py:336 +#: picard/ui/mainwindow.py:371 msgid "Lookup in &Browser" msgstr "ブラウザーで検索 (&B)" -#: picard/ui/mainwindow.py:337 +#: picard/ui/mainwindow.py:372 msgid "Lookup selected item on MusicBrainz website" msgstr "MusicBrainzサイトで選択されたアイテムを検索" -#: picard/ui/mainwindow.py:341 +#: picard/ui/mainwindow.py:376 msgid "File &Browser" msgstr "ファイルブラウザ(&B)" -#: picard/ui/mainwindow.py:345 +#: picard/ui/mainwindow.py:380 msgid "Ctrl+B" msgstr "Ctrl+B" -#: picard/ui/mainwindow.py:348 +#: picard/ui/mainwindow.py:383 msgid "&Cover Art" msgstr "カバーアート(&C)" -#: picard/ui/mainwindow.py:354 picard/ui/mainwindow.py:539 +#: picard/ui/mainwindow.py:389 picard/ui/mainwindow.py:591 msgid "Search" msgstr "検索" -#: picard/ui/mainwindow.py:357 -msgid "&CD Lookup..." -msgstr "CDの読み込み(&C)..." +#: picard/ui/mainwindow.py:392 +msgid "Lookup &CD..." +msgstr "" -#: picard/ui/mainwindow.py:358 picard/ui/mainwindow.py:359 -msgid "Lookup CD" -msgstr "CDを読み込みます" +#: picard/ui/mainwindow.py:393 +msgid "Lookup the details of the CD in your drive" +msgstr "" -#: picard/ui/mainwindow.py:361 +#: picard/ui/mainwindow.py:395 msgid "Ctrl+K" msgstr "Ctrl+K" -#: picard/ui/mainwindow.py:364 +#: picard/ui/mainwindow.py:398 msgid "&Scan" msgstr "スキャン(&S)" -#: picard/ui/mainwindow.py:367 +#: picard/ui/mainwindow.py:401 msgid "Ctrl+Y" msgstr "Ctrl+Y" -#: picard/ui/mainwindow.py:370 +#: picard/ui/mainwindow.py:404 msgid "Cl&uster" msgstr "クラスタ(&U)" -#: picard/ui/mainwindow.py:373 +#: picard/ui/mainwindow.py:407 msgid "Ctrl+U" msgstr "Ctrl+U" -#: picard/ui/mainwindow.py:376 +#: picard/ui/mainwindow.py:410 msgid "&Lookup" msgstr "検索(&L)" -#: picard/ui/mainwindow.py:377 picard/ui/mainwindow.py:378 -msgid "Lookup metadata" -msgstr "メタデータを検索" +#: picard/ui/mainwindow.py:411 +msgid "Lookup selected items in MusicBrainz" +msgstr "" -#: picard/ui/mainwindow.py:381 +#: picard/ui/mainwindow.py:416 msgid "Ctrl+L" msgstr "Ctrl+L" -#: picard/ui/mainwindow.py:384 +#: picard/ui/mainwindow.py:419 msgid "&Info..." msgstr "情報(&I)" -#: picard/ui/mainwindow.py:387 +#: picard/ui/mainwindow.py:422 msgid "Ctrl+I" msgstr "Ctrl+I" -#: picard/ui/mainwindow.py:390 +#: picard/ui/mainwindow.py:425 msgid "&Refresh" msgstr "更新(&R)" -#: picard/ui/mainwindow.py:391 +#: picard/ui/mainwindow.py:426 msgid "Ctrl+R" msgstr "Ctrl+R" -#: picard/ui/mainwindow.py:394 +#: picard/ui/mainwindow.py:429 msgid "&Rename Files" msgstr "ファイル名を変更(&R)" -#: picard/ui/mainwindow.py:399 +#: picard/ui/mainwindow.py:434 msgid "&Move Files" msgstr "ファイルを移動(&M)" -#: picard/ui/mainwindow.py:404 +#: picard/ui/mainwindow.py:439 msgid "Save &Tags" msgstr "タグを保存(&T)" -#: picard/ui/mainwindow.py:409 +#: picard/ui/mainwindow.py:444 msgid "Tags From &File Names..." msgstr "ファイル名からタグ付け(&F)..." -#: picard/ui/mainwindow.py:412 -msgid "View &Log..." -msgstr "ログを閲覧(&L)..." - -#: picard/ui/mainwindow.py:415 -msgid "View Status &History..." +#: picard/ui/mainwindow.py:447 +msgid "&Open My Collections in Browser" msgstr "" -#: picard/ui/mainwindow.py:422 -msgid "&Open..." -msgstr "開く(&O)" +#: picard/ui/mainwindow.py:451 +msgid "View Error/Debug &Log" +msgstr "" -#: picard/ui/mainwindow.py:423 -msgid "Open the file" -msgstr "ファイルを開く" +#: picard/ui/mainwindow.py:454 +msgid "View Activity &History" +msgstr "" -#: picard/ui/mainwindow.py:426 -msgid "Open &Folder..." -msgstr "フォルダを開く(&F)..." +#: picard/ui/mainwindow.py:461 +msgid "&Play file" +msgstr "" -#: picard/ui/mainwindow.py:427 -msgid "Open the containing folder" -msgstr "含むフォルダを開く" +#: picard/ui/mainwindow.py:462 +msgid "Play the file in your default media player" +msgstr "" -#: picard/ui/mainwindow.py:448 +#: picard/ui/mainwindow.py:466 +msgid "Open Containing &Folder" +msgstr "" + +#: picard/ui/mainwindow.py:467 +msgid "Open the containing folder in your file explorer" +msgstr "" + +#: picard/ui/mainwindow.py:492 msgid "&File" msgstr "ファイル(&F)" -#: picard/ui/mainwindow.py:456 +#: picard/ui/mainwindow.py:503 msgid "&Edit" msgstr "編集(&E)" -#: picard/ui/mainwindow.py:462 +#: picard/ui/mainwindow.py:509 msgid "&View" msgstr "表示(&V)" -#: picard/ui/mainwindow.py:470 +#: picard/ui/mainwindow.py:515 msgid "&Options" msgstr "オプション(&O)" -#: picard/ui/mainwindow.py:476 +#: picard/ui/mainwindow.py:521 msgid "&Tools" msgstr "ツール(&T)" -#: picard/ui/mainwindow.py:485 picard/ui/util.py:35 +#: picard/ui/mainwindow.py:532 picard/ui/util.py:35 msgid "&Help" msgstr "ヘルプ(&H)" -#: picard/ui/mainwindow.py:505 +#: picard/ui/mainwindow.py:553 msgid "Actions" msgstr "アクション" -#: picard/ui/mainwindow.py:608 +#: picard/ui/mainwindow.py:599 +msgid "Track" +msgstr "トラック" + +#: picard/ui/mainwindow.py:662 msgid "All Supported Formats" msgstr "サポートされているすべてのフォーマット" -#: picard/ui/mainwindow.py:705 +#: picard/ui/mainwindow.py:695 +#, python-format +msgid "Adding directory: '%(directory)s' ..." +msgstr "" + +#: picard/ui/mainwindow.py:702 +#, python-format +msgid "Adding multiple directories from '%(directory)s' ..." +msgstr "" + +#: picard/ui/mainwindow.py:767 msgid "Configuration Required" msgstr "設定必須" -#: picard/ui/mainwindow.py:706 +#: picard/ui/mainwindow.py:768 msgid "" "Audio fingerprinting is not yet configured. Would you like to configure it " "now?" msgstr "音声フィンガープリント計算はまだ設定していません。今設定しますか?" -#: picard/ui/mainwindow.py:784 picard/ui/mainwindow.py:791 +#: picard/ui/mainwindow.py:848 #, python-format -msgid " (Error: %s)" -msgstr " (エラー %s)" +msgid "%(filename)s (error: %(error)s)" +msgstr "" + +#: picard/ui/mainwindow.py:854 +#, python-format +msgid "%(filename)s" +msgstr "" + +#: picard/ui/mainwindow.py:864 +#, python-format +msgid "%(filename)s (%(similarity)d%%) (error: %(error)s)" +msgstr "" + +#: picard/ui/mainwindow.py:871 +#, python-format +msgid "%(filename)s (%(similarity)d%%)" +msgstr "" #: picard/ui/metadatabox.py:82 #, python-format @@ -1093,387 +1018,387 @@ msgid "Use Original Value" msgid_plural "Use Original Values" msgstr[0] "元の値を使う" -#: picard/ui/passworddialog.py:37 +#: picard/ui/passworddialog.py:40 #, python-format msgid "" "The server %s requires you to login. Please enter your username and " "password." msgstr "サーバ %s はログインが必要です。ユーザ名とパスワードを入力してください。" -#: picard/ui/passworddialog.py:75 +#: picard/ui/passworddialog.py:79 #, python-format msgid "" "The proxy %s requires you to login. Please enter your username and password." msgstr "プロキシ %s はログインが必要です。ユーザ名とパスワードを入力してください。" -#: picard/ui/tagsfromfilenames.py:55 picard/ui/tagsfromfilenames.py:100 +#: picard/ui/tagsfromfilenames.py:56 picard/ui/tagsfromfilenames.py:101 msgid "File Name" msgstr "ファイル名" -#: picard/ui/ui_cdlookup.py:66 picard/ui/ui_options_cdlookup.py:55 -#: picard/ui/ui_options_cdlookup_select.py:62 picard/ui/options/cdlookup.py:38 +#: picard/ui/ui_cdlookup.py:53 picard/ui/ui_options_cdlookup.py:42 +#: picard/ui/ui_options_cdlookup_select.py:49 picard/ui/options/cdlookup.py:38 msgid "CD Lookup" msgstr "CD読み込み" -#: picard/ui/ui_cdlookup.py:67 +#: picard/ui/ui_cdlookup.py:54 msgid "The following releases on MusicBrainz match the CD:" msgstr "以下のリリースがMusicBrainzにてCDとマッチしました:" -#: picard/ui/ui_cdlookup.py:68 +#: picard/ui/ui_cdlookup.py:55 msgid "OK" msgstr "OK" -#: picard/ui/ui_cdlookup.py:69 +#: picard/ui/ui_cdlookup.py:56 msgid "Lookup manually" msgstr "" -#: picard/ui/ui_cdlookup.py:70 +#: picard/ui/ui_cdlookup.py:57 msgid "Cancel" msgstr "取消" -#: picard/ui/ui_edittagdialog.py:101 +#: picard/ui/ui_edittagdialog.py:88 msgid "Edit Tag" msgstr "タグを編集" -#: picard/ui/ui_edittagdialog.py:102 +#: picard/ui/ui_edittagdialog.py:89 msgid "Edit value" msgstr "値を編集" -#: picard/ui/ui_edittagdialog.py:103 +#: picard/ui/ui_edittagdialog.py:90 msgid "Add value" msgstr "値を追加" -#: picard/ui/ui_edittagdialog.py:104 +#: picard/ui/ui_edittagdialog.py:91 msgid "Remove value" msgstr "値を削除" -#: picard/ui/ui_infodialog.py:78 +#: picard/ui/ui_infodialog.py:74 msgid "A&rtwork" msgstr "アートワーク(&R)" -#: picard/ui/ui_infostatus.py:100 +#: picard/ui/ui_infostatus.py:96 msgid "Form" msgstr "フォーム" -#: picard/ui/ui_options.py:51 +#: picard/ui/ui_options.py:38 msgid "Options" msgstr "オプション" -#: picard/ui/ui_options_advanced.py:46 +#: picard/ui/ui_options_advanced.py:42 msgid "Advanced options" msgstr "" -#: picard/ui/ui_options_advanced.py:47 +#: picard/ui/ui_options_advanced.py:43 msgid "Ignore file paths matching the following regular expression:" msgstr "" -#: picard/ui/ui_options_cdlookup.py:56 +#: picard/ui/ui_options_cdlookup.py:43 msgid "CD-ROM device to use for lookups:" msgstr "読み込みに使用するCD-ROMドライブ:" -#: picard/ui/ui_options_cdlookup_select.py:63 +#: picard/ui/ui_options_cdlookup_select.py:50 msgid "Default CD-ROM drive to use for lookups:" msgstr "読み込みに使用する標準のCD-ROMドライブ" -#: picard/ui/ui_options_cover.py:145 +#: picard/ui/ui_options_cover.py:131 msgid "Location" msgstr "場所" -#: picard/ui/ui_options_cover.py:146 +#: picard/ui/ui_options_cover.py:132 msgid "Embed cover images into tags" msgstr "カバー写真をタグに埋め込む" -#: picard/ui/ui_options_cover.py:147 +#: picard/ui/ui_options_cover.py:133 msgid "Only embed a front image" msgstr "表紙画像のみを埋め込む" -#: picard/ui/ui_options_cover.py:148 +#: picard/ui/ui_options_cover.py:134 msgid "Save cover images as separate files" msgstr "カバー写真を別のファイルとして保存する" -#: picard/ui/ui_options_cover.py:149 +#: picard/ui/ui_options_cover.py:135 msgid "Use the following file name for images:" msgstr "以降のファイルネームを画像に使用:" -#: picard/ui/ui_options_cover.py:150 +#: picard/ui/ui_options_cover.py:136 msgid "Overwrite the file if it already exists" msgstr "すでファイルが存在している場合には上書きする" -#: picard/ui/ui_options_cover.py:151 +#: picard/ui/ui_options_cover.py:137 msgid "Coverart Providers" msgstr "表紙画像プロバイダー" -#: picard/ui/ui_options_cover.py:152 +#: picard/ui/ui_options_cover.py:138 msgid "Amazon" msgstr "Amazon" -#: picard/ui/ui_options_cover.py:153 picard/ui/ui_options_cover.py:155 +#: picard/ui/ui_options_cover.py:139 picard/ui/ui_options_cover.py:141 msgid "Cover Art Archive" msgstr "Cover Art Archive (表紙画像書庫)" -#: picard/ui/ui_options_cover.py:154 +#: picard/ui/ui_options_cover.py:140 msgid "Sites on the whitelist" msgstr "ホワイトリストされたサイト" -#: picard/ui/ui_options_cover.py:156 +#: picard/ui/ui_options_cover.py:142 msgid "Only use images of the following size:" msgstr "画像は以降のサイズのみを使用:" -#: picard/ui/ui_options_cover.py:157 +#: picard/ui/ui_options_cover.py:143 msgid "250 px" msgstr "250 px" -#: picard/ui/ui_options_cover.py:158 +#: picard/ui/ui_options_cover.py:144 msgid "500 px" msgstr "500 px" -#: picard/ui/ui_options_cover.py:159 +#: picard/ui/ui_options_cover.py:145 msgid "Full size" msgstr "フルサイズ" -#: picard/ui/ui_options_cover.py:160 +#: picard/ui/ui_options_cover.py:146 msgid "Download only images of the following types:" msgstr "画像は以降のタイプのみをダウンロード:" -#: picard/ui/ui_options_cover.py:161 +#: picard/ui/ui_options_cover.py:147 msgid "Download only approved images" msgstr "承認された画像のみをダウンロード" -#: picard/ui/ui_options_cover.py:162 +#: picard/ui/ui_options_cover.py:148 msgid "" "Use the first image type as the filename. This will not change the filename " "of front images." msgstr "最初の画像タイプをファイルネームで使用。表紙画像のファイルネームは変更なし。" -#: picard/ui/ui_options_fingerprinting.py:83 +#: picard/ui/ui_options_fingerprinting.py:70 msgid "Audio Fingerprinting" msgstr "音声フィンガープリント計算" -#: picard/ui/ui_options_fingerprinting.py:84 +#: picard/ui/ui_options_fingerprinting.py:71 msgid "Do not use audio fingerprinting" msgstr "フィンガープリント計算を使用しない" -#: picard/ui/ui_options_fingerprinting.py:85 +#: picard/ui/ui_options_fingerprinting.py:72 msgid "Use AcoustID" msgstr "AcoustIDを使う" -#: picard/ui/ui_options_fingerprinting.py:86 +#: picard/ui/ui_options_fingerprinting.py:73 msgid "AcoustID Settings" msgstr "AcoustIDの設定" -#: picard/ui/ui_options_fingerprinting.py:87 +#: picard/ui/ui_options_fingerprinting.py:74 msgid "Fingerprint calculator:" msgstr "フィンガープリント計算手法:" -#: picard/ui/ui_options_fingerprinting.py:88 -#: picard/ui/ui_options_interface.py:88 picard/ui/ui_options_renaming.py:138 +#: picard/ui/ui_options_fingerprinting.py:75 +#: picard/ui/ui_options_interface.py:75 picard/ui/ui_options_renaming.py:134 msgid "Browse..." msgstr "参照..." -#: picard/ui/ui_options_fingerprinting.py:89 +#: picard/ui/ui_options_fingerprinting.py:76 msgid "Download..." msgstr "ダウンロード" -#: picard/ui/ui_options_fingerprinting.py:90 +#: picard/ui/ui_options_fingerprinting.py:77 msgid "API key:" msgstr "APIキー:" -#: picard/ui/ui_options_fingerprinting.py:91 +#: picard/ui/ui_options_fingerprinting.py:78 msgid "Get API key..." msgstr "APIキーを申し込む…" -#: picard/ui/ui_options_folksonomy.py:115 picard/ui/options/folksonomy.py:28 +#: picard/ui/ui_options_folksonomy.py:102 picard/ui/options/folksonomy.py:28 msgid "Folksonomy Tags" msgstr "フォークソノミー" -#: picard/ui/ui_options_folksonomy.py:117 +#: picard/ui/ui_options_folksonomy.py:104 msgid "Only use my tags" msgstr "自分のタグのみ使用する" -#: picard/ui/ui_options_folksonomy.py:120 +#: picard/ui/ui_options_folksonomy.py:107 msgid "Maximum number of tags:" msgstr "タグ数の最大限:" -#: picard/ui/ui_options_general.py:92 +#: picard/ui/ui_options_general.py:88 msgid "MusicBrainz Server" msgstr "MusicBrainzサーバ" -#: picard/ui/ui_options_general.py:93 picard/ui/ui_options_network.py:123 +#: picard/ui/ui_options_general.py:89 picard/ui/ui_options_network.py:110 msgid "Port:" msgstr "ポート:" -#: picard/ui/ui_options_general.py:94 picard/ui/ui_options_network.py:124 +#: picard/ui/ui_options_general.py:90 picard/ui/ui_options_network.py:111 msgid "Server address:" msgstr "サーバアドレス:" -#: picard/ui/ui_options_general.py:95 +#: picard/ui/ui_options_general.py:91 msgid "Account Information" msgstr "アカウント情報" -#: picard/ui/ui_options_general.py:96 picard/ui/ui_options_network.py:121 -#: picard/ui/ui_passworddialog.py:74 +#: picard/ui/ui_options_general.py:92 picard/ui/ui_options_network.py:108 +#: picard/ui/ui_passworddialog.py:70 msgid "Password:" msgstr "パスワード:" -#: picard/ui/ui_options_general.py:97 picard/ui/ui_options_network.py:122 -#: picard/ui/ui_passworddialog.py:73 +#: picard/ui/ui_options_general.py:93 picard/ui/ui_options_network.py:109 +#: picard/ui/ui_passworddialog.py:69 msgid "Username:" msgstr "ユーザ名:" -#: picard/ui/ui_options_general.py:98 picard/ui/options/general.py:31 +#: picard/ui/ui_options_general.py:94 picard/ui/options/general.py:31 msgid "General" msgstr "全般" -#: picard/ui/ui_options_general.py:99 +#: picard/ui/ui_options_general.py:95 msgid "Automatically scan all new files" msgstr "すべての新しいファイルを自動的にスキャンする" -#: picard/ui/ui_options_general.py:100 +#: picard/ui/ui_options_general.py:96 msgid "Ignore MBIDs when loading new files" msgstr "新たなファイルをロードする際にMBIDを無視して" -#: picard/ui/ui_options_interface.py:82 +#: picard/ui/ui_options_interface.py:69 msgid "Miscellaneous" msgstr "その他" -#: picard/ui/ui_options_interface.py:83 +#: picard/ui/ui_options_interface.py:70 msgid "Show text labels under icons" msgstr "アイコンの下にテキストを表示する" -#: picard/ui/ui_options_interface.py:84 +#: picard/ui/ui_options_interface.py:71 msgid "Allow selection of multiple directories" msgstr "複数のディレクトリの選択を可能にする" -#: picard/ui/ui_options_interface.py:85 +#: picard/ui/ui_options_interface.py:72 msgid "Use advanced query syntax" msgstr "高度なクエリ構文を使う" -#: picard/ui/ui_options_interface.py:86 +#: picard/ui/ui_options_interface.py:73 msgid "Show a quit confirmation dialog for unsaved changes" msgstr "未保存の変更がある場合、終了確認のダイアログボックスを表示" -#: picard/ui/ui_options_interface.py:87 +#: picard/ui/ui_options_interface.py:74 msgid "Begin browsing in the following directory:" msgstr "" -#: picard/ui/ui_options_interface.py:89 +#: picard/ui/ui_options_interface.py:76 msgid "User interface language:" msgstr "ユーザインタフェースの言語:" -#: picard/ui/ui_options_matching.py:86 +#: picard/ui/ui_options_matching.py:73 msgid "Thresholds" msgstr "しきい値" -#: picard/ui/ui_options_matching.py:87 +#: picard/ui/ui_options_matching.py:74 msgid "Minimal similarity for matching files to tracks:" msgstr "トラックにマッチするファイルの類似性の下限値:" -#: picard/ui/ui_options_matching.py:91 +#: picard/ui/ui_options_matching.py:78 msgid "Minimal similarity for file lookups:" msgstr "ファイル検索の際の類似性の下限値:" -#: picard/ui/ui_options_matching.py:92 +#: picard/ui/ui_options_matching.py:79 msgid "Minimal similarity for cluster lookups:" msgstr "クラスタ検索の際の類似性の下限値:" -#: picard/ui/ui_options_metadata.py:114 picard/ui/options/metadata.py:29 +#: picard/ui/ui_options_metadata.py:101 picard/ui/options/metadata.py:29 msgid "Metadata" msgstr "メタデータ" -#: picard/ui/ui_options_metadata.py:115 +#: picard/ui/ui_options_metadata.py:102 msgid "Translate artist names to this locale where possible:" msgstr "可能ならこのロケールでアーティスト名を翻訳する" -#: picard/ui/ui_options_metadata.py:116 +#: picard/ui/ui_options_metadata.py:103 msgid "Use standardized artist names" msgstr "標準アーティスト名を使用する" -#: picard/ui/ui_options_metadata.py:117 +#: picard/ui/ui_options_metadata.py:104 msgid "Convert Unicode punctuation characters to ASCII" msgstr "ユニコード句読点をASCIIに変換する" -#: picard/ui/ui_options_metadata.py:118 +#: picard/ui/ui_options_metadata.py:105 msgid "Use release relationships" msgstr "リリースの関連性を使用する" -#: picard/ui/ui_options_metadata.py:119 +#: picard/ui/ui_options_metadata.py:106 msgid "Use track relationships" msgstr "トラックの関連性を使用する" -#: picard/ui/ui_options_metadata.py:120 +#: picard/ui/ui_options_metadata.py:107 msgid "Use folksonomy tags as genre" msgstr "フォークソノミーのタグをジャンルとして使用する" -#: picard/ui/ui_options_metadata.py:121 +#: picard/ui/ui_options_metadata.py:108 msgid "Custom Fields" msgstr "カスタムフィールド" -#: picard/ui/ui_options_metadata.py:122 +#: picard/ui/ui_options_metadata.py:109 msgid "Various artists:" msgstr "Various artists:" -#: picard/ui/ui_options_metadata.py:123 +#: picard/ui/ui_options_metadata.py:110 msgid "Non-album tracks:" msgstr "アルバムに入ってないトラック:" -#: picard/ui/ui_options_metadata.py:124 picard/ui/ui_options_metadata.py:125 -#: picard/ui/ui_options_renaming.py:147 +#: picard/ui/ui_options_metadata.py:111 picard/ui/ui_options_metadata.py:112 +#: picard/ui/ui_options_renaming.py:143 msgid "Default" msgstr "標準" -#: picard/ui/ui_options_network.py:120 +#: picard/ui/ui_options_network.py:107 msgid "Web Proxy" msgstr "ウェブプロキシ" -#: picard/ui/ui_options_network.py:125 +#: picard/ui/ui_options_network.py:112 msgid "Browser Integration" msgstr "" -#: picard/ui/ui_options_network.py:126 +#: picard/ui/ui_options_network.py:113 msgid "Default listening port:" msgstr "" -#: picard/ui/ui_options_network.py:127 +#: picard/ui/ui_options_network.py:114 msgid "Listen only on localhost" msgstr "" -#: picard/ui/ui_options_plugins.py:131 picard/ui/options/plugins.py:38 +#: picard/ui/ui_options_plugins.py:127 picard/ui/options/plugins.py:38 msgid "Plugins" msgstr "プラグイン" -#: picard/ui/ui_options_plugins.py:132 picard/ui/options/plugins.py:122 +#: picard/ui/ui_options_plugins.py:128 picard/ui/options/plugins.py:122 msgid "Name" msgstr "名前" -#: picard/ui/ui_options_plugins.py:133 picard/util/tags.py:39 +#: picard/ui/ui_options_plugins.py:129 msgid "Version" msgstr "バージョン" -#: picard/ui/ui_options_plugins.py:134 picard/ui/options/plugins.py:125 +#: picard/ui/ui_options_plugins.py:130 picard/ui/options/plugins.py:125 msgid "Author" msgstr "作者" -#: picard/ui/ui_options_plugins.py:135 +#: picard/ui/ui_options_plugins.py:131 msgid "Install plugin..." msgstr "プラグインをインストール…" -#: picard/ui/ui_options_plugins.py:136 +#: picard/ui/ui_options_plugins.py:132 msgid "Open plugin folder" msgstr "プラグインフォルダを開く" -#: picard/ui/ui_options_plugins.py:137 +#: picard/ui/ui_options_plugins.py:133 msgid "Download plugins" msgstr "プラグインをダウンロード" -#: picard/ui/ui_options_plugins.py:138 +#: picard/ui/ui_options_plugins.py:134 msgid "Details" msgstr "詳細" -#: picard/ui/ui_options_ratings.py:53 +#: picard/ui/ui_options_ratings.py:49 msgid "Enable track ratings" msgstr "レーティングを有効にする" -#: picard/ui/ui_options_ratings.py:54 +#: picard/ui/ui_options_ratings.py:50 msgid "" "Picard saves the ratings together with an e-mail address identifying the " "user who did the rating. That way different ratings for different users can " @@ -1481,207 +1406,167 @@ msgid "" "your ratings." msgstr "Picardはレーティングをつけたユーザが分かるようにレーティングとメールアドレスを一緒に保存します。同じファイルに別のユーザの異なるレーティングを保存することも出来ます。レーティング保存機能を使用したい場合はメールアドレスを指定してください。" -#: picard/ui/ui_options_ratings.py:55 +#: picard/ui/ui_options_ratings.py:51 msgid "E-mail:" msgstr "メールアドレス:" -#: picard/ui/ui_options_ratings.py:56 +#: picard/ui/ui_options_ratings.py:52 msgid "Submit ratings to MusicBrainz" msgstr "レーティングをMusicBrainzに提出する" -#: picard/ui/ui_options_releases.py:215 +#: picard/ui/ui_options_releases.py:104 msgid "Preferred release types" msgstr "優先のリリースタイプ" -#: picard/ui/ui_options_releases.py:217 -msgid "Single" -msgstr "シングル" - -#: picard/ui/ui_options_releases.py:218 -msgid "EP" -msgstr "EP" - -#: picard/ui/ui_options_releases.py:219 -msgid "Compilation" -msgstr "コンピレーション" - -#: picard/ui/ui_options_releases.py:220 -msgid "Soundtrack" -msgstr "サウンドトラック" - -#: picard/ui/ui_options_releases.py:221 -msgid "Spokenword" -msgstr "スポークンワード" - -#: picard/ui/ui_options_releases.py:222 -msgid "Interview" -msgstr "インタビュー" - -#: picard/ui/ui_options_releases.py:223 -msgid "Audiobook" -msgstr "オーディオブック" - -#: picard/ui/ui_options_releases.py:224 -msgid "Live" -msgstr "ライブ" - -#: picard/ui/ui_options_releases.py:225 -msgid "Remix" -msgstr "リミックス" - -#: picard/ui/ui_options_releases.py:227 -msgid "Reset all" -msgstr "全てリセット" - -#: picard/ui/ui_options_releases.py:228 +#: picard/ui/ui_options_releases.py:105 msgid "Preferred release countries" msgstr "優先のリリース国" -#: picard/ui/ui_options_releases.py:229 picard/ui/ui_options_releases.py:232 +#: picard/ui/ui_options_releases.py:106 picard/ui/ui_options_releases.py:109 msgid ">" msgstr ">" -#: picard/ui/ui_options_releases.py:230 picard/ui/ui_options_releases.py:233 +#: picard/ui/ui_options_releases.py:107 picard/ui/ui_options_releases.py:110 msgid "<" msgstr "<" -#: picard/ui/ui_options_releases.py:231 +#: picard/ui/ui_options_releases.py:108 msgid "Preferred release formats" msgstr "優先のリリースフォーマット" -#: picard/ui/ui_options_renaming.py:134 +#: picard/ui/ui_options_renaming.py:130 msgid "Rename files when saving" msgstr "別名で保存" -#: picard/ui/ui_options_renaming.py:135 +#: picard/ui/ui_options_renaming.py:131 msgid "Replace non-ASCII characters" msgstr "非ASCII文字を置き換える" -#: picard/ui/ui_options_renaming.py:136 +#: picard/ui/ui_options_renaming.py:132 msgid "Windows compatibility" msgstr "" -#: picard/ui/ui_options_renaming.py:137 +#: picard/ui/ui_options_renaming.py:133 msgid "Move files to this directory when saving:" msgstr "保存時にファイルをこのディレクトリに移動する:" -#: picard/ui/ui_options_renaming.py:139 +#: picard/ui/ui_options_renaming.py:135 msgid "Delete empty directories" msgstr "空のディレクトリを削除する" -#: picard/ui/ui_options_renaming.py:140 +#: picard/ui/ui_options_renaming.py:136 msgid "Move additional files:" msgstr "追加ファイルを移動:" -#: picard/ui/ui_options_renaming.py:141 +#: picard/ui/ui_options_renaming.py:137 msgid "Name files like this" msgstr "このようなファイル名にします" -#: picard/ui/ui_options_renaming.py:148 +#: picard/ui/ui_options_renaming.py:144 msgid "Examples" msgstr "例" -#: picard/ui/ui_options_script.py:49 +#: picard/ui/ui_options_script.py:45 msgid "Tagger Script" msgstr "タグ付けスクリプト" -#: picard/ui/ui_options_tags.py:165 +#: picard/ui/ui_options_tags.py:152 msgid "Write tags to files" msgstr "タグをファイルに書き込む" -#: picard/ui/ui_options_tags.py:166 +#: picard/ui/ui_options_tags.py:153 msgid "Preserve timestamps of tagged files" msgstr "タグされたファイルのタイムスタンプを保つ" -#: picard/ui/ui_options_tags.py:167 +#: picard/ui/ui_options_tags.py:154 msgid "Before Tagging" msgstr "" -#: picard/ui/ui_options_tags.py:168 +#: picard/ui/ui_options_tags.py:155 msgid "Clear existing tags" msgstr "既存のタグを消去する" -#: picard/ui/ui_options_tags.py:169 +#: picard/ui/ui_options_tags.py:156 msgid "Remove ID3 tags from FLAC files" msgstr "FLACファイルからID3タグを削除する" -#: picard/ui/ui_options_tags.py:170 +#: picard/ui/ui_options_tags.py:157 msgid "Remove APEv2 tags from MP3 files" msgstr "MP3ファイルからAPEv2タグを削除する" -#: picard/ui/ui_options_tags.py:171 +#: picard/ui/ui_options_tags.py:158 msgid "" "Preserve these tags from being cleared or overwritten with MusicBrainz data:" msgstr "このタグをMusicBrainzのデータにクリアもしくは上書きされないように設定:" -#: picard/ui/ui_options_tags.py:172 +#: picard/ui/ui_options_tags.py:159 msgid "Tags are separated by commas, and are case-sensitive." msgstr "" -#: picard/ui/ui_options_tags.py:173 +#: picard/ui/ui_options_tags.py:160 msgid "Tag Compatibility" msgstr "" -#: picard/ui/ui_options_tags.py:174 +#: picard/ui/ui_options_tags.py:161 msgid "ID3v2 Version" msgstr "" -#: picard/ui/ui_options_tags.py:175 +#: picard/ui/ui_options_tags.py:162 msgid "2.4" msgstr "2.4" -#: picard/ui/ui_options_tags.py:176 +#: picard/ui/ui_options_tags.py:163 msgid "2.3" msgstr "2.3" -#: picard/ui/ui_options_tags.py:177 +#: picard/ui/ui_options_tags.py:164 msgid "ID3v2 Text Encoding" msgstr "" -#: picard/ui/ui_options_tags.py:178 +#: picard/ui/ui_options_tags.py:165 msgid "UTF-8" msgstr "UTF-8" -#: picard/ui/ui_options_tags.py:179 +#: picard/ui/ui_options_tags.py:166 msgid "UTF-16" msgstr "UTF-16" -#: picard/ui/ui_options_tags.py:180 +#: picard/ui/ui_options_tags.py:167 msgid "ISO-8859-1" msgstr "ISO-8859-1" -#: picard/ui/ui_options_tags.py:181 +#: picard/ui/ui_options_tags.py:168 msgid "Join multiple ID3v2.3 tags with:" msgstr "複数のID3v2.3タグの区切り文字:" -#: picard/ui/ui_options_tags.py:182 +#: picard/ui/ui_options_tags.py:169 msgid "" "

Default is '/' to maintain compatibility with previous" " Picard releases.

New alternatives are ';_' or '_/_' or type your own." "

" msgstr "" -#: picard/ui/ui_options_tags.py:183 +#: picard/ui/ui_options_tags.py:170 msgid "Also include ID3v1 tags in the files" msgstr "ID3v1タグも付ける" -#: picard/ui/ui_passworddialog.py:72 +#: picard/ui/ui_passworddialog.py:68 msgid "Authentication required" msgstr "認証が必要です" -#: picard/ui/ui_passworddialog.py:75 +#: picard/ui/ui_passworddialog.py:71 msgid "Save username and password" msgstr "ユーザ名とパスワードを保存する" -#: picard/ui/ui_tagsfromfilenames.py:54 +#: picard/ui/ui_tagsfromfilenames.py:50 msgid "Convert File Names to Tags" msgstr "ファイル名をタグに変換" -#: picard/ui/ui_tagsfromfilenames.py:55 +#: picard/ui/ui_tagsfromfilenames.py:51 msgid "Replace underscores with spaces" msgstr "スペースをアンダースコアで置換する" -#: picard/ui/ui_tagsfromfilenames.py:56 +#: picard/ui/ui_tagsfromfilenames.py:52 msgid "&Preview" msgstr "プレビュー(&P)" @@ -1737,7 +1622,11 @@ msgstr "詳細設定" msgid "Regex Error" msgstr "" -#: picard/ui/options/cover.py:63 +#: picard/ui/options/cover.py:44 +msgid "title" +msgstr "" + +#: picard/ui/options/cover.py:68 msgid "Cover Art" msgstr "カバーアート" @@ -1753,11 +1642,11 @@ msgstr "ユーザインターフェース" msgid "System default" msgstr "システムの標準" -#: picard/ui/options/interface.py:96 +#: picard/ui/options/interface.py:98 msgid "Language changed" msgstr "言語が変更されました" -#: picard/ui/options/interface.py:96 +#: picard/ui/options/interface.py:99 msgid "" "You have changed the interface language. You have to restart Picard in order" " for the change to take effect." @@ -1779,31 +1668,35 @@ msgstr "ファイル" msgid "Ratings" msgstr "レーティング" -#: picard/ui/options/releases.py:33 +#: picard/ui/options/releases.py:87 msgid "Preferred Releases" msgstr "優先リリース" +#: picard/ui/options/releases.py:121 +msgid "Reset all" +msgstr "全てリセット" + #: picard/ui/options/renaming.py:37 msgid "File Naming" msgstr "" -#: picard/ui/options/renaming.py:184 +#: picard/ui/options/renaming.py:187 msgid "Error" msgstr "エラー" -#: picard/ui/options/renaming.py:184 +#: picard/ui/options/renaming.py:187 msgid "The location to move files to must not be empty." msgstr "ファイルの移動先は空ではいけません。" -#: picard/ui/options/renaming.py:194 +#: picard/ui/options/renaming.py:197 msgid "The file naming format must not be empty." msgstr "ファイルのネーミングフォーマットは必ず記載してください。" -#: picard/ui/options/scripting.py:63 +#: picard/ui/options/scripting.py:99 msgid "Scripting" msgstr "スクリプト" -#: picard/ui/options/scripting.py:95 +#: picard/ui/options/scripting.py:131 msgid "Script Error" msgstr "スクリプトのエラー" @@ -1923,199 +1816,199 @@ msgstr "ASIN" msgid "Grouping" msgstr "グループ化" -#: picard/util/tags.py:40 +#: picard/util/tags.py:39 msgid "ISRC" msgstr "ISRC" -#: picard/util/tags.py:41 +#: picard/util/tags.py:40 msgid "Mood" msgstr "ムード" -#: picard/util/tags.py:42 +#: picard/util/tags.py:41 msgid "BPM" msgstr "BPM" -#: picard/util/tags.py:43 +#: picard/util/tags.py:42 msgid "Copyright" msgstr "著作権" -#: picard/util/tags.py:44 +#: picard/util/tags.py:43 msgid "License" msgstr "ライセンス" -#: picard/util/tags.py:45 +#: picard/util/tags.py:44 msgid "Composer" msgstr "作曲者" -#: picard/util/tags.py:46 +#: picard/util/tags.py:45 msgid "Writer" msgstr "作者" -#: picard/util/tags.py:47 +#: picard/util/tags.py:46 msgid "Conductor" msgstr "指揮者" -#: picard/util/tags.py:48 +#: picard/util/tags.py:47 msgid "Lyricist" msgstr "作詞者" -#: picard/util/tags.py:49 +#: picard/util/tags.py:48 msgid "Arranger" msgstr "編曲者" -#: picard/util/tags.py:50 +#: picard/util/tags.py:49 msgid "Producer" msgstr "プロデューサー" -#: picard/util/tags.py:51 +#: picard/util/tags.py:50 msgid "Engineer" msgstr "エンジニア" -#: picard/util/tags.py:52 +#: picard/util/tags.py:51 msgid "Subtitle" msgstr "サブタイトル" -#: picard/util/tags.py:53 +#: picard/util/tags.py:52 msgid "Disc Subtitle" msgstr "ディスク・サブタイトル" -#: picard/util/tags.py:54 +#: picard/util/tags.py:53 msgid "Remixer" msgstr "リミキサー" -#: picard/util/tags.py:55 +#: picard/util/tags.py:54 msgid "MusicBrainz Recording Id" msgstr "MusicBrainz レコーディング ID" -#: picard/util/tags.py:56 +#: picard/util/tags.py:55 msgid "MusicBrainz Track Id" msgstr "" -#: picard/util/tags.py:57 +#: picard/util/tags.py:56 msgid "MusicBrainz Release Id" msgstr "MusicBrainz リリース ID" -#: picard/util/tags.py:58 +#: picard/util/tags.py:57 msgid "MusicBrainz Artist Id" msgstr "MusicBrainz アーティスト ID" -#: picard/util/tags.py:59 +#: picard/util/tags.py:58 msgid "MusicBrainz Release Artist Id" msgstr "MusicBrainz リリース アーティスト ID" -#: picard/util/tags.py:60 +#: picard/util/tags.py:59 msgid "MusicBrainz Work Id" msgstr "MusicBrainz ワーク ID" -#: picard/util/tags.py:61 +#: picard/util/tags.py:60 msgid "MusicBrainz Release Group Id" msgstr "MusicBrainz リリースグループ ID" -#: picard/util/tags.py:62 +#: picard/util/tags.py:61 msgid "MusicBrainz Disc Id" msgstr "MusicBrainz ディスク ID" -#: picard/util/tags.py:63 -msgid "MusicBrainz Sort Name" -msgstr "MusicBrainz ソート名" - -#: picard/util/tags.py:64 +#: picard/util/tags.py:62 msgid "MusicIP PUID" msgstr "MusicIP PUID" -#: picard/util/tags.py:65 +#: picard/util/tags.py:63 msgid "MusicIP Fingerprint" msgstr "MusicIP フィンガープリント" -#: picard/util/tags.py:66 +#: picard/util/tags.py:64 msgid "AcoustID" msgstr "AcoustID" -#: picard/util/tags.py:67 +#: picard/util/tags.py:65 msgid "AcoustID Fingerprint" msgstr "AcoustID フィンガープリント" -#: picard/util/tags.py:68 +#: picard/util/tags.py:66 msgid "Disc Id" msgstr "ディスク ID" -#: picard/util/tags.py:69 -msgid "Website" -msgstr "Webサイト" +#: picard/util/tags.py:67 +msgid "Artist Website" +msgstr "" -#: picard/util/tags.py:70 +#: picard/util/tags.py:68 msgid "Compilation (iTunes)" msgstr "" -#: picard/util/tags.py:71 +#: picard/util/tags.py:69 msgid "Comment" msgstr "コメント" -#: picard/util/tags.py:72 +#: picard/util/tags.py:70 msgid "Genre" msgstr "ジャンル" -#: picard/util/tags.py:73 +#: picard/util/tags.py:71 msgid "Encoded By" msgstr "エンコーダ" -#: picard/util/tags.py:74 +#: picard/util/tags.py:72 +msgid "Encoder Settings" +msgstr "" + +#: picard/util/tags.py:73 msgid "Performer" msgstr "演奏者" -#: picard/util/tags.py:75 +#: picard/util/tags.py:74 msgid "Release Type" msgstr "リリースタイプ" -#: picard/util/tags.py:76 +#: picard/util/tags.py:75 msgid "Release Status" msgstr "リリースステータス" -#: picard/util/tags.py:77 +#: picard/util/tags.py:76 msgid "Release Country" msgstr "発売国" -#: picard/util/tags.py:78 +#: picard/util/tags.py:77 msgid "Record Label" msgstr "レーベル" -#: picard/util/tags.py:80 +#: picard/util/tags.py:79 msgid "Catalog Number" msgstr "カタログ番号" -#: picard/util/tags.py:82 +#: picard/util/tags.py:80 msgid "DJ-Mixer" msgstr "DJ-Mixer" -#: picard/util/tags.py:83 +#: picard/util/tags.py:81 msgid "Media" msgstr "メディア" -#: picard/util/tags.py:84 +#: picard/util/tags.py:82 msgid "Lyrics" msgstr "歌詞" -#: picard/util/tags.py:85 +#: picard/util/tags.py:83 msgid "Mixer" msgstr "ミキサー" -#: picard/util/tags.py:86 +#: picard/util/tags.py:84 msgid "Language" msgstr "言語" -#: picard/util/tags.py:87 +#: picard/util/tags.py:85 msgid "Script" msgstr "スクリプト" -#: picard/util/tags.py:89 +#: picard/util/tags.py:87 msgid "Rating" msgstr "評価" -#: picard/util/tags.py:90 +#: picard/util/tags.py:88 msgid "Artists" msgstr "" -#: picard/util/tags.py:91 +#: picard/util/tags.py:89 msgid "Work" msgstr "" diff --git a/po/ko.po b/po/ko.po index 8d32f9083..a48615343 100644 --- a/po/ko.po +++ b/po/ko.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: MusicBrainz\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2014-03-20 11:12+0100\n" -"PO-Revision-Date: 2014-03-21 08:44+0000\n" +"POT-Creation-Date: 2014-05-03 17:28+0200\n" +"PO-Revision-Date: 2014-05-04 08:44+0000\n" "Last-Translator: nikki\n" "Language-Team: Korean (http://www.transifex.com/projects/p/musicbrainz/language/ko/)\n" "MIME-Version: 1.0\n" @@ -19,6 +19,10 @@ msgstr "" "Language: ko\n" "Plural-Forms: nplurals=1; plural=0;\n" +#: contrib/plugins/albumartist_website.py:3 +msgid "Album Artist Website" +msgstr "" + #: contrib/plugins/no_release.py:50 msgid "Enable plugin for all releases by default" msgstr "" @@ -31,63 +35,55 @@ msgstr "" msgid "Remove specific release information..." msgstr "" -#: contrib/plugins/open_in_gui.py:32 -msgid "Open Error" +#: contrib/plugins/standardise_performers.py:3 +msgid "Standardise Performers" msgstr "" -#: contrib/plugins/open_in_gui.py:32 -#, python-format -msgid "" -"Error while opening file:\n" -"\n" -"%s" -msgstr "" - -#: contrib/plugins/lastfm/ui_options_lastfm.py:117 +#: contrib/plugins/lastfm/ui_options_lastfm.py:99 msgid "Last.fm" msgstr "" -#: contrib/plugins/lastfm/ui_options_lastfm.py:118 +#: contrib/plugins/lastfm/ui_options_lastfm.py:100 msgid "Use track tags" msgstr "" -#: contrib/plugins/lastfm/ui_options_lastfm.py:119 +#: contrib/plugins/lastfm/ui_options_lastfm.py:101 msgid "Use artist tags" msgstr "" -#: contrib/plugins/lastfm/ui_options_lastfm.py:120 +#: contrib/plugins/lastfm/ui_options_lastfm.py:102 #: picard/ui/options/tags.py:30 msgid "Tags" msgstr "태그" -#: contrib/plugins/lastfm/ui_options_lastfm.py:121 -#: picard/ui/ui_options_folksonomy.py:116 +#: contrib/plugins/lastfm/ui_options_lastfm.py:103 +#: picard/ui/ui_options_folksonomy.py:103 msgid "Ignore tags:" msgstr "" -#: contrib/plugins/lastfm/ui_options_lastfm.py:122 -#: picard/ui/ui_options_folksonomy.py:121 +#: contrib/plugins/lastfm/ui_options_lastfm.py:104 +#: picard/ui/ui_options_folksonomy.py:108 msgid "Join multiple tags with:" msgstr "" -#: contrib/plugins/lastfm/ui_options_lastfm.py:123 -#: picard/ui/ui_options_folksonomy.py:122 +#: contrib/plugins/lastfm/ui_options_lastfm.py:105 +#: picard/ui/ui_options_folksonomy.py:109 msgid " / " msgstr "" -#: contrib/plugins/lastfm/ui_options_lastfm.py:124 -#: picard/ui/ui_options_folksonomy.py:123 +#: contrib/plugins/lastfm/ui_options_lastfm.py:106 +#: picard/ui/ui_options_folksonomy.py:110 msgid ", " msgstr "" -#: contrib/plugins/lastfm/ui_options_lastfm.py:125 -#: picard/ui/ui_options_folksonomy.py:118 +#: contrib/plugins/lastfm/ui_options_lastfm.py:107 +#: picard/ui/ui_options_folksonomy.py:105 msgid "Minimal tag usage:" msgstr "" -#: contrib/plugins/lastfm/ui_options_lastfm.py:126 -#: picard/ui/ui_options_folksonomy.py:119 picard/ui/ui_options_matching.py:88 -#: picard/ui/ui_options_matching.py:89 picard/ui/ui_options_matching.py:90 +#: contrib/plugins/lastfm/ui_options_lastfm.py:108 +#: picard/ui/ui_options_folksonomy.py:106 picard/ui/ui_options_matching.py:75 +#: picard/ui/ui_options_matching.py:76 picard/ui/ui_options_matching.py:77 msgid " %" msgstr " %" @@ -95,416 +91,303 @@ msgstr " %" msgid "Calculate replay &gain..." msgstr "" -#: contrib/plugins/replaygain/__init__.py:66 +#: contrib/plugins/replaygain/__init__.py:67 #, python-format -msgid "Calculating replay gain for \"%s\"..." +msgid "Calculating replay gain for \"%(filename)s\"..." msgstr "" -#: contrib/plugins/replaygain/__init__.py:71 +#: contrib/plugins/replaygain/__init__.py:75 #, python-format -msgid "Replay gain for \"%s\" successfully calculated." +msgid "Replay gain for \"%(filename)s\" successfully calculated." msgstr "" -#: contrib/plugins/replaygain/__init__.py:73 +#: contrib/plugins/replaygain/__init__.py:80 #, python-format -msgid "Could not calculate replay gain for \"%s\"." +msgid "Could not calculate replay gain for \"%(filename)s\"." msgstr "" -#: contrib/plugins/replaygain/__init__.py:76 +#: contrib/plugins/replaygain/__init__.py:85 msgid "Calculate album &gain..." msgstr "" -#: contrib/plugins/replaygain/__init__.py:103 -#: contrib/plugins/replaygain/__init__.py:111 +#: contrib/plugins/replaygain/__init__.py:113 +#: contrib/plugins/replaygain/__init__.py:124 #, python-format -msgid "Calculating album gain for \"%s\"..." +msgid "Calculating album gain for \"%(album)s\"..." msgstr "" -#: contrib/plugins/replaygain/__init__.py:119 +#: contrib/plugins/replaygain/__init__.py:135 #, python-format -msgid "Album gain for \"%s\" successfully calculated." +msgid "Album gain for \"%(album)s\" successfully calculated." msgstr "" -#: contrib/plugins/replaygain/__init__.py:121 +#: contrib/plugins/replaygain/__init__.py:140 #, python-format -msgid "Could not calculate album gain for \"%s\"." +msgid "Could not calculate album gain for \"%(album)s\"." msgstr "" -#: picard/acoustid.py:102 +#: contrib/plugins/replaygain/ui_options_replaygain.py:59 +msgid "Replay Gain" +msgstr "" + +#: contrib/plugins/replaygain/ui_options_replaygain.py:60 +msgid "Path to VorbisGain:" +msgstr "" + +#: contrib/plugins/replaygain/ui_options_replaygain.py:61 +msgid "Path to MP3Gain:" +msgstr "" + +#: contrib/plugins/replaygain/ui_options_replaygain.py:62 +msgid "Path to metaflac:" +msgstr "" + +#: contrib/plugins/replaygain/ui_options_replaygain.py:63 +msgid "Path to wvgain:" +msgstr "" + +#: contrib/plugins/viewvariables/__init__.py:42 #, python-format -msgid "AcoustID lookup network error for '%s'!" +msgid "File: %s" msgstr "" -#: picard/acoustid.py:117 +#: contrib/plugins/viewvariables/__init__.py:47 #, python-format -msgid "AcoustID lookup failed for '%s'!" +msgid "Track: %s %s " msgstr "" -#: picard/acoustid.py:128 +#: contrib/plugins/viewvariables/__init__.py:49 +msgid "Variables" +msgstr "" + +#: contrib/plugins/viewvariables/__init__.py:69 +msgid "File variables" +msgstr "" + +#: contrib/plugins/viewvariables/__init__.py:74 +msgid "Hidden variables" +msgstr "" + +#: contrib/plugins/viewvariables/__init__.py:79 +msgid "Tag variables" +msgstr "" + +#: contrib/plugins/viewvariables/ui_variables_dialog.py:73 +msgid "Variable" +msgstr "" + +#: contrib/plugins/viewvariables/ui_variables_dialog.py:75 +msgid "Value" +msgstr "" + +#: picard/acoustid.py:109 #, python-format -msgid "Acoustid lookup returned no result for file '%s'" +msgid "AcoustID lookup network error for '%(filename)s'!" msgstr "" -#: picard/acoustid.py:132 +#: picard/acoustid.py:133 #, python-format -msgid "Looking up the fingerprint for file %s..." +msgid "AcoustID lookup failed for '%(filename)s'!" msgstr "" -#: picard/acoustidmanager.py:78 -msgid "Submitting AcoustIDs..." -msgstr "" - -#: picard/acoustidmanager.py:83 +#: picard/acoustid.py:155 #, python-format -msgid "AcoustID submission failed with error '%s'" +msgid "AcoustID lookup returned no result for file '%(filename)s'" msgstr "" -#: picard/acoustidmanager.py:85 +#: picard/acoustid.py:166 +#, python-format +msgid "Looking up the fingerprint for file '%(filename)s' ..." +msgstr "" + +#: picard/acoustidmanager.py:80 +msgid "Submitting AcoustIDs ..." +msgstr "" + +#: picard/acoustidmanager.py:94 +#, python-format +msgid "AcoustID submission failed with error '%(error)s'" +msgstr "" + +#: picard/acoustidmanager.py:102 msgid "AcoustIDs successfully submitted." msgstr "" -#: picard/album.py:64 picard/cluster.py:234 +#: picard/album.py:65 picard/cluster.py:255 msgid "Unmatched Files" msgstr "" -#: picard/album.py:187 +#: picard/album.py:188 #, python-format msgid "[could not load album %s]" msgstr "" -#: picard/album.py:272 +#: picard/album.py:277 #, python-format -msgid "Album %s loaded" +msgid "Album %(id)s loaded: %(artist)s - %(album)s" msgstr "" -#: picard/album.py:288 +#: picard/album.py:294 +#, python-format +msgid "Loading album %(id)s ..." +msgstr "" + +#: picard/album.py:303 msgid "[loading album information]" msgstr "" -#: picard/album.py:463 +#: picard/album.py:478 #, python-format msgid "; %i image" msgid_plural "; %i images" msgstr[0] "" -#: picard/cluster.py:150 picard/cluster.py:159 +#: picard/cluster.py:155 picard/cluster.py:168 #, python-format -msgid "No matching releases for cluster %s" -msgstr "일치하는 cluster %s이 없습니다." - -#: picard/cluster.py:161 -#, python-format -msgid "Cluster %s identified!" +msgid "No matching releases for cluster %(album)s" msgstr "" -#: picard/cluster.py:168 +#: picard/cluster.py:174 #, python-format -msgid "Looking up the metadata for cluster %s..." +msgid "Cluster %(album)s identified!" msgstr "" -#: picard/collection.py:60 +#: picard/cluster.py:185 #, python-format -msgid "Added %i release to collection \"%s\"" -msgid_plural "Added %i releases to collection \"%s\"" +msgid "Looking up the metadata for cluster %(album)s..." +msgstr "" + +#: picard/collection.py:64 +#, python-format +msgid "Added %(count)i release to collection \"%(name)s\"" +msgid_plural "Added %(count)i releases to collection \"%(name)s\"" msgstr[0] "" -#: picard/collection.py:72 +#: picard/collection.py:86 #, python-format -msgid "Removed %i release from collection \"%s\"" -msgid_plural "Removed %i releases from collection \"%s\"" +msgid "Removed %(count)i release from collection \"%(name)s\"" +msgid_plural "Removed %(count)i releases from collection \"%(name)s\"" msgstr[0] "" -#: picard/collection.py:81 +#: picard/collection.py:100 #, python-format -msgid "Error loading collections: %s" +msgid "Error loading collections: %(error)s" msgstr "" -#: picard/config_upgrade.py:57 picard/config_upgrade.py:70 +#: picard/config_upgrade.py:58 picard/config_upgrade.py:71 msgid "Various Artists file naming scheme removal" msgstr "" -#: picard/config_upgrade.py:58 +#: picard/config_upgrade.py:59 msgid "" "The separate file naming scheme for various artists albums has been removed in this version of Picard.\n" "Your file naming scheme has automatically been merged with that of single artist albums." msgstr "" -#: picard/config_upgrade.py:71 +#: picard/config_upgrade.py:72 msgid "" "The separate file naming scheme for various artists albums has been removed in this version of Picard.\n" "You currently do not use this option, but have a separate file naming scheme defined.\n" "Do you want to remove it or merge it with your file naming scheme for single artist albums?" msgstr "" -#: picard/config_upgrade.py:77 +#: picard/config_upgrade.py:78 msgid "Merge" msgstr "" -#: picard/config_upgrade.py:77 picard/ui/metadatabox.py:254 +#: picard/config_upgrade.py:78 picard/ui/metadatabox.py:254 msgid "Remove" msgstr "" -#: picard/const.py:67 -msgid "CD" -msgstr "" - -#: picard/const.py:68 -msgid "CD-R" -msgstr "" - -#: picard/const.py:69 -msgid "HDCD" -msgstr "" - -#: picard/const.py:70 -msgid "8cm CD" -msgstr "" - -#: picard/const.py:71 -msgid "Vinyl" -msgstr "" - -#: picard/const.py:72 -msgid "7\" Vinyl" -msgstr "" - -#: picard/const.py:73 -msgid "10\" Vinyl" -msgstr "" - -#: picard/const.py:74 -msgid "12\" Vinyl" -msgstr "" - -#: picard/const.py:75 -msgid "Digital Media" -msgstr "" - -#: picard/const.py:76 -msgid "USB Flash Drive" -msgstr "" - -#: picard/const.py:77 -msgid "slotMusic" -msgstr "" - -#: picard/const.py:78 -msgid "Cassette" -msgstr "" - -#: picard/const.py:79 -msgid "DVD" -msgstr "" - -#: picard/const.py:80 -msgid "DVD-Audio" -msgstr "" - -#: picard/const.py:81 -msgid "DVD-Video" -msgstr "" - -#: picard/const.py:82 -msgid "SACD" -msgstr "" - -#: picard/const.py:83 -msgid "DualDisc" -msgstr "" - -#: picard/const.py:84 -msgid "MiniDisc" -msgstr "" - -#: picard/const.py:85 -msgid "Blu-ray" -msgstr "" - -#: picard/const.py:86 -msgid "HD-DVD" -msgstr "" - -#: picard/const.py:87 -msgid "Videotape" -msgstr "" - -#: picard/const.py:88 -msgid "VHS" -msgstr "" - -#: picard/const.py:89 -msgid "Betamax" -msgstr "" - #: picard/const.py:90 -msgid "VCD" -msgstr "" - -#: picard/const.py:91 -msgid "SVCD" -msgstr "" - -#: picard/const.py:92 -msgid "UMD" -msgstr "" - -#: picard/const.py:93 picard/coverartarchive.py:33 -#: picard/ui/ui_options_releases.py:226 -msgid "Other" -msgstr "" - -#: picard/const.py:94 -msgid "LaserDisc" -msgstr "" - -#: picard/const.py:95 -msgid "Cartridge" -msgstr "" - -#: picard/const.py:96 -msgid "Reel-to-reel" -msgstr "" - -#: picard/const.py:97 -msgid "DAT" -msgstr "" - -#: picard/const.py:98 -msgid "Wax Cylinder" -msgstr "" - -#: picard/const.py:99 -msgid "Piano Roll" -msgstr "" - -#: picard/const.py:100 -msgid "DCC" -msgstr "" - -#: picard/const.py:115 msgid "Danish" msgstr "" -#: picard/const.py:116 +#: picard/const.py:91 msgid "German" msgstr "독일어" -#: picard/const.py:118 +#: picard/const.py:93 msgid "English" msgstr "영어" -#: picard/const.py:119 +#: picard/const.py:94 msgid "English (Canada)" msgstr "" -#: picard/const.py:120 +#: picard/const.py:95 msgid "English (UK)" msgstr "영어(영국)" -#: picard/const.py:122 +#: picard/const.py:97 msgid "Spanish" msgstr "스페인어" -#: picard/const.py:123 +#: picard/const.py:98 msgid "Estonian" msgstr "" -#: picard/const.py:125 +#: picard/const.py:100 msgid "Finnish" msgstr "핀란드어" -#: picard/const.py:127 +#: picard/const.py:102 msgid "French" msgstr "프랑스어" -#: picard/const.py:136 +#: picard/const.py:111 msgid "Italian" msgstr "이탈리아어" -#: picard/const.py:143 +#: picard/const.py:118 msgid "Dutch" msgstr "네덜란드어" -#: picard/const.py:145 +#: picard/const.py:120 msgid "Polish" msgstr "폴란드어" -#: picard/const.py:147 +#: picard/const.py:122 msgid "Brazilian Portuguese" msgstr "" -#: picard/const.py:154 +#: picard/const.py:129 msgid "Swedish" msgstr "스웨덴어" -#: picard/coverart.py:84 +#: picard/coverart.py:85 #, python-format -msgid "Coverart %s downloaded" +msgid "Cover art of type '%(type)s' downloaded for %(albumid)s from %(host)s" msgstr "" -#: picard/coverart.py:240 +#: picard/coverart.py:256 #, python-format -msgid "Downloading http://%s:%i%s" -msgstr "" - -#: picard/coverartarchive.py:24 -msgid "Front" -msgstr "" - -#: picard/coverartarchive.py:25 -msgid "Back" -msgstr "" - -#: picard/coverartarchive.py:26 -msgid "Booklet" -msgstr "" - -#: picard/coverartarchive.py:27 -msgid "Medium" -msgstr "" - -#: picard/coverartarchive.py:28 -msgid "Tray" -msgstr "" - -#: picard/coverartarchive.py:29 -msgid "Obi" +msgid "" +"Downloading cover art of type '%(type)s' for %(albumid)s from %(host)s .." msgstr "" #: picard/coverartarchive.py:30 -msgid "Spine" -msgstr "" - -#: picard/coverartarchive.py:31 picard/ui/mainwindow.py:546 -msgid "Track" -msgstr "트랙" - -#: picard/coverartarchive.py:32 -msgid "Sticker" -msgstr "" - -#: picard/coverartarchive.py:34 msgid "Unknown" msgstr "" -#: picard/file.py:536 +#: picard/file.py:494 #, python-format -msgid "No matching tracks for file %s" -msgstr "일치하는 트랙의 파일 %s이 없습니다." - -#: picard/file.py:548 -#, python-format -msgid "No matching tracks above the threshold for file %s" +msgid "No matching tracks for file '%(filename)s'" msgstr "" -#: picard/file.py:551 +#: picard/file.py:510 #, python-format -msgid "File %s identified!" -msgstr "파일 %s가 식별됨!" +msgid "No matching tracks above the threshold for file '%(filename)s'" +msgstr "" -#: picard/file.py:567 +#: picard/file.py:517 #, python-format -msgid "Looking up the metadata for file %s..." +msgid "File '%(filename)s' identified!" +msgstr "" + +#: picard/file.py:537 +#, python-format +msgid "Looking up the metadata for file %(filename)s ..." msgstr "" #: picard/releasegroup.py:53 @@ -515,11 +398,11 @@ msgstr "" msgid "Year" msgstr "" -#: picard/releasegroup.py:55 picard/ui/cdlookup.py:34 +#: picard/releasegroup.py:55 picard/ui/cdlookup.py:35 msgid "Country" msgstr "" -#: picard/releasegroup.py:56 picard/util/tags.py:81 +#: picard/releasegroup.py:56 msgid "Format" msgstr "" @@ -539,16 +422,22 @@ msgstr "" msgid "[no release info]" msgstr "" -#: picard/tagger.py:316 +#: picard/tagger.py:370 #, python-format -msgid "Loading directory %s" +msgid "Adding %(count)d file from '%(directory)s' ..." +msgid_plural "Adding %(count)d files from '%(directory)s' ..." +msgstr[0] "" + +#: picard/tagger.py:512 +#, python-format +msgid "Removing album %(id)s: %(artist)s - %(album)s" msgstr "" -#: picard/tagger.py:452 +#: picard/tagger.py:528 msgid "CD Lookup Error" msgstr "CD 검색 실패" -#: picard/tagger.py:453 +#: picard/tagger.py:529 #, python-format msgid "" "Error while reading CD:\n" @@ -556,43 +445,42 @@ msgid "" "%s" msgstr "CD 읽기 실패:\n\n%s" -#: picard/ui/cdlookup.py:34 picard/ui/mainwindow.py:544 -#: picard/ui/ui_options_releases.py:216 picard/util/tags.py:21 +#: picard/ui/cdlookup.py:35 picard/ui/mainwindow.py:597 picard/util/tags.py:21 msgid "Album" msgstr "앨범" -#: picard/ui/cdlookup.py:34 picard/ui/itemviews.py:96 -#: picard/ui/mainwindow.py:545 picard/util/tags.py:22 +#: picard/ui/cdlookup.py:35 picard/ui/itemviews.py:96 +#: picard/ui/mainwindow.py:598 picard/util/tags.py:22 msgid "Artist" msgstr "음악가" -#: picard/ui/cdlookup.py:34 picard/util/tags.py:24 +#: picard/ui/cdlookup.py:35 picard/util/tags.py:24 msgid "Date" msgstr "" -#: picard/ui/cdlookup.py:35 +#: picard/ui/cdlookup.py:36 msgid "Labels" msgstr "" -#: picard/ui/cdlookup.py:35 +#: picard/ui/cdlookup.py:36 msgid "Catalog #s" msgstr "" -#: picard/ui/cdlookup.py:35 picard/util/tags.py:79 +#: picard/ui/cdlookup.py:36 picard/util/tags.py:78 msgid "Barcode" msgstr "바코드" -#: picard/ui/collectionmenu.py:31 +#: picard/ui/collectionmenu.py:42 msgid "Refresh List" msgstr "" -#: picard/ui/collectionmenu.py:92 +#: picard/ui/collectionmenu.py:86 #, python-format msgid "%s (%i release)" msgid_plural "%s (%i releases)" msgstr[0] "" -#: picard/ui/coverartbox.py:142 +#: picard/ui/coverartbox.py:141 msgid "View release on MusicBrainz" msgstr "" @@ -608,59 +496,59 @@ msgstr "" msgid "&Set as starting directory" msgstr "" -#: picard/ui/infodialog.py:36 picard/ui/infodialog.py:75 +#: picard/ui/infodialog.py:37 picard/ui/infodialog.py:80 msgid "Info" msgstr "" -#: picard/ui/infodialog.py:80 +#: picard/ui/infodialog.py:85 msgid "Filename:" msgstr "파일이름:" -#: picard/ui/infodialog.py:82 +#: picard/ui/infodialog.py:87 msgid "Format:" msgstr "형식:" -#: picard/ui/infodialog.py:86 +#: picard/ui/infodialog.py:91 msgid "Size:" msgstr "크기:" -#: picard/ui/infodialog.py:90 +#: picard/ui/infodialog.py:95 msgid "Length:" msgstr "길이:" -#: picard/ui/infodialog.py:92 +#: picard/ui/infodialog.py:97 msgid "Bitrate:" msgstr "비트전송율" -#: picard/ui/infodialog.py:94 +#: picard/ui/infodialog.py:99 msgid "Sample rate:" msgstr "" -#: picard/ui/infodialog.py:96 +#: picard/ui/infodialog.py:101 msgid "Bits per sample:" msgstr "" -#: picard/ui/infodialog.py:100 +#: picard/ui/infodialog.py:105 msgid "Mono" msgstr "모노" -#: picard/ui/infodialog.py:102 +#: picard/ui/infodialog.py:107 msgid "Stereo" msgstr "스테레오" -#: picard/ui/infodialog.py:105 +#: picard/ui/infodialog.py:110 msgid "Channels:" msgstr "채널:" -#: picard/ui/infodialog.py:116 +#: picard/ui/infodialog.py:121 msgid "Album Info" msgstr "" -#: picard/ui/infodialog.py:124 +#: picard/ui/infodialog.py:129 msgid "&Errors" msgstr "" -#: picard/ui/infodialog.py:134 picard/ui/ui_infodialog.py:77 +#: picard/ui/infodialog.py:139 picard/ui/ui_infodialog.py:73 msgid "&Info" msgstr "" @@ -684,7 +572,7 @@ msgstr "" msgid "Title" msgstr "제목" -#: picard/ui/itemviews.py:95 picard/util/tags.py:88 +#: picard/ui/itemviews.py:95 picard/util/tags.py:86 msgid "Length" msgstr "길이" @@ -709,7 +597,7 @@ msgid "Collections" msgstr "" #: picard/ui/itemviews.py:365 -msgid "&Plugins" +msgid "P&lugins" msgstr "" #: picard/ui/itemviews.py:541 @@ -732,12 +620,16 @@ msgstr "" msgid "Contains albums and matched files" msgstr "" -#: picard/ui/logview.py:91 +#: picard/ui/logview.py:109 msgid "Log" msgstr "" -#: picard/ui/logview.py:99 -msgid "Status History" +#: picard/ui/logview.py:113 +msgid "Debug mode" +msgstr "" + +#: picard/ui/logview.py:134 +msgid "Activity History" msgstr "" #: picard/ui/mainwindow.py:74 @@ -770,276 +662,309 @@ msgstr "" #: picard/ui/mainwindow.py:220 msgid "" -"Picard listens on a port to integrate with your browser and downloads " -"release information when you click the \"Tagger\" buttons on the MusicBrainz" -" website" +"Picard listens on this port to integrate with your browser. When you " +"\"Search\" or \"Open in Browser\" from Picard, clicking the \"Tagger\" " +"button on the web page loads the release into Picard." msgstr "" -#: picard/ui/mainwindow.py:240 +#: picard/ui/mainwindow.py:243 #, python-format msgid " Listening on port %(port)d " msgstr "" -#: picard/ui/mainwindow.py:263 +#: picard/ui/mainwindow.py:299 msgid "Submission Error" msgstr "" -#: picard/ui/mainwindow.py:264 +#: picard/ui/mainwindow.py:300 msgid "" "You need to configure your AcoustID API key before you can submit " "fingerprints." msgstr "" -#: picard/ui/mainwindow.py:269 +#: picard/ui/mainwindow.py:305 msgid "&Options..." msgstr "옵션... (&O)" -#: picard/ui/mainwindow.py:273 +#: picard/ui/mainwindow.py:309 msgid "&Cut" msgstr "&자르기" -#: picard/ui/mainwindow.py:278 +#: picard/ui/mainwindow.py:314 msgid "&Paste" msgstr "&붙이기" -#: picard/ui/mainwindow.py:283 +#: picard/ui/mainwindow.py:319 msgid "&Help..." msgstr "&도움말" -#: picard/ui/mainwindow.py:288 +#: picard/ui/mainwindow.py:323 msgid "&About..." msgstr "정보 (&A)..." -#: picard/ui/mainwindow.py:292 +#: picard/ui/mainwindow.py:327 msgid "&Donate..." msgstr "" -#: picard/ui/mainwindow.py:295 +#: picard/ui/mainwindow.py:330 msgid "&Report a Bug..." msgstr "&오류보고" -#: picard/ui/mainwindow.py:298 +#: picard/ui/mainwindow.py:333 msgid "&Support Forum..." msgstr "&기술지원" -#: picard/ui/mainwindow.py:301 +#: picard/ui/mainwindow.py:336 msgid "&Add Files..." msgstr "&파일추가" -#: picard/ui/mainwindow.py:302 +#: picard/ui/mainwindow.py:337 msgid "Add files to the tagger" msgstr "" -#: picard/ui/mainwindow.py:307 +#: picard/ui/mainwindow.py:342 msgid "A&dd Folder..." msgstr "" -#: picard/ui/mainwindow.py:308 +#: picard/ui/mainwindow.py:343 msgid "Add a folder to the tagger" msgstr "" -#: picard/ui/mainwindow.py:310 +#: picard/ui/mainwindow.py:345 msgid "Ctrl+D" msgstr "Ctrl+D" -#: picard/ui/mainwindow.py:313 +#: picard/ui/mainwindow.py:348 msgid "&Save" msgstr "&저장하기" -#: picard/ui/mainwindow.py:314 +#: picard/ui/mainwindow.py:349 msgid "Save selected files" msgstr "선택 파일 저장" -#: picard/ui/mainwindow.py:320 +#: picard/ui/mainwindow.py:355 msgid "S&ubmit" msgstr "" -#: picard/ui/mainwindow.py:321 -msgid "Submit fingerprints" +#: picard/ui/mainwindow.py:356 +msgid "Submit acoustic fingerprints" msgstr "" -#: picard/ui/mainwindow.py:325 +#: picard/ui/mainwindow.py:360 msgid "E&xit" msgstr "끝내기 (&x)" -#: picard/ui/mainwindow.py:328 +#: picard/ui/mainwindow.py:363 msgid "Ctrl+Q" msgstr "Ctrl+Q" -#: picard/ui/mainwindow.py:331 +#: picard/ui/mainwindow.py:366 msgid "&Remove" msgstr "&삭제" -#: picard/ui/mainwindow.py:332 +#: picard/ui/mainwindow.py:367 msgid "Remove selected files/albums" msgstr "선택한 파일/앨범 제거" -#: picard/ui/mainwindow.py:336 +#: picard/ui/mainwindow.py:371 msgid "Lookup in &Browser" msgstr "" -#: picard/ui/mainwindow.py:337 +#: picard/ui/mainwindow.py:372 msgid "Lookup selected item on MusicBrainz website" msgstr "" -#: picard/ui/mainwindow.py:341 +#: picard/ui/mainwindow.py:376 msgid "File &Browser" msgstr "" -#: picard/ui/mainwindow.py:345 +#: picard/ui/mainwindow.py:380 msgid "Ctrl+B" msgstr "" -#: picard/ui/mainwindow.py:348 +#: picard/ui/mainwindow.py:383 msgid "&Cover Art" msgstr "&앨범 ㅑ켓" -#: picard/ui/mainwindow.py:354 picard/ui/mainwindow.py:539 +#: picard/ui/mainwindow.py:389 picard/ui/mainwindow.py:591 msgid "Search" msgstr "찾기" -#: picard/ui/mainwindow.py:357 -msgid "&CD Lookup..." +#: picard/ui/mainwindow.py:392 +msgid "Lookup &CD..." msgstr "" -#: picard/ui/mainwindow.py:358 picard/ui/mainwindow.py:359 -msgid "Lookup CD" -msgstr "CD 검색" +#: picard/ui/mainwindow.py:393 +msgid "Lookup the details of the CD in your drive" +msgstr "" -#: picard/ui/mainwindow.py:361 +#: picard/ui/mainwindow.py:395 msgid "Ctrl+K" msgstr "" -#: picard/ui/mainwindow.py:364 +#: picard/ui/mainwindow.py:398 msgid "&Scan" msgstr "" -#: picard/ui/mainwindow.py:367 +#: picard/ui/mainwindow.py:401 msgid "Ctrl+Y" msgstr "Ctrl+Y" -#: picard/ui/mainwindow.py:370 +#: picard/ui/mainwindow.py:404 msgid "Cl&uster" msgstr "" -#: picard/ui/mainwindow.py:373 +#: picard/ui/mainwindow.py:407 msgid "Ctrl+U" msgstr "Ctrl+U" -#: picard/ui/mainwindow.py:376 +#: picard/ui/mainwindow.py:410 msgid "&Lookup" msgstr "" -#: picard/ui/mainwindow.py:377 picard/ui/mainwindow.py:378 -msgid "Lookup metadata" -msgstr "정보 검색" +#: picard/ui/mainwindow.py:411 +msgid "Lookup selected items in MusicBrainz" +msgstr "" -#: picard/ui/mainwindow.py:381 +#: picard/ui/mainwindow.py:416 msgid "Ctrl+L" msgstr "Ctrl+L" -#: picard/ui/mainwindow.py:384 +#: picard/ui/mainwindow.py:419 msgid "&Info..." msgstr "" -#: picard/ui/mainwindow.py:387 +#: picard/ui/mainwindow.py:422 msgid "Ctrl+I" msgstr "" -#: picard/ui/mainwindow.py:390 +#: picard/ui/mainwindow.py:425 msgid "&Refresh" msgstr "&새로고침" -#: picard/ui/mainwindow.py:391 +#: picard/ui/mainwindow.py:426 msgid "Ctrl+R" msgstr "" -#: picard/ui/mainwindow.py:394 +#: picard/ui/mainwindow.py:429 msgid "&Rename Files" msgstr "이름 변경" -#: picard/ui/mainwindow.py:399 +#: picard/ui/mainwindow.py:434 msgid "&Move Files" msgstr "&파일 이동" -#: picard/ui/mainwindow.py:404 +#: picard/ui/mainwindow.py:439 msgid "Save &Tags" msgstr "" -#: picard/ui/mainwindow.py:409 +#: picard/ui/mainwindow.py:444 msgid "Tags From &File Names..." msgstr "" -#: picard/ui/mainwindow.py:412 -msgid "View &Log..." +#: picard/ui/mainwindow.py:447 +msgid "&Open My Collections in Browser" msgstr "" -#: picard/ui/mainwindow.py:415 -msgid "View Status &History..." +#: picard/ui/mainwindow.py:451 +msgid "View Error/Debug &Log" msgstr "" -#: picard/ui/mainwindow.py:422 -msgid "&Open..." +#: picard/ui/mainwindow.py:454 +msgid "View Activity &History" msgstr "" -#: picard/ui/mainwindow.py:423 -msgid "Open the file" +#: picard/ui/mainwindow.py:461 +msgid "&Play file" msgstr "" -#: picard/ui/mainwindow.py:426 -msgid "Open &Folder..." +#: picard/ui/mainwindow.py:462 +msgid "Play the file in your default media player" msgstr "" -#: picard/ui/mainwindow.py:427 -msgid "Open the containing folder" +#: picard/ui/mainwindow.py:466 +msgid "Open Containing &Folder" msgstr "" -#: picard/ui/mainwindow.py:448 +#: picard/ui/mainwindow.py:467 +msgid "Open the containing folder in your file explorer" +msgstr "" + +#: picard/ui/mainwindow.py:492 msgid "&File" msgstr "파일 (&F)" -#: picard/ui/mainwindow.py:456 +#: picard/ui/mainwindow.py:503 msgid "&Edit" msgstr "편집 (&E)" -#: picard/ui/mainwindow.py:462 +#: picard/ui/mainwindow.py:509 msgid "&View" msgstr "&보기" -#: picard/ui/mainwindow.py:470 +#: picard/ui/mainwindow.py:515 msgid "&Options" msgstr "&옵션" -#: picard/ui/mainwindow.py:476 +#: picard/ui/mainwindow.py:521 msgid "&Tools" msgstr "도구" -#: picard/ui/mainwindow.py:485 picard/ui/util.py:35 +#: picard/ui/mainwindow.py:532 picard/ui/util.py:35 msgid "&Help" msgstr "도움말 (&H)" -#: picard/ui/mainwindow.py:505 +#: picard/ui/mainwindow.py:553 msgid "Actions" msgstr "" -#: picard/ui/mainwindow.py:608 +#: picard/ui/mainwindow.py:599 +msgid "Track" +msgstr "트랙" + +#: picard/ui/mainwindow.py:662 msgid "All Supported Formats" msgstr "모든 지원 되는 형식" -#: picard/ui/mainwindow.py:705 +#: picard/ui/mainwindow.py:695 +#, python-format +msgid "Adding directory: '%(directory)s' ..." +msgstr "" + +#: picard/ui/mainwindow.py:702 +#, python-format +msgid "Adding multiple directories from '%(directory)s' ..." +msgstr "" + +#: picard/ui/mainwindow.py:767 msgid "Configuration Required" msgstr "" -#: picard/ui/mainwindow.py:706 +#: picard/ui/mainwindow.py:768 msgid "" "Audio fingerprinting is not yet configured. Would you like to configure it " "now?" msgstr "" -#: picard/ui/mainwindow.py:784 picard/ui/mainwindow.py:791 +#: picard/ui/mainwindow.py:848 #, python-format -msgid " (Error: %s)" -msgstr " (오류 : %s)" +msgid "%(filename)s (error: %(error)s)" +msgstr "" + +#: picard/ui/mainwindow.py:854 +#, python-format +msgid "%(filename)s" +msgstr "" + +#: picard/ui/mainwindow.py:864 +#, python-format +msgid "%(filename)s (%(similarity)d%%) (error: %(error)s)" +msgstr "" + +#: picard/ui/mainwindow.py:871 +#, python-format +msgid "%(filename)s (%(similarity)d%%)" +msgstr "" #: picard/ui/metadatabox.py:82 #, python-format @@ -1090,387 +1015,387 @@ msgid "Use Original Value" msgid_plural "Use Original Values" msgstr[0] "" -#: picard/ui/passworddialog.py:37 +#: picard/ui/passworddialog.py:40 #, python-format msgid "" "The server %s requires you to login. Please enter your username and " "password." msgstr "" -#: picard/ui/passworddialog.py:75 +#: picard/ui/passworddialog.py:79 #, python-format msgid "" "The proxy %s requires you to login. Please enter your username and password." msgstr "" -#: picard/ui/tagsfromfilenames.py:55 picard/ui/tagsfromfilenames.py:100 +#: picard/ui/tagsfromfilenames.py:56 picard/ui/tagsfromfilenames.py:101 msgid "File Name" msgstr "파일 이름" -#: picard/ui/ui_cdlookup.py:66 picard/ui/ui_options_cdlookup.py:55 -#: picard/ui/ui_options_cdlookup_select.py:62 picard/ui/options/cdlookup.py:38 +#: picard/ui/ui_cdlookup.py:53 picard/ui/ui_options_cdlookup.py:42 +#: picard/ui/ui_options_cdlookup_select.py:49 picard/ui/options/cdlookup.py:38 msgid "CD Lookup" msgstr "CD 찾기" -#: picard/ui/ui_cdlookup.py:67 +#: picard/ui/ui_cdlookup.py:54 msgid "The following releases on MusicBrainz match the CD:" msgstr "" -#: picard/ui/ui_cdlookup.py:68 +#: picard/ui/ui_cdlookup.py:55 msgid "OK" msgstr "확인" -#: picard/ui/ui_cdlookup.py:69 +#: picard/ui/ui_cdlookup.py:56 msgid "Lookup manually" msgstr "" -#: picard/ui/ui_cdlookup.py:70 +#: picard/ui/ui_cdlookup.py:57 msgid "Cancel" msgstr "취소" -#: picard/ui/ui_edittagdialog.py:101 +#: picard/ui/ui_edittagdialog.py:88 msgid "Edit Tag" msgstr "" -#: picard/ui/ui_edittagdialog.py:102 +#: picard/ui/ui_edittagdialog.py:89 msgid "Edit value" msgstr "" -#: picard/ui/ui_edittagdialog.py:103 +#: picard/ui/ui_edittagdialog.py:90 msgid "Add value" msgstr "" -#: picard/ui/ui_edittagdialog.py:104 +#: picard/ui/ui_edittagdialog.py:91 msgid "Remove value" msgstr "" -#: picard/ui/ui_infodialog.py:78 +#: picard/ui/ui_infodialog.py:74 msgid "A&rtwork" msgstr "" -#: picard/ui/ui_infostatus.py:100 +#: picard/ui/ui_infostatus.py:96 msgid "Form" msgstr "" -#: picard/ui/ui_options.py:51 +#: picard/ui/ui_options.py:38 msgid "Options" msgstr "" -#: picard/ui/ui_options_advanced.py:46 +#: picard/ui/ui_options_advanced.py:42 msgid "Advanced options" msgstr "" -#: picard/ui/ui_options_advanced.py:47 +#: picard/ui/ui_options_advanced.py:43 msgid "Ignore file paths matching the following regular expression:" msgstr "" -#: picard/ui/ui_options_cdlookup.py:56 +#: picard/ui/ui_options_cdlookup.py:43 msgid "CD-ROM device to use for lookups:" msgstr "" -#: picard/ui/ui_options_cdlookup_select.py:63 +#: picard/ui/ui_options_cdlookup_select.py:50 msgid "Default CD-ROM drive to use for lookups:" msgstr "" -#: picard/ui/ui_options_cover.py:145 +#: picard/ui/ui_options_cover.py:131 msgid "Location" msgstr "" -#: picard/ui/ui_options_cover.py:146 +#: picard/ui/ui_options_cover.py:132 msgid "Embed cover images into tags" msgstr "" -#: picard/ui/ui_options_cover.py:147 +#: picard/ui/ui_options_cover.py:133 msgid "Only embed a front image" msgstr "" -#: picard/ui/ui_options_cover.py:148 +#: picard/ui/ui_options_cover.py:134 msgid "Save cover images as separate files" msgstr "" -#: picard/ui/ui_options_cover.py:149 +#: picard/ui/ui_options_cover.py:135 msgid "Use the following file name for images:" msgstr "" -#: picard/ui/ui_options_cover.py:150 +#: picard/ui/ui_options_cover.py:136 msgid "Overwrite the file if it already exists" msgstr "" -#: picard/ui/ui_options_cover.py:151 +#: picard/ui/ui_options_cover.py:137 msgid "Coverart Providers" msgstr "" -#: picard/ui/ui_options_cover.py:152 +#: picard/ui/ui_options_cover.py:138 msgid "Amazon" msgstr "" -#: picard/ui/ui_options_cover.py:153 picard/ui/ui_options_cover.py:155 +#: picard/ui/ui_options_cover.py:139 picard/ui/ui_options_cover.py:141 msgid "Cover Art Archive" msgstr "" -#: picard/ui/ui_options_cover.py:154 +#: picard/ui/ui_options_cover.py:140 msgid "Sites on the whitelist" msgstr "" -#: picard/ui/ui_options_cover.py:156 +#: picard/ui/ui_options_cover.py:142 msgid "Only use images of the following size:" msgstr "" -#: picard/ui/ui_options_cover.py:157 +#: picard/ui/ui_options_cover.py:143 msgid "250 px" msgstr "" -#: picard/ui/ui_options_cover.py:158 +#: picard/ui/ui_options_cover.py:144 msgid "500 px" msgstr "" -#: picard/ui/ui_options_cover.py:159 +#: picard/ui/ui_options_cover.py:145 msgid "Full size" msgstr "" -#: picard/ui/ui_options_cover.py:160 +#: picard/ui/ui_options_cover.py:146 msgid "Download only images of the following types:" msgstr "" -#: picard/ui/ui_options_cover.py:161 +#: picard/ui/ui_options_cover.py:147 msgid "Download only approved images" msgstr "" -#: picard/ui/ui_options_cover.py:162 +#: picard/ui/ui_options_cover.py:148 msgid "" "Use the first image type as the filename. This will not change the filename " "of front images." msgstr "" -#: picard/ui/ui_options_fingerprinting.py:83 +#: picard/ui/ui_options_fingerprinting.py:70 msgid "Audio Fingerprinting" msgstr "" -#: picard/ui/ui_options_fingerprinting.py:84 +#: picard/ui/ui_options_fingerprinting.py:71 msgid "Do not use audio fingerprinting" msgstr "" -#: picard/ui/ui_options_fingerprinting.py:85 +#: picard/ui/ui_options_fingerprinting.py:72 msgid "Use AcoustID" msgstr "" -#: picard/ui/ui_options_fingerprinting.py:86 +#: picard/ui/ui_options_fingerprinting.py:73 msgid "AcoustID Settings" msgstr "" -#: picard/ui/ui_options_fingerprinting.py:87 +#: picard/ui/ui_options_fingerprinting.py:74 msgid "Fingerprint calculator:" msgstr "" -#: picard/ui/ui_options_fingerprinting.py:88 -#: picard/ui/ui_options_interface.py:88 picard/ui/ui_options_renaming.py:138 +#: picard/ui/ui_options_fingerprinting.py:75 +#: picard/ui/ui_options_interface.py:75 picard/ui/ui_options_renaming.py:134 msgid "Browse..." msgstr "" -#: picard/ui/ui_options_fingerprinting.py:89 +#: picard/ui/ui_options_fingerprinting.py:76 msgid "Download..." msgstr "" -#: picard/ui/ui_options_fingerprinting.py:90 +#: picard/ui/ui_options_fingerprinting.py:77 msgid "API key:" msgstr "" -#: picard/ui/ui_options_fingerprinting.py:91 +#: picard/ui/ui_options_fingerprinting.py:78 msgid "Get API key..." msgstr "" -#: picard/ui/ui_options_folksonomy.py:115 picard/ui/options/folksonomy.py:28 +#: picard/ui/ui_options_folksonomy.py:102 picard/ui/options/folksonomy.py:28 msgid "Folksonomy Tags" msgstr "" -#: picard/ui/ui_options_folksonomy.py:117 +#: picard/ui/ui_options_folksonomy.py:104 msgid "Only use my tags" msgstr "" -#: picard/ui/ui_options_folksonomy.py:120 +#: picard/ui/ui_options_folksonomy.py:107 msgid "Maximum number of tags:" msgstr "" -#: picard/ui/ui_options_general.py:92 +#: picard/ui/ui_options_general.py:88 msgid "MusicBrainz Server" msgstr "" -#: picard/ui/ui_options_general.py:93 picard/ui/ui_options_network.py:123 +#: picard/ui/ui_options_general.py:89 picard/ui/ui_options_network.py:110 msgid "Port:" msgstr "" -#: picard/ui/ui_options_general.py:94 picard/ui/ui_options_network.py:124 +#: picard/ui/ui_options_general.py:90 picard/ui/ui_options_network.py:111 msgid "Server address:" msgstr "서버 주소:" -#: picard/ui/ui_options_general.py:95 +#: picard/ui/ui_options_general.py:91 msgid "Account Information" msgstr "" -#: picard/ui/ui_options_general.py:96 picard/ui/ui_options_network.py:121 -#: picard/ui/ui_passworddialog.py:74 +#: picard/ui/ui_options_general.py:92 picard/ui/ui_options_network.py:108 +#: picard/ui/ui_passworddialog.py:70 msgid "Password:" msgstr "비밀번호:" -#: picard/ui/ui_options_general.py:97 picard/ui/ui_options_network.py:122 -#: picard/ui/ui_passworddialog.py:73 +#: picard/ui/ui_options_general.py:93 picard/ui/ui_options_network.py:109 +#: picard/ui/ui_passworddialog.py:69 msgid "Username:" msgstr "사용자이름:" -#: picard/ui/ui_options_general.py:98 picard/ui/options/general.py:31 +#: picard/ui/ui_options_general.py:94 picard/ui/options/general.py:31 msgid "General" msgstr "일반 사항" -#: picard/ui/ui_options_general.py:99 +#: picard/ui/ui_options_general.py:95 msgid "Automatically scan all new files" msgstr "" -#: picard/ui/ui_options_general.py:100 +#: picard/ui/ui_options_general.py:96 msgid "Ignore MBIDs when loading new files" msgstr "" -#: picard/ui/ui_options_interface.py:82 +#: picard/ui/ui_options_interface.py:69 msgid "Miscellaneous" msgstr "" -#: picard/ui/ui_options_interface.py:83 +#: picard/ui/ui_options_interface.py:70 msgid "Show text labels under icons" msgstr "" -#: picard/ui/ui_options_interface.py:84 +#: picard/ui/ui_options_interface.py:71 msgid "Allow selection of multiple directories" msgstr "" -#: picard/ui/ui_options_interface.py:85 +#: picard/ui/ui_options_interface.py:72 msgid "Use advanced query syntax" msgstr "" -#: picard/ui/ui_options_interface.py:86 +#: picard/ui/ui_options_interface.py:73 msgid "Show a quit confirmation dialog for unsaved changes" msgstr "" -#: picard/ui/ui_options_interface.py:87 +#: picard/ui/ui_options_interface.py:74 msgid "Begin browsing in the following directory:" msgstr "" -#: picard/ui/ui_options_interface.py:89 +#: picard/ui/ui_options_interface.py:76 msgid "User interface language:" msgstr "" -#: picard/ui/ui_options_matching.py:86 +#: picard/ui/ui_options_matching.py:73 msgid "Thresholds" msgstr "" -#: picard/ui/ui_options_matching.py:87 +#: picard/ui/ui_options_matching.py:74 msgid "Minimal similarity for matching files to tracks:" msgstr "" -#: picard/ui/ui_options_matching.py:91 +#: picard/ui/ui_options_matching.py:78 msgid "Minimal similarity for file lookups:" msgstr "" -#: picard/ui/ui_options_matching.py:92 +#: picard/ui/ui_options_matching.py:79 msgid "Minimal similarity for cluster lookups:" msgstr "" -#: picard/ui/ui_options_metadata.py:114 picard/ui/options/metadata.py:29 +#: picard/ui/ui_options_metadata.py:101 picard/ui/options/metadata.py:29 msgid "Metadata" msgstr "지역 파일 정보" -#: picard/ui/ui_options_metadata.py:115 +#: picard/ui/ui_options_metadata.py:102 msgid "Translate artist names to this locale where possible:" msgstr "" -#: picard/ui/ui_options_metadata.py:116 +#: picard/ui/ui_options_metadata.py:103 msgid "Use standardized artist names" msgstr "" -#: picard/ui/ui_options_metadata.py:117 +#: picard/ui/ui_options_metadata.py:104 msgid "Convert Unicode punctuation characters to ASCII" msgstr "" -#: picard/ui/ui_options_metadata.py:118 +#: picard/ui/ui_options_metadata.py:105 msgid "Use release relationships" msgstr "" -#: picard/ui/ui_options_metadata.py:119 +#: picard/ui/ui_options_metadata.py:106 msgid "Use track relationships" msgstr "" -#: picard/ui/ui_options_metadata.py:120 +#: picard/ui/ui_options_metadata.py:107 msgid "Use folksonomy tags as genre" msgstr "" -#: picard/ui/ui_options_metadata.py:121 +#: picard/ui/ui_options_metadata.py:108 msgid "Custom Fields" msgstr "" -#: picard/ui/ui_options_metadata.py:122 +#: picard/ui/ui_options_metadata.py:109 msgid "Various artists:" msgstr "Various artists:" -#: picard/ui/ui_options_metadata.py:123 +#: picard/ui/ui_options_metadata.py:110 msgid "Non-album tracks:" msgstr "앨범이 없는 트랙:" -#: picard/ui/ui_options_metadata.py:124 picard/ui/ui_options_metadata.py:125 -#: picard/ui/ui_options_renaming.py:147 +#: picard/ui/ui_options_metadata.py:111 picard/ui/ui_options_metadata.py:112 +#: picard/ui/ui_options_renaming.py:143 msgid "Default" msgstr "초기화" -#: picard/ui/ui_options_network.py:120 +#: picard/ui/ui_options_network.py:107 msgid "Web Proxy" msgstr "웹 프록시" -#: picard/ui/ui_options_network.py:125 +#: picard/ui/ui_options_network.py:112 msgid "Browser Integration" msgstr "" -#: picard/ui/ui_options_network.py:126 +#: picard/ui/ui_options_network.py:113 msgid "Default listening port:" msgstr "" -#: picard/ui/ui_options_network.py:127 +#: picard/ui/ui_options_network.py:114 msgid "Listen only on localhost" msgstr "" -#: picard/ui/ui_options_plugins.py:131 picard/ui/options/plugins.py:38 +#: picard/ui/ui_options_plugins.py:127 picard/ui/options/plugins.py:38 msgid "Plugins" msgstr "" -#: picard/ui/ui_options_plugins.py:132 picard/ui/options/plugins.py:122 +#: picard/ui/ui_options_plugins.py:128 picard/ui/options/plugins.py:122 msgid "Name" msgstr "이름" -#: picard/ui/ui_options_plugins.py:133 picard/util/tags.py:39 +#: picard/ui/ui_options_plugins.py:129 msgid "Version" msgstr "버전" -#: picard/ui/ui_options_plugins.py:134 picard/ui/options/plugins.py:125 +#: picard/ui/ui_options_plugins.py:130 picard/ui/options/plugins.py:125 msgid "Author" msgstr "작가" -#: picard/ui/ui_options_plugins.py:135 +#: picard/ui/ui_options_plugins.py:131 msgid "Install plugin..." msgstr "" -#: picard/ui/ui_options_plugins.py:136 +#: picard/ui/ui_options_plugins.py:132 msgid "Open plugin folder" msgstr "" -#: picard/ui/ui_options_plugins.py:137 +#: picard/ui/ui_options_plugins.py:133 msgid "Download plugins" msgstr "" -#: picard/ui/ui_options_plugins.py:138 +#: picard/ui/ui_options_plugins.py:134 msgid "Details" msgstr "" -#: picard/ui/ui_options_ratings.py:53 +#: picard/ui/ui_options_ratings.py:49 msgid "Enable track ratings" msgstr "" -#: picard/ui/ui_options_ratings.py:54 +#: picard/ui/ui_options_ratings.py:50 msgid "" "Picard saves the ratings together with an e-mail address identifying the " "user who did the rating. That way different ratings for different users can " @@ -1478,207 +1403,167 @@ msgid "" "your ratings." msgstr "" -#: picard/ui/ui_options_ratings.py:55 +#: picard/ui/ui_options_ratings.py:51 msgid "E-mail:" msgstr "" -#: picard/ui/ui_options_ratings.py:56 +#: picard/ui/ui_options_ratings.py:52 msgid "Submit ratings to MusicBrainz" msgstr "" -#: picard/ui/ui_options_releases.py:215 +#: picard/ui/ui_options_releases.py:104 msgid "Preferred release types" msgstr "" -#: picard/ui/ui_options_releases.py:217 -msgid "Single" -msgstr "" - -#: picard/ui/ui_options_releases.py:218 -msgid "EP" -msgstr "" - -#: picard/ui/ui_options_releases.py:219 -msgid "Compilation" -msgstr "" - -#: picard/ui/ui_options_releases.py:220 -msgid "Soundtrack" -msgstr "" - -#: picard/ui/ui_options_releases.py:221 -msgid "Spokenword" -msgstr "" - -#: picard/ui/ui_options_releases.py:222 -msgid "Interview" -msgstr "" - -#: picard/ui/ui_options_releases.py:223 -msgid "Audiobook" -msgstr "" - -#: picard/ui/ui_options_releases.py:224 -msgid "Live" -msgstr "" - -#: picard/ui/ui_options_releases.py:225 -msgid "Remix" -msgstr "" - -#: picard/ui/ui_options_releases.py:227 -msgid "Reset all" -msgstr "" - -#: picard/ui/ui_options_releases.py:228 +#: picard/ui/ui_options_releases.py:105 msgid "Preferred release countries" msgstr "" -#: picard/ui/ui_options_releases.py:229 picard/ui/ui_options_releases.py:232 +#: picard/ui/ui_options_releases.py:106 picard/ui/ui_options_releases.py:109 msgid ">" msgstr "" -#: picard/ui/ui_options_releases.py:230 picard/ui/ui_options_releases.py:233 +#: picard/ui/ui_options_releases.py:107 picard/ui/ui_options_releases.py:110 msgid "<" msgstr "" -#: picard/ui/ui_options_releases.py:231 +#: picard/ui/ui_options_releases.py:108 msgid "Preferred release formats" msgstr "" -#: picard/ui/ui_options_renaming.py:134 +#: picard/ui/ui_options_renaming.py:130 msgid "Rename files when saving" msgstr "" -#: picard/ui/ui_options_renaming.py:135 +#: picard/ui/ui_options_renaming.py:131 msgid "Replace non-ASCII characters" msgstr "" -#: picard/ui/ui_options_renaming.py:136 +#: picard/ui/ui_options_renaming.py:132 msgid "Windows compatibility" msgstr "" -#: picard/ui/ui_options_renaming.py:137 +#: picard/ui/ui_options_renaming.py:133 msgid "Move files to this directory when saving:" msgstr "" -#: picard/ui/ui_options_renaming.py:139 +#: picard/ui/ui_options_renaming.py:135 msgid "Delete empty directories" msgstr "" -#: picard/ui/ui_options_renaming.py:140 +#: picard/ui/ui_options_renaming.py:136 msgid "Move additional files:" msgstr "" -#: picard/ui/ui_options_renaming.py:141 +#: picard/ui/ui_options_renaming.py:137 msgid "Name files like this" msgstr "" -#: picard/ui/ui_options_renaming.py:148 +#: picard/ui/ui_options_renaming.py:144 msgid "Examples" msgstr "" -#: picard/ui/ui_options_script.py:49 +#: picard/ui/ui_options_script.py:45 msgid "Tagger Script" msgstr "" -#: picard/ui/ui_options_tags.py:165 +#: picard/ui/ui_options_tags.py:152 msgid "Write tags to files" msgstr "" -#: picard/ui/ui_options_tags.py:166 +#: picard/ui/ui_options_tags.py:153 msgid "Preserve timestamps of tagged files" msgstr "" -#: picard/ui/ui_options_tags.py:167 +#: picard/ui/ui_options_tags.py:154 msgid "Before Tagging" msgstr "" -#: picard/ui/ui_options_tags.py:168 +#: picard/ui/ui_options_tags.py:155 msgid "Clear existing tags" msgstr "" -#: picard/ui/ui_options_tags.py:169 +#: picard/ui/ui_options_tags.py:156 msgid "Remove ID3 tags from FLAC files" msgstr "FLAC 파일로부터 ID3 태그를 제거합니다." -#: picard/ui/ui_options_tags.py:170 +#: picard/ui/ui_options_tags.py:157 msgid "Remove APEv2 tags from MP3 files" msgstr "MP3 파일로부터 APEv2 태그를 제거합니다." -#: picard/ui/ui_options_tags.py:171 +#: picard/ui/ui_options_tags.py:158 msgid "" "Preserve these tags from being cleared or overwritten with MusicBrainz data:" msgstr "" -#: picard/ui/ui_options_tags.py:172 +#: picard/ui/ui_options_tags.py:159 msgid "Tags are separated by commas, and are case-sensitive." msgstr "" -#: picard/ui/ui_options_tags.py:173 +#: picard/ui/ui_options_tags.py:160 msgid "Tag Compatibility" msgstr "" -#: picard/ui/ui_options_tags.py:174 +#: picard/ui/ui_options_tags.py:161 msgid "ID3v2 Version" msgstr "" -#: picard/ui/ui_options_tags.py:175 +#: picard/ui/ui_options_tags.py:162 msgid "2.4" msgstr "" -#: picard/ui/ui_options_tags.py:176 +#: picard/ui/ui_options_tags.py:163 msgid "2.3" msgstr "" -#: picard/ui/ui_options_tags.py:177 +#: picard/ui/ui_options_tags.py:164 msgid "ID3v2 Text Encoding" msgstr "" -#: picard/ui/ui_options_tags.py:178 +#: picard/ui/ui_options_tags.py:165 msgid "UTF-8" msgstr "UTF-8" -#: picard/ui/ui_options_tags.py:179 +#: picard/ui/ui_options_tags.py:166 msgid "UTF-16" msgstr "UTF-16" -#: picard/ui/ui_options_tags.py:180 +#: picard/ui/ui_options_tags.py:167 msgid "ISO-8859-1" msgstr "ISO-8859-1" -#: picard/ui/ui_options_tags.py:181 +#: picard/ui/ui_options_tags.py:168 msgid "Join multiple ID3v2.3 tags with:" msgstr "" -#: picard/ui/ui_options_tags.py:182 +#: picard/ui/ui_options_tags.py:169 msgid "" "

Default is '/' to maintain compatibility with previous" " Picard releases.

New alternatives are ';_' or '_/_' or type your own." "

" msgstr "" -#: picard/ui/ui_options_tags.py:183 +#: picard/ui/ui_options_tags.py:170 msgid "Also include ID3v1 tags in the files" msgstr "" -#: picard/ui/ui_passworddialog.py:72 +#: picard/ui/ui_passworddialog.py:68 msgid "Authentication required" msgstr "" -#: picard/ui/ui_passworddialog.py:75 +#: picard/ui/ui_passworddialog.py:71 msgid "Save username and password" msgstr "" -#: picard/ui/ui_tagsfromfilenames.py:54 +#: picard/ui/ui_tagsfromfilenames.py:50 msgid "Convert File Names to Tags" msgstr "" -#: picard/ui/ui_tagsfromfilenames.py:55 +#: picard/ui/ui_tagsfromfilenames.py:51 msgid "Replace underscores with spaces" msgstr "" -#: picard/ui/ui_tagsfromfilenames.py:56 +#: picard/ui/ui_tagsfromfilenames.py:52 msgid "&Preview" msgstr "&미리보기" @@ -1734,7 +1619,11 @@ msgstr "" msgid "Regex Error" msgstr "" -#: picard/ui/options/cover.py:63 +#: picard/ui/options/cover.py:44 +msgid "title" +msgstr "" + +#: picard/ui/options/cover.py:68 msgid "Cover Art" msgstr "앨범 쟈켓" @@ -1750,11 +1639,11 @@ msgstr "" msgid "System default" msgstr "시스템 기본값" -#: picard/ui/options/interface.py:96 +#: picard/ui/options/interface.py:98 msgid "Language changed" msgstr "" -#: picard/ui/options/interface.py:96 +#: picard/ui/options/interface.py:99 msgid "" "You have changed the interface language. You have to restart Picard in order" " for the change to take effect." @@ -1776,31 +1665,35 @@ msgstr "파일" msgid "Ratings" msgstr "" -#: picard/ui/options/releases.py:33 +#: picard/ui/options/releases.py:87 msgid "Preferred Releases" msgstr "" +#: picard/ui/options/releases.py:121 +msgid "Reset all" +msgstr "" + #: picard/ui/options/renaming.py:37 msgid "File Naming" msgstr "" -#: picard/ui/options/renaming.py:184 +#: picard/ui/options/renaming.py:187 msgid "Error" msgstr "" -#: picard/ui/options/renaming.py:184 +#: picard/ui/options/renaming.py:187 msgid "The location to move files to must not be empty." msgstr "" -#: picard/ui/options/renaming.py:194 +#: picard/ui/options/renaming.py:197 msgid "The file naming format must not be empty." msgstr "" -#: picard/ui/options/scripting.py:63 +#: picard/ui/options/scripting.py:99 msgid "Scripting" msgstr "" -#: picard/ui/options/scripting.py:95 +#: picard/ui/options/scripting.py:131 msgid "Script Error" msgstr "" @@ -1920,199 +1813,199 @@ msgstr "" msgid "Grouping" msgstr "그룹화" -#: picard/util/tags.py:40 +#: picard/util/tags.py:39 msgid "ISRC" msgstr "" -#: picard/util/tags.py:41 +#: picard/util/tags.py:40 msgid "Mood" msgstr "" -#: picard/util/tags.py:42 +#: picard/util/tags.py:41 msgid "BPM" msgstr "" -#: picard/util/tags.py:43 +#: picard/util/tags.py:42 msgid "Copyright" msgstr "" -#: picard/util/tags.py:44 +#: picard/util/tags.py:43 msgid "License" msgstr "" -#: picard/util/tags.py:45 +#: picard/util/tags.py:44 msgid "Composer" msgstr "" -#: picard/util/tags.py:46 +#: picard/util/tags.py:45 msgid "Writer" msgstr "" -#: picard/util/tags.py:47 +#: picard/util/tags.py:46 msgid "Conductor" msgstr "" -#: picard/util/tags.py:48 +#: picard/util/tags.py:47 msgid "Lyricist" msgstr "" -#: picard/util/tags.py:49 +#: picard/util/tags.py:48 msgid "Arranger" msgstr "" -#: picard/util/tags.py:50 +#: picard/util/tags.py:49 msgid "Producer" msgstr "제작자" -#: picard/util/tags.py:51 +#: picard/util/tags.py:50 msgid "Engineer" msgstr "기술자" -#: picard/util/tags.py:52 +#: picard/util/tags.py:51 msgid "Subtitle" msgstr "부제" -#: picard/util/tags.py:53 +#: picard/util/tags.py:52 msgid "Disc Subtitle" msgstr "" -#: picard/util/tags.py:54 +#: picard/util/tags.py:53 msgid "Remixer" msgstr "" -#: picard/util/tags.py:55 +#: picard/util/tags.py:54 msgid "MusicBrainz Recording Id" msgstr "" -#: picard/util/tags.py:56 +#: picard/util/tags.py:55 msgid "MusicBrainz Track Id" msgstr "" -#: picard/util/tags.py:57 +#: picard/util/tags.py:56 msgid "MusicBrainz Release Id" msgstr "" -#: picard/util/tags.py:58 +#: picard/util/tags.py:57 msgid "MusicBrainz Artist Id" msgstr "" -#: picard/util/tags.py:59 +#: picard/util/tags.py:58 msgid "MusicBrainz Release Artist Id" msgstr "" -#: picard/util/tags.py:60 +#: picard/util/tags.py:59 msgid "MusicBrainz Work Id" msgstr "" -#: picard/util/tags.py:61 +#: picard/util/tags.py:60 msgid "MusicBrainz Release Group Id" msgstr "" -#: picard/util/tags.py:62 +#: picard/util/tags.py:61 msgid "MusicBrainz Disc Id" msgstr "" -#: picard/util/tags.py:63 -msgid "MusicBrainz Sort Name" -msgstr "" - -#: picard/util/tags.py:64 +#: picard/util/tags.py:62 msgid "MusicIP PUID" msgstr "" -#: picard/util/tags.py:65 +#: picard/util/tags.py:63 msgid "MusicIP Fingerprint" msgstr "" -#: picard/util/tags.py:66 +#: picard/util/tags.py:64 msgid "AcoustID" msgstr "" -#: picard/util/tags.py:67 +#: picard/util/tags.py:65 msgid "AcoustID Fingerprint" msgstr "" -#: picard/util/tags.py:68 +#: picard/util/tags.py:66 msgid "Disc Id" msgstr "" -#: picard/util/tags.py:69 -msgid "Website" -msgstr "웹주소" +#: picard/util/tags.py:67 +msgid "Artist Website" +msgstr "" -#: picard/util/tags.py:70 +#: picard/util/tags.py:68 msgid "Compilation (iTunes)" msgstr "" -#: picard/util/tags.py:71 +#: picard/util/tags.py:69 msgid "Comment" msgstr "댓글" -#: picard/util/tags.py:72 +#: picard/util/tags.py:70 msgid "Genre" msgstr "" -#: picard/util/tags.py:73 +#: picard/util/tags.py:71 msgid "Encoded By" msgstr "" -#: picard/util/tags.py:74 +#: picard/util/tags.py:72 +msgid "Encoder Settings" +msgstr "" + +#: picard/util/tags.py:73 msgid "Performer" msgstr "" -#: picard/util/tags.py:75 +#: picard/util/tags.py:74 msgid "Release Type" msgstr "" -#: picard/util/tags.py:76 +#: picard/util/tags.py:75 msgid "Release Status" msgstr "" -#: picard/util/tags.py:77 +#: picard/util/tags.py:76 msgid "Release Country" msgstr "" -#: picard/util/tags.py:78 +#: picard/util/tags.py:77 msgid "Record Label" msgstr "레코드 라벨" -#: picard/util/tags.py:80 +#: picard/util/tags.py:79 msgid "Catalog Number" msgstr "" -#: picard/util/tags.py:82 +#: picard/util/tags.py:80 msgid "DJ-Mixer" msgstr "" -#: picard/util/tags.py:83 +#: picard/util/tags.py:81 msgid "Media" msgstr "" -#: picard/util/tags.py:84 +#: picard/util/tags.py:82 msgid "Lyrics" msgstr "" -#: picard/util/tags.py:85 +#: picard/util/tags.py:83 msgid "Mixer" msgstr "" -#: picard/util/tags.py:86 +#: picard/util/tags.py:84 msgid "Language" msgstr "언어" -#: picard/util/tags.py:87 +#: picard/util/tags.py:85 msgid "Script" msgstr "" -#: picard/util/tags.py:89 +#: picard/util/tags.py:87 msgid "Rating" msgstr "" -#: picard/util/tags.py:90 +#: picard/util/tags.py:88 msgid "Artists" msgstr "" -#: picard/util/tags.py:91 +#: picard/util/tags.py:89 msgid "Work" msgstr "" diff --git a/po/mr.po b/po/mr.po index 1e7721dd6..8e342f401 100644 --- a/po/mr.po +++ b/po/mr.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: MusicBrainz\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2014-03-20 11:12+0100\n" -"PO-Revision-Date: 2014-03-21 08:44+0000\n" +"POT-Creation-Date: 2014-05-03 17:28+0200\n" +"PO-Revision-Date: 2014-05-04 08:44+0000\n" "Last-Translator: nikki\n" "Language-Team: Marathi (http://www.transifex.com/projects/p/musicbrainz/language/mr/)\n" "MIME-Version: 1.0\n" @@ -19,6 +19,10 @@ msgstr "" "Language: mr\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" +#: contrib/plugins/albumartist_website.py:3 +msgid "Album Artist Website" +msgstr "" + #: contrib/plugins/no_release.py:50 msgid "Enable plugin for all releases by default" msgstr "" @@ -31,63 +35,55 @@ msgstr "" msgid "Remove specific release information..." msgstr "" -#: contrib/plugins/open_in_gui.py:32 -msgid "Open Error" +#: contrib/plugins/standardise_performers.py:3 +msgid "Standardise Performers" msgstr "" -#: contrib/plugins/open_in_gui.py:32 -#, python-format -msgid "" -"Error while opening file:\n" -"\n" -"%s" -msgstr "फाईल उघडताना त्रुटी:\n\n%s" - -#: contrib/plugins/lastfm/ui_options_lastfm.py:117 +#: contrib/plugins/lastfm/ui_options_lastfm.py:99 msgid "Last.fm" msgstr "Last.fm" -#: contrib/plugins/lastfm/ui_options_lastfm.py:118 +#: contrib/plugins/lastfm/ui_options_lastfm.py:100 msgid "Use track tags" msgstr "" -#: contrib/plugins/lastfm/ui_options_lastfm.py:119 +#: contrib/plugins/lastfm/ui_options_lastfm.py:101 msgid "Use artist tags" msgstr "" -#: contrib/plugins/lastfm/ui_options_lastfm.py:120 +#: contrib/plugins/lastfm/ui_options_lastfm.py:102 #: picard/ui/options/tags.py:30 msgid "Tags" msgstr "" -#: contrib/plugins/lastfm/ui_options_lastfm.py:121 -#: picard/ui/ui_options_folksonomy.py:116 +#: contrib/plugins/lastfm/ui_options_lastfm.py:103 +#: picard/ui/ui_options_folksonomy.py:103 msgid "Ignore tags:" msgstr "" -#: contrib/plugins/lastfm/ui_options_lastfm.py:122 -#: picard/ui/ui_options_folksonomy.py:121 +#: contrib/plugins/lastfm/ui_options_lastfm.py:104 +#: picard/ui/ui_options_folksonomy.py:108 msgid "Join multiple tags with:" msgstr "" -#: contrib/plugins/lastfm/ui_options_lastfm.py:123 -#: picard/ui/ui_options_folksonomy.py:122 +#: contrib/plugins/lastfm/ui_options_lastfm.py:105 +#: picard/ui/ui_options_folksonomy.py:109 msgid " / " msgstr " / " -#: contrib/plugins/lastfm/ui_options_lastfm.py:124 -#: picard/ui/ui_options_folksonomy.py:123 +#: contrib/plugins/lastfm/ui_options_lastfm.py:106 +#: picard/ui/ui_options_folksonomy.py:110 msgid ", " msgstr ", " -#: contrib/plugins/lastfm/ui_options_lastfm.py:125 -#: picard/ui/ui_options_folksonomy.py:118 +#: contrib/plugins/lastfm/ui_options_lastfm.py:107 +#: picard/ui/ui_options_folksonomy.py:105 msgid "Minimal tag usage:" msgstr "" -#: contrib/plugins/lastfm/ui_options_lastfm.py:126 -#: picard/ui/ui_options_folksonomy.py:119 picard/ui/ui_options_matching.py:88 -#: picard/ui/ui_options_matching.py:89 picard/ui/ui_options_matching.py:90 +#: contrib/plugins/lastfm/ui_options_lastfm.py:108 +#: picard/ui/ui_options_folksonomy.py:106 picard/ui/ui_options_matching.py:75 +#: picard/ui/ui_options_matching.py:76 picard/ui/ui_options_matching.py:77 msgid " %" msgstr " %" @@ -95,419 +91,306 @@ msgstr " %" msgid "Calculate replay &gain..." msgstr "" -#: contrib/plugins/replaygain/__init__.py:66 +#: contrib/plugins/replaygain/__init__.py:67 #, python-format -msgid "Calculating replay gain for \"%s\"..." +msgid "Calculating replay gain for \"%(filename)s\"..." msgstr "" -#: contrib/plugins/replaygain/__init__.py:71 +#: contrib/plugins/replaygain/__init__.py:75 #, python-format -msgid "Replay gain for \"%s\" successfully calculated." +msgid "Replay gain for \"%(filename)s\" successfully calculated." msgstr "" -#: contrib/plugins/replaygain/__init__.py:73 +#: contrib/plugins/replaygain/__init__.py:80 #, python-format -msgid "Could not calculate replay gain for \"%s\"." +msgid "Could not calculate replay gain for \"%(filename)s\"." msgstr "" -#: contrib/plugins/replaygain/__init__.py:76 +#: contrib/plugins/replaygain/__init__.py:85 msgid "Calculate album &gain..." msgstr "" -#: contrib/plugins/replaygain/__init__.py:103 -#: contrib/plugins/replaygain/__init__.py:111 +#: contrib/plugins/replaygain/__init__.py:113 +#: contrib/plugins/replaygain/__init__.py:124 #, python-format -msgid "Calculating album gain for \"%s\"..." +msgid "Calculating album gain for \"%(album)s\"..." msgstr "" -#: contrib/plugins/replaygain/__init__.py:119 +#: contrib/plugins/replaygain/__init__.py:135 #, python-format -msgid "Album gain for \"%s\" successfully calculated." +msgid "Album gain for \"%(album)s\" successfully calculated." msgstr "" -#: contrib/plugins/replaygain/__init__.py:121 +#: contrib/plugins/replaygain/__init__.py:140 #, python-format -msgid "Could not calculate album gain for \"%s\"." +msgid "Could not calculate album gain for \"%(album)s\"." msgstr "" -#: picard/acoustid.py:102 +#: contrib/plugins/replaygain/ui_options_replaygain.py:59 +msgid "Replay Gain" +msgstr "" + +#: contrib/plugins/replaygain/ui_options_replaygain.py:60 +msgid "Path to VorbisGain:" +msgstr "" + +#: contrib/plugins/replaygain/ui_options_replaygain.py:61 +msgid "Path to MP3Gain:" +msgstr "" + +#: contrib/plugins/replaygain/ui_options_replaygain.py:62 +msgid "Path to metaflac:" +msgstr "" + +#: contrib/plugins/replaygain/ui_options_replaygain.py:63 +msgid "Path to wvgain:" +msgstr "" + +#: contrib/plugins/viewvariables/__init__.py:42 #, python-format -msgid "AcoustID lookup network error for '%s'!" +msgid "File: %s" msgstr "" -#: picard/acoustid.py:117 +#: contrib/plugins/viewvariables/__init__.py:47 #, python-format -msgid "AcoustID lookup failed for '%s'!" +msgid "Track: %s %s " msgstr "" -#: picard/acoustid.py:128 +#: contrib/plugins/viewvariables/__init__.py:49 +msgid "Variables" +msgstr "" + +#: contrib/plugins/viewvariables/__init__.py:69 +msgid "File variables" +msgstr "" + +#: contrib/plugins/viewvariables/__init__.py:74 +msgid "Hidden variables" +msgstr "" + +#: contrib/plugins/viewvariables/__init__.py:79 +msgid "Tag variables" +msgstr "" + +#: contrib/plugins/viewvariables/ui_variables_dialog.py:73 +msgid "Variable" +msgstr "" + +#: contrib/plugins/viewvariables/ui_variables_dialog.py:75 +msgid "Value" +msgstr "" + +#: picard/acoustid.py:109 #, python-format -msgid "Acoustid lookup returned no result for file '%s'" +msgid "AcoustID lookup network error for '%(filename)s'!" msgstr "" -#: picard/acoustid.py:132 +#: picard/acoustid.py:133 #, python-format -msgid "Looking up the fingerprint for file %s..." +msgid "AcoustID lookup failed for '%(filename)s'!" msgstr "" -#: picard/acoustidmanager.py:78 -msgid "Submitting AcoustIDs..." -msgstr "" - -#: picard/acoustidmanager.py:83 +#: picard/acoustid.py:155 #, python-format -msgid "AcoustID submission failed with error '%s'" +msgid "AcoustID lookup returned no result for file '%(filename)s'" msgstr "" -#: picard/acoustidmanager.py:85 +#: picard/acoustid.py:166 +#, python-format +msgid "Looking up the fingerprint for file '%(filename)s' ..." +msgstr "" + +#: picard/acoustidmanager.py:80 +msgid "Submitting AcoustIDs ..." +msgstr "" + +#: picard/acoustidmanager.py:94 +#, python-format +msgid "AcoustID submission failed with error '%(error)s'" +msgstr "" + +#: picard/acoustidmanager.py:102 msgid "AcoustIDs successfully submitted." msgstr "" -#: picard/album.py:64 picard/cluster.py:234 +#: picard/album.py:65 picard/cluster.py:255 msgid "Unmatched Files" msgstr "" -#: picard/album.py:187 +#: picard/album.py:188 #, python-format msgid "[could not load album %s]" msgstr "" -#: picard/album.py:272 +#: picard/album.py:277 #, python-format -msgid "Album %s loaded" +msgid "Album %(id)s loaded: %(artist)s - %(album)s" msgstr "" -#: picard/album.py:288 +#: picard/album.py:294 +#, python-format +msgid "Loading album %(id)s ..." +msgstr "" + +#: picard/album.py:303 msgid "[loading album information]" msgstr "" -#: picard/album.py:463 +#: picard/album.py:478 #, python-format msgid "; %i image" msgid_plural "; %i images" msgstr[0] "" msgstr[1] "" -#: picard/cluster.py:150 picard/cluster.py:159 +#: picard/cluster.py:155 picard/cluster.py:168 #, python-format -msgid "No matching releases for cluster %s" +msgid "No matching releases for cluster %(album)s" msgstr "" -#: picard/cluster.py:161 +#: picard/cluster.py:174 #, python-format -msgid "Cluster %s identified!" +msgid "Cluster %(album)s identified!" msgstr "" -#: picard/cluster.py:168 +#: picard/cluster.py:185 #, python-format -msgid "Looking up the metadata for cluster %s..." +msgid "Looking up the metadata for cluster %(album)s..." msgstr "" -#: picard/collection.py:60 +#: picard/collection.py:64 #, python-format -msgid "Added %i release to collection \"%s\"" -msgid_plural "Added %i releases to collection \"%s\"" +msgid "Added %(count)i release to collection \"%(name)s\"" +msgid_plural "Added %(count)i releases to collection \"%(name)s\"" msgstr[0] "" msgstr[1] "" -#: picard/collection.py:72 +#: picard/collection.py:86 #, python-format -msgid "Removed %i release from collection \"%s\"" -msgid_plural "Removed %i releases from collection \"%s\"" +msgid "Removed %(count)i release from collection \"%(name)s\"" +msgid_plural "Removed %(count)i releases from collection \"%(name)s\"" msgstr[0] "" msgstr[1] "" -#: picard/collection.py:81 +#: picard/collection.py:100 #, python-format -msgid "Error loading collections: %s" +msgid "Error loading collections: %(error)s" msgstr "" -#: picard/config_upgrade.py:57 picard/config_upgrade.py:70 +#: picard/config_upgrade.py:58 picard/config_upgrade.py:71 msgid "Various Artists file naming scheme removal" msgstr "" -#: picard/config_upgrade.py:58 +#: picard/config_upgrade.py:59 msgid "" "The separate file naming scheme for various artists albums has been removed in this version of Picard.\n" "Your file naming scheme has automatically been merged with that of single artist albums." msgstr "" -#: picard/config_upgrade.py:71 +#: picard/config_upgrade.py:72 msgid "" "The separate file naming scheme for various artists albums has been removed in this version of Picard.\n" "You currently do not use this option, but have a separate file naming scheme defined.\n" "Do you want to remove it or merge it with your file naming scheme for single artist albums?" msgstr "" -#: picard/config_upgrade.py:77 +#: picard/config_upgrade.py:78 msgid "Merge" msgstr "" -#: picard/config_upgrade.py:77 picard/ui/metadatabox.py:254 +#: picard/config_upgrade.py:78 picard/ui/metadatabox.py:254 msgid "Remove" msgstr "काढून टाका" -#: picard/const.py:67 -msgid "CD" -msgstr "" - -#: picard/const.py:68 -msgid "CD-R" -msgstr "" - -#: picard/const.py:69 -msgid "HDCD" -msgstr "" - -#: picard/const.py:70 -msgid "8cm CD" -msgstr "" - -#: picard/const.py:71 -msgid "Vinyl" -msgstr "" - -#: picard/const.py:72 -msgid "7\" Vinyl" -msgstr "" - -#: picard/const.py:73 -msgid "10\" Vinyl" -msgstr "" - -#: picard/const.py:74 -msgid "12\" Vinyl" -msgstr "" - -#: picard/const.py:75 -msgid "Digital Media" -msgstr "" - -#: picard/const.py:76 -msgid "USB Flash Drive" -msgstr "" - -#: picard/const.py:77 -msgid "slotMusic" -msgstr "" - -#: picard/const.py:78 -msgid "Cassette" -msgstr "" - -#: picard/const.py:79 -msgid "DVD" -msgstr "" - -#: picard/const.py:80 -msgid "DVD-Audio" -msgstr "" - -#: picard/const.py:81 -msgid "DVD-Video" -msgstr "" - -#: picard/const.py:82 -msgid "SACD" -msgstr "" - -#: picard/const.py:83 -msgid "DualDisc" -msgstr "" - -#: picard/const.py:84 -msgid "MiniDisc" -msgstr "" - -#: picard/const.py:85 -msgid "Blu-ray" -msgstr "" - -#: picard/const.py:86 -msgid "HD-DVD" -msgstr "" - -#: picard/const.py:87 -msgid "Videotape" -msgstr "" - -#: picard/const.py:88 -msgid "VHS" -msgstr "" - -#: picard/const.py:89 -msgid "Betamax" -msgstr "" - #: picard/const.py:90 -msgid "VCD" -msgstr "" - -#: picard/const.py:91 -msgid "SVCD" -msgstr "" - -#: picard/const.py:92 -msgid "UMD" -msgstr "" - -#: picard/const.py:93 picard/coverartarchive.py:33 -#: picard/ui/ui_options_releases.py:226 -msgid "Other" -msgstr "" - -#: picard/const.py:94 -msgid "LaserDisc" -msgstr "" - -#: picard/const.py:95 -msgid "Cartridge" -msgstr "" - -#: picard/const.py:96 -msgid "Reel-to-reel" -msgstr "" - -#: picard/const.py:97 -msgid "DAT" -msgstr "" - -#: picard/const.py:98 -msgid "Wax Cylinder" -msgstr "" - -#: picard/const.py:99 -msgid "Piano Roll" -msgstr "" - -#: picard/const.py:100 -msgid "DCC" -msgstr "" - -#: picard/const.py:115 msgid "Danish" msgstr "" -#: picard/const.py:116 +#: picard/const.py:91 msgid "German" msgstr "जर्मन" -#: picard/const.py:118 +#: picard/const.py:93 msgid "English" msgstr "इंग्लिश" -#: picard/const.py:119 +#: picard/const.py:94 msgid "English (Canada)" msgstr "इंग्लिश (कॅनडा)" -#: picard/const.py:120 +#: picard/const.py:95 msgid "English (UK)" msgstr "इंग्लिश (यू.के.)" -#: picard/const.py:122 +#: picard/const.py:97 msgid "Spanish" msgstr "स्पॅनिश" -#: picard/const.py:123 +#: picard/const.py:98 msgid "Estonian" msgstr "एस्टोनियन" -#: picard/const.py:125 +#: picard/const.py:100 msgid "Finnish" msgstr "फिनिश" -#: picard/const.py:127 +#: picard/const.py:102 msgid "French" msgstr "फ्रेंच" -#: picard/const.py:136 +#: picard/const.py:111 msgid "Italian" msgstr "इटालियन" -#: picard/const.py:143 +#: picard/const.py:118 msgid "Dutch" msgstr "डच" -#: picard/const.py:145 +#: picard/const.py:120 msgid "Polish" msgstr "पोलिश" -#: picard/const.py:147 +#: picard/const.py:122 msgid "Brazilian Portuguese" msgstr "ब्राझिलियन पोर्तुगीज" -#: picard/const.py:154 +#: picard/const.py:129 msgid "Swedish" msgstr "स्वीडीश" -#: picard/coverart.py:84 +#: picard/coverart.py:85 #, python-format -msgid "Coverart %s downloaded" +msgid "Cover art of type '%(type)s' downloaded for %(albumid)s from %(host)s" msgstr "" -#: picard/coverart.py:240 +#: picard/coverart.py:256 #, python-format -msgid "Downloading http://%s:%i%s" -msgstr "" - -#: picard/coverartarchive.py:24 -msgid "Front" -msgstr "पुढील" - -#: picard/coverartarchive.py:25 -msgid "Back" -msgstr "मागील" - -#: picard/coverartarchive.py:26 -msgid "Booklet" -msgstr "पुस्तिका" - -#: picard/coverartarchive.py:27 -msgid "Medium" -msgstr "" - -#: picard/coverartarchive.py:28 -msgid "Tray" -msgstr "" - -#: picard/coverartarchive.py:29 -msgid "Obi" +msgid "" +"Downloading cover art of type '%(type)s' for %(albumid)s from %(host)s .." msgstr "" #: picard/coverartarchive.py:30 -msgid "Spine" -msgstr "" - -#: picard/coverartarchive.py:31 picard/ui/mainwindow.py:546 -msgid "Track" -msgstr "" - -#: picard/coverartarchive.py:32 -msgid "Sticker" -msgstr "" - -#: picard/coverartarchive.py:34 msgid "Unknown" msgstr "अज्ञात" -#: picard/file.py:536 +#: picard/file.py:494 #, python-format -msgid "No matching tracks for file %s" +msgid "No matching tracks for file '%(filename)s'" msgstr "" -#: picard/file.py:548 +#: picard/file.py:510 #, python-format -msgid "No matching tracks above the threshold for file %s" +msgid "No matching tracks above the threshold for file '%(filename)s'" msgstr "" -#: picard/file.py:551 +#: picard/file.py:517 #, python-format -msgid "File %s identified!" +msgid "File '%(filename)s' identified!" msgstr "" -#: picard/file.py:567 +#: picard/file.py:537 #, python-format -msgid "Looking up the metadata for file %s..." +msgid "Looking up the metadata for file %(filename)s ..." msgstr "" #: picard/releasegroup.py:53 @@ -518,11 +401,11 @@ msgstr "" msgid "Year" msgstr "" -#: picard/releasegroup.py:55 picard/ui/cdlookup.py:34 +#: picard/releasegroup.py:55 picard/ui/cdlookup.py:35 msgid "Country" msgstr "देश" -#: picard/releasegroup.py:56 picard/util/tags.py:81 +#: picard/releasegroup.py:56 msgid "Format" msgstr "" @@ -542,16 +425,23 @@ msgstr "" msgid "[no release info]" msgstr "" -#: picard/tagger.py:316 +#: picard/tagger.py:370 #, python-format -msgid "Loading directory %s" +msgid "Adding %(count)d file from '%(directory)s' ..." +msgid_plural "Adding %(count)d files from '%(directory)s' ..." +msgstr[0] "" +msgstr[1] "" + +#: picard/tagger.py:512 +#, python-format +msgid "Removing album %(id)s: %(artist)s - %(album)s" msgstr "" -#: picard/tagger.py:452 +#: picard/tagger.py:528 msgid "CD Lookup Error" msgstr "" -#: picard/tagger.py:453 +#: picard/tagger.py:529 #, python-format msgid "" "Error while reading CD:\n" @@ -559,44 +449,43 @@ msgid "" "%s" msgstr "" -#: picard/ui/cdlookup.py:34 picard/ui/mainwindow.py:544 -#: picard/ui/ui_options_releases.py:216 picard/util/tags.py:21 +#: picard/ui/cdlookup.py:35 picard/ui/mainwindow.py:597 picard/util/tags.py:21 msgid "Album" msgstr "" -#: picard/ui/cdlookup.py:34 picard/ui/itemviews.py:96 -#: picard/ui/mainwindow.py:545 picard/util/tags.py:22 +#: picard/ui/cdlookup.py:35 picard/ui/itemviews.py:96 +#: picard/ui/mainwindow.py:598 picard/util/tags.py:22 msgid "Artist" msgstr "कलाकार" -#: picard/ui/cdlookup.py:34 picard/util/tags.py:24 +#: picard/ui/cdlookup.py:35 picard/util/tags.py:24 msgid "Date" msgstr "दिनांक" -#: picard/ui/cdlookup.py:35 +#: picard/ui/cdlookup.py:36 msgid "Labels" msgstr "" -#: picard/ui/cdlookup.py:35 +#: picard/ui/cdlookup.py:36 msgid "Catalog #s" msgstr "" -#: picard/ui/cdlookup.py:35 picard/util/tags.py:79 +#: picard/ui/cdlookup.py:36 picard/util/tags.py:78 msgid "Barcode" msgstr "" -#: picard/ui/collectionmenu.py:31 +#: picard/ui/collectionmenu.py:42 msgid "Refresh List" msgstr "यादी ताजी करा" -#: picard/ui/collectionmenu.py:92 +#: picard/ui/collectionmenu.py:86 #, python-format msgid "%s (%i release)" msgid_plural "%s (%i releases)" msgstr[0] "" msgstr[1] "" -#: picard/ui/coverartbox.py:142 +#: picard/ui/coverartbox.py:141 msgid "View release on MusicBrainz" msgstr "" @@ -612,59 +501,59 @@ msgstr "" msgid "&Set as starting directory" msgstr "" -#: picard/ui/infodialog.py:36 picard/ui/infodialog.py:75 +#: picard/ui/infodialog.py:37 picard/ui/infodialog.py:80 msgid "Info" msgstr "माहिती" -#: picard/ui/infodialog.py:80 +#: picard/ui/infodialog.py:85 msgid "Filename:" msgstr "" -#: picard/ui/infodialog.py:82 +#: picard/ui/infodialog.py:87 msgid "Format:" msgstr "" -#: picard/ui/infodialog.py:86 +#: picard/ui/infodialog.py:91 msgid "Size:" msgstr "" -#: picard/ui/infodialog.py:90 +#: picard/ui/infodialog.py:95 msgid "Length:" msgstr "" -#: picard/ui/infodialog.py:92 +#: picard/ui/infodialog.py:97 msgid "Bitrate:" msgstr "" -#: picard/ui/infodialog.py:94 +#: picard/ui/infodialog.py:99 msgid "Sample rate:" msgstr "" -#: picard/ui/infodialog.py:96 +#: picard/ui/infodialog.py:101 msgid "Bits per sample:" msgstr "" -#: picard/ui/infodialog.py:100 +#: picard/ui/infodialog.py:105 msgid "Mono" msgstr "मोनो" -#: picard/ui/infodialog.py:102 +#: picard/ui/infodialog.py:107 msgid "Stereo" msgstr "स्टिरीओ" -#: picard/ui/infodialog.py:105 +#: picard/ui/infodialog.py:110 msgid "Channels:" msgstr "वाहिन्या:" -#: picard/ui/infodialog.py:116 +#: picard/ui/infodialog.py:121 msgid "Album Info" msgstr "अल्बम माहिती" -#: picard/ui/infodialog.py:124 +#: picard/ui/infodialog.py:129 msgid "&Errors" msgstr "" -#: picard/ui/infodialog.py:134 picard/ui/ui_infodialog.py:77 +#: picard/ui/infodialog.py:139 picard/ui/ui_infodialog.py:73 msgid "&Info" msgstr "" @@ -688,7 +577,7 @@ msgstr "" msgid "Title" msgstr "शीर्षक" -#: picard/ui/itemviews.py:95 picard/util/tags.py:88 +#: picard/ui/itemviews.py:95 picard/util/tags.py:86 msgid "Length" msgstr "लांबी" @@ -713,7 +602,7 @@ msgid "Collections" msgstr "" #: picard/ui/itemviews.py:365 -msgid "&Plugins" +msgid "P&lugins" msgstr "" #: picard/ui/itemviews.py:541 @@ -736,12 +625,16 @@ msgstr "" msgid "Contains albums and matched files" msgstr "" -#: picard/ui/logview.py:91 +#: picard/ui/logview.py:109 msgid "Log" msgstr "लॉग" -#: picard/ui/logview.py:99 -msgid "Status History" +#: picard/ui/logview.py:113 +msgid "Debug mode" +msgstr "" + +#: picard/ui/logview.py:134 +msgid "Activity History" msgstr "" #: picard/ui/mainwindow.py:74 @@ -775,276 +668,309 @@ msgstr "तयार" #: picard/ui/mainwindow.py:220 msgid "" -"Picard listens on a port to integrate with your browser and downloads " -"release information when you click the \"Tagger\" buttons on the MusicBrainz" -" website" +"Picard listens on this port to integrate with your browser. When you " +"\"Search\" or \"Open in Browser\" from Picard, clicking the \"Tagger\" " +"button on the web page loads the release into Picard." msgstr "" -#: picard/ui/mainwindow.py:240 +#: picard/ui/mainwindow.py:243 #, python-format msgid " Listening on port %(port)d " msgstr "" -#: picard/ui/mainwindow.py:263 +#: picard/ui/mainwindow.py:299 msgid "Submission Error" msgstr "" -#: picard/ui/mainwindow.py:264 +#: picard/ui/mainwindow.py:300 msgid "" "You need to configure your AcoustID API key before you can submit " "fingerprints." msgstr "" -#: picard/ui/mainwindow.py:269 +#: picard/ui/mainwindow.py:305 msgid "&Options..." msgstr "" -#: picard/ui/mainwindow.py:273 +#: picard/ui/mainwindow.py:309 msgid "&Cut" msgstr "" -#: picard/ui/mainwindow.py:278 +#: picard/ui/mainwindow.py:314 msgid "&Paste" msgstr "" -#: picard/ui/mainwindow.py:283 +#: picard/ui/mainwindow.py:319 msgid "&Help..." msgstr "" -#: picard/ui/mainwindow.py:288 +#: picard/ui/mainwindow.py:323 msgid "&About..." msgstr "" -#: picard/ui/mainwindow.py:292 +#: picard/ui/mainwindow.py:327 msgid "&Donate..." msgstr "" -#: picard/ui/mainwindow.py:295 +#: picard/ui/mainwindow.py:330 msgid "&Report a Bug..." msgstr "" -#: picard/ui/mainwindow.py:298 +#: picard/ui/mainwindow.py:333 msgid "&Support Forum..." msgstr "" -#: picard/ui/mainwindow.py:301 +#: picard/ui/mainwindow.py:336 msgid "&Add Files..." msgstr "" -#: picard/ui/mainwindow.py:302 +#: picard/ui/mainwindow.py:337 msgid "Add files to the tagger" msgstr "" -#: picard/ui/mainwindow.py:307 +#: picard/ui/mainwindow.py:342 msgid "A&dd Folder..." msgstr "" -#: picard/ui/mainwindow.py:308 +#: picard/ui/mainwindow.py:343 msgid "Add a folder to the tagger" msgstr "" -#: picard/ui/mainwindow.py:310 +#: picard/ui/mainwindow.py:345 msgid "Ctrl+D" msgstr "Ctrl+D" -#: picard/ui/mainwindow.py:313 +#: picard/ui/mainwindow.py:348 msgid "&Save" msgstr "" -#: picard/ui/mainwindow.py:314 +#: picard/ui/mainwindow.py:349 msgid "Save selected files" msgstr "" -#: picard/ui/mainwindow.py:320 +#: picard/ui/mainwindow.py:355 msgid "S&ubmit" msgstr "" -#: picard/ui/mainwindow.py:321 -msgid "Submit fingerprints" +#: picard/ui/mainwindow.py:356 +msgid "Submit acoustic fingerprints" msgstr "" -#: picard/ui/mainwindow.py:325 +#: picard/ui/mainwindow.py:360 msgid "E&xit" msgstr "" -#: picard/ui/mainwindow.py:328 +#: picard/ui/mainwindow.py:363 msgid "Ctrl+Q" msgstr "Ctrl+Q" -#: picard/ui/mainwindow.py:331 +#: picard/ui/mainwindow.py:366 msgid "&Remove" msgstr "" -#: picard/ui/mainwindow.py:332 +#: picard/ui/mainwindow.py:367 msgid "Remove selected files/albums" msgstr "" -#: picard/ui/mainwindow.py:336 +#: picard/ui/mainwindow.py:371 msgid "Lookup in &Browser" msgstr "" -#: picard/ui/mainwindow.py:337 +#: picard/ui/mainwindow.py:372 msgid "Lookup selected item on MusicBrainz website" msgstr "" -#: picard/ui/mainwindow.py:341 +#: picard/ui/mainwindow.py:376 msgid "File &Browser" msgstr "" -#: picard/ui/mainwindow.py:345 +#: picard/ui/mainwindow.py:380 msgid "Ctrl+B" msgstr "Ctrl+B" -#: picard/ui/mainwindow.py:348 +#: picard/ui/mainwindow.py:383 msgid "&Cover Art" msgstr "" -#: picard/ui/mainwindow.py:354 picard/ui/mainwindow.py:539 +#: picard/ui/mainwindow.py:389 picard/ui/mainwindow.py:591 msgid "Search" msgstr "" -#: picard/ui/mainwindow.py:357 -msgid "&CD Lookup..." +#: picard/ui/mainwindow.py:392 +msgid "Lookup &CD..." msgstr "" -#: picard/ui/mainwindow.py:358 picard/ui/mainwindow.py:359 -msgid "Lookup CD" +#: picard/ui/mainwindow.py:393 +msgid "Lookup the details of the CD in your drive" msgstr "" -#: picard/ui/mainwindow.py:361 +#: picard/ui/mainwindow.py:395 msgid "Ctrl+K" msgstr "Ctrl+K" -#: picard/ui/mainwindow.py:364 +#: picard/ui/mainwindow.py:398 msgid "&Scan" msgstr "" -#: picard/ui/mainwindow.py:367 +#: picard/ui/mainwindow.py:401 msgid "Ctrl+Y" msgstr "Ctrl+Y" -#: picard/ui/mainwindow.py:370 +#: picard/ui/mainwindow.py:404 msgid "Cl&uster" msgstr "" -#: picard/ui/mainwindow.py:373 +#: picard/ui/mainwindow.py:407 msgid "Ctrl+U" msgstr "Ctrl+U" -#: picard/ui/mainwindow.py:376 +#: picard/ui/mainwindow.py:410 msgid "&Lookup" msgstr "" -#: picard/ui/mainwindow.py:377 picard/ui/mainwindow.py:378 -msgid "Lookup metadata" +#: picard/ui/mainwindow.py:411 +msgid "Lookup selected items in MusicBrainz" msgstr "" -#: picard/ui/mainwindow.py:381 +#: picard/ui/mainwindow.py:416 msgid "Ctrl+L" msgstr "Ctrl+L" -#: picard/ui/mainwindow.py:384 +#: picard/ui/mainwindow.py:419 msgid "&Info..." msgstr "" -#: picard/ui/mainwindow.py:387 +#: picard/ui/mainwindow.py:422 msgid "Ctrl+I" msgstr "Ctrl+I" -#: picard/ui/mainwindow.py:390 +#: picard/ui/mainwindow.py:425 msgid "&Refresh" msgstr "" -#: picard/ui/mainwindow.py:391 +#: picard/ui/mainwindow.py:426 msgid "Ctrl+R" msgstr "Ctrl+R" -#: picard/ui/mainwindow.py:394 +#: picard/ui/mainwindow.py:429 msgid "&Rename Files" msgstr "" -#: picard/ui/mainwindow.py:399 +#: picard/ui/mainwindow.py:434 msgid "&Move Files" msgstr "" -#: picard/ui/mainwindow.py:404 +#: picard/ui/mainwindow.py:439 msgid "Save &Tags" msgstr "" -#: picard/ui/mainwindow.py:409 +#: picard/ui/mainwindow.py:444 msgid "Tags From &File Names..." msgstr "" -#: picard/ui/mainwindow.py:412 -msgid "View &Log..." +#: picard/ui/mainwindow.py:447 +msgid "&Open My Collections in Browser" msgstr "" -#: picard/ui/mainwindow.py:415 -msgid "View Status &History..." +#: picard/ui/mainwindow.py:451 +msgid "View Error/Debug &Log" msgstr "" -#: picard/ui/mainwindow.py:422 -msgid "&Open..." +#: picard/ui/mainwindow.py:454 +msgid "View Activity &History" msgstr "" -#: picard/ui/mainwindow.py:423 -msgid "Open the file" -msgstr "फाईल उघडा" - -#: picard/ui/mainwindow.py:426 -msgid "Open &Folder..." -msgstr "" - -#: picard/ui/mainwindow.py:427 -msgid "Open the containing folder" -msgstr "" - -#: picard/ui/mainwindow.py:448 -msgid "&File" -msgstr "" - -#: picard/ui/mainwindow.py:456 -msgid "&Edit" +#: picard/ui/mainwindow.py:461 +msgid "&Play file" msgstr "" #: picard/ui/mainwindow.py:462 +msgid "Play the file in your default media player" +msgstr "" + +#: picard/ui/mainwindow.py:466 +msgid "Open Containing &Folder" +msgstr "" + +#: picard/ui/mainwindow.py:467 +msgid "Open the containing folder in your file explorer" +msgstr "" + +#: picard/ui/mainwindow.py:492 +msgid "&File" +msgstr "" + +#: picard/ui/mainwindow.py:503 +msgid "&Edit" +msgstr "" + +#: picard/ui/mainwindow.py:509 msgid "&View" msgstr "" -#: picard/ui/mainwindow.py:470 +#: picard/ui/mainwindow.py:515 msgid "&Options" msgstr "" -#: picard/ui/mainwindow.py:476 +#: picard/ui/mainwindow.py:521 msgid "&Tools" msgstr "" -#: picard/ui/mainwindow.py:485 picard/ui/util.py:35 +#: picard/ui/mainwindow.py:532 picard/ui/util.py:35 msgid "&Help" msgstr "" -#: picard/ui/mainwindow.py:505 +#: picard/ui/mainwindow.py:553 msgid "Actions" msgstr "" -#: picard/ui/mainwindow.py:608 +#: picard/ui/mainwindow.py:599 +msgid "Track" +msgstr "" + +#: picard/ui/mainwindow.py:662 msgid "All Supported Formats" msgstr "" -#: picard/ui/mainwindow.py:705 +#: picard/ui/mainwindow.py:695 +#, python-format +msgid "Adding directory: '%(directory)s' ..." +msgstr "" + +#: picard/ui/mainwindow.py:702 +#, python-format +msgid "Adding multiple directories from '%(directory)s' ..." +msgstr "" + +#: picard/ui/mainwindow.py:767 msgid "Configuration Required" msgstr "" -#: picard/ui/mainwindow.py:706 +#: picard/ui/mainwindow.py:768 msgid "" "Audio fingerprinting is not yet configured. Would you like to configure it " "now?" msgstr "" -#: picard/ui/mainwindow.py:784 picard/ui/mainwindow.py:791 +#: picard/ui/mainwindow.py:848 #, python-format -msgid " (Error: %s)" -msgstr " (त्रुटी: %s)" +msgid "%(filename)s (error: %(error)s)" +msgstr "" + +#: picard/ui/mainwindow.py:854 +#, python-format +msgid "%(filename)s" +msgstr "" + +#: picard/ui/mainwindow.py:864 +#, python-format +msgid "%(filename)s (%(similarity)d%%) (error: %(error)s)" +msgstr "" + +#: picard/ui/mainwindow.py:871 +#, python-format +msgid "%(filename)s (%(similarity)d%%)" +msgstr "" #: picard/ui/metadatabox.py:82 #, python-format @@ -1098,387 +1024,387 @@ msgid_plural "Use Original Values" msgstr[0] "" msgstr[1] "" -#: picard/ui/passworddialog.py:37 +#: picard/ui/passworddialog.py:40 #, python-format msgid "" "The server %s requires you to login. Please enter your username and " "password." msgstr "" -#: picard/ui/passworddialog.py:75 +#: picard/ui/passworddialog.py:79 #, python-format msgid "" "The proxy %s requires you to login. Please enter your username and password." msgstr "" -#: picard/ui/tagsfromfilenames.py:55 picard/ui/tagsfromfilenames.py:100 +#: picard/ui/tagsfromfilenames.py:56 picard/ui/tagsfromfilenames.py:101 msgid "File Name" msgstr "फाईलचे नाव" -#: picard/ui/ui_cdlookup.py:66 picard/ui/ui_options_cdlookup.py:55 -#: picard/ui/ui_options_cdlookup_select.py:62 picard/ui/options/cdlookup.py:38 +#: picard/ui/ui_cdlookup.py:53 picard/ui/ui_options_cdlookup.py:42 +#: picard/ui/ui_options_cdlookup_select.py:49 picard/ui/options/cdlookup.py:38 msgid "CD Lookup" msgstr "" -#: picard/ui/ui_cdlookup.py:67 +#: picard/ui/ui_cdlookup.py:54 msgid "The following releases on MusicBrainz match the CD:" msgstr "" -#: picard/ui/ui_cdlookup.py:68 +#: picard/ui/ui_cdlookup.py:55 msgid "OK" msgstr "ठीक" -#: picard/ui/ui_cdlookup.py:69 +#: picard/ui/ui_cdlookup.py:56 msgid "Lookup manually" msgstr "" -#: picard/ui/ui_cdlookup.py:70 +#: picard/ui/ui_cdlookup.py:57 msgid "Cancel" msgstr "रद्द करा" -#: picard/ui/ui_edittagdialog.py:101 +#: picard/ui/ui_edittagdialog.py:88 msgid "Edit Tag" msgstr "टॅग संपादित करा" -#: picard/ui/ui_edittagdialog.py:102 +#: picard/ui/ui_edittagdialog.py:89 msgid "Edit value" msgstr "मूल्य संपादित करा" -#: picard/ui/ui_edittagdialog.py:103 +#: picard/ui/ui_edittagdialog.py:90 msgid "Add value" msgstr "मूल्य समाविष्ट करा" -#: picard/ui/ui_edittagdialog.py:104 +#: picard/ui/ui_edittagdialog.py:91 msgid "Remove value" msgstr "मूल्य काढून टाका" -#: picard/ui/ui_infodialog.py:78 +#: picard/ui/ui_infodialog.py:74 msgid "A&rtwork" msgstr "" -#: picard/ui/ui_infostatus.py:100 +#: picard/ui/ui_infostatus.py:96 msgid "Form" msgstr "" -#: picard/ui/ui_options.py:51 +#: picard/ui/ui_options.py:38 msgid "Options" msgstr "पर्याय" -#: picard/ui/ui_options_advanced.py:46 +#: picard/ui/ui_options_advanced.py:42 msgid "Advanced options" msgstr "" -#: picard/ui/ui_options_advanced.py:47 +#: picard/ui/ui_options_advanced.py:43 msgid "Ignore file paths matching the following regular expression:" msgstr "" -#: picard/ui/ui_options_cdlookup.py:56 +#: picard/ui/ui_options_cdlookup.py:43 msgid "CD-ROM device to use for lookups:" msgstr "" -#: picard/ui/ui_options_cdlookup_select.py:63 +#: picard/ui/ui_options_cdlookup_select.py:50 msgid "Default CD-ROM drive to use for lookups:" msgstr "" -#: picard/ui/ui_options_cover.py:145 +#: picard/ui/ui_options_cover.py:131 msgid "Location" msgstr "स्थान" -#: picard/ui/ui_options_cover.py:146 +#: picard/ui/ui_options_cover.py:132 msgid "Embed cover images into tags" msgstr "" -#: picard/ui/ui_options_cover.py:147 +#: picard/ui/ui_options_cover.py:133 msgid "Only embed a front image" msgstr "" -#: picard/ui/ui_options_cover.py:148 +#: picard/ui/ui_options_cover.py:134 msgid "Save cover images as separate files" msgstr "" -#: picard/ui/ui_options_cover.py:149 +#: picard/ui/ui_options_cover.py:135 msgid "Use the following file name for images:" msgstr "" -#: picard/ui/ui_options_cover.py:150 +#: picard/ui/ui_options_cover.py:136 msgid "Overwrite the file if it already exists" msgstr "" -#: picard/ui/ui_options_cover.py:151 +#: picard/ui/ui_options_cover.py:137 msgid "Coverart Providers" msgstr "" -#: picard/ui/ui_options_cover.py:152 +#: picard/ui/ui_options_cover.py:138 msgid "Amazon" msgstr "Amazon" -#: picard/ui/ui_options_cover.py:153 picard/ui/ui_options_cover.py:155 +#: picard/ui/ui_options_cover.py:139 picard/ui/ui_options_cover.py:141 msgid "Cover Art Archive" msgstr "" -#: picard/ui/ui_options_cover.py:154 +#: picard/ui/ui_options_cover.py:140 msgid "Sites on the whitelist" msgstr "" -#: picard/ui/ui_options_cover.py:156 +#: picard/ui/ui_options_cover.py:142 msgid "Only use images of the following size:" msgstr "" -#: picard/ui/ui_options_cover.py:157 +#: picard/ui/ui_options_cover.py:143 msgid "250 px" msgstr "250 px" -#: picard/ui/ui_options_cover.py:158 +#: picard/ui/ui_options_cover.py:144 msgid "500 px" msgstr "500 px" -#: picard/ui/ui_options_cover.py:159 +#: picard/ui/ui_options_cover.py:145 msgid "Full size" msgstr "पूर्ण आकार" -#: picard/ui/ui_options_cover.py:160 +#: picard/ui/ui_options_cover.py:146 msgid "Download only images of the following types:" msgstr "" -#: picard/ui/ui_options_cover.py:161 +#: picard/ui/ui_options_cover.py:147 msgid "Download only approved images" msgstr "" -#: picard/ui/ui_options_cover.py:162 +#: picard/ui/ui_options_cover.py:148 msgid "" "Use the first image type as the filename. This will not change the filename " "of front images." msgstr "" -#: picard/ui/ui_options_fingerprinting.py:83 +#: picard/ui/ui_options_fingerprinting.py:70 msgid "Audio Fingerprinting" msgstr "" -#: picard/ui/ui_options_fingerprinting.py:84 +#: picard/ui/ui_options_fingerprinting.py:71 msgid "Do not use audio fingerprinting" msgstr "" -#: picard/ui/ui_options_fingerprinting.py:85 +#: picard/ui/ui_options_fingerprinting.py:72 msgid "Use AcoustID" msgstr "AcoustID वापरा" -#: picard/ui/ui_options_fingerprinting.py:86 +#: picard/ui/ui_options_fingerprinting.py:73 msgid "AcoustID Settings" msgstr "AcoustID सेटिंग्ज" -#: picard/ui/ui_options_fingerprinting.py:87 +#: picard/ui/ui_options_fingerprinting.py:74 msgid "Fingerprint calculator:" msgstr "" -#: picard/ui/ui_options_fingerprinting.py:88 -#: picard/ui/ui_options_interface.py:88 picard/ui/ui_options_renaming.py:138 +#: picard/ui/ui_options_fingerprinting.py:75 +#: picard/ui/ui_options_interface.py:75 picard/ui/ui_options_renaming.py:134 msgid "Browse..." msgstr "ब्राउज करा..." -#: picard/ui/ui_options_fingerprinting.py:89 +#: picard/ui/ui_options_fingerprinting.py:76 msgid "Download..." msgstr "डाऊनलोड करा..." -#: picard/ui/ui_options_fingerprinting.py:90 +#: picard/ui/ui_options_fingerprinting.py:77 msgid "API key:" msgstr "एपीआय की:" -#: picard/ui/ui_options_fingerprinting.py:91 +#: picard/ui/ui_options_fingerprinting.py:78 msgid "Get API key..." msgstr "" -#: picard/ui/ui_options_folksonomy.py:115 picard/ui/options/folksonomy.py:28 +#: picard/ui/ui_options_folksonomy.py:102 picard/ui/options/folksonomy.py:28 msgid "Folksonomy Tags" msgstr "" -#: picard/ui/ui_options_folksonomy.py:117 +#: picard/ui/ui_options_folksonomy.py:104 msgid "Only use my tags" msgstr "" -#: picard/ui/ui_options_folksonomy.py:120 +#: picard/ui/ui_options_folksonomy.py:107 msgid "Maximum number of tags:" msgstr "" -#: picard/ui/ui_options_general.py:92 +#: picard/ui/ui_options_general.py:88 msgid "MusicBrainz Server" msgstr "MusicBrainz Server" -#: picard/ui/ui_options_general.py:93 picard/ui/ui_options_network.py:123 +#: picard/ui/ui_options_general.py:89 picard/ui/ui_options_network.py:110 msgid "Port:" msgstr "पोर्ट:" -#: picard/ui/ui_options_general.py:94 picard/ui/ui_options_network.py:124 +#: picard/ui/ui_options_general.py:90 picard/ui/ui_options_network.py:111 msgid "Server address:" msgstr "सर्वरचा पत्ता:" -#: picard/ui/ui_options_general.py:95 +#: picard/ui/ui_options_general.py:91 msgid "Account Information" msgstr "खात्याची माहिती" -#: picard/ui/ui_options_general.py:96 picard/ui/ui_options_network.py:121 -#: picard/ui/ui_passworddialog.py:74 +#: picard/ui/ui_options_general.py:92 picard/ui/ui_options_network.py:108 +#: picard/ui/ui_passworddialog.py:70 msgid "Password:" msgstr "पासवर्ड:" -#: picard/ui/ui_options_general.py:97 picard/ui/ui_options_network.py:122 -#: picard/ui/ui_passworddialog.py:73 +#: picard/ui/ui_options_general.py:93 picard/ui/ui_options_network.py:109 +#: picard/ui/ui_passworddialog.py:69 msgid "Username:" msgstr "युजरनेम:" -#: picard/ui/ui_options_general.py:98 picard/ui/options/general.py:31 +#: picard/ui/ui_options_general.py:94 picard/ui/options/general.py:31 msgid "General" msgstr "सामान्य" -#: picard/ui/ui_options_general.py:99 +#: picard/ui/ui_options_general.py:95 msgid "Automatically scan all new files" msgstr "" -#: picard/ui/ui_options_general.py:100 +#: picard/ui/ui_options_general.py:96 msgid "Ignore MBIDs when loading new files" msgstr "" -#: picard/ui/ui_options_interface.py:82 +#: picard/ui/ui_options_interface.py:69 msgid "Miscellaneous" msgstr "विविध" -#: picard/ui/ui_options_interface.py:83 +#: picard/ui/ui_options_interface.py:70 msgid "Show text labels under icons" msgstr "" -#: picard/ui/ui_options_interface.py:84 +#: picard/ui/ui_options_interface.py:71 msgid "Allow selection of multiple directories" msgstr "" -#: picard/ui/ui_options_interface.py:85 +#: picard/ui/ui_options_interface.py:72 msgid "Use advanced query syntax" msgstr "" -#: picard/ui/ui_options_interface.py:86 +#: picard/ui/ui_options_interface.py:73 msgid "Show a quit confirmation dialog for unsaved changes" msgstr "" -#: picard/ui/ui_options_interface.py:87 +#: picard/ui/ui_options_interface.py:74 msgid "Begin browsing in the following directory:" msgstr "" -#: picard/ui/ui_options_interface.py:89 +#: picard/ui/ui_options_interface.py:76 msgid "User interface language:" msgstr "" -#: picard/ui/ui_options_matching.py:86 +#: picard/ui/ui_options_matching.py:73 msgid "Thresholds" msgstr "" -#: picard/ui/ui_options_matching.py:87 +#: picard/ui/ui_options_matching.py:74 msgid "Minimal similarity for matching files to tracks:" msgstr "" -#: picard/ui/ui_options_matching.py:91 +#: picard/ui/ui_options_matching.py:78 msgid "Minimal similarity for file lookups:" msgstr "" -#: picard/ui/ui_options_matching.py:92 +#: picard/ui/ui_options_matching.py:79 msgid "Minimal similarity for cluster lookups:" msgstr "" -#: picard/ui/ui_options_metadata.py:114 picard/ui/options/metadata.py:29 +#: picard/ui/ui_options_metadata.py:101 picard/ui/options/metadata.py:29 msgid "Metadata" msgstr "मेटाडेटा" -#: picard/ui/ui_options_metadata.py:115 +#: picard/ui/ui_options_metadata.py:102 msgid "Translate artist names to this locale where possible:" msgstr "" -#: picard/ui/ui_options_metadata.py:116 +#: picard/ui/ui_options_metadata.py:103 msgid "Use standardized artist names" msgstr "" -#: picard/ui/ui_options_metadata.py:117 +#: picard/ui/ui_options_metadata.py:104 msgid "Convert Unicode punctuation characters to ASCII" msgstr "" -#: picard/ui/ui_options_metadata.py:118 +#: picard/ui/ui_options_metadata.py:105 msgid "Use release relationships" msgstr "" -#: picard/ui/ui_options_metadata.py:119 +#: picard/ui/ui_options_metadata.py:106 msgid "Use track relationships" msgstr "" -#: picard/ui/ui_options_metadata.py:120 +#: picard/ui/ui_options_metadata.py:107 msgid "Use folksonomy tags as genre" msgstr "" -#: picard/ui/ui_options_metadata.py:121 +#: picard/ui/ui_options_metadata.py:108 msgid "Custom Fields" msgstr "" -#: picard/ui/ui_options_metadata.py:122 +#: picard/ui/ui_options_metadata.py:109 msgid "Various artists:" msgstr "" -#: picard/ui/ui_options_metadata.py:123 +#: picard/ui/ui_options_metadata.py:110 msgid "Non-album tracks:" msgstr "" -#: picard/ui/ui_options_metadata.py:124 picard/ui/ui_options_metadata.py:125 -#: picard/ui/ui_options_renaming.py:147 +#: picard/ui/ui_options_metadata.py:111 picard/ui/ui_options_metadata.py:112 +#: picard/ui/ui_options_renaming.py:143 msgid "Default" msgstr "डिफॉल्ट" -#: picard/ui/ui_options_network.py:120 +#: picard/ui/ui_options_network.py:107 msgid "Web Proxy" msgstr "वेब प्रॉक्सी" -#: picard/ui/ui_options_network.py:125 +#: picard/ui/ui_options_network.py:112 msgid "Browser Integration" msgstr "" -#: picard/ui/ui_options_network.py:126 +#: picard/ui/ui_options_network.py:113 msgid "Default listening port:" msgstr "" -#: picard/ui/ui_options_network.py:127 +#: picard/ui/ui_options_network.py:114 msgid "Listen only on localhost" msgstr "" -#: picard/ui/ui_options_plugins.py:131 picard/ui/options/plugins.py:38 +#: picard/ui/ui_options_plugins.py:127 picard/ui/options/plugins.py:38 msgid "Plugins" msgstr "प्लगिन्स" -#: picard/ui/ui_options_plugins.py:132 picard/ui/options/plugins.py:122 +#: picard/ui/ui_options_plugins.py:128 picard/ui/options/plugins.py:122 msgid "Name" msgstr "नाव" -#: picard/ui/ui_options_plugins.py:133 picard/util/tags.py:39 +#: picard/ui/ui_options_plugins.py:129 msgid "Version" msgstr "आवृत्ती" -#: picard/ui/ui_options_plugins.py:134 picard/ui/options/plugins.py:125 +#: picard/ui/ui_options_plugins.py:130 picard/ui/options/plugins.py:125 msgid "Author" msgstr "लेखक" -#: picard/ui/ui_options_plugins.py:135 +#: picard/ui/ui_options_plugins.py:131 msgid "Install plugin..." msgstr "प्लगिनची स्थापना करा..." -#: picard/ui/ui_options_plugins.py:136 +#: picard/ui/ui_options_plugins.py:132 msgid "Open plugin folder" msgstr "प्लगिन फोल्डर उघडा" -#: picard/ui/ui_options_plugins.py:137 +#: picard/ui/ui_options_plugins.py:133 msgid "Download plugins" msgstr "प्लगिन्स डाऊनलोड करा" -#: picard/ui/ui_options_plugins.py:138 +#: picard/ui/ui_options_plugins.py:134 msgid "Details" msgstr "तपशील" -#: picard/ui/ui_options_ratings.py:53 +#: picard/ui/ui_options_ratings.py:49 msgid "Enable track ratings" msgstr "" -#: picard/ui/ui_options_ratings.py:54 +#: picard/ui/ui_options_ratings.py:50 msgid "" "Picard saves the ratings together with an e-mail address identifying the " "user who did the rating. That way different ratings for different users can " @@ -1486,207 +1412,167 @@ msgid "" "your ratings." msgstr "" -#: picard/ui/ui_options_ratings.py:55 +#: picard/ui/ui_options_ratings.py:51 msgid "E-mail:" msgstr "ई-मेल:" -#: picard/ui/ui_options_ratings.py:56 +#: picard/ui/ui_options_ratings.py:52 msgid "Submit ratings to MusicBrainz" msgstr "" -#: picard/ui/ui_options_releases.py:215 +#: picard/ui/ui_options_releases.py:104 msgid "Preferred release types" msgstr "" -#: picard/ui/ui_options_releases.py:217 -msgid "Single" -msgstr "" - -#: picard/ui/ui_options_releases.py:218 -msgid "EP" -msgstr "" - -#: picard/ui/ui_options_releases.py:219 -msgid "Compilation" -msgstr "" - -#: picard/ui/ui_options_releases.py:220 -msgid "Soundtrack" -msgstr "" - -#: picard/ui/ui_options_releases.py:221 -msgid "Spokenword" -msgstr "" - -#: picard/ui/ui_options_releases.py:222 -msgid "Interview" -msgstr "" - -#: picard/ui/ui_options_releases.py:223 -msgid "Audiobook" -msgstr "" - -#: picard/ui/ui_options_releases.py:224 -msgid "Live" -msgstr "" - -#: picard/ui/ui_options_releases.py:225 -msgid "Remix" -msgstr "" - -#: picard/ui/ui_options_releases.py:227 -msgid "Reset all" -msgstr "" - -#: picard/ui/ui_options_releases.py:228 +#: picard/ui/ui_options_releases.py:105 msgid "Preferred release countries" msgstr "" -#: picard/ui/ui_options_releases.py:229 picard/ui/ui_options_releases.py:232 +#: picard/ui/ui_options_releases.py:106 picard/ui/ui_options_releases.py:109 msgid ">" msgstr ">" -#: picard/ui/ui_options_releases.py:230 picard/ui/ui_options_releases.py:233 +#: picard/ui/ui_options_releases.py:107 picard/ui/ui_options_releases.py:110 msgid "<" msgstr "<" -#: picard/ui/ui_options_releases.py:231 +#: picard/ui/ui_options_releases.py:108 msgid "Preferred release formats" msgstr "" -#: picard/ui/ui_options_renaming.py:134 +#: picard/ui/ui_options_renaming.py:130 msgid "Rename files when saving" msgstr "" -#: picard/ui/ui_options_renaming.py:135 +#: picard/ui/ui_options_renaming.py:131 msgid "Replace non-ASCII characters" msgstr "" -#: picard/ui/ui_options_renaming.py:136 +#: picard/ui/ui_options_renaming.py:132 msgid "Windows compatibility" msgstr "" -#: picard/ui/ui_options_renaming.py:137 +#: picard/ui/ui_options_renaming.py:133 msgid "Move files to this directory when saving:" msgstr "" -#: picard/ui/ui_options_renaming.py:139 +#: picard/ui/ui_options_renaming.py:135 msgid "Delete empty directories" msgstr "" -#: picard/ui/ui_options_renaming.py:140 +#: picard/ui/ui_options_renaming.py:136 msgid "Move additional files:" msgstr "" -#: picard/ui/ui_options_renaming.py:141 +#: picard/ui/ui_options_renaming.py:137 msgid "Name files like this" msgstr "" -#: picard/ui/ui_options_renaming.py:148 +#: picard/ui/ui_options_renaming.py:144 msgid "Examples" msgstr "उदाहरणे" -#: picard/ui/ui_options_script.py:49 +#: picard/ui/ui_options_script.py:45 msgid "Tagger Script" msgstr "" -#: picard/ui/ui_options_tags.py:165 +#: picard/ui/ui_options_tags.py:152 msgid "Write tags to files" msgstr "" -#: picard/ui/ui_options_tags.py:166 +#: picard/ui/ui_options_tags.py:153 msgid "Preserve timestamps of tagged files" msgstr "" -#: picard/ui/ui_options_tags.py:167 +#: picard/ui/ui_options_tags.py:154 msgid "Before Tagging" msgstr "" -#: picard/ui/ui_options_tags.py:168 +#: picard/ui/ui_options_tags.py:155 msgid "Clear existing tags" msgstr "" -#: picard/ui/ui_options_tags.py:169 +#: picard/ui/ui_options_tags.py:156 msgid "Remove ID3 tags from FLAC files" msgstr "" -#: picard/ui/ui_options_tags.py:170 +#: picard/ui/ui_options_tags.py:157 msgid "Remove APEv2 tags from MP3 files" msgstr "" -#: picard/ui/ui_options_tags.py:171 +#: picard/ui/ui_options_tags.py:158 msgid "" "Preserve these tags from being cleared or overwritten with MusicBrainz data:" msgstr "" -#: picard/ui/ui_options_tags.py:172 +#: picard/ui/ui_options_tags.py:159 msgid "Tags are separated by commas, and are case-sensitive." msgstr "" -#: picard/ui/ui_options_tags.py:173 +#: picard/ui/ui_options_tags.py:160 msgid "Tag Compatibility" msgstr "" -#: picard/ui/ui_options_tags.py:174 +#: picard/ui/ui_options_tags.py:161 msgid "ID3v2 Version" msgstr "" -#: picard/ui/ui_options_tags.py:175 +#: picard/ui/ui_options_tags.py:162 msgid "2.4" msgstr "2.4" -#: picard/ui/ui_options_tags.py:176 +#: picard/ui/ui_options_tags.py:163 msgid "2.3" msgstr "2.3" -#: picard/ui/ui_options_tags.py:177 +#: picard/ui/ui_options_tags.py:164 msgid "ID3v2 Text Encoding" msgstr "" -#: picard/ui/ui_options_tags.py:178 +#: picard/ui/ui_options_tags.py:165 msgid "UTF-8" msgstr "UTF-8" -#: picard/ui/ui_options_tags.py:179 +#: picard/ui/ui_options_tags.py:166 msgid "UTF-16" msgstr "UTF-16" -#: picard/ui/ui_options_tags.py:180 +#: picard/ui/ui_options_tags.py:167 msgid "ISO-8859-1" msgstr "ISO-8859-1" -#: picard/ui/ui_options_tags.py:181 +#: picard/ui/ui_options_tags.py:168 msgid "Join multiple ID3v2.3 tags with:" msgstr "" -#: picard/ui/ui_options_tags.py:182 +#: picard/ui/ui_options_tags.py:169 msgid "" "

Default is '/' to maintain compatibility with previous" " Picard releases.

New alternatives are ';_' or '_/_' or type your own." "

" msgstr "" -#: picard/ui/ui_options_tags.py:183 +#: picard/ui/ui_options_tags.py:170 msgid "Also include ID3v1 tags in the files" msgstr "" -#: picard/ui/ui_passworddialog.py:72 +#: picard/ui/ui_passworddialog.py:68 msgid "Authentication required" msgstr "अधिप्रमाणन जरुरी" -#: picard/ui/ui_passworddialog.py:75 +#: picard/ui/ui_passworddialog.py:71 msgid "Save username and password" msgstr "युजरनेम आणि पासवर्ड जतन करा" -#: picard/ui/ui_tagsfromfilenames.py:54 +#: picard/ui/ui_tagsfromfilenames.py:50 msgid "Convert File Names to Tags" msgstr "" -#: picard/ui/ui_tagsfromfilenames.py:55 +#: picard/ui/ui_tagsfromfilenames.py:51 msgid "Replace underscores with spaces" msgstr "" -#: picard/ui/ui_tagsfromfilenames.py:56 +#: picard/ui/ui_tagsfromfilenames.py:52 msgid "&Preview" msgstr "" @@ -1742,7 +1628,11 @@ msgstr "प्रगत" msgid "Regex Error" msgstr "" -#: picard/ui/options/cover.py:63 +#: picard/ui/options/cover.py:44 +msgid "title" +msgstr "" + +#: picard/ui/options/cover.py:68 msgid "Cover Art" msgstr "" @@ -1758,11 +1648,11 @@ msgstr "" msgid "System default" msgstr "" -#: picard/ui/options/interface.py:96 +#: picard/ui/options/interface.py:98 msgid "Language changed" msgstr "" -#: picard/ui/options/interface.py:96 +#: picard/ui/options/interface.py:99 msgid "" "You have changed the interface language. You have to restart Picard in order" " for the change to take effect." @@ -1784,31 +1674,35 @@ msgstr "फाईल" msgid "Ratings" msgstr "" -#: picard/ui/options/releases.py:33 +#: picard/ui/options/releases.py:87 msgid "Preferred Releases" msgstr "" +#: picard/ui/options/releases.py:121 +msgid "Reset all" +msgstr "" + #: picard/ui/options/renaming.py:37 msgid "File Naming" msgstr "" -#: picard/ui/options/renaming.py:184 +#: picard/ui/options/renaming.py:187 msgid "Error" msgstr "" -#: picard/ui/options/renaming.py:184 +#: picard/ui/options/renaming.py:187 msgid "The location to move files to must not be empty." msgstr "" -#: picard/ui/options/renaming.py:194 +#: picard/ui/options/renaming.py:197 msgid "The file naming format must not be empty." msgstr "" -#: picard/ui/options/scripting.py:63 +#: picard/ui/options/scripting.py:99 msgid "Scripting" msgstr "" -#: picard/ui/options/scripting.py:95 +#: picard/ui/options/scripting.py:131 msgid "Script Error" msgstr "" @@ -1928,199 +1822,199 @@ msgstr "ASIN" msgid "Grouping" msgstr "वर्गीकरण" -#: picard/util/tags.py:40 +#: picard/util/tags.py:39 msgid "ISRC" msgstr "ISRC" -#: picard/util/tags.py:41 +#: picard/util/tags.py:40 msgid "Mood" msgstr "" -#: picard/util/tags.py:42 +#: picard/util/tags.py:41 msgid "BPM" msgstr "BPM" -#: picard/util/tags.py:43 +#: picard/util/tags.py:42 msgid "Copyright" msgstr "कॉपीराइट" -#: picard/util/tags.py:44 +#: picard/util/tags.py:43 msgid "License" msgstr "परवाना" -#: picard/util/tags.py:45 +#: picard/util/tags.py:44 msgid "Composer" msgstr "संगीतकार" -#: picard/util/tags.py:46 +#: picard/util/tags.py:45 msgid "Writer" msgstr "लेखक" -#: picard/util/tags.py:47 +#: picard/util/tags.py:46 msgid "Conductor" msgstr "" -#: picard/util/tags.py:48 +#: picard/util/tags.py:47 msgid "Lyricist" msgstr "गीतकार" -#: picard/util/tags.py:49 +#: picard/util/tags.py:48 msgid "Arranger" msgstr "" -#: picard/util/tags.py:50 +#: picard/util/tags.py:49 msgid "Producer" msgstr "निर्माता" -#: picard/util/tags.py:51 +#: picard/util/tags.py:50 msgid "Engineer" msgstr "अभियंता" -#: picard/util/tags.py:52 +#: picard/util/tags.py:51 msgid "Subtitle" msgstr "उपशीर्षक" -#: picard/util/tags.py:53 +#: picard/util/tags.py:52 msgid "Disc Subtitle" msgstr "डिस्क उपशीर्षक" -#: picard/util/tags.py:54 +#: picard/util/tags.py:53 msgid "Remixer" msgstr "" -#: picard/util/tags.py:55 +#: picard/util/tags.py:54 msgid "MusicBrainz Recording Id" msgstr "" -#: picard/util/tags.py:56 +#: picard/util/tags.py:55 msgid "MusicBrainz Track Id" msgstr "" -#: picard/util/tags.py:57 +#: picard/util/tags.py:56 msgid "MusicBrainz Release Id" msgstr "" -#: picard/util/tags.py:58 +#: picard/util/tags.py:57 msgid "MusicBrainz Artist Id" msgstr "" -#: picard/util/tags.py:59 +#: picard/util/tags.py:58 msgid "MusicBrainz Release Artist Id" msgstr "" -#: picard/util/tags.py:60 +#: picard/util/tags.py:59 msgid "MusicBrainz Work Id" msgstr "" -#: picard/util/tags.py:61 +#: picard/util/tags.py:60 msgid "MusicBrainz Release Group Id" msgstr "" -#: picard/util/tags.py:62 +#: picard/util/tags.py:61 msgid "MusicBrainz Disc Id" msgstr "" -#: picard/util/tags.py:63 -msgid "MusicBrainz Sort Name" -msgstr "" - -#: picard/util/tags.py:64 +#: picard/util/tags.py:62 msgid "MusicIP PUID" msgstr "" -#: picard/util/tags.py:65 +#: picard/util/tags.py:63 msgid "MusicIP Fingerprint" msgstr "" -#: picard/util/tags.py:66 +#: picard/util/tags.py:64 msgid "AcoustID" msgstr "" -#: picard/util/tags.py:67 +#: picard/util/tags.py:65 msgid "AcoustID Fingerprint" msgstr "" -#: picard/util/tags.py:68 +#: picard/util/tags.py:66 msgid "Disc Id" msgstr "" -#: picard/util/tags.py:69 -msgid "Website" -msgstr "संकेतस्थळ" +#: picard/util/tags.py:67 +msgid "Artist Website" +msgstr "" -#: picard/util/tags.py:70 +#: picard/util/tags.py:68 msgid "Compilation (iTunes)" msgstr "" -#: picard/util/tags.py:71 +#: picard/util/tags.py:69 msgid "Comment" msgstr "टिप्पणी" -#: picard/util/tags.py:72 +#: picard/util/tags.py:70 msgid "Genre" msgstr "जॉन्र" -#: picard/util/tags.py:73 +#: picard/util/tags.py:71 msgid "Encoded By" msgstr "" -#: picard/util/tags.py:74 +#: picard/util/tags.py:72 +msgid "Encoder Settings" +msgstr "" + +#: picard/util/tags.py:73 msgid "Performer" msgstr "" -#: picard/util/tags.py:75 +#: picard/util/tags.py:74 msgid "Release Type" msgstr "" -#: picard/util/tags.py:76 +#: picard/util/tags.py:75 msgid "Release Status" msgstr "" -#: picard/util/tags.py:77 +#: picard/util/tags.py:76 msgid "Release Country" msgstr "" -#: picard/util/tags.py:78 +#: picard/util/tags.py:77 msgid "Record Label" msgstr "" -#: picard/util/tags.py:80 +#: picard/util/tags.py:79 msgid "Catalog Number" msgstr "" -#: picard/util/tags.py:82 +#: picard/util/tags.py:80 msgid "DJ-Mixer" msgstr "" -#: picard/util/tags.py:83 +#: picard/util/tags.py:81 msgid "Media" msgstr "मीडीया" -#: picard/util/tags.py:84 +#: picard/util/tags.py:82 msgid "Lyrics" msgstr "गीत" -#: picard/util/tags.py:85 +#: picard/util/tags.py:83 msgid "Mixer" msgstr "" -#: picard/util/tags.py:86 +#: picard/util/tags.py:84 msgid "Language" msgstr "भाषा" -#: picard/util/tags.py:87 +#: picard/util/tags.py:85 msgid "Script" msgstr "लिपी" -#: picard/util/tags.py:89 +#: picard/util/tags.py:87 msgid "Rating" msgstr "" -#: picard/util/tags.py:90 +#: picard/util/tags.py:88 msgid "Artists" msgstr "" -#: picard/util/tags.py:91 +#: picard/util/tags.py:89 msgid "Work" msgstr "" diff --git a/po/nb.po b/po/nb.po index 5dab746b8..e8a0ce578 100644 --- a/po/nb.po +++ b/po/nb.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: MusicBrainz\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2014-03-20 11:12+0100\n" -"PO-Revision-Date: 2014-03-21 08:44+0000\n" +"POT-Creation-Date: 2014-05-03 17:28+0200\n" +"PO-Revision-Date: 2014-05-04 08:44+0000\n" "Last-Translator: nikki\n" "Language-Team: Norwegian Bokmål (http://www.transifex.com/projects/p/musicbrainz/language/nb/)\n" "MIME-Version: 1.0\n" @@ -19,6 +19,10 @@ msgstr "" "Language: nb\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" +#: contrib/plugins/albumartist_website.py:3 +msgid "Album Artist Website" +msgstr "" + #: contrib/plugins/no_release.py:50 msgid "Enable plugin for all releases by default" msgstr "" @@ -31,63 +35,55 @@ msgstr "" msgid "Remove specific release information..." msgstr "" -#: contrib/plugins/open_in_gui.py:32 -msgid "Open Error" +#: contrib/plugins/standardise_performers.py:3 +msgid "Standardise Performers" msgstr "" -#: contrib/plugins/open_in_gui.py:32 -#, python-format -msgid "" -"Error while opening file:\n" -"\n" -"%s" -msgstr "" - -#: contrib/plugins/lastfm/ui_options_lastfm.py:117 +#: contrib/plugins/lastfm/ui_options_lastfm.py:99 msgid "Last.fm" msgstr "" -#: contrib/plugins/lastfm/ui_options_lastfm.py:118 +#: contrib/plugins/lastfm/ui_options_lastfm.py:100 msgid "Use track tags" msgstr "" -#: contrib/plugins/lastfm/ui_options_lastfm.py:119 +#: contrib/plugins/lastfm/ui_options_lastfm.py:101 msgid "Use artist tags" msgstr "" -#: contrib/plugins/lastfm/ui_options_lastfm.py:120 +#: contrib/plugins/lastfm/ui_options_lastfm.py:102 #: picard/ui/options/tags.py:30 msgid "Tags" msgstr "Metadata" -#: contrib/plugins/lastfm/ui_options_lastfm.py:121 -#: picard/ui/ui_options_folksonomy.py:116 +#: contrib/plugins/lastfm/ui_options_lastfm.py:103 +#: picard/ui/ui_options_folksonomy.py:103 msgid "Ignore tags:" msgstr "" -#: contrib/plugins/lastfm/ui_options_lastfm.py:122 -#: picard/ui/ui_options_folksonomy.py:121 +#: contrib/plugins/lastfm/ui_options_lastfm.py:104 +#: picard/ui/ui_options_folksonomy.py:108 msgid "Join multiple tags with:" msgstr "" -#: contrib/plugins/lastfm/ui_options_lastfm.py:123 -#: picard/ui/ui_options_folksonomy.py:122 +#: contrib/plugins/lastfm/ui_options_lastfm.py:105 +#: picard/ui/ui_options_folksonomy.py:109 msgid " / " msgstr " / " -#: contrib/plugins/lastfm/ui_options_lastfm.py:124 -#: picard/ui/ui_options_folksonomy.py:123 +#: contrib/plugins/lastfm/ui_options_lastfm.py:106 +#: picard/ui/ui_options_folksonomy.py:110 msgid ", " msgstr ", " -#: contrib/plugins/lastfm/ui_options_lastfm.py:125 -#: picard/ui/ui_options_folksonomy.py:118 +#: contrib/plugins/lastfm/ui_options_lastfm.py:107 +#: picard/ui/ui_options_folksonomy.py:105 msgid "Minimal tag usage:" msgstr "" -#: contrib/plugins/lastfm/ui_options_lastfm.py:126 -#: picard/ui/ui_options_folksonomy.py:119 picard/ui/ui_options_matching.py:88 -#: picard/ui/ui_options_matching.py:89 picard/ui/ui_options_matching.py:90 +#: contrib/plugins/lastfm/ui_options_lastfm.py:108 +#: picard/ui/ui_options_folksonomy.py:106 picard/ui/ui_options_matching.py:75 +#: picard/ui/ui_options_matching.py:76 picard/ui/ui_options_matching.py:77 msgid " %" msgstr " %" @@ -95,419 +91,306 @@ msgstr " %" msgid "Calculate replay &gain..." msgstr "" -#: contrib/plugins/replaygain/__init__.py:66 +#: contrib/plugins/replaygain/__init__.py:67 #, python-format -msgid "Calculating replay gain for \"%s\"..." +msgid "Calculating replay gain for \"%(filename)s\"..." msgstr "" -#: contrib/plugins/replaygain/__init__.py:71 +#: contrib/plugins/replaygain/__init__.py:75 #, python-format -msgid "Replay gain for \"%s\" successfully calculated." +msgid "Replay gain for \"%(filename)s\" successfully calculated." msgstr "" -#: contrib/plugins/replaygain/__init__.py:73 +#: contrib/plugins/replaygain/__init__.py:80 #, python-format -msgid "Could not calculate replay gain for \"%s\"." +msgid "Could not calculate replay gain for \"%(filename)s\"." msgstr "" -#: contrib/plugins/replaygain/__init__.py:76 +#: contrib/plugins/replaygain/__init__.py:85 msgid "Calculate album &gain..." msgstr "" -#: contrib/plugins/replaygain/__init__.py:103 -#: contrib/plugins/replaygain/__init__.py:111 +#: contrib/plugins/replaygain/__init__.py:113 +#: contrib/plugins/replaygain/__init__.py:124 #, python-format -msgid "Calculating album gain for \"%s\"..." +msgid "Calculating album gain for \"%(album)s\"..." msgstr "" -#: contrib/plugins/replaygain/__init__.py:119 +#: contrib/plugins/replaygain/__init__.py:135 #, python-format -msgid "Album gain for \"%s\" successfully calculated." +msgid "Album gain for \"%(album)s\" successfully calculated." msgstr "" -#: contrib/plugins/replaygain/__init__.py:121 +#: contrib/plugins/replaygain/__init__.py:140 #, python-format -msgid "Could not calculate album gain for \"%s\"." +msgid "Could not calculate album gain for \"%(album)s\"." msgstr "" -#: picard/acoustid.py:102 +#: contrib/plugins/replaygain/ui_options_replaygain.py:59 +msgid "Replay Gain" +msgstr "" + +#: contrib/plugins/replaygain/ui_options_replaygain.py:60 +msgid "Path to VorbisGain:" +msgstr "" + +#: contrib/plugins/replaygain/ui_options_replaygain.py:61 +msgid "Path to MP3Gain:" +msgstr "" + +#: contrib/plugins/replaygain/ui_options_replaygain.py:62 +msgid "Path to metaflac:" +msgstr "" + +#: contrib/plugins/replaygain/ui_options_replaygain.py:63 +msgid "Path to wvgain:" +msgstr "" + +#: contrib/plugins/viewvariables/__init__.py:42 #, python-format -msgid "AcoustID lookup network error for '%s'!" +msgid "File: %s" msgstr "" -#: picard/acoustid.py:117 +#: contrib/plugins/viewvariables/__init__.py:47 #, python-format -msgid "AcoustID lookup failed for '%s'!" +msgid "Track: %s %s " msgstr "" -#: picard/acoustid.py:128 +#: contrib/plugins/viewvariables/__init__.py:49 +msgid "Variables" +msgstr "" + +#: contrib/plugins/viewvariables/__init__.py:69 +msgid "File variables" +msgstr "" + +#: contrib/plugins/viewvariables/__init__.py:74 +msgid "Hidden variables" +msgstr "" + +#: contrib/plugins/viewvariables/__init__.py:79 +msgid "Tag variables" +msgstr "" + +#: contrib/plugins/viewvariables/ui_variables_dialog.py:73 +msgid "Variable" +msgstr "" + +#: contrib/plugins/viewvariables/ui_variables_dialog.py:75 +msgid "Value" +msgstr "" + +#: picard/acoustid.py:109 #, python-format -msgid "Acoustid lookup returned no result for file '%s'" +msgid "AcoustID lookup network error for '%(filename)s'!" msgstr "" -#: picard/acoustid.py:132 +#: picard/acoustid.py:133 #, python-format -msgid "Looking up the fingerprint for file %s..." +msgid "AcoustID lookup failed for '%(filename)s'!" msgstr "" -#: picard/acoustidmanager.py:78 -msgid "Submitting AcoustIDs..." -msgstr "" - -#: picard/acoustidmanager.py:83 +#: picard/acoustid.py:155 #, python-format -msgid "AcoustID submission failed with error '%s'" +msgid "AcoustID lookup returned no result for file '%(filename)s'" msgstr "" -#: picard/acoustidmanager.py:85 +#: picard/acoustid.py:166 +#, python-format +msgid "Looking up the fingerprint for file '%(filename)s' ..." +msgstr "" + +#: picard/acoustidmanager.py:80 +msgid "Submitting AcoustIDs ..." +msgstr "" + +#: picard/acoustidmanager.py:94 +#, python-format +msgid "AcoustID submission failed with error '%(error)s'" +msgstr "" + +#: picard/acoustidmanager.py:102 msgid "AcoustIDs successfully submitted." msgstr "" -#: picard/album.py:64 picard/cluster.py:234 +#: picard/album.py:65 picard/cluster.py:255 msgid "Unmatched Files" msgstr "" -#: picard/album.py:187 +#: picard/album.py:188 #, python-format msgid "[could not load album %s]" msgstr "" -#: picard/album.py:272 +#: picard/album.py:277 #, python-format -msgid "Album %s loaded" +msgid "Album %(id)s loaded: %(artist)s - %(album)s" msgstr "" -#: picard/album.py:288 +#: picard/album.py:294 +#, python-format +msgid "Loading album %(id)s ..." +msgstr "" + +#: picard/album.py:303 msgid "[loading album information]" msgstr "" -#: picard/album.py:463 +#: picard/album.py:478 #, python-format msgid "; %i image" msgid_plural "; %i images" msgstr[0] "" msgstr[1] "" -#: picard/cluster.py:150 picard/cluster.py:159 +#: picard/cluster.py:155 picard/cluster.py:168 #, python-format -msgid "No matching releases for cluster %s" -msgstr "Ingen treff for filgruppen %s" - -#: picard/cluster.py:161 -#, python-format -msgid "Cluster %s identified!" +msgid "No matching releases for cluster %(album)s" msgstr "" -#: picard/cluster.py:168 +#: picard/cluster.py:174 #, python-format -msgid "Looking up the metadata for cluster %s..." +msgid "Cluster %(album)s identified!" msgstr "" -#: picard/collection.py:60 +#: picard/cluster.py:185 #, python-format -msgid "Added %i release to collection \"%s\"" -msgid_plural "Added %i releases to collection \"%s\"" +msgid "Looking up the metadata for cluster %(album)s..." +msgstr "" + +#: picard/collection.py:64 +#, python-format +msgid "Added %(count)i release to collection \"%(name)s\"" +msgid_plural "Added %(count)i releases to collection \"%(name)s\"" msgstr[0] "" msgstr[1] "" -#: picard/collection.py:72 +#: picard/collection.py:86 #, python-format -msgid "Removed %i release from collection \"%s\"" -msgid_plural "Removed %i releases from collection \"%s\"" +msgid "Removed %(count)i release from collection \"%(name)s\"" +msgid_plural "Removed %(count)i releases from collection \"%(name)s\"" msgstr[0] "" msgstr[1] "" -#: picard/collection.py:81 +#: picard/collection.py:100 #, python-format -msgid "Error loading collections: %s" +msgid "Error loading collections: %(error)s" msgstr "" -#: picard/config_upgrade.py:57 picard/config_upgrade.py:70 +#: picard/config_upgrade.py:58 picard/config_upgrade.py:71 msgid "Various Artists file naming scheme removal" msgstr "" -#: picard/config_upgrade.py:58 +#: picard/config_upgrade.py:59 msgid "" "The separate file naming scheme for various artists albums has been removed in this version of Picard.\n" "Your file naming scheme has automatically been merged with that of single artist albums." msgstr "" -#: picard/config_upgrade.py:71 +#: picard/config_upgrade.py:72 msgid "" "The separate file naming scheme for various artists albums has been removed in this version of Picard.\n" "You currently do not use this option, but have a separate file naming scheme defined.\n" "Do you want to remove it or merge it with your file naming scheme for single artist albums?" msgstr "" -#: picard/config_upgrade.py:77 +#: picard/config_upgrade.py:78 msgid "Merge" msgstr "Flett" -#: picard/config_upgrade.py:77 picard/ui/metadatabox.py:254 +#: picard/config_upgrade.py:78 picard/ui/metadatabox.py:254 msgid "Remove" msgstr "Fjern" -#: picard/const.py:67 -msgid "CD" -msgstr "CD" - -#: picard/const.py:68 -msgid "CD-R" -msgstr "CD-R" - -#: picard/const.py:69 -msgid "HDCD" -msgstr "HDCD" - -#: picard/const.py:70 -msgid "8cm CD" -msgstr "8cm CD" - -#: picard/const.py:71 -msgid "Vinyl" -msgstr "Vinyl" - -#: picard/const.py:72 -msgid "7\" Vinyl" -msgstr "7″ Vinyl" - -#: picard/const.py:73 -msgid "10\" Vinyl" -msgstr "10″ Vinyl" - -#: picard/const.py:74 -msgid "12\" Vinyl" -msgstr "12″" - -#: picard/const.py:75 -msgid "Digital Media" -msgstr "Digitalt Media" - -#: picard/const.py:76 -msgid "USB Flash Drive" -msgstr "USB Minnepinne" - -#: picard/const.py:77 -msgid "slotMusic" -msgstr "slotMusic" - -#: picard/const.py:78 -msgid "Cassette" -msgstr "Kassett" - -#: picard/const.py:79 -msgid "DVD" -msgstr "DVD" - -#: picard/const.py:80 -msgid "DVD-Audio" -msgstr "DVD-Audio" - -#: picard/const.py:81 -msgid "DVD-Video" -msgstr "DVD-Video" - -#: picard/const.py:82 -msgid "SACD" -msgstr "SACD" - -#: picard/const.py:83 -msgid "DualDisc" -msgstr "DualDisc" - -#: picard/const.py:84 -msgid "MiniDisc" -msgstr "MiniDisc" - -#: picard/const.py:85 -msgid "Blu-ray" -msgstr "Bluray" - -#: picard/const.py:86 -msgid "HD-DVD" -msgstr "HD-DVD" - -#: picard/const.py:87 -msgid "Videotape" -msgstr "Video" - -#: picard/const.py:88 -msgid "VHS" -msgstr "VHS" - -#: picard/const.py:89 -msgid "Betamax" -msgstr "Betamax" - #: picard/const.py:90 -msgid "VCD" -msgstr "VCD" - -#: picard/const.py:91 -msgid "SVCD" -msgstr "SVCD" - -#: picard/const.py:92 -msgid "UMD" -msgstr "UMD" - -#: picard/const.py:93 picard/coverartarchive.py:33 -#: picard/ui/ui_options_releases.py:226 -msgid "Other" -msgstr "Annet" - -#: picard/const.py:94 -msgid "LaserDisc" -msgstr "LaserDisc" - -#: picard/const.py:95 -msgid "Cartridge" -msgstr "" - -#: picard/const.py:96 -msgid "Reel-to-reel" -msgstr "" - -#: picard/const.py:97 -msgid "DAT" -msgstr "DAT" - -#: picard/const.py:98 -msgid "Wax Cylinder" -msgstr "Fonografsylinder" - -#: picard/const.py:99 -msgid "Piano Roll" -msgstr "Pianorull" - -#: picard/const.py:100 -msgid "DCC" -msgstr "DCC" - -#: picard/const.py:115 msgid "Danish" msgstr "" -#: picard/const.py:116 +#: picard/const.py:91 msgid "German" msgstr "Tysk" -#: picard/const.py:118 +#: picard/const.py:93 msgid "English" msgstr "Engelsk" -#: picard/const.py:119 +#: picard/const.py:94 msgid "English (Canada)" msgstr "Kanadisk Engelsk" -#: picard/const.py:120 +#: picard/const.py:95 msgid "English (UK)" msgstr "Britisk Engelsk" -#: picard/const.py:122 +#: picard/const.py:97 msgid "Spanish" msgstr "Spansk" -#: picard/const.py:123 +#: picard/const.py:98 msgid "Estonian" msgstr "Estisk" -#: picard/const.py:125 +#: picard/const.py:100 msgid "Finnish" msgstr "Finsk" -#: picard/const.py:127 +#: picard/const.py:102 msgid "French" msgstr "Fransk" -#: picard/const.py:136 +#: picard/const.py:111 msgid "Italian" msgstr "Italiensk" -#: picard/const.py:143 +#: picard/const.py:118 msgid "Dutch" msgstr "Nederlandsk" -#: picard/const.py:145 +#: picard/const.py:120 msgid "Polish" msgstr "Polsk" -#: picard/const.py:147 +#: picard/const.py:122 msgid "Brazilian Portuguese" msgstr "Brasiliansk Portugisisk" -#: picard/const.py:154 +#: picard/const.py:129 msgid "Swedish" msgstr "Svensk" -#: picard/coverart.py:84 +#: picard/coverart.py:85 #, python-format -msgid "Coverart %s downloaded" +msgid "Cover art of type '%(type)s' downloaded for %(albumid)s from %(host)s" msgstr "" -#: picard/coverart.py:240 +#: picard/coverart.py:256 #, python-format -msgid "Downloading http://%s:%i%s" -msgstr "" - -#: picard/coverartarchive.py:24 -msgid "Front" -msgstr "" - -#: picard/coverartarchive.py:25 -msgid "Back" -msgstr "" - -#: picard/coverartarchive.py:26 -msgid "Booklet" -msgstr "" - -#: picard/coverartarchive.py:27 -msgid "Medium" -msgstr "" - -#: picard/coverartarchive.py:28 -msgid "Tray" -msgstr "" - -#: picard/coverartarchive.py:29 -msgid "Obi" +msgid "" +"Downloading cover art of type '%(type)s' for %(albumid)s from %(host)s .." msgstr "" #: picard/coverartarchive.py:30 -msgid "Spine" -msgstr "" - -#: picard/coverartarchive.py:31 picard/ui/mainwindow.py:546 -msgid "Track" -msgstr "Spor" - -#: picard/coverartarchive.py:32 -msgid "Sticker" -msgstr "" - -#: picard/coverartarchive.py:34 msgid "Unknown" msgstr "" -#: picard/file.py:536 +#: picard/file.py:494 #, python-format -msgid "No matching tracks for file %s" -msgstr "Ingen treff for filen %s" - -#: picard/file.py:548 -#, python-format -msgid "No matching tracks above the threshold for file %s" +msgid "No matching tracks for file '%(filename)s'" msgstr "" -#: picard/file.py:551 +#: picard/file.py:510 #, python-format -msgid "File %s identified!" -msgstr "Filen %s er identifisert!" +msgid "No matching tracks above the threshold for file '%(filename)s'" +msgstr "" -#: picard/file.py:567 +#: picard/file.py:517 #, python-format -msgid "Looking up the metadata for file %s..." +msgid "File '%(filename)s' identified!" +msgstr "" + +#: picard/file.py:537 +#, python-format +msgid "Looking up the metadata for file %(filename)s ..." msgstr "" #: picard/releasegroup.py:53 @@ -518,11 +401,11 @@ msgstr "" msgid "Year" msgstr "" -#: picard/releasegroup.py:55 picard/ui/cdlookup.py:34 +#: picard/releasegroup.py:55 picard/ui/cdlookup.py:35 msgid "Country" msgstr "" -#: picard/releasegroup.py:56 picard/util/tags.py:81 +#: picard/releasegroup.py:56 msgid "Format" msgstr "" @@ -542,16 +425,23 @@ msgstr "" msgid "[no release info]" msgstr "" -#: picard/tagger.py:316 +#: picard/tagger.py:370 #, python-format -msgid "Loading directory %s" +msgid "Adding %(count)d file from '%(directory)s' ..." +msgid_plural "Adding %(count)d files from '%(directory)s' ..." +msgstr[0] "" +msgstr[1] "" + +#: picard/tagger.py:512 +#, python-format +msgid "Removing album %(id)s: %(artist)s - %(album)s" msgstr "" -#: picard/tagger.py:452 +#: picard/tagger.py:528 msgid "CD Lookup Error" msgstr "" -#: picard/tagger.py:453 +#: picard/tagger.py:529 #, python-format msgid "" "Error while reading CD:\n" @@ -559,44 +449,43 @@ msgid "" "%s" msgstr "" -#: picard/ui/cdlookup.py:34 picard/ui/mainwindow.py:544 -#: picard/ui/ui_options_releases.py:216 picard/util/tags.py:21 +#: picard/ui/cdlookup.py:35 picard/ui/mainwindow.py:597 picard/util/tags.py:21 msgid "Album" msgstr "Album" -#: picard/ui/cdlookup.py:34 picard/ui/itemviews.py:96 -#: picard/ui/mainwindow.py:545 picard/util/tags.py:22 +#: picard/ui/cdlookup.py:35 picard/ui/itemviews.py:96 +#: picard/ui/mainwindow.py:598 picard/util/tags.py:22 msgid "Artist" msgstr "Artist" -#: picard/ui/cdlookup.py:34 picard/util/tags.py:24 +#: picard/ui/cdlookup.py:35 picard/util/tags.py:24 msgid "Date" msgstr "Dato" -#: picard/ui/cdlookup.py:35 +#: picard/ui/cdlookup.py:36 msgid "Labels" msgstr "" -#: picard/ui/cdlookup.py:35 +#: picard/ui/cdlookup.py:36 msgid "Catalog #s" msgstr "" -#: picard/ui/cdlookup.py:35 picard/util/tags.py:79 +#: picard/ui/cdlookup.py:36 picard/util/tags.py:78 msgid "Barcode" msgstr "Strekkode" -#: picard/ui/collectionmenu.py:31 +#: picard/ui/collectionmenu.py:42 msgid "Refresh List" msgstr "" -#: picard/ui/collectionmenu.py:92 +#: picard/ui/collectionmenu.py:86 #, python-format msgid "%s (%i release)" msgid_plural "%s (%i releases)" msgstr[0] "" msgstr[1] "" -#: picard/ui/coverartbox.py:142 +#: picard/ui/coverartbox.py:141 msgid "View release on MusicBrainz" msgstr "" @@ -612,59 +501,59 @@ msgstr "" msgid "&Set as starting directory" msgstr "" -#: picard/ui/infodialog.py:36 picard/ui/infodialog.py:75 +#: picard/ui/infodialog.py:37 picard/ui/infodialog.py:80 msgid "Info" msgstr "Info" -#: picard/ui/infodialog.py:80 +#: picard/ui/infodialog.py:85 msgid "Filename:" msgstr "Filnavn:" -#: picard/ui/infodialog.py:82 +#: picard/ui/infodialog.py:87 msgid "Format:" msgstr "Format:" -#: picard/ui/infodialog.py:86 +#: picard/ui/infodialog.py:91 msgid "Size:" msgstr "Størrelse:" -#: picard/ui/infodialog.py:90 +#: picard/ui/infodialog.py:95 msgid "Length:" msgstr "Lengde:" -#: picard/ui/infodialog.py:92 +#: picard/ui/infodialog.py:97 msgid "Bitrate:" msgstr "Bitrate:" -#: picard/ui/infodialog.py:94 +#: picard/ui/infodialog.py:99 msgid "Sample rate:" msgstr "Samplingsrate:" -#: picard/ui/infodialog.py:96 +#: picard/ui/infodialog.py:101 msgid "Bits per sample:" msgstr "Bits per sample:" -#: picard/ui/infodialog.py:100 +#: picard/ui/infodialog.py:105 msgid "Mono" msgstr "Mono" -#: picard/ui/infodialog.py:102 +#: picard/ui/infodialog.py:107 msgid "Stereo" msgstr "Stereo" -#: picard/ui/infodialog.py:105 +#: picard/ui/infodialog.py:110 msgid "Channels:" msgstr "" -#: picard/ui/infodialog.py:116 +#: picard/ui/infodialog.py:121 msgid "Album Info" msgstr "" -#: picard/ui/infodialog.py:124 +#: picard/ui/infodialog.py:129 msgid "&Errors" msgstr "" -#: picard/ui/infodialog.py:134 picard/ui/ui_infodialog.py:77 +#: picard/ui/infodialog.py:139 picard/ui/ui_infodialog.py:73 msgid "&Info" msgstr "" @@ -688,7 +577,7 @@ msgstr "" msgid "Title" msgstr "Tittel" -#: picard/ui/itemviews.py:95 picard/util/tags.py:88 +#: picard/ui/itemviews.py:95 picard/util/tags.py:86 msgid "Length" msgstr "Lengde" @@ -713,7 +602,7 @@ msgid "Collections" msgstr "" #: picard/ui/itemviews.py:365 -msgid "&Plugins" +msgid "P&lugins" msgstr "" #: picard/ui/itemviews.py:541 @@ -736,12 +625,16 @@ msgstr "" msgid "Contains albums and matched files" msgstr "" -#: picard/ui/logview.py:91 +#: picard/ui/logview.py:109 msgid "Log" msgstr "Logg" -#: picard/ui/logview.py:99 -msgid "Status History" +#: picard/ui/logview.py:113 +msgid "Debug mode" +msgstr "" + +#: picard/ui/logview.py:134 +msgid "Activity History" msgstr "" #: picard/ui/mainwindow.py:74 @@ -775,276 +668,309 @@ msgstr "" #: picard/ui/mainwindow.py:220 msgid "" -"Picard listens on a port to integrate with your browser and downloads " -"release information when you click the \"Tagger\" buttons on the MusicBrainz" -" website" +"Picard listens on this port to integrate with your browser. When you " +"\"Search\" or \"Open in Browser\" from Picard, clicking the \"Tagger\" " +"button on the web page loads the release into Picard." msgstr "" -#: picard/ui/mainwindow.py:240 +#: picard/ui/mainwindow.py:243 #, python-format msgid " Listening on port %(port)d " msgstr "" -#: picard/ui/mainwindow.py:263 +#: picard/ui/mainwindow.py:299 msgid "Submission Error" msgstr "" -#: picard/ui/mainwindow.py:264 +#: picard/ui/mainwindow.py:300 msgid "" "You need to configure your AcoustID API key before you can submit " "fingerprints." msgstr "" -#: picard/ui/mainwindow.py:269 +#: picard/ui/mainwindow.py:305 msgid "&Options..." msgstr "&Alternativer" -#: picard/ui/mainwindow.py:273 +#: picard/ui/mainwindow.py:309 msgid "&Cut" msgstr "&Klipp" -#: picard/ui/mainwindow.py:278 +#: picard/ui/mainwindow.py:314 msgid "&Paste" msgstr "&Lim inn" -#: picard/ui/mainwindow.py:283 +#: picard/ui/mainwindow.py:319 msgid "&Help..." msgstr "&Hjelp" -#: picard/ui/mainwindow.py:288 +#: picard/ui/mainwindow.py:323 msgid "&About..." msgstr "&Om..." -#: picard/ui/mainwindow.py:292 +#: picard/ui/mainwindow.py:327 msgid "&Donate..." msgstr "" -#: picard/ui/mainwindow.py:295 +#: picard/ui/mainwindow.py:330 msgid "&Report a Bug..." msgstr "&Rapportér en feil..." -#: picard/ui/mainwindow.py:298 +#: picard/ui/mainwindow.py:333 msgid "&Support Forum..." msgstr "&Support Forum..." -#: picard/ui/mainwindow.py:301 +#: picard/ui/mainwindow.py:336 msgid "&Add Files..." msgstr "&Legg til filer" -#: picard/ui/mainwindow.py:302 +#: picard/ui/mainwindow.py:337 msgid "Add files to the tagger" msgstr "" -#: picard/ui/mainwindow.py:307 +#: picard/ui/mainwindow.py:342 msgid "A&dd Folder..." msgstr "" -#: picard/ui/mainwindow.py:308 +#: picard/ui/mainwindow.py:343 msgid "Add a folder to the tagger" msgstr "" -#: picard/ui/mainwindow.py:310 +#: picard/ui/mainwindow.py:345 msgid "Ctrl+D" msgstr "Ctrl+D" -#: picard/ui/mainwindow.py:313 +#: picard/ui/mainwindow.py:348 msgid "&Save" msgstr "&Lagre" -#: picard/ui/mainwindow.py:314 +#: picard/ui/mainwindow.py:349 msgid "Save selected files" msgstr "" -#: picard/ui/mainwindow.py:320 +#: picard/ui/mainwindow.py:355 msgid "S&ubmit" msgstr "" -#: picard/ui/mainwindow.py:321 -msgid "Submit fingerprints" +#: picard/ui/mainwindow.py:356 +msgid "Submit acoustic fingerprints" msgstr "" -#: picard/ui/mainwindow.py:325 +#: picard/ui/mainwindow.py:360 msgid "E&xit" msgstr "L&ukk" -#: picard/ui/mainwindow.py:328 +#: picard/ui/mainwindow.py:363 msgid "Ctrl+Q" msgstr "Ctrl+Q" -#: picard/ui/mainwindow.py:331 +#: picard/ui/mainwindow.py:366 msgid "&Remove" msgstr "&Fjern" -#: picard/ui/mainwindow.py:332 +#: picard/ui/mainwindow.py:367 msgid "Remove selected files/albums" msgstr "" -#: picard/ui/mainwindow.py:336 +#: picard/ui/mainwindow.py:371 msgid "Lookup in &Browser" msgstr "" -#: picard/ui/mainwindow.py:337 +#: picard/ui/mainwindow.py:372 msgid "Lookup selected item on MusicBrainz website" msgstr "" -#: picard/ui/mainwindow.py:341 +#: picard/ui/mainwindow.py:376 msgid "File &Browser" msgstr "" -#: picard/ui/mainwindow.py:345 +#: picard/ui/mainwindow.py:380 msgid "Ctrl+B" msgstr "Ctrl+B" -#: picard/ui/mainwindow.py:348 +#: picard/ui/mainwindow.py:383 msgid "&Cover Art" msgstr "&Plateomslag" -#: picard/ui/mainwindow.py:354 picard/ui/mainwindow.py:539 +#: picard/ui/mainwindow.py:389 picard/ui/mainwindow.py:591 msgid "Search" msgstr "Søk" -#: picard/ui/mainwindow.py:357 -msgid "&CD Lookup..." +#: picard/ui/mainwindow.py:392 +msgid "Lookup &CD..." msgstr "" -#: picard/ui/mainwindow.py:358 picard/ui/mainwindow.py:359 -msgid "Lookup CD" -msgstr "Hent CD" +#: picard/ui/mainwindow.py:393 +msgid "Lookup the details of the CD in your drive" +msgstr "" -#: picard/ui/mainwindow.py:361 +#: picard/ui/mainwindow.py:395 msgid "Ctrl+K" msgstr "Ctrl+K" -#: picard/ui/mainwindow.py:364 +#: picard/ui/mainwindow.py:398 msgid "&Scan" msgstr "" -#: picard/ui/mainwindow.py:367 +#: picard/ui/mainwindow.py:401 msgid "Ctrl+Y" msgstr "Ctrl+Y" -#: picard/ui/mainwindow.py:370 +#: picard/ui/mainwindow.py:404 msgid "Cl&uster" msgstr "" -#: picard/ui/mainwindow.py:373 +#: picard/ui/mainwindow.py:407 msgid "Ctrl+U" msgstr "Ctrl+U" -#: picard/ui/mainwindow.py:376 +#: picard/ui/mainwindow.py:410 msgid "&Lookup" msgstr "" -#: picard/ui/mainwindow.py:377 picard/ui/mainwindow.py:378 -msgid "Lookup metadata" +#: picard/ui/mainwindow.py:411 +msgid "Lookup selected items in MusicBrainz" msgstr "" -#: picard/ui/mainwindow.py:381 +#: picard/ui/mainwindow.py:416 msgid "Ctrl+L" msgstr "Ctrl+L" -#: picard/ui/mainwindow.py:384 +#: picard/ui/mainwindow.py:419 msgid "&Info..." msgstr "&Info..." -#: picard/ui/mainwindow.py:387 +#: picard/ui/mainwindow.py:422 msgid "Ctrl+I" msgstr "Ctrl+I" -#: picard/ui/mainwindow.py:390 +#: picard/ui/mainwindow.py:425 msgid "&Refresh" msgstr "&Oppdater" -#: picard/ui/mainwindow.py:391 +#: picard/ui/mainwindow.py:426 msgid "Ctrl+R" msgstr "Ctrl+R" -#: picard/ui/mainwindow.py:394 +#: picard/ui/mainwindow.py:429 msgid "&Rename Files" msgstr "" -#: picard/ui/mainwindow.py:399 +#: picard/ui/mainwindow.py:434 msgid "&Move Files" msgstr "&Flytt filer" -#: picard/ui/mainwindow.py:404 +#: picard/ui/mainwindow.py:439 msgid "Save &Tags" msgstr "" -#: picard/ui/mainwindow.py:409 +#: picard/ui/mainwindow.py:444 msgid "Tags From &File Names..." msgstr "" -#: picard/ui/mainwindow.py:412 -msgid "View &Log..." -msgstr "Vis logg" - -#: picard/ui/mainwindow.py:415 -msgid "View Status &History..." +#: picard/ui/mainwindow.py:447 +msgid "&Open My Collections in Browser" msgstr "" -#: picard/ui/mainwindow.py:422 -msgid "&Open..." -msgstr "&Åpne" - -#: picard/ui/mainwindow.py:423 -msgid "Open the file" +#: picard/ui/mainwindow.py:451 +msgid "View Error/Debug &Log" msgstr "" -#: picard/ui/mainwindow.py:426 -msgid "Open &Folder..." +#: picard/ui/mainwindow.py:454 +msgid "View Activity &History" msgstr "" -#: picard/ui/mainwindow.py:427 -msgid "Open the containing folder" +#: picard/ui/mainwindow.py:461 +msgid "&Play file" msgstr "" -#: picard/ui/mainwindow.py:448 +#: picard/ui/mainwindow.py:462 +msgid "Play the file in your default media player" +msgstr "" + +#: picard/ui/mainwindow.py:466 +msgid "Open Containing &Folder" +msgstr "" + +#: picard/ui/mainwindow.py:467 +msgid "Open the containing folder in your file explorer" +msgstr "" + +#: picard/ui/mainwindow.py:492 msgid "&File" msgstr "&Fil" -#: picard/ui/mainwindow.py:456 +#: picard/ui/mainwindow.py:503 msgid "&Edit" msgstr "&Rediger" -#: picard/ui/mainwindow.py:462 +#: picard/ui/mainwindow.py:509 msgid "&View" msgstr "" -#: picard/ui/mainwindow.py:470 +#: picard/ui/mainwindow.py:515 msgid "&Options" msgstr "&Alternativer" -#: picard/ui/mainwindow.py:476 +#: picard/ui/mainwindow.py:521 msgid "&Tools" msgstr "&Verktøy" -#: picard/ui/mainwindow.py:485 picard/ui/util.py:35 +#: picard/ui/mainwindow.py:532 picard/ui/util.py:35 msgid "&Help" msgstr "&Hjelp" -#: picard/ui/mainwindow.py:505 +#: picard/ui/mainwindow.py:553 msgid "Actions" msgstr "" -#: picard/ui/mainwindow.py:608 +#: picard/ui/mainwindow.py:599 +msgid "Track" +msgstr "Spor" + +#: picard/ui/mainwindow.py:662 msgid "All Supported Formats" msgstr "Alle støttede formater" -#: picard/ui/mainwindow.py:705 +#: picard/ui/mainwindow.py:695 +#, python-format +msgid "Adding directory: '%(directory)s' ..." +msgstr "" + +#: picard/ui/mainwindow.py:702 +#, python-format +msgid "Adding multiple directories from '%(directory)s' ..." +msgstr "" + +#: picard/ui/mainwindow.py:767 msgid "Configuration Required" msgstr "" -#: picard/ui/mainwindow.py:706 +#: picard/ui/mainwindow.py:768 msgid "" "Audio fingerprinting is not yet configured. Would you like to configure it " "now?" msgstr "" -#: picard/ui/mainwindow.py:784 picard/ui/mainwindow.py:791 +#: picard/ui/mainwindow.py:848 #, python-format -msgid " (Error: %s)" -msgstr " (Feil: %s)" +msgid "%(filename)s (error: %(error)s)" +msgstr "" + +#: picard/ui/mainwindow.py:854 +#, python-format +msgid "%(filename)s" +msgstr "" + +#: picard/ui/mainwindow.py:864 +#, python-format +msgid "%(filename)s (%(similarity)d%%) (error: %(error)s)" +msgstr "" + +#: picard/ui/mainwindow.py:871 +#, python-format +msgid "%(filename)s (%(similarity)d%%)" +msgstr "" #: picard/ui/metadatabox.py:82 #, python-format @@ -1098,387 +1024,387 @@ msgid_plural "Use Original Values" msgstr[0] "" msgstr[1] "" -#: picard/ui/passworddialog.py:37 +#: picard/ui/passworddialog.py:40 #, python-format msgid "" "The server %s requires you to login. Please enter your username and " "password." msgstr "" -#: picard/ui/passworddialog.py:75 +#: picard/ui/passworddialog.py:79 #, python-format msgid "" "The proxy %s requires you to login. Please enter your username and password." msgstr "" -#: picard/ui/tagsfromfilenames.py:55 picard/ui/tagsfromfilenames.py:100 +#: picard/ui/tagsfromfilenames.py:56 picard/ui/tagsfromfilenames.py:101 msgid "File Name" msgstr "" -#: picard/ui/ui_cdlookup.py:66 picard/ui/ui_options_cdlookup.py:55 -#: picard/ui/ui_options_cdlookup_select.py:62 picard/ui/options/cdlookup.py:38 +#: picard/ui/ui_cdlookup.py:53 picard/ui/ui_options_cdlookup.py:42 +#: picard/ui/ui_options_cdlookup_select.py:49 picard/ui/options/cdlookup.py:38 msgid "CD Lookup" msgstr "CD Lookup" -#: picard/ui/ui_cdlookup.py:67 +#: picard/ui/ui_cdlookup.py:54 msgid "The following releases on MusicBrainz match the CD:" msgstr "De følgende album på MusicBrainz matcher CDen:" -#: picard/ui/ui_cdlookup.py:68 +#: picard/ui/ui_cdlookup.py:55 msgid "OK" msgstr "OK" -#: picard/ui/ui_cdlookup.py:69 +#: picard/ui/ui_cdlookup.py:56 msgid "Lookup manually" msgstr "" -#: picard/ui/ui_cdlookup.py:70 +#: picard/ui/ui_cdlookup.py:57 msgid "Cancel" msgstr "Avbryt" -#: picard/ui/ui_edittagdialog.py:101 +#: picard/ui/ui_edittagdialog.py:88 msgid "Edit Tag" msgstr "" -#: picard/ui/ui_edittagdialog.py:102 +#: picard/ui/ui_edittagdialog.py:89 msgid "Edit value" msgstr "" -#: picard/ui/ui_edittagdialog.py:103 +#: picard/ui/ui_edittagdialog.py:90 msgid "Add value" msgstr "" -#: picard/ui/ui_edittagdialog.py:104 +#: picard/ui/ui_edittagdialog.py:91 msgid "Remove value" msgstr "" -#: picard/ui/ui_infodialog.py:78 +#: picard/ui/ui_infodialog.py:74 msgid "A&rtwork" msgstr "" -#: picard/ui/ui_infostatus.py:100 +#: picard/ui/ui_infostatus.py:96 msgid "Form" msgstr "" -#: picard/ui/ui_options.py:51 +#: picard/ui/ui_options.py:38 msgid "Options" msgstr "" -#: picard/ui/ui_options_advanced.py:46 +#: picard/ui/ui_options_advanced.py:42 msgid "Advanced options" msgstr "" -#: picard/ui/ui_options_advanced.py:47 +#: picard/ui/ui_options_advanced.py:43 msgid "Ignore file paths matching the following regular expression:" msgstr "" -#: picard/ui/ui_options_cdlookup.py:56 +#: picard/ui/ui_options_cdlookup.py:43 msgid "CD-ROM device to use for lookups:" msgstr "" -#: picard/ui/ui_options_cdlookup_select.py:63 +#: picard/ui/ui_options_cdlookup_select.py:50 msgid "Default CD-ROM drive to use for lookups:" msgstr "" -#: picard/ui/ui_options_cover.py:145 +#: picard/ui/ui_options_cover.py:131 msgid "Location" msgstr "" -#: picard/ui/ui_options_cover.py:146 +#: picard/ui/ui_options_cover.py:132 msgid "Embed cover images into tags" msgstr "Legg cover til filtaggene" -#: picard/ui/ui_options_cover.py:147 +#: picard/ui/ui_options_cover.py:133 msgid "Only embed a front image" msgstr "" -#: picard/ui/ui_options_cover.py:148 +#: picard/ui/ui_options_cover.py:134 msgid "Save cover images as separate files" msgstr "Lagre plateomslag som egne filer" -#: picard/ui/ui_options_cover.py:149 +#: picard/ui/ui_options_cover.py:135 msgid "Use the following file name for images:" msgstr "" -#: picard/ui/ui_options_cover.py:150 +#: picard/ui/ui_options_cover.py:136 msgid "Overwrite the file if it already exists" msgstr "Overskrive filen hvis den eksisterer?" -#: picard/ui/ui_options_cover.py:151 +#: picard/ui/ui_options_cover.py:137 msgid "Coverart Providers" msgstr "" -#: picard/ui/ui_options_cover.py:152 +#: picard/ui/ui_options_cover.py:138 msgid "Amazon" msgstr "" -#: picard/ui/ui_options_cover.py:153 picard/ui/ui_options_cover.py:155 +#: picard/ui/ui_options_cover.py:139 picard/ui/ui_options_cover.py:141 msgid "Cover Art Archive" msgstr "" -#: picard/ui/ui_options_cover.py:154 +#: picard/ui/ui_options_cover.py:140 msgid "Sites on the whitelist" msgstr "" -#: picard/ui/ui_options_cover.py:156 +#: picard/ui/ui_options_cover.py:142 msgid "Only use images of the following size:" msgstr "" -#: picard/ui/ui_options_cover.py:157 +#: picard/ui/ui_options_cover.py:143 msgid "250 px" msgstr "" -#: picard/ui/ui_options_cover.py:158 +#: picard/ui/ui_options_cover.py:144 msgid "500 px" msgstr "" -#: picard/ui/ui_options_cover.py:159 +#: picard/ui/ui_options_cover.py:145 msgid "Full size" msgstr "" -#: picard/ui/ui_options_cover.py:160 +#: picard/ui/ui_options_cover.py:146 msgid "Download only images of the following types:" msgstr "" -#: picard/ui/ui_options_cover.py:161 +#: picard/ui/ui_options_cover.py:147 msgid "Download only approved images" msgstr "" -#: picard/ui/ui_options_cover.py:162 +#: picard/ui/ui_options_cover.py:148 msgid "" "Use the first image type as the filename. This will not change the filename " "of front images." msgstr "" -#: picard/ui/ui_options_fingerprinting.py:83 +#: picard/ui/ui_options_fingerprinting.py:70 msgid "Audio Fingerprinting" msgstr "" -#: picard/ui/ui_options_fingerprinting.py:84 +#: picard/ui/ui_options_fingerprinting.py:71 msgid "Do not use audio fingerprinting" msgstr "" -#: picard/ui/ui_options_fingerprinting.py:85 +#: picard/ui/ui_options_fingerprinting.py:72 msgid "Use AcoustID" msgstr "" -#: picard/ui/ui_options_fingerprinting.py:86 +#: picard/ui/ui_options_fingerprinting.py:73 msgid "AcoustID Settings" msgstr "" -#: picard/ui/ui_options_fingerprinting.py:87 +#: picard/ui/ui_options_fingerprinting.py:74 msgid "Fingerprint calculator:" msgstr "" -#: picard/ui/ui_options_fingerprinting.py:88 -#: picard/ui/ui_options_interface.py:88 picard/ui/ui_options_renaming.py:138 +#: picard/ui/ui_options_fingerprinting.py:75 +#: picard/ui/ui_options_interface.py:75 picard/ui/ui_options_renaming.py:134 msgid "Browse..." msgstr "" -#: picard/ui/ui_options_fingerprinting.py:89 +#: picard/ui/ui_options_fingerprinting.py:76 msgid "Download..." msgstr "" -#: picard/ui/ui_options_fingerprinting.py:90 +#: picard/ui/ui_options_fingerprinting.py:77 msgid "API key:" msgstr "" -#: picard/ui/ui_options_fingerprinting.py:91 +#: picard/ui/ui_options_fingerprinting.py:78 msgid "Get API key..." msgstr "" -#: picard/ui/ui_options_folksonomy.py:115 picard/ui/options/folksonomy.py:28 +#: picard/ui/ui_options_folksonomy.py:102 picard/ui/options/folksonomy.py:28 msgid "Folksonomy Tags" msgstr "" -#: picard/ui/ui_options_folksonomy.py:117 +#: picard/ui/ui_options_folksonomy.py:104 msgid "Only use my tags" msgstr "" -#: picard/ui/ui_options_folksonomy.py:120 +#: picard/ui/ui_options_folksonomy.py:107 msgid "Maximum number of tags:" msgstr "" -#: picard/ui/ui_options_general.py:92 +#: picard/ui/ui_options_general.py:88 msgid "MusicBrainz Server" msgstr "MusicBrainz Server" -#: picard/ui/ui_options_general.py:93 picard/ui/ui_options_network.py:123 +#: picard/ui/ui_options_general.py:89 picard/ui/ui_options_network.py:110 msgid "Port:" msgstr "Port:" -#: picard/ui/ui_options_general.py:94 picard/ui/ui_options_network.py:124 +#: picard/ui/ui_options_general.py:90 picard/ui/ui_options_network.py:111 msgid "Server address:" msgstr "Tjeneradresse:" -#: picard/ui/ui_options_general.py:95 +#: picard/ui/ui_options_general.py:91 msgid "Account Information" msgstr "Kontoinformasjon" -#: picard/ui/ui_options_general.py:96 picard/ui/ui_options_network.py:121 -#: picard/ui/ui_passworddialog.py:74 +#: picard/ui/ui_options_general.py:92 picard/ui/ui_options_network.py:108 +#: picard/ui/ui_passworddialog.py:70 msgid "Password:" msgstr "Passord:" -#: picard/ui/ui_options_general.py:97 picard/ui/ui_options_network.py:122 -#: picard/ui/ui_passworddialog.py:73 +#: picard/ui/ui_options_general.py:93 picard/ui/ui_options_network.py:109 +#: picard/ui/ui_passworddialog.py:69 msgid "Username:" msgstr "Brukernavn:" -#: picard/ui/ui_options_general.py:98 picard/ui/options/general.py:31 +#: picard/ui/ui_options_general.py:94 picard/ui/options/general.py:31 msgid "General" msgstr "Generelt" -#: picard/ui/ui_options_general.py:99 +#: picard/ui/ui_options_general.py:95 msgid "Automatically scan all new files" msgstr "" -#: picard/ui/ui_options_general.py:100 +#: picard/ui/ui_options_general.py:96 msgid "Ignore MBIDs when loading new files" msgstr "" -#: picard/ui/ui_options_interface.py:82 +#: picard/ui/ui_options_interface.py:69 msgid "Miscellaneous" msgstr "" -#: picard/ui/ui_options_interface.py:83 +#: picard/ui/ui_options_interface.py:70 msgid "Show text labels under icons" msgstr "" -#: picard/ui/ui_options_interface.py:84 +#: picard/ui/ui_options_interface.py:71 msgid "Allow selection of multiple directories" msgstr "" -#: picard/ui/ui_options_interface.py:85 +#: picard/ui/ui_options_interface.py:72 msgid "Use advanced query syntax" msgstr "" -#: picard/ui/ui_options_interface.py:86 +#: picard/ui/ui_options_interface.py:73 msgid "Show a quit confirmation dialog for unsaved changes" msgstr "" -#: picard/ui/ui_options_interface.py:87 +#: picard/ui/ui_options_interface.py:74 msgid "Begin browsing in the following directory:" msgstr "" -#: picard/ui/ui_options_interface.py:89 +#: picard/ui/ui_options_interface.py:76 msgid "User interface language:" msgstr "" -#: picard/ui/ui_options_matching.py:86 +#: picard/ui/ui_options_matching.py:73 msgid "Thresholds" msgstr "Terskler" -#: picard/ui/ui_options_matching.py:87 +#: picard/ui/ui_options_matching.py:74 msgid "Minimal similarity for matching files to tracks:" msgstr "Minste likhet for å matche filer til spor:" -#: picard/ui/ui_options_matching.py:91 +#: picard/ui/ui_options_matching.py:78 msgid "Minimal similarity for file lookups:" msgstr "Minste likhet for filoppslag:" -#: picard/ui/ui_options_matching.py:92 +#: picard/ui/ui_options_matching.py:79 msgid "Minimal similarity for cluster lookups:" msgstr "Minste likhet for gruppeoppslag:" -#: picard/ui/ui_options_metadata.py:114 picard/ui/options/metadata.py:29 +#: picard/ui/ui_options_metadata.py:101 picard/ui/options/metadata.py:29 msgid "Metadata" msgstr "" -#: picard/ui/ui_options_metadata.py:115 +#: picard/ui/ui_options_metadata.py:102 msgid "Translate artist names to this locale where possible:" msgstr "" -#: picard/ui/ui_options_metadata.py:116 +#: picard/ui/ui_options_metadata.py:103 msgid "Use standardized artist names" msgstr "" -#: picard/ui/ui_options_metadata.py:117 +#: picard/ui/ui_options_metadata.py:104 msgid "Convert Unicode punctuation characters to ASCII" msgstr "" -#: picard/ui/ui_options_metadata.py:118 +#: picard/ui/ui_options_metadata.py:105 msgid "Use release relationships" msgstr "" -#: picard/ui/ui_options_metadata.py:119 +#: picard/ui/ui_options_metadata.py:106 msgid "Use track relationships" msgstr "" -#: picard/ui/ui_options_metadata.py:120 +#: picard/ui/ui_options_metadata.py:107 msgid "Use folksonomy tags as genre" msgstr "" -#: picard/ui/ui_options_metadata.py:121 +#: picard/ui/ui_options_metadata.py:108 msgid "Custom Fields" msgstr "" -#: picard/ui/ui_options_metadata.py:122 +#: picard/ui/ui_options_metadata.py:109 msgid "Various artists:" msgstr "Diverse artister:" -#: picard/ui/ui_options_metadata.py:123 +#: picard/ui/ui_options_metadata.py:110 msgid "Non-album tracks:" msgstr "Frittstående spor" -#: picard/ui/ui_options_metadata.py:124 picard/ui/ui_options_metadata.py:125 -#: picard/ui/ui_options_renaming.py:147 +#: picard/ui/ui_options_metadata.py:111 picard/ui/ui_options_metadata.py:112 +#: picard/ui/ui_options_renaming.py:143 msgid "Default" msgstr "Standard" -#: picard/ui/ui_options_network.py:120 +#: picard/ui/ui_options_network.py:107 msgid "Web Proxy" msgstr "Web Proxy" -#: picard/ui/ui_options_network.py:125 +#: picard/ui/ui_options_network.py:112 msgid "Browser Integration" msgstr "" -#: picard/ui/ui_options_network.py:126 +#: picard/ui/ui_options_network.py:113 msgid "Default listening port:" msgstr "" -#: picard/ui/ui_options_network.py:127 +#: picard/ui/ui_options_network.py:114 msgid "Listen only on localhost" msgstr "" -#: picard/ui/ui_options_plugins.py:131 picard/ui/options/plugins.py:38 +#: picard/ui/ui_options_plugins.py:127 picard/ui/options/plugins.py:38 msgid "Plugins" msgstr "" -#: picard/ui/ui_options_plugins.py:132 picard/ui/options/plugins.py:122 +#: picard/ui/ui_options_plugins.py:128 picard/ui/options/plugins.py:122 msgid "Name" msgstr "Navn" -#: picard/ui/ui_options_plugins.py:133 picard/util/tags.py:39 +#: picard/ui/ui_options_plugins.py:129 msgid "Version" msgstr "Versjon" -#: picard/ui/ui_options_plugins.py:134 picard/ui/options/plugins.py:125 +#: picard/ui/ui_options_plugins.py:130 picard/ui/options/plugins.py:125 msgid "Author" msgstr "Forfatter" -#: picard/ui/ui_options_plugins.py:135 +#: picard/ui/ui_options_plugins.py:131 msgid "Install plugin..." msgstr "Installér plugin.." -#: picard/ui/ui_options_plugins.py:136 +#: picard/ui/ui_options_plugins.py:132 msgid "Open plugin folder" msgstr "" -#: picard/ui/ui_options_plugins.py:137 +#: picard/ui/ui_options_plugins.py:133 msgid "Download plugins" msgstr "" -#: picard/ui/ui_options_plugins.py:138 +#: picard/ui/ui_options_plugins.py:134 msgid "Details" msgstr "Detaljer" -#: picard/ui/ui_options_ratings.py:53 +#: picard/ui/ui_options_ratings.py:49 msgid "Enable track ratings" msgstr "" -#: picard/ui/ui_options_ratings.py:54 +#: picard/ui/ui_options_ratings.py:50 msgid "" "Picard saves the ratings together with an e-mail address identifying the " "user who did the rating. That way different ratings for different users can " @@ -1486,207 +1412,167 @@ msgid "" "your ratings." msgstr "" -#: picard/ui/ui_options_ratings.py:55 +#: picard/ui/ui_options_ratings.py:51 msgid "E-mail:" msgstr "" -#: picard/ui/ui_options_ratings.py:56 +#: picard/ui/ui_options_ratings.py:52 msgid "Submit ratings to MusicBrainz" msgstr "" -#: picard/ui/ui_options_releases.py:215 +#: picard/ui/ui_options_releases.py:104 msgid "Preferred release types" msgstr "" -#: picard/ui/ui_options_releases.py:217 -msgid "Single" -msgstr "Singel" - -#: picard/ui/ui_options_releases.py:218 -msgid "EP" -msgstr "EP" - -#: picard/ui/ui_options_releases.py:219 -msgid "Compilation" -msgstr "" - -#: picard/ui/ui_options_releases.py:220 -msgid "Soundtrack" -msgstr "" - -#: picard/ui/ui_options_releases.py:221 -msgid "Spokenword" -msgstr "" - -#: picard/ui/ui_options_releases.py:222 -msgid "Interview" -msgstr "Intervju" - -#: picard/ui/ui_options_releases.py:223 -msgid "Audiobook" -msgstr "Lydbok" - -#: picard/ui/ui_options_releases.py:224 -msgid "Live" -msgstr "Live" - -#: picard/ui/ui_options_releases.py:225 -msgid "Remix" -msgstr "Remiks" - -#: picard/ui/ui_options_releases.py:227 -msgid "Reset all" -msgstr "Tilbakestill alle" - -#: picard/ui/ui_options_releases.py:228 +#: picard/ui/ui_options_releases.py:105 msgid "Preferred release countries" msgstr "" -#: picard/ui/ui_options_releases.py:229 picard/ui/ui_options_releases.py:232 +#: picard/ui/ui_options_releases.py:106 picard/ui/ui_options_releases.py:109 msgid ">" msgstr ">" -#: picard/ui/ui_options_releases.py:230 picard/ui/ui_options_releases.py:233 +#: picard/ui/ui_options_releases.py:107 picard/ui/ui_options_releases.py:110 msgid "<" msgstr "<" -#: picard/ui/ui_options_releases.py:231 +#: picard/ui/ui_options_releases.py:108 msgid "Preferred release formats" msgstr "" -#: picard/ui/ui_options_renaming.py:134 +#: picard/ui/ui_options_renaming.py:130 msgid "Rename files when saving" msgstr "" -#: picard/ui/ui_options_renaming.py:135 +#: picard/ui/ui_options_renaming.py:131 msgid "Replace non-ASCII characters" msgstr "Bytt ut ikke-ASCII tegn" -#: picard/ui/ui_options_renaming.py:136 +#: picard/ui/ui_options_renaming.py:132 msgid "Windows compatibility" msgstr "" -#: picard/ui/ui_options_renaming.py:137 +#: picard/ui/ui_options_renaming.py:133 msgid "Move files to this directory when saving:" msgstr "" -#: picard/ui/ui_options_renaming.py:139 +#: picard/ui/ui_options_renaming.py:135 msgid "Delete empty directories" msgstr "" -#: picard/ui/ui_options_renaming.py:140 +#: picard/ui/ui_options_renaming.py:136 msgid "Move additional files:" msgstr "" -#: picard/ui/ui_options_renaming.py:141 +#: picard/ui/ui_options_renaming.py:137 msgid "Name files like this" msgstr "" -#: picard/ui/ui_options_renaming.py:148 +#: picard/ui/ui_options_renaming.py:144 msgid "Examples" msgstr "Eksempler" -#: picard/ui/ui_options_script.py:49 +#: picard/ui/ui_options_script.py:45 msgid "Tagger Script" msgstr "" -#: picard/ui/ui_options_tags.py:165 +#: picard/ui/ui_options_tags.py:152 msgid "Write tags to files" msgstr "" -#: picard/ui/ui_options_tags.py:166 +#: picard/ui/ui_options_tags.py:153 msgid "Preserve timestamps of tagged files" msgstr "" -#: picard/ui/ui_options_tags.py:167 +#: picard/ui/ui_options_tags.py:154 msgid "Before Tagging" msgstr "" -#: picard/ui/ui_options_tags.py:168 +#: picard/ui/ui_options_tags.py:155 msgid "Clear existing tags" msgstr "" -#: picard/ui/ui_options_tags.py:169 +#: picard/ui/ui_options_tags.py:156 msgid "Remove ID3 tags from FLAC files" msgstr "" -#: picard/ui/ui_options_tags.py:170 +#: picard/ui/ui_options_tags.py:157 msgid "Remove APEv2 tags from MP3 files" msgstr "" -#: picard/ui/ui_options_tags.py:171 +#: picard/ui/ui_options_tags.py:158 msgid "" "Preserve these tags from being cleared or overwritten with MusicBrainz data:" msgstr "" -#: picard/ui/ui_options_tags.py:172 +#: picard/ui/ui_options_tags.py:159 msgid "Tags are separated by commas, and are case-sensitive." msgstr "" -#: picard/ui/ui_options_tags.py:173 +#: picard/ui/ui_options_tags.py:160 msgid "Tag Compatibility" msgstr "" -#: picard/ui/ui_options_tags.py:174 +#: picard/ui/ui_options_tags.py:161 msgid "ID3v2 Version" msgstr "" -#: picard/ui/ui_options_tags.py:175 +#: picard/ui/ui_options_tags.py:162 msgid "2.4" msgstr "" -#: picard/ui/ui_options_tags.py:176 +#: picard/ui/ui_options_tags.py:163 msgid "2.3" msgstr "" -#: picard/ui/ui_options_tags.py:177 +#: picard/ui/ui_options_tags.py:164 msgid "ID3v2 Text Encoding" msgstr "" -#: picard/ui/ui_options_tags.py:178 +#: picard/ui/ui_options_tags.py:165 msgid "UTF-8" msgstr "UTF-8" -#: picard/ui/ui_options_tags.py:179 +#: picard/ui/ui_options_tags.py:166 msgid "UTF-16" msgstr "UTF-16" -#: picard/ui/ui_options_tags.py:180 +#: picard/ui/ui_options_tags.py:167 msgid "ISO-8859-1" msgstr "ISO-8859-1" -#: picard/ui/ui_options_tags.py:181 +#: picard/ui/ui_options_tags.py:168 msgid "Join multiple ID3v2.3 tags with:" msgstr "" -#: picard/ui/ui_options_tags.py:182 +#: picard/ui/ui_options_tags.py:169 msgid "" "

Default is '/' to maintain compatibility with previous" " Picard releases.

New alternatives are ';_' or '_/_' or type your own." "

" msgstr "" -#: picard/ui/ui_options_tags.py:183 +#: picard/ui/ui_options_tags.py:170 msgid "Also include ID3v1 tags in the files" msgstr "" -#: picard/ui/ui_passworddialog.py:72 +#: picard/ui/ui_passworddialog.py:68 msgid "Authentication required" msgstr "" -#: picard/ui/ui_passworddialog.py:75 +#: picard/ui/ui_passworddialog.py:71 msgid "Save username and password" msgstr "" -#: picard/ui/ui_tagsfromfilenames.py:54 +#: picard/ui/ui_tagsfromfilenames.py:50 msgid "Convert File Names to Tags" msgstr "" -#: picard/ui/ui_tagsfromfilenames.py:55 +#: picard/ui/ui_tagsfromfilenames.py:51 msgid "Replace underscores with spaces" msgstr "Erstatt understreker med mellomrom" -#: picard/ui/ui_tagsfromfilenames.py:56 +#: picard/ui/ui_tagsfromfilenames.py:52 msgid "&Preview" msgstr "&Forhåndsvis" @@ -1742,7 +1628,11 @@ msgstr "Avansert" msgid "Regex Error" msgstr "" -#: picard/ui/options/cover.py:63 +#: picard/ui/options/cover.py:44 +msgid "title" +msgstr "" + +#: picard/ui/options/cover.py:68 msgid "Cover Art" msgstr "Plateomslag" @@ -1758,11 +1648,11 @@ msgstr "Brukergrensesnitt" msgid "System default" msgstr "Systemstandard" -#: picard/ui/options/interface.py:96 +#: picard/ui/options/interface.py:98 msgid "Language changed" msgstr "Språk endret" -#: picard/ui/options/interface.py:96 +#: picard/ui/options/interface.py:99 msgid "" "You have changed the interface language. You have to restart Picard in order" " for the change to take effect." @@ -1784,31 +1674,35 @@ msgstr "Fil" msgid "Ratings" msgstr "" -#: picard/ui/options/releases.py:33 +#: picard/ui/options/releases.py:87 msgid "Preferred Releases" msgstr "" +#: picard/ui/options/releases.py:121 +msgid "Reset all" +msgstr "Tilbakestill alle" + #: picard/ui/options/renaming.py:37 msgid "File Naming" msgstr "" -#: picard/ui/options/renaming.py:184 +#: picard/ui/options/renaming.py:187 msgid "Error" msgstr "" -#: picard/ui/options/renaming.py:184 +#: picard/ui/options/renaming.py:187 msgid "The location to move files to must not be empty." msgstr "" -#: picard/ui/options/renaming.py:194 +#: picard/ui/options/renaming.py:197 msgid "The file naming format must not be empty." msgstr "" -#: picard/ui/options/scripting.py:63 +#: picard/ui/options/scripting.py:99 msgid "Scripting" msgstr "Skripting" -#: picard/ui/options/scripting.py:95 +#: picard/ui/options/scripting.py:131 msgid "Script Error" msgstr "" @@ -1928,199 +1822,199 @@ msgstr "ASIN" msgid "Grouping" msgstr "Gruppering" -#: picard/util/tags.py:40 +#: picard/util/tags.py:39 msgid "ISRC" msgstr "ISRC" -#: picard/util/tags.py:41 +#: picard/util/tags.py:40 msgid "Mood" msgstr "Stemning" -#: picard/util/tags.py:42 +#: picard/util/tags.py:41 msgid "BPM" msgstr "BPM" -#: picard/util/tags.py:43 +#: picard/util/tags.py:42 msgid "Copyright" msgstr "" -#: picard/util/tags.py:44 +#: picard/util/tags.py:43 msgid "License" msgstr "" -#: picard/util/tags.py:45 +#: picard/util/tags.py:44 msgid "Composer" msgstr "" -#: picard/util/tags.py:46 +#: picard/util/tags.py:45 msgid "Writer" msgstr "" -#: picard/util/tags.py:47 +#: picard/util/tags.py:46 msgid "Conductor" msgstr "" -#: picard/util/tags.py:48 +#: picard/util/tags.py:47 msgid "Lyricist" msgstr "Låtskriver" -#: picard/util/tags.py:49 +#: picard/util/tags.py:48 msgid "Arranger" msgstr "Arrangør" -#: picard/util/tags.py:50 +#: picard/util/tags.py:49 msgid "Producer" msgstr "Produsent" -#: picard/util/tags.py:51 +#: picard/util/tags.py:50 msgid "Engineer" msgstr "" -#: picard/util/tags.py:52 +#: picard/util/tags.py:51 msgid "Subtitle" msgstr "Undertekst" -#: picard/util/tags.py:53 +#: picard/util/tags.py:52 msgid "Disc Subtitle" msgstr "" -#: picard/util/tags.py:54 +#: picard/util/tags.py:53 msgid "Remixer" msgstr "" -#: picard/util/tags.py:55 +#: picard/util/tags.py:54 msgid "MusicBrainz Recording Id" msgstr "" -#: picard/util/tags.py:56 +#: picard/util/tags.py:55 msgid "MusicBrainz Track Id" msgstr "" -#: picard/util/tags.py:57 +#: picard/util/tags.py:56 msgid "MusicBrainz Release Id" msgstr "" -#: picard/util/tags.py:58 +#: picard/util/tags.py:57 msgid "MusicBrainz Artist Id" msgstr "" -#: picard/util/tags.py:59 +#: picard/util/tags.py:58 msgid "MusicBrainz Release Artist Id" msgstr "" -#: picard/util/tags.py:60 +#: picard/util/tags.py:59 msgid "MusicBrainz Work Id" msgstr "" -#: picard/util/tags.py:61 +#: picard/util/tags.py:60 msgid "MusicBrainz Release Group Id" msgstr "" -#: picard/util/tags.py:62 +#: picard/util/tags.py:61 msgid "MusicBrainz Disc Id" msgstr "" -#: picard/util/tags.py:63 -msgid "MusicBrainz Sort Name" -msgstr "" - -#: picard/util/tags.py:64 +#: picard/util/tags.py:62 msgid "MusicIP PUID" msgstr "" -#: picard/util/tags.py:65 +#: picard/util/tags.py:63 msgid "MusicIP Fingerprint" msgstr "" -#: picard/util/tags.py:66 +#: picard/util/tags.py:64 msgid "AcoustID" msgstr "" -#: picard/util/tags.py:67 +#: picard/util/tags.py:65 msgid "AcoustID Fingerprint" msgstr "" -#: picard/util/tags.py:68 +#: picard/util/tags.py:66 msgid "Disc Id" msgstr "" -#: picard/util/tags.py:69 -msgid "Website" -msgstr "Webside" +#: picard/util/tags.py:67 +msgid "Artist Website" +msgstr "" -#: picard/util/tags.py:70 +#: picard/util/tags.py:68 msgid "Compilation (iTunes)" msgstr "" -#: picard/util/tags.py:71 +#: picard/util/tags.py:69 msgid "Comment" msgstr "" -#: picard/util/tags.py:72 +#: picard/util/tags.py:70 msgid "Genre" msgstr "Sjanger" -#: picard/util/tags.py:73 +#: picard/util/tags.py:71 msgid "Encoded By" msgstr "" -#: picard/util/tags.py:74 +#: picard/util/tags.py:72 +msgid "Encoder Settings" +msgstr "" + +#: picard/util/tags.py:73 msgid "Performer" msgstr "Artist" -#: picard/util/tags.py:75 +#: picard/util/tags.py:74 msgid "Release Type" msgstr "" -#: picard/util/tags.py:76 +#: picard/util/tags.py:75 msgid "Release Status" msgstr "" -#: picard/util/tags.py:77 +#: picard/util/tags.py:76 msgid "Release Country" msgstr "" -#: picard/util/tags.py:78 +#: picard/util/tags.py:77 msgid "Record Label" msgstr "" -#: picard/util/tags.py:80 +#: picard/util/tags.py:79 msgid "Catalog Number" msgstr "" -#: picard/util/tags.py:82 +#: picard/util/tags.py:80 msgid "DJ-Mixer" msgstr "" -#: picard/util/tags.py:83 +#: picard/util/tags.py:81 msgid "Media" msgstr "" -#: picard/util/tags.py:84 +#: picard/util/tags.py:82 msgid "Lyrics" msgstr "Tekster" -#: picard/util/tags.py:85 +#: picard/util/tags.py:83 msgid "Mixer" msgstr "Mikser" -#: picard/util/tags.py:86 +#: picard/util/tags.py:84 msgid "Language" msgstr "Språk" -#: picard/util/tags.py:87 +#: picard/util/tags.py:85 msgid "Script" msgstr "" -#: picard/util/tags.py:89 +#: picard/util/tags.py:87 msgid "Rating" msgstr "" -#: picard/util/tags.py:90 +#: picard/util/tags.py:88 msgid "Artists" msgstr "" -#: picard/util/tags.py:91 +#: picard/util/tags.py:89 msgid "Work" msgstr "" diff --git a/po/nl.po b/po/nl.po index 914518558..b0bde09b2 100644 --- a/po/nl.po +++ b/po/nl.po @@ -11,8 +11,8 @@ msgid "" msgstr "" "Project-Id-Version: MusicBrainz\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2014-04-12 14:32+0200\n" -"PO-Revision-Date: 2014-04-13 17:30+0000\n" +"POT-Creation-Date: 2014-05-03 17:28+0200\n" +"PO-Revision-Date: 2014-05-04 10:39+0000\n" "Last-Translator: Maurits Meulenbelt \n" "Language-Team: Dutch (http://www.transifex.com/projects/p/musicbrainz/language/nl/)\n" "MIME-Version: 1.0\n" @@ -22,6 +22,10 @@ msgstr "" "Language: nl\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" +#: contrib/plugins/albumartist_website.py:3 +msgid "Album Artist Website" +msgstr "Website van de album artiest" + #: contrib/plugins/no_release.py:50 msgid "Enable plugin for all releases by default" msgstr "Plugin standaard voor alle uitgaves aanzetten" @@ -32,7 +36,11 @@ msgstr "Tags om te verwijderen (gescheiden door komma's)" #: contrib/plugins/no_release.py:63 msgid "Remove specific release information..." -msgstr "Specifieke uitgave-informatie verwijderen…" +msgstr "Specifieke uitgave-informatie verwijderen …" + +#: contrib/plugins/standardise_performers.py:3 +msgid "Standardise Performers" +msgstr "Uitvoerenden standaardiseren" #: contrib/plugins/lastfm/ui_options_lastfm.py:99 msgid "Last.fm" @@ -86,40 +94,40 @@ msgstr " %" msgid "Calculate replay &gain..." msgstr "Replaygain berekenen" -#: contrib/plugins/replaygain/__init__.py:66 +#: contrib/plugins/replaygain/__init__.py:67 #, python-format -msgid "Calculating replay gain for \"%s\"..." -msgstr "Replaygain voor „%s“ aan het berekenen…" +msgid "Calculating replay gain for \"%(filename)s\"..." +msgstr "Replaygain voor „%(filename)s“ aan het berekenen …" -#: contrib/plugins/replaygain/__init__.py:71 +#: contrib/plugins/replaygain/__init__.py:75 #, python-format -msgid "Replay gain for \"%s\" successfully calculated." -msgstr "Replaygain voor „%s“ met succes berekend." +msgid "Replay gain for \"%(filename)s\" successfully calculated." +msgstr "Replaygain voor „%(filename)s“ met succes berekend." -#: contrib/plugins/replaygain/__init__.py:73 +#: contrib/plugins/replaygain/__init__.py:80 #, python-format -msgid "Could not calculate replay gain for \"%s\"." -msgstr "Kon de Replaygain voor „%s“ niet berekenen." +msgid "Could not calculate replay gain for \"%(filename)s\"." +msgstr "Kon de replaygain voor „%(filename)s“ niet berekenen." -#: contrib/plugins/replaygain/__init__.py:76 +#: contrib/plugins/replaygain/__init__.py:85 msgid "Calculate album &gain..." -msgstr "Albumgain aan het berekenen…" +msgstr "Albumgain aan het berekenen …" -#: contrib/plugins/replaygain/__init__.py:103 -#: contrib/plugins/replaygain/__init__.py:111 +#: contrib/plugins/replaygain/__init__.py:113 +#: contrib/plugins/replaygain/__init__.py:124 #, python-format -msgid "Calculating album gain for \"%s\"..." -msgstr "Albumgain voor „%s“ aan het berekenen…" +msgid "Calculating album gain for \"%(album)s\"..." +msgstr "Albumgain voor „%(album)s“ aan het berekenen …" -#: contrib/plugins/replaygain/__init__.py:119 +#: contrib/plugins/replaygain/__init__.py:135 #, python-format -msgid "Album gain for \"%s\" successfully calculated." -msgstr "Albumgain voor „%s“ met succes berekend." +msgid "Album gain for \"%(album)s\" successfully calculated." +msgstr "Albumgain voor „%(album)s“ met succes berekend." -#: contrib/plugins/replaygain/__init__.py:121 +#: contrib/plugins/replaygain/__init__.py:140 #, python-format -msgid "Could not calculate album gain for \"%s\"." -msgstr "Kon de albumgain voor „%s“ niet berekenen." +msgid "Could not calculate album gain for \"%(album)s\"." +msgstr "Kon de albumgain voor „%(album)s“ niet berekenen." #: contrib/plugins/replaygain/ui_options_replaygain.py:59 msgid "Replay Gain" @@ -141,385 +149,252 @@ msgstr "Locatie van metaflac:" msgid "Path to wvgain:" msgstr "Locatie van wvgain:" -#: picard/acoustid.py:102 +#: contrib/plugins/viewvariables/__init__.py:42 #, python-format -msgid "AcoustID lookup network error for '%s'!" -msgstr "AcoustID netwerkfout bij het opzoeken van '%s'!" +msgid "File: %s" +msgstr "Bestand: %s" -#: picard/acoustid.py:117 +#: contrib/plugins/viewvariables/__init__.py:47 #, python-format -msgid "AcoustID lookup failed for '%s'!" -msgstr "AcoustID opzoeken gefaald voor '%s'!" +msgid "Track: %s %s " +msgstr "Nummer: %s %s" -#: picard/acoustid.py:128 +#: contrib/plugins/viewvariables/__init__.py:49 +msgid "Variables" +msgstr "Variabelen" + +#: contrib/plugins/viewvariables/__init__.py:69 +msgid "File variables" +msgstr "Bestandsvariabelen" + +#: contrib/plugins/viewvariables/__init__.py:74 +msgid "Hidden variables" +msgstr "Verborgen variabelen" + +#: contrib/plugins/viewvariables/__init__.py:79 +msgid "Tag variables" +msgstr "Tagvariabelen" + +#: contrib/plugins/viewvariables/ui_variables_dialog.py:73 +msgid "Variable" +msgstr "Variabele" + +#: contrib/plugins/viewvariables/ui_variables_dialog.py:75 +msgid "Value" +msgstr "Waarde" + +#: picard/acoustid.py:109 #, python-format -msgid "Acoustid lookup returned no result for file '%s'" -msgstr "AcoustID zoekactie gaf geen resultaat voor '%s'" +msgid "AcoustID lookup network error for '%(filename)s'!" +msgstr "AcoustID netwerkfout bij het opzoeken van '%(filename)s'!" -#: picard/acoustid.py:132 +#: picard/acoustid.py:133 #, python-format -msgid "Looking up the fingerprint for file %s..." -msgstr "Opzoeken van vingerafdruk voor bestand %s..." +msgid "AcoustID lookup failed for '%(filename)s'!" +msgstr "AcoustID opzoeken gefaald voor '%(filename)s'!" -#: picard/acoustidmanager.py:78 -msgid "Submitting AcoustIDs..." -msgstr "AcoustID's aan het verzenden..." - -#: picard/acoustidmanager.py:83 +#: picard/acoustid.py:155 #, python-format -msgid "AcoustID submission failed with error '%s'" -msgstr "AcoustID indiening mislukt met fout '%s'" +msgid "AcoustID lookup returned no result for file '%(filename)s'" +msgstr "AcoustID zoekactie gaf geen resultaat voor '%(filename)s'" -#: picard/acoustidmanager.py:85 +#: picard/acoustid.py:166 +#, python-format +msgid "Looking up the fingerprint for file '%(filename)s' ..." +msgstr "Opzoeken van vingerafdruk voor bestand '%(filename)s'..." + +#: picard/acoustidmanager.py:80 +msgid "Submitting AcoustIDs ..." +msgstr "AcoustID's aan het versturen …" + +#: picard/acoustidmanager.py:94 +#, python-format +msgid "AcoustID submission failed with error '%(error)s'" +msgstr "Verzenden AcoustID mislukt met fout '%(error)s'" + +#: picard/acoustidmanager.py:102 msgid "AcoustIDs successfully submitted." msgstr "AcoustID's met succes ingediend." -#: picard/album.py:64 picard/cluster.py:234 +#: picard/album.py:65 picard/cluster.py:255 msgid "Unmatched Files" msgstr "Niet-overeenkomende bestanden" -#: picard/album.py:187 +#: picard/album.py:188 #, python-format msgid "[could not load album %s]" msgstr "[kan album %s niet laden]" -#: picard/album.py:275 +#: picard/album.py:277 #, python-format -msgid "Album %s loaded: %s - %s" -msgstr "Album %s geladen: %s - %s" +msgid "Album %(id)s loaded: %(artist)s - %(album)s" +msgstr "Album %(id)s geladen: %(artist)s - %(album)s" -#: picard/album.py:292 +#: picard/album.py:294 +#, python-format +msgid "Loading album %(id)s ..." +msgstr "Album %(id)s aan het laden …" + +#: picard/album.py:303 msgid "[loading album information]" msgstr "[albuminformatie laden]" -#: picard/album.py:467 +#: picard/album.py:478 #, python-format msgid "; %i image" msgid_plural "; %i images" msgstr[0] "%i afbeelding" msgstr[1] "; %i afbeeldingen" -#: picard/cluster.py:150 picard/cluster.py:159 +#: picard/cluster.py:155 picard/cluster.py:168 #, python-format -msgid "No matching releases for cluster %s" -msgstr "Geen overeenkomende uitgaves voor cluster %s" +msgid "No matching releases for cluster %(album)s" +msgstr "Geen overeenkomende uitgaves voor cluster %(album)s" -#: picard/cluster.py:161 +#: picard/cluster.py:174 #, python-format -msgid "Cluster %s identified!" -msgstr "Cluster %s geïdentificeerd!" +msgid "Cluster %(album)s identified!" +msgstr "Cluster %(album)s geïdentificeerd!" -#: picard/cluster.py:168 +#: picard/cluster.py:185 #, python-format -msgid "Looking up the metadata for cluster %s..." -msgstr "Opzoeken van metadata voor cluster %s..." +msgid "Looking up the metadata for cluster %(album)s..." +msgstr "Metadata voor cluster %(album)s aan het opzoeken …" -#: picard/collection.py:60 +#: picard/collection.py:64 #, python-format -msgid "Added %i release to collection \"%s\"" -msgid_plural "Added %i releases to collection \"%s\"" -msgstr[0] "%i uitgave aan collectie „%s“ toegevoegd" -msgstr[1] "%i uitgaves aan collectie „%s“ toegevoegd" +msgid "Added %(count)i release to collection \"%(name)s\"" +msgid_plural "Added %(count)i releases to collection \"%(name)s\"" +msgstr[0] "" +msgstr[1] "" -#: picard/collection.py:72 +#: picard/collection.py:86 #, python-format -msgid "Removed %i release from collection \"%s\"" -msgid_plural "Removed %i releases from collection \"%s\"" -msgstr[0] "%i uitgave uit collectie „%s“ verwijderd" -msgstr[1] "%i uitgaves uit collectie „%s“ verwijderd" +msgid "Removed %(count)i release from collection \"%(name)s\"" +msgid_plural "Removed %(count)i releases from collection \"%(name)s\"" +msgstr[0] "" +msgstr[1] "" -#: picard/collection.py:81 +#: picard/collection.py:100 #, python-format -msgid "Error loading collections: %s" -msgstr "Fout bij het laden van collecties: %s" +msgid "Error loading collections: %(error)s" +msgstr "Fout bij het laden van collecties: %(error)s" -#: picard/config_upgrade.py:57 picard/config_upgrade.py:70 +#: picard/config_upgrade.py:58 picard/config_upgrade.py:71 msgid "Various Artists file naming scheme removal" msgstr "Het verwijderen van het benoemingsstelsel voor diverse artiesten" -#: picard/config_upgrade.py:58 +#: picard/config_upgrade.py:59 msgid "" "The separate file naming scheme for various artists albums has been removed in this version of Picard.\n" "Your file naming scheme has automatically been merged with that of single artist albums." msgstr "Het aparte stelsel om albums van diverse artiesten te benoemen is in deze versie van Picard verwijderd.\nUw stelsel is automatisch samengevoegd met het stelsel voor albums van één artiest." -#: picard/config_upgrade.py:71 +#: picard/config_upgrade.py:72 msgid "" "The separate file naming scheme for various artists albums has been removed in this version of Picard.\n" "You currently do not use this option, but have a separate file naming scheme defined.\n" "Do you want to remove it or merge it with your file naming scheme for single artist albums?" msgstr "Het aparte stelsel om albums van diverse artiesten te benoemen is in deze versie van Picard verwijderd.\nU gebruikt deze optie nu niet, maar u heeft wel een apart stelsel gedefinieerd. Wilt u deze verwijderen of samenvoegen met uw stelsel voor het benoemen van albums van één artiest?" -#: picard/config_upgrade.py:77 +#: picard/config_upgrade.py:78 msgid "Merge" msgstr "Samenvoegen" -#: picard/config_upgrade.py:77 picard/ui/metadatabox.py:254 +#: picard/config_upgrade.py:78 picard/ui/metadatabox.py:254 msgid "Remove" msgstr "&Verwijderen" -#: picard/const.py:67 -msgid "CD" -msgstr "CD" - -#: picard/const.py:68 -msgid "CD-R" -msgstr "CD-R" - -#: picard/const.py:69 -msgid "HDCD" -msgstr "HDCD" - -#: picard/const.py:70 -msgid "8cm CD" -msgstr "8cm CD" - -#: picard/const.py:71 -msgid "Vinyl" -msgstr "Vinyl" - -#: picard/const.py:72 -msgid "7\" Vinyl" -msgstr "18cm Vinyl (Single)" - -#: picard/const.py:73 -msgid "10\" Vinyl" -msgstr "25cm Vinyl (Mini-lp)" - -#: picard/const.py:74 -msgid "12\" Vinyl" -msgstr "30cm Vinyl (lp of 45 toeren)" - -#: picard/const.py:75 -msgid "Digital Media" -msgstr "Digitale media" - -#: picard/const.py:76 -msgid "USB Flash Drive" -msgstr "USB-stick" - -#: picard/const.py:77 -msgid "slotMusic" -msgstr "slotMusic" - -#: picard/const.py:78 -msgid "Cassette" -msgstr "Cassette" - -#: picard/const.py:79 -msgid "DVD" -msgstr "DVD" - -#: picard/const.py:80 -msgid "DVD-Audio" -msgstr "DVD-Audio" - -#: picard/const.py:81 -msgid "DVD-Video" -msgstr "DVD-Video" - -#: picard/const.py:82 -msgid "SACD" -msgstr "SACD" - -#: picard/const.py:83 -msgid "DualDisc" -msgstr "Dubbeldisc" - -#: picard/const.py:84 -msgid "MiniDisc" -msgstr "MiniDisc" - -#: picard/const.py:85 -msgid "Blu-ray" -msgstr "Blu-ray" - -#: picard/const.py:86 -msgid "HD-DVD" -msgstr "HD-DVD" - -#: picard/const.py:87 -msgid "Videotape" -msgstr "Videoband" - -#: picard/const.py:88 -msgid "VHS" -msgstr "VHS" - -#: picard/const.py:89 -msgid "Betamax" -msgstr "Betamax" - #: picard/const.py:90 -msgid "VCD" -msgstr "VCD" - -#: picard/const.py:91 -msgid "SVCD" -msgstr "SVCD" - -#: picard/const.py:92 -msgid "UMD" -msgstr "UMD" - -#: picard/const.py:93 picard/coverartarchive.py:33 -#: picard/ui/ui_options_releases.py:222 -msgid "Other" -msgstr "Overige" - -#: picard/const.py:94 -msgid "LaserDisc" -msgstr "LaserDisc" - -#: picard/const.py:95 -msgid "Cartridge" -msgstr "Cassette" - -#: picard/const.py:96 -msgid "Reel-to-reel" -msgstr "Spoel-naar-spoel" - -#: picard/const.py:97 -msgid "DAT" -msgstr "DAT" - -#: picard/const.py:98 -msgid "Wax Cylinder" -msgstr "Wax Cylinder" - -#: picard/const.py:99 -msgid "Piano Roll" -msgstr "Piano Roll" - -#: picard/const.py:100 -msgid "DCC" -msgstr "DCC" - -#: picard/const.py:115 msgid "Danish" msgstr "Deens" -#: picard/const.py:116 +#: picard/const.py:91 msgid "German" msgstr "Duits" -#: picard/const.py:118 +#: picard/const.py:93 msgid "English" msgstr "Engels" -#: picard/const.py:119 +#: picard/const.py:94 msgid "English (Canada)" msgstr "Engels (Canada)" -#: picard/const.py:120 +#: picard/const.py:95 msgid "English (UK)" msgstr "Engels (UK)" -#: picard/const.py:122 +#: picard/const.py:97 msgid "Spanish" msgstr "Spaans" -#: picard/const.py:123 +#: picard/const.py:98 msgid "Estonian" msgstr "Estlands" -#: picard/const.py:125 +#: picard/const.py:100 msgid "Finnish" msgstr "Fins" -#: picard/const.py:127 +#: picard/const.py:102 msgid "French" msgstr "Frans" -#: picard/const.py:136 +#: picard/const.py:111 msgid "Italian" msgstr "Italiaans" -#: picard/const.py:143 +#: picard/const.py:118 msgid "Dutch" msgstr "Nederlands" -#: picard/const.py:145 +#: picard/const.py:120 msgid "Polish" msgstr "Pools" -#: picard/const.py:147 +#: picard/const.py:122 msgid "Brazilian Portuguese" msgstr "Braziliaans-Portugees" -#: picard/const.py:154 +#: picard/const.py:129 msgid "Swedish" msgstr "Zweeds" -#: picard/coverart.py:86 +#: picard/coverart.py:85 #, python-format -msgid "Cover art of type '%s' downloaded for %s from %s" -msgstr "Afbeelding van het type '%s' voor %s van %s geladen" +msgid "Cover art of type '%(type)s' downloaded for %(albumid)s from %(host)s" +msgstr "Afbeelding van het type '%(type)s' voor %(albumid)s van %(host)s geladen" -#: picard/coverart.py:260 +#: picard/coverart.py:256 #, python-format -msgid "Downloading cover art of type '%s' for %s from %s ..." -msgstr "Afbeelding van het type '%s' voor %s van %s aan het laden …" - -#: picard/coverartarchive.py:24 -msgid "Front" -msgstr "Voorkant" - -#: picard/coverartarchive.py:25 -msgid "Back" -msgstr "Achterkant" - -#: picard/coverartarchive.py:26 -msgid "Booklet" -msgstr "Boekje" - -#: picard/coverartarchive.py:27 -msgid "Medium" -msgstr "Medium" - -#: picard/coverartarchive.py:28 -msgid "Tray" -msgstr "Houder" - -#: picard/coverartarchive.py:29 -msgid "Obi" -msgstr "Obi" +msgid "" +"Downloading cover art of type '%(type)s' for %(albumid)s from %(host)s .." +msgstr "Afbeelding van het type '%(type)s' voor %(albumid)s van %(host)s aan het laden …" #: picard/coverartarchive.py:30 -msgid "Spine" -msgstr "Rug" - -#: picard/coverartarchive.py:31 picard/ui/mainwindow.py:566 -msgid "Track" -msgstr "Nummer" - -#: picard/coverartarchive.py:32 -msgid "Sticker" -msgstr "Sticker" - -#: picard/coverartarchive.py:34 msgid "Unknown" msgstr "Onbekend" -#: picard/file.py:485 +#: picard/file.py:494 #, python-format -msgid "No matching tracks for file %s" -msgstr "Geen overeenkomende nummers voor bestand %s" +msgid "No matching tracks for file '%(filename)s'" +msgstr "Geen overeenkomende nummers voor bestand '%(filename)s'" -#: picard/file.py:497 +#: picard/file.py:510 #, python-format -msgid "No matching tracks above the threshold for file %s" -msgstr "Geen bijpassende tracks boven de limiet voor bestand %s" +msgid "No matching tracks above the threshold for file '%(filename)s'" +msgstr "Geen bijpassende tracks boven de limiet voor bestand '%(filename)s'" -#: picard/file.py:500 +#: picard/file.py:517 #, python-format -msgid "File %s identified!" -msgstr "Bestand %s geïdentificeerd!" +msgid "File '%(filename)s' identified!" +msgstr "Bestand %(filename)s geïdentificeerd!" -#: picard/file.py:516 +#: picard/file.py:537 #, python-format -msgid "Looking up the metadata for file %s..." -msgstr "Opzoeken van metadata voor bestand %s..." +msgid "Looking up the metadata for file %(filename)s ..." +msgstr "Metadata voor het bestand %(filename)s aan het opzoeken …" #: picard/releasegroup.py:53 msgid "Tracks" @@ -553,21 +428,23 @@ msgstr "[geen streepjescode]" msgid "[no release info]" msgstr "[geen uitgave-informatie]" -#: picard/tagger.py:348 +#: picard/tagger.py:370 #, python-format -msgid "Adding %d files from '%s' ..." -msgstr "%d bestanden van '%s' aan het toevoegen …" +msgid "Adding %(count)d file from '%(directory)s' ..." +msgid_plural "Adding %(count)d files from '%(directory)s' ..." +msgstr[0] "%(count)d bestand van '%(directory)s' aan het toevoegen …" +msgstr[1] "%(count)d bestanden van '%(directory)s' aan het toevoegen …" -#: picard/tagger.py:482 +#: picard/tagger.py:512 #, python-format -msgid "Removing album %s: %s - %s" -msgstr "Verwijdert album %s: %s - %s" +msgid "Removing album %(id)s: %(artist)s - %(album)s" +msgstr "Verwijdert album %(id)s: %(artist)s - %(album)s" -#: picard/tagger.py:493 +#: picard/tagger.py:528 msgid "CD Lookup Error" msgstr "Fout bij opzoeken van de CD" -#: picard/tagger.py:494 +#: picard/tagger.py:529 #, python-format msgid "" "Error while reading CD:\n" @@ -575,13 +452,12 @@ msgid "" "%s" msgstr "Fout tijdens lezen van de CD:\n\n%s" -#: picard/ui/cdlookup.py:35 picard/ui/mainwindow.py:564 -#: picard/ui/ui_options_releases.py:212 picard/util/tags.py:21 +#: picard/ui/cdlookup.py:35 picard/ui/mainwindow.py:597 picard/util/tags.py:21 msgid "Album" msgstr "Album" #: picard/ui/cdlookup.py:35 picard/ui/itemviews.py:96 -#: picard/ui/mainwindow.py:565 picard/util/tags.py:22 +#: picard/ui/mainwindow.py:598 picard/util/tags.py:22 msgid "Artist" msgstr "Artiest" @@ -752,13 +628,17 @@ msgstr "uitgave-overzicht" msgid "Contains albums and matched files" msgstr "Bevat albums en overeenkomende bestanden" -#: picard/ui/logview.py:92 +#: picard/ui/logview.py:109 msgid "Log" msgstr "Logboek" -#: picard/ui/logview.py:100 -msgid "Status History" -msgstr "Statusgeschiedenis" +#: picard/ui/logview.py:113 +msgid "Debug mode" +msgstr "Debugmodus" + +#: picard/ui/logview.py:134 +msgid "Activity History" +msgstr "Activiteitgeschiedenis" #: picard/ui/mainwindow.py:74 msgid "MusicBrainz Picard" @@ -801,280 +681,299 @@ msgstr "Picard luistert naar deze poort om met uw browser te integreren. Nadat u msgid " Listening on port %(port)d " msgstr "Luistert op poort %(port)d" -#: picard/ui/mainwindow.py:266 +#: picard/ui/mainwindow.py:299 msgid "Submission Error" msgstr "Verzendfout" -#: picard/ui/mainwindow.py:267 +#: picard/ui/mainwindow.py:300 msgid "" "You need to configure your AcoustID API key before you can submit " "fingerprints." msgstr "U moet uw AcoustID API sleutel invoeren voor u vingerafdrukken kan versturen." -#: picard/ui/mainwindow.py:272 +#: picard/ui/mainwindow.py:305 msgid "&Options..." msgstr "&Opties..." -#: picard/ui/mainwindow.py:276 +#: picard/ui/mainwindow.py:309 msgid "&Cut" msgstr "K&nippen" -#: picard/ui/mainwindow.py:281 +#: picard/ui/mainwindow.py:314 msgid "&Paste" msgstr "&Plakken" -#: picard/ui/mainwindow.py:286 +#: picard/ui/mainwindow.py:319 msgid "&Help..." msgstr "&Help..." -#: picard/ui/mainwindow.py:290 +#: picard/ui/mainwindow.py:323 msgid "&About..." msgstr "&Info..." -#: picard/ui/mainwindow.py:294 +#: picard/ui/mainwindow.py:327 msgid "&Donate..." msgstr "&Doneer..." -#: picard/ui/mainwindow.py:297 +#: picard/ui/mainwindow.py:330 msgid "&Report a Bug..." msgstr "&Rapporteer een bug..." -#: picard/ui/mainwindow.py:300 +#: picard/ui/mainwindow.py:333 msgid "&Support Forum..." msgstr "Onder&steuningsforum..." -#: picard/ui/mainwindow.py:303 +#: picard/ui/mainwindow.py:336 msgid "&Add Files..." msgstr "Best&anden toevoegen..." -#: picard/ui/mainwindow.py:304 +#: picard/ui/mainwindow.py:337 msgid "Add files to the tagger" msgstr "Bestanden aan de tagger toevoegen" -#: picard/ui/mainwindow.py:309 +#: picard/ui/mainwindow.py:342 msgid "A&dd Folder..." msgstr "&Map toevoegen..." -#: picard/ui/mainwindow.py:310 +#: picard/ui/mainwindow.py:343 msgid "Add a folder to the tagger" msgstr "Een map aan de tagger toevoegen" -#: picard/ui/mainwindow.py:312 +#: picard/ui/mainwindow.py:345 msgid "Ctrl+D" msgstr "Ctrl+D" -#: picard/ui/mainwindow.py:315 +#: picard/ui/mainwindow.py:348 msgid "&Save" msgstr "Op&slaan" -#: picard/ui/mainwindow.py:316 +#: picard/ui/mainwindow.py:349 msgid "Save selected files" msgstr "Geselecteerde bestanden opslaan" -#: picard/ui/mainwindow.py:322 +#: picard/ui/mainwindow.py:355 msgid "S&ubmit" msgstr "V&erzenden" -#: picard/ui/mainwindow.py:323 +#: picard/ui/mainwindow.py:356 msgid "Submit acoustic fingerprints" msgstr "Akoestische vingerafdrukken indienen" -#: picard/ui/mainwindow.py:327 +#: picard/ui/mainwindow.py:360 msgid "E&xit" msgstr "&Afsluiten" -#: picard/ui/mainwindow.py:330 +#: picard/ui/mainwindow.py:363 msgid "Ctrl+Q" msgstr "Ctrl+Q" -#: picard/ui/mainwindow.py:333 +#: picard/ui/mainwindow.py:366 msgid "&Remove" msgstr "&Verwijderen" -#: picard/ui/mainwindow.py:334 +#: picard/ui/mainwindow.py:367 msgid "Remove selected files/albums" msgstr "Verwijder geselecteerde bestanden/mappen" -#: picard/ui/mainwindow.py:338 +#: picard/ui/mainwindow.py:371 msgid "Lookup in &Browser" msgstr "Opzoeken in de &browser" -#: picard/ui/mainwindow.py:339 +#: picard/ui/mainwindow.py:372 msgid "Lookup selected item on MusicBrainz website" msgstr "Zoek het geselecteerde object op de website van MusicBrainz op" -#: picard/ui/mainwindow.py:343 +#: picard/ui/mainwindow.py:376 msgid "File &Browser" msgstr "&Bestandsbrowser" -#: picard/ui/mainwindow.py:347 +#: picard/ui/mainwindow.py:380 msgid "Ctrl+B" msgstr "Ctrl+B" -#: picard/ui/mainwindow.py:350 +#: picard/ui/mainwindow.py:383 msgid "&Cover Art" msgstr "&Hoesafbeelding" -#: picard/ui/mainwindow.py:356 picard/ui/mainwindow.py:558 +#: picard/ui/mainwindow.py:389 picard/ui/mainwindow.py:591 msgid "Search" msgstr "Zoeken" -#: picard/ui/mainwindow.py:359 +#: picard/ui/mainwindow.py:392 msgid "Lookup &CD..." msgstr "&CD opzoeken …" -#: picard/ui/mainwindow.py:360 +#: picard/ui/mainwindow.py:393 msgid "Lookup the details of the CD in your drive" msgstr "Zoek de detail van de cd in uw cd-speler op." -#: picard/ui/mainwindow.py:362 +#: picard/ui/mainwindow.py:395 msgid "Ctrl+K" msgstr "Ctrl+K" -#: picard/ui/mainwindow.py:365 +#: picard/ui/mainwindow.py:398 msgid "&Scan" msgstr "&Scannen" -#: picard/ui/mainwindow.py:368 +#: picard/ui/mainwindow.py:401 msgid "Ctrl+Y" msgstr "Ctrl+Y" -#: picard/ui/mainwindow.py:371 +#: picard/ui/mainwindow.py:404 msgid "Cl&uster" msgstr "Cl&uster" -#: picard/ui/mainwindow.py:374 +#: picard/ui/mainwindow.py:407 msgid "Ctrl+U" msgstr "Ctrl+U" -#: picard/ui/mainwindow.py:377 +#: picard/ui/mainwindow.py:410 msgid "&Lookup" msgstr "&Opzoeken" -#: picard/ui/mainwindow.py:378 +#: picard/ui/mainwindow.py:411 msgid "Lookup selected items in MusicBrainz" msgstr "Zoek het geselecteerde object in MusicBrainz op" -#: picard/ui/mainwindow.py:383 +#: picard/ui/mainwindow.py:416 msgid "Ctrl+L" msgstr "Ctrl+L" -#: picard/ui/mainwindow.py:386 +#: picard/ui/mainwindow.py:419 msgid "&Info..." msgstr "&Info..." -#: picard/ui/mainwindow.py:389 +#: picard/ui/mainwindow.py:422 msgid "Ctrl+I" msgstr "Ctrl+I" -#: picard/ui/mainwindow.py:392 +#: picard/ui/mainwindow.py:425 msgid "&Refresh" msgstr "Ve&rversen" -#: picard/ui/mainwindow.py:393 +#: picard/ui/mainwindow.py:426 msgid "Ctrl+R" msgstr "Ctrl+R" -#: picard/ui/mainwindow.py:396 +#: picard/ui/mainwindow.py:429 msgid "&Rename Files" msgstr "Bestanden he&rnoemen" -#: picard/ui/mainwindow.py:401 +#: picard/ui/mainwindow.py:434 msgid "&Move Files" msgstr "Bestanden &verplaatsen" -#: picard/ui/mainwindow.py:406 +#: picard/ui/mainwindow.py:439 msgid "Save &Tags" msgstr "Bewaar &Labels" -#: picard/ui/mainwindow.py:411 +#: picard/ui/mainwindow.py:444 msgid "Tags From &File Names..." msgstr "Tags va&nuit bestandsnamen..." -#: picard/ui/mainwindow.py:414 +#: picard/ui/mainwindow.py:447 msgid "&Open My Collections in Browser" msgstr "&Open Mijn Collecties in de browser" -#: picard/ui/mainwindow.py:418 +#: picard/ui/mainwindow.py:451 msgid "View Error/Debug &Log" msgstr "Bekijk het Fout/Debug &Logboek" -#: picard/ui/mainwindow.py:421 +#: picard/ui/mainwindow.py:454 msgid "View Activity &History" msgstr "Bekijk de activiteiten&geschiedenis" -#: picard/ui/mainwindow.py:428 +#: picard/ui/mainwindow.py:461 msgid "&Play file" msgstr "Bestand s&pelen" -#: picard/ui/mainwindow.py:429 +#: picard/ui/mainwindow.py:462 msgid "Play the file in your default media player" msgstr "Speel het bestand in de standaard mediaspeler" -#: picard/ui/mainwindow.py:433 +#: picard/ui/mainwindow.py:466 msgid "Open Containing &Folder" msgstr "Open de map met de &folder" -#: picard/ui/mainwindow.py:434 +#: picard/ui/mainwindow.py:467 msgid "Open the containing folder in your file explorer" msgstr "Open de folder met het bestand in uw verkenner" -#: picard/ui/mainwindow.py:459 +#: picard/ui/mainwindow.py:492 msgid "&File" msgstr "&Bestand" -#: picard/ui/mainwindow.py:470 +#: picard/ui/mainwindow.py:503 msgid "&Edit" msgstr "B&ewerken" -#: picard/ui/mainwindow.py:476 +#: picard/ui/mainwindow.py:509 msgid "&View" msgstr "Bee&ld" -#: picard/ui/mainwindow.py:482 +#: picard/ui/mainwindow.py:515 msgid "&Options" msgstr "&Opties" -#: picard/ui/mainwindow.py:488 +#: picard/ui/mainwindow.py:521 msgid "&Tools" msgstr "&Hulpmiddelen" -#: picard/ui/mainwindow.py:499 picard/ui/util.py:35 +#: picard/ui/mainwindow.py:532 picard/ui/util.py:35 msgid "&Help" msgstr "&Help" -#: picard/ui/mainwindow.py:520 +#: picard/ui/mainwindow.py:553 msgid "Actions" msgstr "Acties" -#: picard/ui/mainwindow.py:629 +#: picard/ui/mainwindow.py:599 +msgid "Track" +msgstr "Nummer" + +#: picard/ui/mainwindow.py:662 msgid "All Supported Formats" msgstr "Alle ondersteunde formaten" -#: picard/ui/mainwindow.py:661 +#: picard/ui/mainwindow.py:695 #, python-format -msgid "Adding directory: '%s' ..." -msgstr "Folder '%s' aan het toevoegen …" +msgid "Adding directory: '%(directory)s' ..." +msgstr "Folder '%(directory)s' aan het toevoegen …" -#: picard/ui/mainwindow.py:665 +#: picard/ui/mainwindow.py:702 #, python-format -msgid "Adding multiple directories from: '%s' ..." -msgstr "Meerdere folders van '%s' aan het toevoegen …" +msgid "Adding multiple directories from '%(directory)s' ..." +msgstr "Meerdere folders van '%(directory)s' aan het toevoegen …" -#: picard/ui/mainwindow.py:728 +#: picard/ui/mainwindow.py:767 msgid "Configuration Required" msgstr "Configuratie vereist" -#: picard/ui/mainwindow.py:729 +#: picard/ui/mainwindow.py:768 msgid "" "Audio fingerprinting is not yet configured. Would you like to configure it " "now?" msgstr "Het nemen van audiovingerafdrukken is nog niet ingesteld. Wilt u het nu instellen?" -#: picard/ui/mainwindow.py:811 picard/ui/mainwindow.py:818 +#: picard/ui/mainwindow.py:848 #, python-format -msgid " (Error: %s)" -msgstr " (Fout: %s)" +msgid "%(filename)s (error: %(error)s)" +msgstr "%(filename)s (fout: %(error)s)" + +#: picard/ui/mainwindow.py:854 +#, python-format +msgid "%(filename)s" +msgstr "%(filename)s" + +#: picard/ui/mainwindow.py:864 +#, python-format +msgid "%(filename)s (%(similarity)d%%) (error: %(error)s)" +msgstr "%(filename)s (%(similarity)d%%) (fout: %(error)s)" + +#: picard/ui/mainwindow.py:871 +#, python-format +msgid "%(filename)s (%(similarity)d%%)" +msgstr "%(filename)s (%(similarity)d%%)" #: picard/ui/metadatabox.py:82 #, python-format @@ -1128,14 +1027,14 @@ msgid_plural "Use Original Values" msgstr[0] "Gebruik de originele waarde" msgstr[1] "Gebruik de originele waardes" -#: picard/ui/passworddialog.py:39 +#: picard/ui/passworddialog.py:40 #, python-format msgid "" "The server %s requires you to login. Please enter your username and " "password." msgstr "Server %s vereist dat u bent ingelogd. Voor uw gebruikersnaam en wachtwoord in." -#: picard/ui/passworddialog.py:77 +#: picard/ui/passworddialog.py:79 #, python-format msgid "" "The proxy %s requires you to login. Please enter your username and password." @@ -1210,71 +1109,71 @@ msgstr "CD-ROM-apparaat voor opzoeken van CD's:" msgid "Default CD-ROM drive to use for lookups:" msgstr "Standaard CD-ROM-apparaat voor opzoeken van CD's:" -#: picard/ui/ui_options_cover.py:132 +#: picard/ui/ui_options_cover.py:131 msgid "Location" msgstr "Locatie" -#: picard/ui/ui_options_cover.py:133 +#: picard/ui/ui_options_cover.py:132 msgid "Embed cover images into tags" msgstr "Hoesafbeeldingen in tags opslaan" -#: picard/ui/ui_options_cover.py:134 +#: picard/ui/ui_options_cover.py:133 msgid "Only embed a front image" msgstr "Alleen afbeelding van voorkant inbedden" -#: picard/ui/ui_options_cover.py:135 +#: picard/ui/ui_options_cover.py:134 msgid "Save cover images as separate files" msgstr "Hoesafbeeldingen als aparte bestanden opslaan" -#: picard/ui/ui_options_cover.py:136 +#: picard/ui/ui_options_cover.py:135 msgid "Use the following file name for images:" msgstr "Gebruik de volgende bestandsnaam voor afbeeldingen:" -#: picard/ui/ui_options_cover.py:137 +#: picard/ui/ui_options_cover.py:136 msgid "Overwrite the file if it already exists" msgstr "Overschrijven als het bestand al bestaat" -#: picard/ui/ui_options_cover.py:138 +#: picard/ui/ui_options_cover.py:137 msgid "Coverart Providers" msgstr "Aanbieders van hoesafbeeldingen" -#: picard/ui/ui_options_cover.py:139 +#: picard/ui/ui_options_cover.py:138 msgid "Amazon" msgstr "Amazon" -#: picard/ui/ui_options_cover.py:140 picard/ui/ui_options_cover.py:142 +#: picard/ui/ui_options_cover.py:139 picard/ui/ui_options_cover.py:141 msgid "Cover Art Archive" msgstr "Cover Art Archive" -#: picard/ui/ui_options_cover.py:141 +#: picard/ui/ui_options_cover.py:140 msgid "Sites on the whitelist" msgstr "Websites op de witte lijst" -#: picard/ui/ui_options_cover.py:143 +#: picard/ui/ui_options_cover.py:142 msgid "Only use images of the following size:" msgstr "Gebruik alleen afbeeldingen van de volgende grootte:" -#: picard/ui/ui_options_cover.py:144 +#: picard/ui/ui_options_cover.py:143 msgid "250 px" msgstr "250 px" -#: picard/ui/ui_options_cover.py:145 +#: picard/ui/ui_options_cover.py:144 msgid "500 px" msgstr "500 px" -#: picard/ui/ui_options_cover.py:146 +#: picard/ui/ui_options_cover.py:145 msgid "Full size" msgstr "Grootste formaat" -#: picard/ui/ui_options_cover.py:147 +#: picard/ui/ui_options_cover.py:146 msgid "Download only images of the following types:" msgstr "Download alleen afbeeldingen van de volgende types:" -#: picard/ui/ui_options_cover.py:148 +#: picard/ui/ui_options_cover.py:147 msgid "Download only approved images" msgstr "Download alleen goedgekeurde afbeeldingen" -#: picard/ui/ui_options_cover.py:149 +#: picard/ui/ui_options_cover.py:148 msgid "" "Use the first image type as the filename. This will not change the filename " "of front images." @@ -1307,7 +1206,7 @@ msgstr "Bladeren..." #: picard/ui/ui_options_fingerprinting.py:76 msgid "Download..." -msgstr "Downloaden…" +msgstr "Downloaden …" #: picard/ui/ui_options_fingerprinting.py:77 msgid "API key:" @@ -1524,63 +1423,23 @@ msgstr "E-mail:" msgid "Submit ratings to MusicBrainz" msgstr "Verstuur waarderingen naar MusicBrainz" -#: picard/ui/ui_options_releases.py:211 +#: picard/ui/ui_options_releases.py:104 msgid "Preferred release types" msgstr "Geprefereerde uitgavetype" -#: picard/ui/ui_options_releases.py:213 -msgid "Single" -msgstr "Single" - -#: picard/ui/ui_options_releases.py:214 -msgid "EP" -msgstr "EP" - -#: picard/ui/ui_options_releases.py:215 -msgid "Compilation" -msgstr "Compilatie" - -#: picard/ui/ui_options_releases.py:216 -msgid "Soundtrack" -msgstr "Soundtrack" - -#: picard/ui/ui_options_releases.py:217 -msgid "Spokenword" -msgstr "Gesproken woord" - -#: picard/ui/ui_options_releases.py:218 -msgid "Interview" -msgstr "Interview" - -#: picard/ui/ui_options_releases.py:219 -msgid "Audiobook" -msgstr "Luisterboek" - -#: picard/ui/ui_options_releases.py:220 -msgid "Live" -msgstr "Live" - -#: picard/ui/ui_options_releases.py:221 -msgid "Remix" -msgstr "Remix" - -#: picard/ui/ui_options_releases.py:223 -msgid "Reset all" -msgstr "Alles terugstellen" - -#: picard/ui/ui_options_releases.py:224 +#: picard/ui/ui_options_releases.py:105 msgid "Preferred release countries" msgstr "Geprefereerde uitgavelanden" -#: picard/ui/ui_options_releases.py:225 picard/ui/ui_options_releases.py:228 +#: picard/ui/ui_options_releases.py:106 picard/ui/ui_options_releases.py:109 msgid ">" msgstr ">" -#: picard/ui/ui_options_releases.py:226 picard/ui/ui_options_releases.py:229 +#: picard/ui/ui_options_releases.py:107 picard/ui/ui_options_releases.py:110 msgid "<" msgstr "<" -#: picard/ui/ui_options_releases.py:227 +#: picard/ui/ui_options_releases.py:108 msgid "Preferred release formats" msgstr "Geprefereerde uitgaveformaten" @@ -1772,7 +1631,11 @@ msgstr "Geavanceerd" msgid "Regex Error" msgstr "Regex-fout" -#: picard/ui/options/cover.py:63 +#: picard/ui/options/cover.py:44 +msgid "title" +msgstr "titel" + +#: picard/ui/options/cover.py:68 msgid "Cover Art" msgstr "Hoesafbeelding" @@ -1788,11 +1651,11 @@ msgstr "Gebruikersinterface" msgid "System default" msgstr "Systeemstandaard" -#: picard/ui/options/interface.py:96 +#: picard/ui/options/interface.py:98 msgid "Language changed" msgstr "Taal gewijzigd" -#: picard/ui/options/interface.py:96 +#: picard/ui/options/interface.py:99 msgid "" "You have changed the interface language. You have to restart Picard in order" " for the change to take effect." @@ -1814,31 +1677,35 @@ msgstr "Bestand" msgid "Ratings" msgstr "Waarderingen" -#: picard/ui/options/releases.py:33 +#: picard/ui/options/releases.py:87 msgid "Preferred Releases" msgstr "Geprefereerde uitgaven" +#: picard/ui/options/releases.py:121 +msgid "Reset all" +msgstr "Alles terugstellen" + #: picard/ui/options/renaming.py:37 msgid "File Naming" msgstr "Benoemen van bestanden" -#: picard/ui/options/renaming.py:184 +#: picard/ui/options/renaming.py:187 msgid "Error" msgstr "Fout" -#: picard/ui/options/renaming.py:184 +#: picard/ui/options/renaming.py:187 msgid "The location to move files to must not be empty." msgstr "De locatie om bestanden naar te verplaatsen mag niet leeg zijn." -#: picard/ui/options/renaming.py:194 +#: picard/ui/options/renaming.py:197 msgid "The file naming format must not be empty." msgstr "De bestandsnaamindeling mag niet leeg zijn." -#: picard/ui/options/scripting.py:98 +#: picard/ui/options/scripting.py:99 msgid "Scripting" msgstr "Scripting" -#: picard/ui/options/scripting.py:130 +#: picard/ui/options/scripting.py:131 msgid "Script Error" msgstr "Scriptfout" diff --git a/po/oc.po b/po/oc.po index 1355d8f22..919f799c4 100644 --- a/po/oc.po +++ b/po/oc.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: MusicBrainz\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2014-03-20 11:12+0100\n" -"PO-Revision-Date: 2014-03-21 08:44+0000\n" +"POT-Creation-Date: 2014-05-03 17:28+0200\n" +"PO-Revision-Date: 2014-05-04 08:44+0000\n" "Last-Translator: nikki\n" "Language-Team: Occitan (post 1500) (http://www.transifex.com/projects/p/musicbrainz/language/oc/)\n" "MIME-Version: 1.0\n" @@ -19,6 +19,10 @@ msgstr "" "Language: oc\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n" +#: contrib/plugins/albumartist_website.py:3 +msgid "Album Artist Website" +msgstr "" + #: contrib/plugins/no_release.py:50 msgid "Enable plugin for all releases by default" msgstr "" @@ -31,63 +35,55 @@ msgstr "" msgid "Remove specific release information..." msgstr "" -#: contrib/plugins/open_in_gui.py:32 -msgid "Open Error" +#: contrib/plugins/standardise_performers.py:3 +msgid "Standardise Performers" msgstr "" -#: contrib/plugins/open_in_gui.py:32 -#, python-format -msgid "" -"Error while opening file:\n" -"\n" -"%s" -msgstr "" - -#: contrib/plugins/lastfm/ui_options_lastfm.py:117 +#: contrib/plugins/lastfm/ui_options_lastfm.py:99 msgid "Last.fm" msgstr "" -#: contrib/plugins/lastfm/ui_options_lastfm.py:118 +#: contrib/plugins/lastfm/ui_options_lastfm.py:100 msgid "Use track tags" msgstr "" -#: contrib/plugins/lastfm/ui_options_lastfm.py:119 +#: contrib/plugins/lastfm/ui_options_lastfm.py:101 msgid "Use artist tags" msgstr "" -#: contrib/plugins/lastfm/ui_options_lastfm.py:120 +#: contrib/plugins/lastfm/ui_options_lastfm.py:102 #: picard/ui/options/tags.py:30 msgid "Tags" msgstr "Metadonadas" -#: contrib/plugins/lastfm/ui_options_lastfm.py:121 -#: picard/ui/ui_options_folksonomy.py:116 +#: contrib/plugins/lastfm/ui_options_lastfm.py:103 +#: picard/ui/ui_options_folksonomy.py:103 msgid "Ignore tags:" msgstr "Ignorar las metadonadas :" -#: contrib/plugins/lastfm/ui_options_lastfm.py:122 -#: picard/ui/ui_options_folksonomy.py:121 +#: contrib/plugins/lastfm/ui_options_lastfm.py:104 +#: picard/ui/ui_options_folksonomy.py:108 msgid "Join multiple tags with:" msgstr "Jónher mantuna metadonada amb :" -#: contrib/plugins/lastfm/ui_options_lastfm.py:123 -#: picard/ui/ui_options_folksonomy.py:122 +#: contrib/plugins/lastfm/ui_options_lastfm.py:105 +#: picard/ui/ui_options_folksonomy.py:109 msgid " / " msgstr " / " -#: contrib/plugins/lastfm/ui_options_lastfm.py:124 -#: picard/ui/ui_options_folksonomy.py:123 +#: contrib/plugins/lastfm/ui_options_lastfm.py:106 +#: picard/ui/ui_options_folksonomy.py:110 msgid ", " msgstr ", " -#: contrib/plugins/lastfm/ui_options_lastfm.py:125 -#: picard/ui/ui_options_folksonomy.py:118 +#: contrib/plugins/lastfm/ui_options_lastfm.py:107 +#: picard/ui/ui_options_folksonomy.py:105 msgid "Minimal tag usage:" msgstr "Usatge minimal de metadonadas :" -#: contrib/plugins/lastfm/ui_options_lastfm.py:126 -#: picard/ui/ui_options_folksonomy.py:119 picard/ui/ui_options_matching.py:88 -#: picard/ui/ui_options_matching.py:89 picard/ui/ui_options_matching.py:90 +#: contrib/plugins/lastfm/ui_options_lastfm.py:108 +#: picard/ui/ui_options_folksonomy.py:106 picard/ui/ui_options_matching.py:75 +#: picard/ui/ui_options_matching.py:76 picard/ui/ui_options_matching.py:77 msgid " %" msgstr " %" @@ -95,420 +91,307 @@ msgstr " %" msgid "Calculate replay &gain..." msgstr "" -#: contrib/plugins/replaygain/__init__.py:66 +#: contrib/plugins/replaygain/__init__.py:67 #, python-format -msgid "Calculating replay gain for \"%s\"..." +msgid "Calculating replay gain for \"%(filename)s\"..." msgstr "" -#: contrib/plugins/replaygain/__init__.py:71 +#: contrib/plugins/replaygain/__init__.py:75 #, python-format -msgid "Replay gain for \"%s\" successfully calculated." +msgid "Replay gain for \"%(filename)s\" successfully calculated." msgstr "" -#: contrib/plugins/replaygain/__init__.py:73 +#: contrib/plugins/replaygain/__init__.py:80 #, python-format -msgid "Could not calculate replay gain for \"%s\"." +msgid "Could not calculate replay gain for \"%(filename)s\"." msgstr "" -#: contrib/plugins/replaygain/__init__.py:76 +#: contrib/plugins/replaygain/__init__.py:85 msgid "Calculate album &gain..." msgstr "" -#: contrib/plugins/replaygain/__init__.py:103 -#: contrib/plugins/replaygain/__init__.py:111 +#: contrib/plugins/replaygain/__init__.py:113 +#: contrib/plugins/replaygain/__init__.py:124 #, python-format -msgid "Calculating album gain for \"%s\"..." +msgid "Calculating album gain for \"%(album)s\"..." msgstr "" -#: contrib/plugins/replaygain/__init__.py:119 +#: contrib/plugins/replaygain/__init__.py:135 #, python-format -msgid "Album gain for \"%s\" successfully calculated." +msgid "Album gain for \"%(album)s\" successfully calculated." msgstr "" -#: contrib/plugins/replaygain/__init__.py:121 +#: contrib/plugins/replaygain/__init__.py:140 #, python-format -msgid "Could not calculate album gain for \"%s\"." +msgid "Could not calculate album gain for \"%(album)s\"." msgstr "" -#: picard/acoustid.py:102 -#, python-format -msgid "AcoustID lookup network error for '%s'!" +#: contrib/plugins/replaygain/ui_options_replaygain.py:59 +msgid "Replay Gain" msgstr "" -#: picard/acoustid.py:117 -#, python-format -msgid "AcoustID lookup failed for '%s'!" +#: contrib/plugins/replaygain/ui_options_replaygain.py:60 +msgid "Path to VorbisGain:" msgstr "" -#: picard/acoustid.py:128 -#, python-format -msgid "Acoustid lookup returned no result for file '%s'" +#: contrib/plugins/replaygain/ui_options_replaygain.py:61 +msgid "Path to MP3Gain:" msgstr "" -#: picard/acoustid.py:132 -#, python-format -msgid "Looking up the fingerprint for file %s..." -msgstr "Recèrca de l'emprencha del fichièr %s..." - -#: picard/acoustidmanager.py:78 -msgid "Submitting AcoustIDs..." +#: contrib/plugins/replaygain/ui_options_replaygain.py:62 +msgid "Path to metaflac:" msgstr "" -#: picard/acoustidmanager.py:83 -#, python-format -msgid "AcoustID submission failed with error '%s'" +#: contrib/plugins/replaygain/ui_options_replaygain.py:63 +msgid "Path to wvgain:" msgstr "" -#: picard/acoustidmanager.py:85 +#: contrib/plugins/viewvariables/__init__.py:42 +#, python-format +msgid "File: %s" +msgstr "" + +#: contrib/plugins/viewvariables/__init__.py:47 +#, python-format +msgid "Track: %s %s " +msgstr "" + +#: contrib/plugins/viewvariables/__init__.py:49 +msgid "Variables" +msgstr "" + +#: contrib/plugins/viewvariables/__init__.py:69 +msgid "File variables" +msgstr "" + +#: contrib/plugins/viewvariables/__init__.py:74 +msgid "Hidden variables" +msgstr "" + +#: contrib/plugins/viewvariables/__init__.py:79 +msgid "Tag variables" +msgstr "" + +#: contrib/plugins/viewvariables/ui_variables_dialog.py:73 +msgid "Variable" +msgstr "" + +#: contrib/plugins/viewvariables/ui_variables_dialog.py:75 +msgid "Value" +msgstr "" + +#: picard/acoustid.py:109 +#, python-format +msgid "AcoustID lookup network error for '%(filename)s'!" +msgstr "" + +#: picard/acoustid.py:133 +#, python-format +msgid "AcoustID lookup failed for '%(filename)s'!" +msgstr "" + +#: picard/acoustid.py:155 +#, python-format +msgid "AcoustID lookup returned no result for file '%(filename)s'" +msgstr "" + +#: picard/acoustid.py:166 +#, python-format +msgid "Looking up the fingerprint for file '%(filename)s' ..." +msgstr "" + +#: picard/acoustidmanager.py:80 +msgid "Submitting AcoustIDs ..." +msgstr "" + +#: picard/acoustidmanager.py:94 +#, python-format +msgid "AcoustID submission failed with error '%(error)s'" +msgstr "" + +#: picard/acoustidmanager.py:102 msgid "AcoustIDs successfully submitted." msgstr "" -#: picard/album.py:64 picard/cluster.py:234 +#: picard/album.py:65 picard/cluster.py:255 msgid "Unmatched Files" msgstr "Fichièrs sens gropament" -#: picard/album.py:187 +#: picard/album.py:188 #, python-format msgid "[could not load album %s]" msgstr "[cargament de l'album %s impossible]" -#: picard/album.py:272 +#: picard/album.py:277 #, python-format -msgid "Album %s loaded" +msgid "Album %(id)s loaded: %(artist)s - %(album)s" msgstr "" -#: picard/album.py:288 +#: picard/album.py:294 +#, python-format +msgid "Loading album %(id)s ..." +msgstr "" + +#: picard/album.py:303 msgid "[loading album information]" msgstr "[cargament de las informacions de l'album]" -#: picard/album.py:463 +#: picard/album.py:478 #, python-format msgid "; %i image" msgid_plural "; %i images" msgstr[0] "" msgstr[1] "" -#: picard/cluster.py:150 picard/cluster.py:159 +#: picard/cluster.py:155 picard/cluster.py:168 #, python-format -msgid "No matching releases for cluster %s" -msgstr "Cap de parucions pas tobadas per grop %s" - -#: picard/cluster.py:161 -#, python-format -msgid "Cluster %s identified!" -msgstr "Gropament %s identificat !" - -#: picard/cluster.py:168 -#, python-format -msgid "Looking up the metadata for cluster %s..." -msgstr "Recèrca de las metadonadas del gropament %s ..." - -#: picard/collection.py:60 -#, python-format -msgid "Added %i release to collection \"%s\"" -msgid_plural "Added %i releases to collection \"%s\"" -msgstr[0] "" -msgstr[1] "" - -#: picard/collection.py:72 -#, python-format -msgid "Removed %i release from collection \"%s\"" -msgid_plural "Removed %i releases from collection \"%s\"" -msgstr[0] "" -msgstr[1] "" - -#: picard/collection.py:81 -#, python-format -msgid "Error loading collections: %s" +msgid "No matching releases for cluster %(album)s" msgstr "" -#: picard/config_upgrade.py:57 picard/config_upgrade.py:70 +#: picard/cluster.py:174 +#, python-format +msgid "Cluster %(album)s identified!" +msgstr "" + +#: picard/cluster.py:185 +#, python-format +msgid "Looking up the metadata for cluster %(album)s..." +msgstr "" + +#: picard/collection.py:64 +#, python-format +msgid "Added %(count)i release to collection \"%(name)s\"" +msgid_plural "Added %(count)i releases to collection \"%(name)s\"" +msgstr[0] "" +msgstr[1] "" + +#: picard/collection.py:86 +#, python-format +msgid "Removed %(count)i release from collection \"%(name)s\"" +msgid_plural "Removed %(count)i releases from collection \"%(name)s\"" +msgstr[0] "" +msgstr[1] "" + +#: picard/collection.py:100 +#, python-format +msgid "Error loading collections: %(error)s" +msgstr "" + +#: picard/config_upgrade.py:58 picard/config_upgrade.py:71 msgid "Various Artists file naming scheme removal" msgstr "" -#: picard/config_upgrade.py:58 +#: picard/config_upgrade.py:59 msgid "" "The separate file naming scheme for various artists albums has been removed in this version of Picard.\n" "Your file naming scheme has automatically been merged with that of single artist albums." msgstr "" -#: picard/config_upgrade.py:71 +#: picard/config_upgrade.py:72 msgid "" "The separate file naming scheme for various artists albums has been removed in this version of Picard.\n" "You currently do not use this option, but have a separate file naming scheme defined.\n" "Do you want to remove it or merge it with your file naming scheme for single artist albums?" msgstr "" -#: picard/config_upgrade.py:77 +#: picard/config_upgrade.py:78 msgid "Merge" msgstr "" -#: picard/config_upgrade.py:77 picard/ui/metadatabox.py:254 +#: picard/config_upgrade.py:78 picard/ui/metadatabox.py:254 msgid "Remove" msgstr "" -#: picard/const.py:67 -msgid "CD" -msgstr "CD" - -#: picard/const.py:68 -msgid "CD-R" -msgstr "" - -#: picard/const.py:69 -msgid "HDCD" -msgstr "" - -#: picard/const.py:70 -msgid "8cm CD" -msgstr "" - -#: picard/const.py:71 -msgid "Vinyl" -msgstr "Viradisques vinil" - -#: picard/const.py:72 -msgid "7\" Vinyl" -msgstr "" - -#: picard/const.py:73 -msgid "10\" Vinyl" -msgstr "" - -#: picard/const.py:74 -msgid "12\" Vinyl" -msgstr "" - -#: picard/const.py:75 -msgid "Digital Media" -msgstr "Mèdias Numerics" - -#: picard/const.py:76 -msgid "USB Flash Drive" -msgstr "" - -#: picard/const.py:77 -msgid "slotMusic" -msgstr "" - -#: picard/const.py:78 -msgid "Cassette" -msgstr "Caisseta" - -#: picard/const.py:79 -msgid "DVD" -msgstr "DVD" - -#: picard/const.py:80 -msgid "DVD-Audio" -msgstr "" - -#: picard/const.py:81 -msgid "DVD-Video" -msgstr "" - -#: picard/const.py:82 -msgid "SACD" -msgstr "SACD" - -#: picard/const.py:83 -msgid "DualDisc" -msgstr "" - -#: picard/const.py:84 -msgid "MiniDisc" -msgstr "MiniDisc" - -#: picard/const.py:85 -msgid "Blu-ray" -msgstr "" - -#: picard/const.py:86 -msgid "HD-DVD" -msgstr "" - -#: picard/const.py:87 -msgid "Videotape" -msgstr "" - -#: picard/const.py:88 -msgid "VHS" -msgstr "" - -#: picard/const.py:89 -msgid "Betamax" -msgstr "" - #: picard/const.py:90 -msgid "VCD" -msgstr "" - -#: picard/const.py:91 -msgid "SVCD" -msgstr "" - -#: picard/const.py:92 -msgid "UMD" -msgstr "" - -#: picard/const.py:93 picard/coverartarchive.py:33 -#: picard/ui/ui_options_releases.py:226 -msgid "Other" -msgstr "Autre" - -#: picard/const.py:94 -msgid "LaserDisc" -msgstr "LaserDisc" - -#: picard/const.py:95 -msgid "Cartridge" -msgstr "" - -#: picard/const.py:96 -msgid "Reel-to-reel" -msgstr "" - -#: picard/const.py:97 -msgid "DAT" -msgstr "Benda DAT" - -#: picard/const.py:98 -msgid "Wax Cylinder" -msgstr "Cilindre fonografic" - -#: picard/const.py:99 -msgid "Piano Roll" -msgstr "Rotlèu musical" - -#: picard/const.py:100 -msgid "DCC" -msgstr "" - -#: picard/const.py:115 msgid "Danish" msgstr "" -#: picard/const.py:116 +#: picard/const.py:91 msgid "German" msgstr "Alemand" -#: picard/const.py:118 +#: picard/const.py:93 msgid "English" msgstr "Anglés" -#: picard/const.py:119 +#: picard/const.py:94 msgid "English (Canada)" msgstr "Anglés (Canadà)" -#: picard/const.py:120 +#: picard/const.py:95 msgid "English (UK)" msgstr "Anglés (Reialme Unit)" -#: picard/const.py:122 +#: picard/const.py:97 msgid "Spanish" msgstr "Espanhòl" -#: picard/const.py:123 +#: picard/const.py:98 msgid "Estonian" msgstr "Estonian" -#: picard/const.py:125 +#: picard/const.py:100 msgid "Finnish" msgstr "Finés" -#: picard/const.py:127 +#: picard/const.py:102 msgid "French" msgstr "Francés" -#: picard/const.py:136 +#: picard/const.py:111 msgid "Italian" msgstr "Italian" -#: picard/const.py:143 +#: picard/const.py:118 msgid "Dutch" msgstr "Neerlandés" -#: picard/const.py:145 +#: picard/const.py:120 msgid "Polish" msgstr "Polonés" -#: picard/const.py:147 +#: picard/const.py:122 msgid "Brazilian Portuguese" msgstr "Portugués brasilièr" -#: picard/const.py:154 +#: picard/const.py:129 msgid "Swedish" msgstr "Suedés" -#: picard/coverart.py:84 +#: picard/coverart.py:85 #, python-format -msgid "Coverart %s downloaded" +msgid "Cover art of type '%(type)s' downloaded for %(albumid)s from %(host)s" msgstr "" -#: picard/coverart.py:240 +#: picard/coverart.py:256 #, python-format -msgid "Downloading http://%s:%i%s" -msgstr "" - -#: picard/coverartarchive.py:24 -msgid "Front" -msgstr "" - -#: picard/coverartarchive.py:25 -msgid "Back" -msgstr "" - -#: picard/coverartarchive.py:26 -msgid "Booklet" -msgstr "" - -#: picard/coverartarchive.py:27 -msgid "Medium" -msgstr "" - -#: picard/coverartarchive.py:28 -msgid "Tray" -msgstr "" - -#: picard/coverartarchive.py:29 -msgid "Obi" +msgid "" +"Downloading cover art of type '%(type)s' for %(albumid)s from %(host)s .." msgstr "" #: picard/coverartarchive.py:30 -msgid "Spine" -msgstr "" - -#: picard/coverartarchive.py:31 picard/ui/mainwindow.py:546 -msgid "Track" -msgstr "Pista" - -#: picard/coverartarchive.py:32 -msgid "Sticker" -msgstr "" - -#: picard/coverartarchive.py:34 msgid "Unknown" msgstr "" -#: picard/file.py:536 +#: picard/file.py:494 #, python-format -msgid "No matching tracks for file %s" -msgstr "Pas de pista que correspond al fichièr %s" +msgid "No matching tracks for file '%(filename)s'" +msgstr "" -#: picard/file.py:548 +#: picard/file.py:510 #, python-format -msgid "No matching tracks above the threshold for file %s" -msgstr "Pas de pista que correspond al dessús del sulhet pel fichièr %s" +msgid "No matching tracks above the threshold for file '%(filename)s'" +msgstr "" -#: picard/file.py:551 +#: picard/file.py:517 #, python-format -msgid "File %s identified!" -msgstr "Fichièr %s identificat !" +msgid "File '%(filename)s' identified!" +msgstr "" -#: picard/file.py:567 +#: picard/file.py:537 #, python-format -msgid "Looking up the metadata for file %s..." -msgstr "Recèrca de las metadonadas del fichièr %s ..." +msgid "Looking up the metadata for file %(filename)s ..." +msgstr "" #: picard/releasegroup.py:53 msgid "Tracks" @@ -518,11 +401,11 @@ msgstr "" msgid "Year" msgstr "" -#: picard/releasegroup.py:55 picard/ui/cdlookup.py:34 +#: picard/releasegroup.py:55 picard/ui/cdlookup.py:35 msgid "Country" msgstr "" -#: picard/releasegroup.py:56 picard/util/tags.py:81 +#: picard/releasegroup.py:56 msgid "Format" msgstr "Format" @@ -542,16 +425,23 @@ msgstr "" msgid "[no release info]" msgstr "" -#: picard/tagger.py:316 +#: picard/tagger.py:370 #, python-format -msgid "Loading directory %s" +msgid "Adding %(count)d file from '%(directory)s' ..." +msgid_plural "Adding %(count)d files from '%(directory)s' ..." +msgstr[0] "" +msgstr[1] "" + +#: picard/tagger.py:512 +#, python-format +msgid "Removing album %(id)s: %(artist)s - %(album)s" msgstr "" -#: picard/tagger.py:452 +#: picard/tagger.py:528 msgid "CD Lookup Error" msgstr "Error de recèrca del CD" -#: picard/tagger.py:453 +#: picard/tagger.py:529 #, python-format msgid "" "Error while reading CD:\n" @@ -559,44 +449,43 @@ msgid "" "%s" msgstr "Error pendent la lectura del CD :\n\n%s" -#: picard/ui/cdlookup.py:34 picard/ui/mainwindow.py:544 -#: picard/ui/ui_options_releases.py:216 picard/util/tags.py:21 +#: picard/ui/cdlookup.py:35 picard/ui/mainwindow.py:597 picard/util/tags.py:21 msgid "Album" msgstr "Album" -#: picard/ui/cdlookup.py:34 picard/ui/itemviews.py:96 -#: picard/ui/mainwindow.py:545 picard/util/tags.py:22 +#: picard/ui/cdlookup.py:35 picard/ui/itemviews.py:96 +#: picard/ui/mainwindow.py:598 picard/util/tags.py:22 msgid "Artist" msgstr "Artista" -#: picard/ui/cdlookup.py:34 picard/util/tags.py:24 +#: picard/ui/cdlookup.py:35 picard/util/tags.py:24 msgid "Date" msgstr "Data" -#: picard/ui/cdlookup.py:35 +#: picard/ui/cdlookup.py:36 msgid "Labels" msgstr "" -#: picard/ui/cdlookup.py:35 +#: picard/ui/cdlookup.py:36 msgid "Catalog #s" msgstr "" -#: picard/ui/cdlookup.py:35 picard/util/tags.py:79 +#: picard/ui/cdlookup.py:36 picard/util/tags.py:78 msgid "Barcode" msgstr "Còde barra" -#: picard/ui/collectionmenu.py:31 +#: picard/ui/collectionmenu.py:42 msgid "Refresh List" msgstr "" -#: picard/ui/collectionmenu.py:92 +#: picard/ui/collectionmenu.py:86 #, python-format msgid "%s (%i release)" msgid_plural "%s (%i releases)" msgstr[0] "" msgstr[1] "" -#: picard/ui/coverartbox.py:142 +#: picard/ui/coverartbox.py:141 msgid "View release on MusicBrainz" msgstr "" @@ -612,59 +501,59 @@ msgstr "Aficha los fichièrs a&magats" msgid "&Set as starting directory" msgstr "" -#: picard/ui/infodialog.py:36 picard/ui/infodialog.py:75 +#: picard/ui/infodialog.py:37 picard/ui/infodialog.py:80 msgid "Info" msgstr "" -#: picard/ui/infodialog.py:80 +#: picard/ui/infodialog.py:85 msgid "Filename:" msgstr "Nom del fichièr :" -#: picard/ui/infodialog.py:82 +#: picard/ui/infodialog.py:87 msgid "Format:" msgstr "Format :" -#: picard/ui/infodialog.py:86 +#: picard/ui/infodialog.py:91 msgid "Size:" msgstr "Talha :" -#: picard/ui/infodialog.py:90 +#: picard/ui/infodialog.py:95 msgid "Length:" msgstr "Durada :" -#: picard/ui/infodialog.py:92 +#: picard/ui/infodialog.py:97 msgid "Bitrate:" msgstr "Debit :" -#: picard/ui/infodialog.py:94 +#: picard/ui/infodialog.py:99 msgid "Sample rate:" msgstr "Taus d'escandalhatge :" -#: picard/ui/infodialog.py:96 +#: picard/ui/infodialog.py:101 msgid "Bits per sample:" msgstr "Bits per escandalhatge :" -#: picard/ui/infodialog.py:100 +#: picard/ui/infodialog.py:105 msgid "Mono" msgstr "Mono" -#: picard/ui/infodialog.py:102 +#: picard/ui/infodialog.py:107 msgid "Stereo" msgstr "Esterèo" -#: picard/ui/infodialog.py:105 +#: picard/ui/infodialog.py:110 msgid "Channels:" msgstr "Canals :" -#: picard/ui/infodialog.py:116 +#: picard/ui/infodialog.py:121 msgid "Album Info" msgstr "" -#: picard/ui/infodialog.py:124 +#: picard/ui/infodialog.py:129 msgid "&Errors" msgstr "" -#: picard/ui/infodialog.py:134 picard/ui/ui_infodialog.py:77 +#: picard/ui/infodialog.py:139 picard/ui/ui_infodialog.py:73 msgid "&Info" msgstr "&Info" @@ -688,7 +577,7 @@ msgstr "" msgid "Title" msgstr "Títol" -#: picard/ui/itemviews.py:95 picard/util/tags.py:88 +#: picard/ui/itemviews.py:95 picard/util/tags.py:86 msgid "Length" msgstr "Durada" @@ -713,8 +602,8 @@ msgid "Collections" msgstr "" #: picard/ui/itemviews.py:365 -msgid "&Plugins" -msgstr "&Extensions" +msgid "P&lugins" +msgstr "" #: picard/ui/itemviews.py:541 msgid "file view" @@ -736,12 +625,16 @@ msgstr "" msgid "Contains albums and matched files" msgstr "" -#: picard/ui/logview.py:91 +#: picard/ui/logview.py:109 msgid "Log" msgstr "Jornal" -#: picard/ui/logview.py:99 -msgid "Status History" +#: picard/ui/logview.py:113 +msgid "Debug mode" +msgstr "" + +#: picard/ui/logview.py:134 +msgid "Activity History" msgstr "" #: picard/ui/mainwindow.py:74 @@ -775,276 +668,309 @@ msgstr "" #: picard/ui/mainwindow.py:220 msgid "" -"Picard listens on a port to integrate with your browser and downloads " -"release information when you click the \"Tagger\" buttons on the MusicBrainz" -" website" +"Picard listens on this port to integrate with your browser. When you " +"\"Search\" or \"Open in Browser\" from Picard, clicking the \"Tagger\" " +"button on the web page loads the release into Picard." msgstr "" -#: picard/ui/mainwindow.py:240 +#: picard/ui/mainwindow.py:243 #, python-format msgid " Listening on port %(port)d " msgstr "" -#: picard/ui/mainwindow.py:263 +#: picard/ui/mainwindow.py:299 msgid "Submission Error" msgstr "" -#: picard/ui/mainwindow.py:264 +#: picard/ui/mainwindow.py:300 msgid "" "You need to configure your AcoustID API key before you can submit " "fingerprints." msgstr "" -#: picard/ui/mainwindow.py:269 +#: picard/ui/mainwindow.py:305 msgid "&Options..." msgstr "&Opcions..." -#: picard/ui/mainwindow.py:273 +#: picard/ui/mainwindow.py:309 msgid "&Cut" msgstr "Co&par" -#: picard/ui/mainwindow.py:278 +#: picard/ui/mainwindow.py:314 msgid "&Paste" msgstr "&Empegar" -#: picard/ui/mainwindow.py:283 +#: picard/ui/mainwindow.py:319 msgid "&Help..." msgstr "&Ajuda..." -#: picard/ui/mainwindow.py:288 +#: picard/ui/mainwindow.py:323 msgid "&About..." msgstr "&A prepaus..." -#: picard/ui/mainwindow.py:292 +#: picard/ui/mainwindow.py:327 msgid "&Donate..." msgstr "&Far un don..." -#: picard/ui/mainwindow.py:295 +#: picard/ui/mainwindow.py:330 msgid "&Report a Bug..." msgstr "&Senhalar un bug" -#: picard/ui/mainwindow.py:298 +#: picard/ui/mainwindow.py:333 msgid "&Support Forum..." msgstr "&Forum del Supòrt..." -#: picard/ui/mainwindow.py:301 +#: picard/ui/mainwindow.py:336 msgid "&Add Files..." msgstr "&Apondre de fichièrs..." -#: picard/ui/mainwindow.py:302 +#: picard/ui/mainwindow.py:337 msgid "Add files to the tagger" msgstr "Seleccionatz los fichièrs d'etiquetar" -#: picard/ui/mainwindow.py:307 +#: picard/ui/mainwindow.py:342 msgid "A&dd Folder..." msgstr "Apondre un &dorsièr..." -#: picard/ui/mainwindow.py:308 +#: picard/ui/mainwindow.py:343 msgid "Add a folder to the tagger" msgstr "Apondre un dorsièr d'etiquetar" -#: picard/ui/mainwindow.py:310 +#: picard/ui/mainwindow.py:345 msgid "Ctrl+D" msgstr "Ctrl+D" -#: picard/ui/mainwindow.py:313 +#: picard/ui/mainwindow.py:348 msgid "&Save" msgstr "&Enregistrar" -#: picard/ui/mainwindow.py:314 +#: picard/ui/mainwindow.py:349 msgid "Save selected files" msgstr "Salvar los fichièrs seleccionats" -#: picard/ui/mainwindow.py:320 +#: picard/ui/mainwindow.py:355 msgid "S&ubmit" msgstr "" -#: picard/ui/mainwindow.py:321 -msgid "Submit fingerprints" +#: picard/ui/mainwindow.py:356 +msgid "Submit acoustic fingerprints" msgstr "" -#: picard/ui/mainwindow.py:325 +#: picard/ui/mainwindow.py:360 msgid "E&xit" msgstr "&Quitar" -#: picard/ui/mainwindow.py:328 +#: picard/ui/mainwindow.py:363 msgid "Ctrl+Q" msgstr "Ctrl+Q" -#: picard/ui/mainwindow.py:331 +#: picard/ui/mainwindow.py:366 msgid "&Remove" msgstr "&Levar" -#: picard/ui/mainwindow.py:332 +#: picard/ui/mainwindow.py:367 msgid "Remove selected files/albums" msgstr "Suprimir los fichièrs/albums seleccionats" -#: picard/ui/mainwindow.py:336 +#: picard/ui/mainwindow.py:371 msgid "Lookup in &Browser" msgstr "" -#: picard/ui/mainwindow.py:337 +#: picard/ui/mainwindow.py:372 msgid "Lookup selected item on MusicBrainz website" msgstr "" -#: picard/ui/mainwindow.py:341 +#: picard/ui/mainwindow.py:376 msgid "File &Browser" msgstr "&Percórrer los fichièrs" -#: picard/ui/mainwindow.py:345 +#: picard/ui/mainwindow.py:380 msgid "Ctrl+B" msgstr "Ctrl+B" -#: picard/ui/mainwindow.py:348 +#: picard/ui/mainwindow.py:383 msgid "&Cover Art" msgstr "&Pocheta" -#: picard/ui/mainwindow.py:354 picard/ui/mainwindow.py:539 +#: picard/ui/mainwindow.py:389 picard/ui/mainwindow.py:591 msgid "Search" msgstr "Recercar" -#: picard/ui/mainwindow.py:357 -msgid "&CD Lookup..." -msgstr "Recercar &CD..." +#: picard/ui/mainwindow.py:392 +msgid "Lookup &CD..." +msgstr "" -#: picard/ui/mainwindow.py:358 picard/ui/mainwindow.py:359 -msgid "Lookup CD" -msgstr "Recèrca de CD" +#: picard/ui/mainwindow.py:393 +msgid "Lookup the details of the CD in your drive" +msgstr "" -#: picard/ui/mainwindow.py:361 +#: picard/ui/mainwindow.py:395 msgid "Ctrl+K" msgstr "Ctrl+K" -#: picard/ui/mainwindow.py:364 +#: picard/ui/mainwindow.py:398 msgid "&Scan" msgstr "&Analisar" -#: picard/ui/mainwindow.py:367 +#: picard/ui/mainwindow.py:401 msgid "Ctrl+Y" msgstr "Ctrl+Y" -#: picard/ui/mainwindow.py:370 +#: picard/ui/mainwindow.py:404 msgid "Cl&uster" msgstr "Gro&patge" -#: picard/ui/mainwindow.py:373 +#: picard/ui/mainwindow.py:407 msgid "Ctrl+U" msgstr "Ctrl+U" -#: picard/ui/mainwindow.py:376 +#: picard/ui/mainwindow.py:410 msgid "&Lookup" msgstr "&Recercar" -#: picard/ui/mainwindow.py:377 picard/ui/mainwindow.py:378 -msgid "Lookup metadata" -msgstr "Recercar metadonadas" +#: picard/ui/mainwindow.py:411 +msgid "Lookup selected items in MusicBrainz" +msgstr "" -#: picard/ui/mainwindow.py:381 +#: picard/ui/mainwindow.py:416 msgid "Ctrl+L" msgstr "Ctrl+L" -#: picard/ui/mainwindow.py:384 +#: picard/ui/mainwindow.py:419 msgid "&Info..." msgstr "" -#: picard/ui/mainwindow.py:387 +#: picard/ui/mainwindow.py:422 msgid "Ctrl+I" msgstr "" -#: picard/ui/mainwindow.py:390 +#: picard/ui/mainwindow.py:425 msgid "&Refresh" msgstr "&Refrescar" -#: picard/ui/mainwindow.py:391 +#: picard/ui/mainwindow.py:426 msgid "Ctrl+R" msgstr "" -#: picard/ui/mainwindow.py:394 +#: picard/ui/mainwindow.py:429 msgid "&Rename Files" msgstr "To&rnat nomenar los fichièrs" -#: picard/ui/mainwindow.py:399 +#: picard/ui/mainwindow.py:434 msgid "&Move Files" msgstr "Desplaçar los fichièrs" -#: picard/ui/mainwindow.py:404 +#: picard/ui/mainwindow.py:439 msgid "Save &Tags" msgstr "Salvar las me&tadonadas" -#: picard/ui/mainwindow.py:409 +#: picard/ui/mainwindow.py:444 msgid "Tags From &File Names..." msgstr "Metadonadas dels noms de &fichièr..." -#: picard/ui/mainwindow.py:412 -msgid "View &Log..." -msgstr "Visualizar los &logs" - -#: picard/ui/mainwindow.py:415 -msgid "View Status &History..." +#: picard/ui/mainwindow.py:447 +msgid "&Open My Collections in Browser" msgstr "" -#: picard/ui/mainwindow.py:422 -msgid "&Open..." +#: picard/ui/mainwindow.py:451 +msgid "View Error/Debug &Log" msgstr "" -#: picard/ui/mainwindow.py:423 -msgid "Open the file" +#: picard/ui/mainwindow.py:454 +msgid "View Activity &History" msgstr "" -#: picard/ui/mainwindow.py:426 -msgid "Open &Folder..." +#: picard/ui/mainwindow.py:461 +msgid "&Play file" msgstr "" -#: picard/ui/mainwindow.py:427 -msgid "Open the containing folder" +#: picard/ui/mainwindow.py:462 +msgid "Play the file in your default media player" msgstr "" -#: picard/ui/mainwindow.py:448 +#: picard/ui/mainwindow.py:466 +msgid "Open Containing &Folder" +msgstr "" + +#: picard/ui/mainwindow.py:467 +msgid "Open the containing folder in your file explorer" +msgstr "" + +#: picard/ui/mainwindow.py:492 msgid "&File" msgstr "&Fichièr" -#: picard/ui/mainwindow.py:456 +#: picard/ui/mainwindow.py:503 msgid "&Edit" msgstr "&Editar" -#: picard/ui/mainwindow.py:462 +#: picard/ui/mainwindow.py:509 msgid "&View" msgstr "&Vista" -#: picard/ui/mainwindow.py:470 +#: picard/ui/mainwindow.py:515 msgid "&Options" msgstr "&Opcions" -#: picard/ui/mainwindow.py:476 +#: picard/ui/mainwindow.py:521 msgid "&Tools" msgstr "&Espleches" -#: picard/ui/mainwindow.py:485 picard/ui/util.py:35 +#: picard/ui/mainwindow.py:532 picard/ui/util.py:35 msgid "&Help" msgstr "&Ajuda" -#: picard/ui/mainwindow.py:505 +#: picard/ui/mainwindow.py:553 msgid "Actions" msgstr "" -#: picard/ui/mainwindow.py:608 +#: picard/ui/mainwindow.py:599 +msgid "Track" +msgstr "Pista" + +#: picard/ui/mainwindow.py:662 msgid "All Supported Formats" msgstr "Totes los formats preses en carga" -#: picard/ui/mainwindow.py:705 +#: picard/ui/mainwindow.py:695 +#, python-format +msgid "Adding directory: '%(directory)s' ..." +msgstr "" + +#: picard/ui/mainwindow.py:702 +#, python-format +msgid "Adding multiple directories from '%(directory)s' ..." +msgstr "" + +#: picard/ui/mainwindow.py:767 msgid "Configuration Required" msgstr "" -#: picard/ui/mainwindow.py:706 +#: picard/ui/mainwindow.py:768 msgid "" "Audio fingerprinting is not yet configured. Would you like to configure it " "now?" msgstr "" -#: picard/ui/mainwindow.py:784 picard/ui/mainwindow.py:791 +#: picard/ui/mainwindow.py:848 #, python-format -msgid " (Error: %s)" -msgstr " (Error : %s)" +msgid "%(filename)s (error: %(error)s)" +msgstr "" + +#: picard/ui/mainwindow.py:854 +#, python-format +msgid "%(filename)s" +msgstr "" + +#: picard/ui/mainwindow.py:864 +#, python-format +msgid "%(filename)s (%(similarity)d%%) (error: %(error)s)" +msgstr "" + +#: picard/ui/mainwindow.py:871 +#, python-format +msgid "%(filename)s (%(similarity)d%%)" +msgstr "" #: picard/ui/metadatabox.py:82 #, python-format @@ -1098,387 +1024,387 @@ msgid_plural "Use Original Values" msgstr[0] "" msgstr[1] "" -#: picard/ui/passworddialog.py:37 +#: picard/ui/passworddialog.py:40 #, python-format msgid "" "The server %s requires you to login. Please enter your username and " "password." msgstr "Lo servidor %s requerís una connexion. Entratz vòstres nom d'utilizaire e senhal." -#: picard/ui/passworddialog.py:75 +#: picard/ui/passworddialog.py:79 #, python-format msgid "" "The proxy %s requires you to login. Please enter your username and password." msgstr "" -#: picard/ui/tagsfromfilenames.py:55 picard/ui/tagsfromfilenames.py:100 +#: picard/ui/tagsfromfilenames.py:56 picard/ui/tagsfromfilenames.py:101 msgid "File Name" msgstr "Nom del fichièr" -#: picard/ui/ui_cdlookup.py:66 picard/ui/ui_options_cdlookup.py:55 -#: picard/ui/ui_options_cdlookup_select.py:62 picard/ui/options/cdlookup.py:38 +#: picard/ui/ui_cdlookup.py:53 picard/ui/ui_options_cdlookup.py:42 +#: picard/ui/ui_options_cdlookup_select.py:49 picard/ui/options/cdlookup.py:38 msgid "CD Lookup" msgstr "Consultacion del CD" -#: picard/ui/ui_cdlookup.py:67 +#: picard/ui/ui_cdlookup.py:54 msgid "The following releases on MusicBrainz match the CD:" msgstr "Las parucions seguentas de MusicBrainz correspondon a aqueste CD :" -#: picard/ui/ui_cdlookup.py:68 +#: picard/ui/ui_cdlookup.py:55 msgid "OK" msgstr "D'acòrdi" -#: picard/ui/ui_cdlookup.py:69 +#: picard/ui/ui_cdlookup.py:56 msgid "Lookup manually" msgstr "" -#: picard/ui/ui_cdlookup.py:70 +#: picard/ui/ui_cdlookup.py:57 msgid "Cancel" msgstr "Anullar" -#: picard/ui/ui_edittagdialog.py:101 +#: picard/ui/ui_edittagdialog.py:88 msgid "Edit Tag" msgstr "" -#: picard/ui/ui_edittagdialog.py:102 +#: picard/ui/ui_edittagdialog.py:89 msgid "Edit value" msgstr "" -#: picard/ui/ui_edittagdialog.py:103 +#: picard/ui/ui_edittagdialog.py:90 msgid "Add value" msgstr "" -#: picard/ui/ui_edittagdialog.py:104 +#: picard/ui/ui_edittagdialog.py:91 msgid "Remove value" msgstr "" -#: picard/ui/ui_infodialog.py:78 +#: picard/ui/ui_infodialog.py:74 msgid "A&rtwork" msgstr "Pocheta d'album" -#: picard/ui/ui_infostatus.py:100 +#: picard/ui/ui_infostatus.py:96 msgid "Form" msgstr "" -#: picard/ui/ui_options.py:51 +#: picard/ui/ui_options.py:38 msgid "Options" msgstr "" -#: picard/ui/ui_options_advanced.py:46 +#: picard/ui/ui_options_advanced.py:42 msgid "Advanced options" msgstr "" -#: picard/ui/ui_options_advanced.py:47 +#: picard/ui/ui_options_advanced.py:43 msgid "Ignore file paths matching the following regular expression:" msgstr "" -#: picard/ui/ui_options_cdlookup.py:56 +#: picard/ui/ui_options_cdlookup.py:43 msgid "CD-ROM device to use for lookups:" msgstr "Lector de CD-ROM d'utilizar per las consultacions" -#: picard/ui/ui_options_cdlookup_select.py:63 +#: picard/ui/ui_options_cdlookup_select.py:50 msgid "Default CD-ROM drive to use for lookups:" msgstr "Lector de CD-ROM per defaut d'utilizar per las consultacions" -#: picard/ui/ui_options_cover.py:145 +#: picard/ui/ui_options_cover.py:131 msgid "Location" msgstr "Emplaçament" -#: picard/ui/ui_options_cover.py:146 +#: picard/ui/ui_options_cover.py:132 msgid "Embed cover images into tags" msgstr "Enchassar imatge de pocheta dins las metabalisas" -#: picard/ui/ui_options_cover.py:147 +#: picard/ui/ui_options_cover.py:133 msgid "Only embed a front image" msgstr "" -#: picard/ui/ui_options_cover.py:148 +#: picard/ui/ui_options_cover.py:134 msgid "Save cover images as separate files" msgstr "Enregistrar los imatges de las pochetas dins de fichièrs separats" -#: picard/ui/ui_options_cover.py:149 +#: picard/ui/ui_options_cover.py:135 msgid "Use the following file name for images:" msgstr "" -#: picard/ui/ui_options_cover.py:150 +#: picard/ui/ui_options_cover.py:136 msgid "Overwrite the file if it already exists" msgstr "Escriure sul fichièr s'existís ja" -#: picard/ui/ui_options_cover.py:151 +#: picard/ui/ui_options_cover.py:137 msgid "Coverart Providers" msgstr "" -#: picard/ui/ui_options_cover.py:152 +#: picard/ui/ui_options_cover.py:138 msgid "Amazon" msgstr "" -#: picard/ui/ui_options_cover.py:153 picard/ui/ui_options_cover.py:155 +#: picard/ui/ui_options_cover.py:139 picard/ui/ui_options_cover.py:141 msgid "Cover Art Archive" msgstr "" -#: picard/ui/ui_options_cover.py:154 +#: picard/ui/ui_options_cover.py:140 msgid "Sites on the whitelist" msgstr "" -#: picard/ui/ui_options_cover.py:156 +#: picard/ui/ui_options_cover.py:142 msgid "Only use images of the following size:" msgstr "" -#: picard/ui/ui_options_cover.py:157 +#: picard/ui/ui_options_cover.py:143 msgid "250 px" msgstr "" -#: picard/ui/ui_options_cover.py:158 +#: picard/ui/ui_options_cover.py:144 msgid "500 px" msgstr "" -#: picard/ui/ui_options_cover.py:159 +#: picard/ui/ui_options_cover.py:145 msgid "Full size" msgstr "" -#: picard/ui/ui_options_cover.py:160 +#: picard/ui/ui_options_cover.py:146 msgid "Download only images of the following types:" msgstr "" -#: picard/ui/ui_options_cover.py:161 +#: picard/ui/ui_options_cover.py:147 msgid "Download only approved images" msgstr "" -#: picard/ui/ui_options_cover.py:162 +#: picard/ui/ui_options_cover.py:148 msgid "" "Use the first image type as the filename. This will not change the filename " "of front images." msgstr "" -#: picard/ui/ui_options_fingerprinting.py:83 +#: picard/ui/ui_options_fingerprinting.py:70 msgid "Audio Fingerprinting" msgstr "" -#: picard/ui/ui_options_fingerprinting.py:84 +#: picard/ui/ui_options_fingerprinting.py:71 msgid "Do not use audio fingerprinting" msgstr "" -#: picard/ui/ui_options_fingerprinting.py:85 +#: picard/ui/ui_options_fingerprinting.py:72 msgid "Use AcoustID" msgstr "" -#: picard/ui/ui_options_fingerprinting.py:86 +#: picard/ui/ui_options_fingerprinting.py:73 msgid "AcoustID Settings" msgstr "" -#: picard/ui/ui_options_fingerprinting.py:87 +#: picard/ui/ui_options_fingerprinting.py:74 msgid "Fingerprint calculator:" msgstr "" -#: picard/ui/ui_options_fingerprinting.py:88 -#: picard/ui/ui_options_interface.py:88 picard/ui/ui_options_renaming.py:138 +#: picard/ui/ui_options_fingerprinting.py:75 +#: picard/ui/ui_options_interface.py:75 picard/ui/ui_options_renaming.py:134 msgid "Browse..." msgstr "Percórrer..." -#: picard/ui/ui_options_fingerprinting.py:89 +#: picard/ui/ui_options_fingerprinting.py:76 msgid "Download..." msgstr "" -#: picard/ui/ui_options_fingerprinting.py:90 +#: picard/ui/ui_options_fingerprinting.py:77 msgid "API key:" msgstr "" -#: picard/ui/ui_options_fingerprinting.py:91 +#: picard/ui/ui_options_fingerprinting.py:78 msgid "Get API key..." msgstr "" -#: picard/ui/ui_options_folksonomy.py:115 picard/ui/options/folksonomy.py:28 +#: picard/ui/ui_options_folksonomy.py:102 picard/ui/options/folksonomy.py:28 msgid "Folksonomy Tags" msgstr "Metabalisas de folksonomia" -#: picard/ui/ui_options_folksonomy.py:117 +#: picard/ui/ui_options_folksonomy.py:104 msgid "Only use my tags" msgstr "Utilizar unicament mas metadonadas" -#: picard/ui/ui_options_folksonomy.py:120 +#: picard/ui/ui_options_folksonomy.py:107 msgid "Maximum number of tags:" msgstr "Nombre maximum de metadonadas :" -#: picard/ui/ui_options_general.py:92 +#: picard/ui/ui_options_general.py:88 msgid "MusicBrainz Server" msgstr "Servidor MusicBrainz" -#: picard/ui/ui_options_general.py:93 picard/ui/ui_options_network.py:123 +#: picard/ui/ui_options_general.py:89 picard/ui/ui_options_network.py:110 msgid "Port:" msgstr "Pòrt :" -#: picard/ui/ui_options_general.py:94 picard/ui/ui_options_network.py:124 +#: picard/ui/ui_options_general.py:90 picard/ui/ui_options_network.py:111 msgid "Server address:" msgstr "Adreça del servidor :" -#: picard/ui/ui_options_general.py:95 +#: picard/ui/ui_options_general.py:91 msgid "Account Information" msgstr "Informacions sul compte" -#: picard/ui/ui_options_general.py:96 picard/ui/ui_options_network.py:121 -#: picard/ui/ui_passworddialog.py:74 +#: picard/ui/ui_options_general.py:92 picard/ui/ui_options_network.py:108 +#: picard/ui/ui_passworddialog.py:70 msgid "Password:" msgstr "Senhal :" -#: picard/ui/ui_options_general.py:97 picard/ui/ui_options_network.py:122 -#: picard/ui/ui_passworddialog.py:73 +#: picard/ui/ui_options_general.py:93 picard/ui/ui_options_network.py:109 +#: picard/ui/ui_passworddialog.py:69 msgid "Username:" msgstr "Nom d'utilizaire :" -#: picard/ui/ui_options_general.py:98 picard/ui/options/general.py:31 +#: picard/ui/ui_options_general.py:94 picard/ui/options/general.py:31 msgid "General" msgstr "General" -#: picard/ui/ui_options_general.py:99 +#: picard/ui/ui_options_general.py:95 msgid "Automatically scan all new files" msgstr "Analisar automaticament totes los fichièrs novèls" -#: picard/ui/ui_options_general.py:100 +#: picard/ui/ui_options_general.py:96 msgid "Ignore MBIDs when loading new files" msgstr "" -#: picard/ui/ui_options_interface.py:82 +#: picard/ui/ui_options_interface.py:69 msgid "Miscellaneous" msgstr "Divèrs" -#: picard/ui/ui_options_interface.py:83 +#: picard/ui/ui_options_interface.py:70 msgid "Show text labels under icons" msgstr "Afichar los labèls en dejós de las icònas" -#: picard/ui/ui_options_interface.py:84 +#: picard/ui/ui_options_interface.py:71 msgid "Allow selection of multiple directories" msgstr "Autorizar la seleccion de mantun repertòri" -#: picard/ui/ui_options_interface.py:85 +#: picard/ui/ui_options_interface.py:72 msgid "Use advanced query syntax" msgstr "Utilizatz la sintaxi de requèsta avançada" -#: picard/ui/ui_options_interface.py:86 +#: picard/ui/ui_options_interface.py:73 msgid "Show a quit confirmation dialog for unsaved changes" msgstr "" -#: picard/ui/ui_options_interface.py:87 +#: picard/ui/ui_options_interface.py:74 msgid "Begin browsing in the following directory:" msgstr "" -#: picard/ui/ui_options_interface.py:89 +#: picard/ui/ui_options_interface.py:76 msgid "User interface language:" msgstr "Lenga de l'interfàcia d'utilizaire :" -#: picard/ui/ui_options_matching.py:86 +#: picard/ui/ui_options_matching.py:73 msgid "Thresholds" msgstr "Sulhets" -#: picard/ui/ui_options_matching.py:87 +#: picard/ui/ui_options_matching.py:74 msgid "Minimal similarity for matching files to tracks:" msgstr "Semblança minimala entre los fichièrs e la pista :" -#: picard/ui/ui_options_matching.py:91 +#: picard/ui/ui_options_matching.py:78 msgid "Minimal similarity for file lookups:" msgstr "Semblança minimala per cercar de fichièrs :" -#: picard/ui/ui_options_matching.py:92 +#: picard/ui/ui_options_matching.py:79 msgid "Minimal similarity for cluster lookups:" msgstr "Semblança minimala pel regropament d'albums" -#: picard/ui/ui_options_metadata.py:114 picard/ui/options/metadata.py:29 +#: picard/ui/ui_options_metadata.py:101 picard/ui/options/metadata.py:29 msgid "Metadata" msgstr "Metadonadas" -#: picard/ui/ui_options_metadata.py:115 +#: picard/ui/ui_options_metadata.py:102 msgid "Translate artist names to this locale where possible:" msgstr "" -#: picard/ui/ui_options_metadata.py:116 +#: picard/ui/ui_options_metadata.py:103 msgid "Use standardized artist names" msgstr "" -#: picard/ui/ui_options_metadata.py:117 +#: picard/ui/ui_options_metadata.py:104 msgid "Convert Unicode punctuation characters to ASCII" msgstr "" -#: picard/ui/ui_options_metadata.py:118 +#: picard/ui/ui_options_metadata.py:105 msgid "Use release relationships" msgstr "Utilizar las associacions de parucion" -#: picard/ui/ui_options_metadata.py:119 +#: picard/ui/ui_options_metadata.py:106 msgid "Use track relationships" msgstr "Utilizar las relacions entre las pistas" -#: picard/ui/ui_options_metadata.py:120 +#: picard/ui/ui_options_metadata.py:107 msgid "Use folksonomy tags as genre" msgstr "Utilizar las metabalisas de « folksonomy » coma genre" -#: picard/ui/ui_options_metadata.py:121 +#: picard/ui/ui_options_metadata.py:108 msgid "Custom Fields" msgstr "Camps personalizats" -#: picard/ui/ui_options_metadata.py:122 +#: picard/ui/ui_options_metadata.py:109 msgid "Various artists:" msgstr "Artistas divèrses :" -#: picard/ui/ui_options_metadata.py:123 +#: picard/ui/ui_options_metadata.py:110 msgid "Non-album tracks:" msgstr "Tròces fòra album :" -#: picard/ui/ui_options_metadata.py:124 picard/ui/ui_options_metadata.py:125 -#: picard/ui/ui_options_renaming.py:147 +#: picard/ui/ui_options_metadata.py:111 picard/ui/ui_options_metadata.py:112 +#: picard/ui/ui_options_renaming.py:143 msgid "Default" msgstr "Per defaut" -#: picard/ui/ui_options_network.py:120 +#: picard/ui/ui_options_network.py:107 msgid "Web Proxy" msgstr "Proxy Web" -#: picard/ui/ui_options_network.py:125 +#: picard/ui/ui_options_network.py:112 msgid "Browser Integration" msgstr "" -#: picard/ui/ui_options_network.py:126 +#: picard/ui/ui_options_network.py:113 msgid "Default listening port:" msgstr "" -#: picard/ui/ui_options_network.py:127 +#: picard/ui/ui_options_network.py:114 msgid "Listen only on localhost" msgstr "" -#: picard/ui/ui_options_plugins.py:131 picard/ui/options/plugins.py:38 +#: picard/ui/ui_options_plugins.py:127 picard/ui/options/plugins.py:38 msgid "Plugins" msgstr "Moduls extèrnes" -#: picard/ui/ui_options_plugins.py:132 picard/ui/options/plugins.py:122 +#: picard/ui/ui_options_plugins.py:128 picard/ui/options/plugins.py:122 msgid "Name" msgstr "Nom" -#: picard/ui/ui_options_plugins.py:133 picard/util/tags.py:39 +#: picard/ui/ui_options_plugins.py:129 msgid "Version" msgstr "Version" -#: picard/ui/ui_options_plugins.py:134 picard/ui/options/plugins.py:125 +#: picard/ui/ui_options_plugins.py:130 picard/ui/options/plugins.py:125 msgid "Author" msgstr "Autor" -#: picard/ui/ui_options_plugins.py:135 +#: picard/ui/ui_options_plugins.py:131 msgid "Install plugin..." msgstr "" -#: picard/ui/ui_options_plugins.py:136 +#: picard/ui/ui_options_plugins.py:132 msgid "Open plugin folder" msgstr "Dobrir lo dorsièr dels ensèrts" -#: picard/ui/ui_options_plugins.py:137 +#: picard/ui/ui_options_plugins.py:133 msgid "Download plugins" msgstr "Telecargar d'ensèrts" -#: picard/ui/ui_options_plugins.py:138 +#: picard/ui/ui_options_plugins.py:134 msgid "Details" msgstr "Detalhs" -#: picard/ui/ui_options_ratings.py:53 +#: picard/ui/ui_options_ratings.py:49 msgid "Enable track ratings" msgstr "Activar l'avaloracion de las pistas" -#: picard/ui/ui_options_ratings.py:54 +#: picard/ui/ui_options_ratings.py:50 msgid "" "Picard saves the ratings together with an e-mail address identifying the " "user who did the rating. That way different ratings for different users can " @@ -1486,207 +1412,167 @@ msgid "" "your ratings." msgstr "Picard salva las avaloracions e mai una adreça de corrièl identificant l'utilizaire qu'a fach l'avaloracion. Diferentas estimacions d'avaloracion d'aquel biais per diferents utilizaires pòdon èsser emmagazinadas dins los dorsièrs. Especificatz l'adreça de corrièl que volètz emplegar per salvar vòstras avaloracions." -#: picard/ui/ui_options_ratings.py:55 +#: picard/ui/ui_options_ratings.py:51 msgid "E-mail:" msgstr "Adreça electronica :" -#: picard/ui/ui_options_ratings.py:56 +#: picard/ui/ui_options_ratings.py:52 msgid "Submit ratings to MusicBrainz" msgstr "Mandar d'avaloracions a MusicBrainz" -#: picard/ui/ui_options_releases.py:215 +#: picard/ui/ui_options_releases.py:104 msgid "Preferred release types" msgstr "" -#: picard/ui/ui_options_releases.py:217 -msgid "Single" -msgstr "" - -#: picard/ui/ui_options_releases.py:218 -msgid "EP" -msgstr "" - -#: picard/ui/ui_options_releases.py:219 -msgid "Compilation" -msgstr "Compilacion" - -#: picard/ui/ui_options_releases.py:220 -msgid "Soundtrack" -msgstr "" - -#: picard/ui/ui_options_releases.py:221 -msgid "Spokenword" -msgstr "" - -#: picard/ui/ui_options_releases.py:222 -msgid "Interview" -msgstr "" - -#: picard/ui/ui_options_releases.py:223 -msgid "Audiobook" -msgstr "" - -#: picard/ui/ui_options_releases.py:224 -msgid "Live" -msgstr "" - -#: picard/ui/ui_options_releases.py:225 -msgid "Remix" -msgstr "" - -#: picard/ui/ui_options_releases.py:227 -msgid "Reset all" -msgstr "" - -#: picard/ui/ui_options_releases.py:228 +#: picard/ui/ui_options_releases.py:105 msgid "Preferred release countries" msgstr "" -#: picard/ui/ui_options_releases.py:229 picard/ui/ui_options_releases.py:232 +#: picard/ui/ui_options_releases.py:106 picard/ui/ui_options_releases.py:109 msgid ">" msgstr "" -#: picard/ui/ui_options_releases.py:230 picard/ui/ui_options_releases.py:233 +#: picard/ui/ui_options_releases.py:107 picard/ui/ui_options_releases.py:110 msgid "<" msgstr "" -#: picard/ui/ui_options_releases.py:231 +#: picard/ui/ui_options_releases.py:108 msgid "Preferred release formats" msgstr "" -#: picard/ui/ui_options_renaming.py:134 +#: picard/ui/ui_options_renaming.py:130 msgid "Rename files when saving" msgstr "Tornar nomenar los fichièrs al salvament" -#: picard/ui/ui_options_renaming.py:135 +#: picard/ui/ui_options_renaming.py:131 msgid "Replace non-ASCII characters" msgstr "Remplaçar los caractèrs pas ASCII" -#: picard/ui/ui_options_renaming.py:136 +#: picard/ui/ui_options_renaming.py:132 msgid "Windows compatibility" msgstr "" -#: picard/ui/ui_options_renaming.py:137 +#: picard/ui/ui_options_renaming.py:133 msgid "Move files to this directory when saving:" msgstr "Desplaçar los fichièrs dins aqueste repertòri al moment del salvament :" -#: picard/ui/ui_options_renaming.py:139 +#: picard/ui/ui_options_renaming.py:135 msgid "Delete empty directories" msgstr "Suprimir los repertòris voids" -#: picard/ui/ui_options_renaming.py:140 +#: picard/ui/ui_options_renaming.py:136 msgid "Move additional files:" msgstr "Desplaçar de fichièrs suplementaris :" -#: picard/ui/ui_options_renaming.py:141 +#: picard/ui/ui_options_renaming.py:137 msgid "Name files like this" msgstr "Nomenar los fichièrs d'aqueste biais" -#: picard/ui/ui_options_renaming.py:148 +#: picard/ui/ui_options_renaming.py:144 msgid "Examples" msgstr "Exemples" -#: picard/ui/ui_options_script.py:49 +#: picard/ui/ui_options_script.py:45 msgid "Tagger Script" msgstr "escript d'etiquetatge" -#: picard/ui/ui_options_tags.py:165 +#: picard/ui/ui_options_tags.py:152 msgid "Write tags to files" msgstr "Escriure las metadonadas dins los fichièrs" -#: picard/ui/ui_options_tags.py:166 +#: picard/ui/ui_options_tags.py:153 msgid "Preserve timestamps of tagged files" msgstr "" -#: picard/ui/ui_options_tags.py:167 +#: picard/ui/ui_options_tags.py:154 msgid "Before Tagging" msgstr "" -#: picard/ui/ui_options_tags.py:168 +#: picard/ui/ui_options_tags.py:155 msgid "Clear existing tags" msgstr "Escafar los tags existents" -#: picard/ui/ui_options_tags.py:169 +#: picard/ui/ui_options_tags.py:156 msgid "Remove ID3 tags from FLAC files" msgstr "Suprimir los tags ID3 dels fichièrs FLAC" -#: picard/ui/ui_options_tags.py:170 +#: picard/ui/ui_options_tags.py:157 msgid "Remove APEv2 tags from MP3 files" msgstr "Suprimir los tags APEv2 dels fichièrs MP3" -#: picard/ui/ui_options_tags.py:171 +#: picard/ui/ui_options_tags.py:158 msgid "" "Preserve these tags from being cleared or overwritten with MusicBrainz data:" msgstr "" -#: picard/ui/ui_options_tags.py:172 +#: picard/ui/ui_options_tags.py:159 msgid "Tags are separated by commas, and are case-sensitive." msgstr "" -#: picard/ui/ui_options_tags.py:173 +#: picard/ui/ui_options_tags.py:160 msgid "Tag Compatibility" msgstr "" -#: picard/ui/ui_options_tags.py:174 +#: picard/ui/ui_options_tags.py:161 msgid "ID3v2 Version" msgstr "" -#: picard/ui/ui_options_tags.py:175 +#: picard/ui/ui_options_tags.py:162 msgid "2.4" msgstr "2.4" -#: picard/ui/ui_options_tags.py:176 +#: picard/ui/ui_options_tags.py:163 msgid "2.3" msgstr "2.3" -#: picard/ui/ui_options_tags.py:177 +#: picard/ui/ui_options_tags.py:164 msgid "ID3v2 Text Encoding" msgstr "" -#: picard/ui/ui_options_tags.py:178 +#: picard/ui/ui_options_tags.py:165 msgid "UTF-8" msgstr "UTF-8" -#: picard/ui/ui_options_tags.py:179 +#: picard/ui/ui_options_tags.py:166 msgid "UTF-16" msgstr "UTF-16" -#: picard/ui/ui_options_tags.py:180 +#: picard/ui/ui_options_tags.py:167 msgid "ISO-8859-1" msgstr "ISO-8859-1" -#: picard/ui/ui_options_tags.py:181 +#: picard/ui/ui_options_tags.py:168 msgid "Join multiple ID3v2.3 tags with:" msgstr "" -#: picard/ui/ui_options_tags.py:182 +#: picard/ui/ui_options_tags.py:169 msgid "" "

Default is '/' to maintain compatibility with previous" " Picard releases.

New alternatives are ';_' or '_/_' or type your own." "

" msgstr "" -#: picard/ui/ui_options_tags.py:183 +#: picard/ui/ui_options_tags.py:170 msgid "Also include ID3v1 tags in the files" msgstr "Inclure tanben las metadonadas ID3v1 dins los fichièrs" -#: picard/ui/ui_passworddialog.py:72 +#: picard/ui/ui_passworddialog.py:68 msgid "Authentication required" msgstr "Autentificacion requesida" -#: picard/ui/ui_passworddialog.py:75 +#: picard/ui/ui_passworddialog.py:71 msgid "Save username and password" msgstr "Enregistrar lo nom d'utilizaire e lo senhal" -#: picard/ui/ui_tagsfromfilenames.py:54 +#: picard/ui/ui_tagsfromfilenames.py:50 msgid "Convert File Names to Tags" msgstr "Convertissètz los noms de fichièrs amb de metadonadas" -#: picard/ui/ui_tagsfromfilenames.py:55 +#: picard/ui/ui_tagsfromfilenames.py:51 msgid "Replace underscores with spaces" msgstr "Remplaçar los underscores per d'espacis" -#: picard/ui/ui_tagsfromfilenames.py:56 +#: picard/ui/ui_tagsfromfilenames.py:52 msgid "&Preview" msgstr "&Apercebut" @@ -1742,7 +1628,11 @@ msgstr "Avançat" msgid "Regex Error" msgstr "" -#: picard/ui/options/cover.py:63 +#: picard/ui/options/cover.py:44 +msgid "title" +msgstr "" + +#: picard/ui/options/cover.py:68 msgid "Cover Art" msgstr "Pocheta" @@ -1758,11 +1648,11 @@ msgstr "Interfàcia de l'utilizaire" msgid "System default" msgstr "Valor per defaut del sistèma" -#: picard/ui/options/interface.py:96 +#: picard/ui/options/interface.py:98 msgid "Language changed" msgstr "Lenga cambiada" -#: picard/ui/options/interface.py:96 +#: picard/ui/options/interface.py:99 msgid "" "You have changed the interface language. You have to restart Picard in order" " for the change to take effect." @@ -1784,31 +1674,35 @@ msgstr "Fichièr" msgid "Ratings" msgstr "Avaloracions" -#: picard/ui/options/releases.py:33 +#: picard/ui/options/releases.py:87 msgid "Preferred Releases" msgstr "" +#: picard/ui/options/releases.py:121 +msgid "Reset all" +msgstr "" + #: picard/ui/options/renaming.py:37 msgid "File Naming" msgstr "" -#: picard/ui/options/renaming.py:184 +#: picard/ui/options/renaming.py:187 msgid "Error" msgstr "Error" -#: picard/ui/options/renaming.py:184 +#: picard/ui/options/renaming.py:187 msgid "The location to move files to must not be empty." msgstr "La destinacion per desplaçar los fichièrs deu pas èsser voida." -#: picard/ui/options/renaming.py:194 +#: picard/ui/options/renaming.py:197 msgid "The file naming format must not be empty." msgstr "Lo format dels noms de fichièrs deu pas èsser void." -#: picard/ui/options/scripting.py:63 +#: picard/ui/options/scripting.py:99 msgid "Scripting" msgstr "Escripts" -#: picard/ui/options/scripting.py:95 +#: picard/ui/options/scripting.py:131 msgid "Script Error" msgstr "Error d'escript" @@ -1928,199 +1822,199 @@ msgstr "ASIN" msgid "Grouping" msgstr "Agropament" -#: picard/util/tags.py:40 +#: picard/util/tags.py:39 msgid "ISRC" msgstr "ISRC" -#: picard/util/tags.py:41 +#: picard/util/tags.py:40 msgid "Mood" msgstr "Umor" -#: picard/util/tags.py:42 +#: picard/util/tags.py:41 msgid "BPM" msgstr "BPM" -#: picard/util/tags.py:43 +#: picard/util/tags.py:42 msgid "Copyright" msgstr "Dreches d'autor" -#: picard/util/tags.py:44 +#: picard/util/tags.py:43 msgid "License" msgstr "" -#: picard/util/tags.py:45 +#: picard/util/tags.py:44 msgid "Composer" msgstr "Compositor" -#: picard/util/tags.py:46 +#: picard/util/tags.py:45 msgid "Writer" msgstr "" -#: picard/util/tags.py:47 +#: picard/util/tags.py:46 msgid "Conductor" msgstr "Cap d'orquestra" -#: picard/util/tags.py:48 +#: picard/util/tags.py:47 msgid "Lyricist" msgstr "Paraulièr" -#: picard/util/tags.py:49 +#: picard/util/tags.py:48 msgid "Arranger" msgstr "Arrengaire" -#: picard/util/tags.py:50 +#: picard/util/tags.py:49 msgid "Producer" msgstr "Productor" -#: picard/util/tags.py:51 +#: picard/util/tags.py:50 msgid "Engineer" msgstr "Ingenhaire" -#: picard/util/tags.py:52 +#: picard/util/tags.py:51 msgid "Subtitle" msgstr "Sostítol" -#: picard/util/tags.py:53 +#: picard/util/tags.py:52 msgid "Disc Subtitle" msgstr "Sostítol del disc" -#: picard/util/tags.py:54 +#: picard/util/tags.py:53 msgid "Remixer" msgstr "Remixaire" -#: picard/util/tags.py:55 +#: picard/util/tags.py:54 msgid "MusicBrainz Recording Id" msgstr "" -#: picard/util/tags.py:56 +#: picard/util/tags.py:55 msgid "MusicBrainz Track Id" msgstr "" -#: picard/util/tags.py:57 +#: picard/util/tags.py:56 msgid "MusicBrainz Release Id" msgstr "Id de parucion MusicBrainz" -#: picard/util/tags.py:58 +#: picard/util/tags.py:57 msgid "MusicBrainz Artist Id" msgstr "Id de l'artista MusicBrainz" -#: picard/util/tags.py:59 +#: picard/util/tags.py:58 msgid "MusicBrainz Release Artist Id" msgstr "Id d'artista de parucion MusicBrainz" -#: picard/util/tags.py:60 +#: picard/util/tags.py:59 msgid "MusicBrainz Work Id" msgstr "" -#: picard/util/tags.py:61 +#: picard/util/tags.py:60 msgid "MusicBrainz Release Group Id" msgstr "" -#: picard/util/tags.py:62 +#: picard/util/tags.py:61 msgid "MusicBrainz Disc Id" msgstr "Id del disc MusicBrainz" -#: picard/util/tags.py:63 -msgid "MusicBrainz Sort Name" -msgstr "Lo Nom d'òrdre en triada MusicBrainz" - -#: picard/util/tags.py:64 +#: picard/util/tags.py:62 msgid "MusicIP PUID" msgstr "MusicIP PUID" -#: picard/util/tags.py:65 +#: picard/util/tags.py:63 msgid "MusicIP Fingerprint" msgstr "Emprencha de MusicIP" -#: picard/util/tags.py:66 +#: picard/util/tags.py:64 msgid "AcoustID" msgstr "" -#: picard/util/tags.py:67 +#: picard/util/tags.py:65 msgid "AcoustID Fingerprint" msgstr "" -#: picard/util/tags.py:68 +#: picard/util/tags.py:66 msgid "Disc Id" msgstr "Id del disc" -#: picard/util/tags.py:69 -msgid "Website" -msgstr "Site web" +#: picard/util/tags.py:67 +msgid "Artist Website" +msgstr "" -#: picard/util/tags.py:70 +#: picard/util/tags.py:68 msgid "Compilation (iTunes)" msgstr "" -#: picard/util/tags.py:71 +#: picard/util/tags.py:69 msgid "Comment" msgstr "Comentari" -#: picard/util/tags.py:72 +#: picard/util/tags.py:70 msgid "Genre" msgstr "Genre" -#: picard/util/tags.py:73 +#: picard/util/tags.py:71 msgid "Encoded By" msgstr "Encodat per" -#: picard/util/tags.py:74 +#: picard/util/tags.py:72 +msgid "Encoder Settings" +msgstr "" + +#: picard/util/tags.py:73 msgid "Performer" msgstr "Interprèt" -#: picard/util/tags.py:75 +#: picard/util/tags.py:74 msgid "Release Type" msgstr "Tipe de parucion" -#: picard/util/tags.py:76 +#: picard/util/tags.py:75 msgid "Release Status" msgstr "estat de parucion" -#: picard/util/tags.py:77 +#: picard/util/tags.py:76 msgid "Release Country" msgstr "País de parucion" -#: picard/util/tags.py:78 +#: picard/util/tags.py:77 msgid "Record Label" msgstr "Labèl d'enregistrament" -#: picard/util/tags.py:80 +#: picard/util/tags.py:79 msgid "Catalog Number" msgstr "N° del catalòg" -#: picard/util/tags.py:82 +#: picard/util/tags.py:80 msgid "DJ-Mixer" msgstr "DJ-Mixer" -#: picard/util/tags.py:83 +#: picard/util/tags.py:81 msgid "Media" msgstr "Mèdia" -#: picard/util/tags.py:84 +#: picard/util/tags.py:82 msgid "Lyrics" msgstr "Paraulas" -#: picard/util/tags.py:85 +#: picard/util/tags.py:83 msgid "Mixer" msgstr "Mixador" -#: picard/util/tags.py:86 +#: picard/util/tags.py:84 msgid "Language" msgstr "Lenga" -#: picard/util/tags.py:87 +#: picard/util/tags.py:85 msgid "Script" msgstr "Escript" -#: picard/util/tags.py:89 +#: picard/util/tags.py:87 msgid "Rating" msgstr "" -#: picard/util/tags.py:90 +#: picard/util/tags.py:88 msgid "Artists" msgstr "" -#: picard/util/tags.py:91 +#: picard/util/tags.py:89 msgid "Work" msgstr "" diff --git a/po/picard.pot b/po/picard.pot index 285a272b2..8b34bc864 100644 --- a/po/picard.pot +++ b/po/picard.pot @@ -8,14 +8,14 @@ msgid "" msgstr "" "Project-Id-Version: picard 1.3.0dev4\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2014-05-04 11:46+0200\n" +"POT-Creation-Date: 2014-05-05 07:15+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 1.3\n" +"Generated-By: Babel 0.9.6\n" #: contrib/plugins/albumartist_website.py:3 msgid "Album Artist Website" diff --git a/po/pl.po b/po/pl.po index a956f119d..71c288107 100644 --- a/po/pl.po +++ b/po/pl.po @@ -10,8 +10,8 @@ msgid "" msgstr "" "Project-Id-Version: MusicBrainz\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2014-03-20 11:12+0100\n" -"PO-Revision-Date: 2014-03-21 08:44+0000\n" +"POT-Creation-Date: 2014-05-03 17:28+0200\n" +"PO-Revision-Date: 2014-05-04 08:44+0000\n" "Last-Translator: nikki\n" "Language-Team: Polish (http://www.transifex.com/projects/p/musicbrainz/language/pl/)\n" "MIME-Version: 1.0\n" @@ -21,6 +21,10 @@ msgstr "" "Language: pl\n" "Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" +#: contrib/plugins/albumartist_website.py:3 +msgid "Album Artist Website" +msgstr "" + #: contrib/plugins/no_release.py:50 msgid "Enable plugin for all releases by default" msgstr "Włącz wtyczkę dla wszystkich wydań domyślnie" @@ -33,63 +37,55 @@ msgstr "Tagi do usunięcia (oddzielone przecinkiem)" msgid "Remove specific release information..." msgstr "Usuń konkretne informacje o wydaniu..." -#: contrib/plugins/open_in_gui.py:32 -msgid "Open Error" -msgstr "Błąd otwierania" +#: contrib/plugins/standardise_performers.py:3 +msgid "Standardise Performers" +msgstr "" -#: contrib/plugins/open_in_gui.py:32 -#, python-format -msgid "" -"Error while opening file:\n" -"\n" -"%s" -msgstr "Wystąpił błąd podczas otwierania pliku:\n\n%s" - -#: contrib/plugins/lastfm/ui_options_lastfm.py:117 +#: contrib/plugins/lastfm/ui_options_lastfm.py:99 msgid "Last.fm" msgstr "Last.fm" -#: contrib/plugins/lastfm/ui_options_lastfm.py:118 +#: contrib/plugins/lastfm/ui_options_lastfm.py:100 msgid "Use track tags" msgstr "Użyj tagów utworu" -#: contrib/plugins/lastfm/ui_options_lastfm.py:119 +#: contrib/plugins/lastfm/ui_options_lastfm.py:101 msgid "Use artist tags" msgstr "Użyj tagów wykonawcy" -#: contrib/plugins/lastfm/ui_options_lastfm.py:120 +#: contrib/plugins/lastfm/ui_options_lastfm.py:102 #: picard/ui/options/tags.py:30 msgid "Tags" msgstr "Tagi" -#: contrib/plugins/lastfm/ui_options_lastfm.py:121 -#: picard/ui/ui_options_folksonomy.py:116 +#: contrib/plugins/lastfm/ui_options_lastfm.py:103 +#: picard/ui/ui_options_folksonomy.py:103 msgid "Ignore tags:" msgstr "Ignoruj tagi:" -#: contrib/plugins/lastfm/ui_options_lastfm.py:122 -#: picard/ui/ui_options_folksonomy.py:121 +#: contrib/plugins/lastfm/ui_options_lastfm.py:104 +#: picard/ui/ui_options_folksonomy.py:108 msgid "Join multiple tags with:" msgstr "Połącz wiele tagów za pomocą:" -#: contrib/plugins/lastfm/ui_options_lastfm.py:123 -#: picard/ui/ui_options_folksonomy.py:122 +#: contrib/plugins/lastfm/ui_options_lastfm.py:105 +#: picard/ui/ui_options_folksonomy.py:109 msgid " / " msgstr " / " -#: contrib/plugins/lastfm/ui_options_lastfm.py:124 -#: picard/ui/ui_options_folksonomy.py:123 +#: contrib/plugins/lastfm/ui_options_lastfm.py:106 +#: picard/ui/ui_options_folksonomy.py:110 msgid ", " msgstr ", " -#: contrib/plugins/lastfm/ui_options_lastfm.py:125 -#: picard/ui/ui_options_folksonomy.py:118 +#: contrib/plugins/lastfm/ui_options_lastfm.py:107 +#: picard/ui/ui_options_folksonomy.py:105 msgid "Minimal tag usage:" msgstr "Minimalne użycie tagów." -#: contrib/plugins/lastfm/ui_options_lastfm.py:126 -#: picard/ui/ui_options_folksonomy.py:119 picard/ui/ui_options_matching.py:88 -#: picard/ui/ui_options_matching.py:89 picard/ui/ui_options_matching.py:90 +#: contrib/plugins/lastfm/ui_options_lastfm.py:108 +#: picard/ui/ui_options_folksonomy.py:106 picard/ui/ui_options_matching.py:75 +#: picard/ui/ui_options_matching.py:76 picard/ui/ui_options_matching.py:77 msgid " %" msgstr " %" @@ -97,93 +93,152 @@ msgstr " %" msgid "Calculate replay &gain..." msgstr "Obliczanie wyrównywania &głośności..." -#: contrib/plugins/replaygain/__init__.py:66 +#: contrib/plugins/replaygain/__init__.py:67 #, python-format -msgid "Calculating replay gain for \"%s\"..." -msgstr "Obliczanie wyrównywania głośności dla \"%s\"..." +msgid "Calculating replay gain for \"%(filename)s\"..." +msgstr "" -#: contrib/plugins/replaygain/__init__.py:71 +#: contrib/plugins/replaygain/__init__.py:75 #, python-format -msgid "Replay gain for \"%s\" successfully calculated." -msgstr "Wyrównywanie głośności dla \"%s\" zostało poprawnie obliczone." +msgid "Replay gain for \"%(filename)s\" successfully calculated." +msgstr "" -#: contrib/plugins/replaygain/__init__.py:73 +#: contrib/plugins/replaygain/__init__.py:80 #, python-format -msgid "Could not calculate replay gain for \"%s\"." -msgstr "Nie udało się obliczyć wyrównywania głośności dla \"%s\"." +msgid "Could not calculate replay gain for \"%(filename)s\"." +msgstr "" -#: contrib/plugins/replaygain/__init__.py:76 +#: contrib/plugins/replaygain/__init__.py:85 msgid "Calculate album &gain..." msgstr "Obliczanie wyrównywania &głośności albumu..." -#: contrib/plugins/replaygain/__init__.py:103 -#: contrib/plugins/replaygain/__init__.py:111 +#: contrib/plugins/replaygain/__init__.py:113 +#: contrib/plugins/replaygain/__init__.py:124 #, python-format -msgid "Calculating album gain for \"%s\"..." -msgstr "Obliczanie wyrównywania głośności albumu dla \"%s\"..." - -#: contrib/plugins/replaygain/__init__.py:119 -#, python-format -msgid "Album gain for \"%s\" successfully calculated." -msgstr "Wyrównywanie głośności albumu dla \"%s\" zostało poprawnie obliczone." - -#: contrib/plugins/replaygain/__init__.py:121 -#, python-format -msgid "Could not calculate album gain for \"%s\"." -msgstr "Nie udało się obliczyć wyrównywania głośności albumu dla \"%s\"." - -#: picard/acoustid.py:102 -#, python-format -msgid "AcoustID lookup network error for '%s'!" +msgid "Calculating album gain for \"%(album)s\"..." msgstr "" -#: picard/acoustid.py:117 +#: contrib/plugins/replaygain/__init__.py:135 #, python-format -msgid "AcoustID lookup failed for '%s'!" +msgid "Album gain for \"%(album)s\" successfully calculated." msgstr "" -#: picard/acoustid.py:128 +#: contrib/plugins/replaygain/__init__.py:140 #, python-format -msgid "Acoustid lookup returned no result for file '%s'" +msgid "Could not calculate album gain for \"%(album)s\"." msgstr "" -#: picard/acoustid.py:132 -#, python-format -msgid "Looking up the fingerprint for file %s..." -msgstr "Wyszukiwanie podpisu dla pliku %s..." - -#: picard/acoustidmanager.py:78 -msgid "Submitting AcoustIDs..." -msgstr "Wysyłanie AcoustIDs..." - -#: picard/acoustidmanager.py:83 -#, python-format -msgid "AcoustID submission failed with error '%s'" +#: contrib/plugins/replaygain/ui_options_replaygain.py:59 +msgid "Replay Gain" msgstr "" -#: picard/acoustidmanager.py:85 +#: contrib/plugins/replaygain/ui_options_replaygain.py:60 +msgid "Path to VorbisGain:" +msgstr "" + +#: contrib/plugins/replaygain/ui_options_replaygain.py:61 +msgid "Path to MP3Gain:" +msgstr "" + +#: contrib/plugins/replaygain/ui_options_replaygain.py:62 +msgid "Path to metaflac:" +msgstr "" + +#: contrib/plugins/replaygain/ui_options_replaygain.py:63 +msgid "Path to wvgain:" +msgstr "" + +#: contrib/plugins/viewvariables/__init__.py:42 +#, python-format +msgid "File: %s" +msgstr "" + +#: contrib/plugins/viewvariables/__init__.py:47 +#, python-format +msgid "Track: %s %s " +msgstr "" + +#: contrib/plugins/viewvariables/__init__.py:49 +msgid "Variables" +msgstr "" + +#: contrib/plugins/viewvariables/__init__.py:69 +msgid "File variables" +msgstr "" + +#: contrib/plugins/viewvariables/__init__.py:74 +msgid "Hidden variables" +msgstr "" + +#: contrib/plugins/viewvariables/__init__.py:79 +msgid "Tag variables" +msgstr "" + +#: contrib/plugins/viewvariables/ui_variables_dialog.py:73 +msgid "Variable" +msgstr "" + +#: contrib/plugins/viewvariables/ui_variables_dialog.py:75 +msgid "Value" +msgstr "" + +#: picard/acoustid.py:109 +#, python-format +msgid "AcoustID lookup network error for '%(filename)s'!" +msgstr "" + +#: picard/acoustid.py:133 +#, python-format +msgid "AcoustID lookup failed for '%(filename)s'!" +msgstr "" + +#: picard/acoustid.py:155 +#, python-format +msgid "AcoustID lookup returned no result for file '%(filename)s'" +msgstr "" + +#: picard/acoustid.py:166 +#, python-format +msgid "Looking up the fingerprint for file '%(filename)s' ..." +msgstr "" + +#: picard/acoustidmanager.py:80 +msgid "Submitting AcoustIDs ..." +msgstr "" + +#: picard/acoustidmanager.py:94 +#, python-format +msgid "AcoustID submission failed with error '%(error)s'" +msgstr "" + +#: picard/acoustidmanager.py:102 msgid "AcoustIDs successfully submitted." msgstr "" -#: picard/album.py:64 picard/cluster.py:234 +#: picard/album.py:65 picard/cluster.py:255 msgid "Unmatched Files" msgstr "Niepasujące pliki" -#: picard/album.py:187 +#: picard/album.py:188 #, python-format msgid "[could not load album %s]" msgstr "[nie można wczytać albumu %s]" -#: picard/album.py:272 +#: picard/album.py:277 #, python-format -msgid "Album %s loaded" -msgstr "Załadowano album %s" +msgid "Album %(id)s loaded: %(artist)s - %(album)s" +msgstr "" -#: picard/album.py:288 +#: picard/album.py:294 +#, python-format +msgid "Loading album %(id)s ..." +msgstr "" + +#: picard/album.py:303 msgid "[loading album information]" msgstr "[wczytywanie informacji o albumie]" -#: picard/album.py:463 +#: picard/album.py:478 #, python-format msgid "; %i image" msgid_plural "; %i images" @@ -191,329 +246,157 @@ msgstr[0] "%i grafika" msgstr[1] "%i grafiki" msgstr[2] "%i grafik" -#: picard/cluster.py:150 picard/cluster.py:159 +#: picard/cluster.py:155 picard/cluster.py:168 #, python-format -msgid "No matching releases for cluster %s" -msgstr "Brak pasujących wydań dla albumu %s" - -#: picard/cluster.py:161 -#, python-format -msgid "Cluster %s identified!" -msgstr "Grupa %s zidentyfikowana!" - -#: picard/cluster.py:168 -#, python-format -msgid "Looking up the metadata for cluster %s..." -msgstr "Sprawdzanie metadanych dla grupy %s..." - -#: picard/collection.py:60 -#, python-format -msgid "Added %i release to collection \"%s\"" -msgid_plural "Added %i releases to collection \"%s\"" -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" - -#: picard/collection.py:72 -#, python-format -msgid "Removed %i release from collection \"%s\"" -msgid_plural "Removed %i releases from collection \"%s\"" -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" - -#: picard/collection.py:81 -#, python-format -msgid "Error loading collections: %s" +msgid "No matching releases for cluster %(album)s" msgstr "" -#: picard/config_upgrade.py:57 picard/config_upgrade.py:70 +#: picard/cluster.py:174 +#, python-format +msgid "Cluster %(album)s identified!" +msgstr "" + +#: picard/cluster.py:185 +#, python-format +msgid "Looking up the metadata for cluster %(album)s..." +msgstr "" + +#: picard/collection.py:64 +#, python-format +msgid "Added %(count)i release to collection \"%(name)s\"" +msgid_plural "Added %(count)i releases to collection \"%(name)s\"" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" + +#: picard/collection.py:86 +#, python-format +msgid "Removed %(count)i release from collection \"%(name)s\"" +msgid_plural "Removed %(count)i releases from collection \"%(name)s\"" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" + +#: picard/collection.py:100 +#, python-format +msgid "Error loading collections: %(error)s" +msgstr "" + +#: picard/config_upgrade.py:58 picard/config_upgrade.py:71 msgid "Various Artists file naming scheme removal" msgstr "Usuwanie schematu nazewnictwa dla Różnych Wykonawców" -#: picard/config_upgrade.py:58 +#: picard/config_upgrade.py:59 msgid "" "The separate file naming scheme for various artists albums has been removed in this version of Picard.\n" "Your file naming scheme has automatically been merged with that of single artist albums." msgstr "" -#: picard/config_upgrade.py:71 +#: picard/config_upgrade.py:72 msgid "" "The separate file naming scheme for various artists albums has been removed in this version of Picard.\n" "You currently do not use this option, but have a separate file naming scheme defined.\n" "Do you want to remove it or merge it with your file naming scheme for single artist albums?" msgstr "" -#: picard/config_upgrade.py:77 +#: picard/config_upgrade.py:78 msgid "Merge" msgstr "Scal" -#: picard/config_upgrade.py:77 picard/ui/metadatabox.py:254 +#: picard/config_upgrade.py:78 picard/ui/metadatabox.py:254 msgid "Remove" msgstr "Usuń" -#: picard/const.py:67 -msgid "CD" -msgstr "CD" - -#: picard/const.py:68 -msgid "CD-R" -msgstr "CD-R" - -#: picard/const.py:69 -msgid "HDCD" -msgstr "HDCD" - -#: picard/const.py:70 -msgid "8cm CD" -msgstr "8cm CD" - -#: picard/const.py:71 -msgid "Vinyl" -msgstr "Płyta winylowa" - -#: picard/const.py:72 -msgid "7\" Vinyl" -msgstr "7\" Winyl" - -#: picard/const.py:73 -msgid "10\" Vinyl" -msgstr "10\" Winyl" - -#: picard/const.py:74 -msgid "12\" Vinyl" -msgstr "12\" Winyl" - -#: picard/const.py:75 -msgid "Digital Media" -msgstr "Media cyfrowe" - -#: picard/const.py:76 -msgid "USB Flash Drive" -msgstr "Dysk USB Flash" - -#: picard/const.py:77 -msgid "slotMusic" -msgstr "slotMusic" - -#: picard/const.py:78 -msgid "Cassette" -msgstr "Kaseta magnetofonowa" - -#: picard/const.py:79 -msgid "DVD" -msgstr "DVD" - -#: picard/const.py:80 -msgid "DVD-Audio" -msgstr "DVD-Audio" - -#: picard/const.py:81 -msgid "DVD-Video" -msgstr "DVD-Video" - -#: picard/const.py:82 -msgid "SACD" -msgstr "SACD" - -#: picard/const.py:83 -msgid "DualDisc" -msgstr "DualDisc" - -#: picard/const.py:84 -msgid "MiniDisc" -msgstr "MiniDisc" - -#: picard/const.py:85 -msgid "Blu-ray" -msgstr "Blu-ray" - -#: picard/const.py:86 -msgid "HD-DVD" -msgstr "HD-DVD" - -#: picard/const.py:87 -msgid "Videotape" -msgstr "Kaseta wideo" - -#: picard/const.py:88 -msgid "VHS" -msgstr "VHS" - -#: picard/const.py:89 -msgid "Betamax" -msgstr "Betamax" - #: picard/const.py:90 -msgid "VCD" -msgstr "VCD" - -#: picard/const.py:91 -msgid "SVCD" -msgstr "SVCD" - -#: picard/const.py:92 -msgid "UMD" -msgstr "UMD" - -#: picard/const.py:93 picard/coverartarchive.py:33 -#: picard/ui/ui_options_releases.py:226 -msgid "Other" -msgstr "Inny" - -#: picard/const.py:94 -msgid "LaserDisc" -msgstr "LaserDisc" - -#: picard/const.py:95 -msgid "Cartridge" -msgstr "Kartridż" - -#: picard/const.py:96 -msgid "Reel-to-reel" -msgstr "Reel-to-reel" - -#: picard/const.py:97 -msgid "DAT" -msgstr "DAT" - -#: picard/const.py:98 -msgid "Wax Cylinder" -msgstr "Cylinder woskowy" - -#: picard/const.py:99 -msgid "Piano Roll" -msgstr "Piano Roll" - -#: picard/const.py:100 -msgid "DCC" -msgstr "DCC" - -#: picard/const.py:115 msgid "Danish" msgstr "duński" -#: picard/const.py:116 +#: picard/const.py:91 msgid "German" msgstr "niemiecki" -#: picard/const.py:118 +#: picard/const.py:93 msgid "English" msgstr "angielski" -#: picard/const.py:119 +#: picard/const.py:94 msgid "English (Canada)" msgstr "angieski (Kanada)" -#: picard/const.py:120 +#: picard/const.py:95 msgid "English (UK)" msgstr "angielski (Wielka Brytania)" -#: picard/const.py:122 +#: picard/const.py:97 msgid "Spanish" msgstr "hiszpański" -#: picard/const.py:123 +#: picard/const.py:98 msgid "Estonian" msgstr "estoński" -#: picard/const.py:125 +#: picard/const.py:100 msgid "Finnish" msgstr "fiński" -#: picard/const.py:127 +#: picard/const.py:102 msgid "French" msgstr "francuski" -#: picard/const.py:136 +#: picard/const.py:111 msgid "Italian" msgstr "włoski" -#: picard/const.py:143 +#: picard/const.py:118 msgid "Dutch" msgstr "holenderski" -#: picard/const.py:145 +#: picard/const.py:120 msgid "Polish" msgstr "polski" -#: picard/const.py:147 +#: picard/const.py:122 msgid "Brazilian Portuguese" msgstr "brazylijsko-portugalski" -#: picard/const.py:154 +#: picard/const.py:129 msgid "Swedish" msgstr "szwedzki" -#: picard/coverart.py:84 +#: picard/coverart.py:85 #, python-format -msgid "Coverart %s downloaded" -msgstr "Pobrano okładkę: %s " +msgid "Cover art of type '%(type)s' downloaded for %(albumid)s from %(host)s" +msgstr "" -#: picard/coverart.py:240 +#: picard/coverart.py:256 #, python-format -msgid "Downloading http://%s:%i%s" -msgstr "Pobieranie http://%s:%i%s" - -#: picard/coverartarchive.py:24 -msgid "Front" -msgstr "" - -#: picard/coverartarchive.py:25 -msgid "Back" -msgstr "" - -#: picard/coverartarchive.py:26 -msgid "Booklet" -msgstr "Zakładka" - -#: picard/coverartarchive.py:27 -msgid "Medium" -msgstr "" - -#: picard/coverartarchive.py:28 -msgid "Tray" -msgstr "Zasobnik" - -#: picard/coverartarchive.py:29 -msgid "Obi" +msgid "" +"Downloading cover art of type '%(type)s' for %(albumid)s from %(host)s .." msgstr "" #: picard/coverartarchive.py:30 -msgid "Spine" -msgstr "" - -#: picard/coverartarchive.py:31 picard/ui/mainwindow.py:546 -msgid "Track" -msgstr "Utwór" - -#: picard/coverartarchive.py:32 -msgid "Sticker" -msgstr "" - -#: picard/coverartarchive.py:34 msgid "Unknown" msgstr "" -#: picard/file.py:536 +#: picard/file.py:494 #, python-format -msgid "No matching tracks for file %s" -msgstr "Brak pasujących utworów dla pliku %s" +msgid "No matching tracks for file '%(filename)s'" +msgstr "" -#: picard/file.py:548 +#: picard/file.py:510 #, python-format -msgid "No matching tracks above the threshold for file %s" -msgstr "Nie znaleziono pasujących ścieżek powyżej progu dla pliku %s" +msgid "No matching tracks above the threshold for file '%(filename)s'" +msgstr "" -#: picard/file.py:551 +#: picard/file.py:517 #, python-format -msgid "File %s identified!" -msgstr "Plik %s zidentyfikowany!" +msgid "File '%(filename)s' identified!" +msgstr "" -#: picard/file.py:567 +#: picard/file.py:537 #, python-format -msgid "Looking up the metadata for file %s..." -msgstr "Sprawdzanie metadanych pliku %s..." +msgid "Looking up the metadata for file %(filename)s ..." +msgstr "" #: picard/releasegroup.py:53 msgid "Tracks" @@ -523,11 +406,11 @@ msgstr "" msgid "Year" msgstr "" -#: picard/releasegroup.py:55 picard/ui/cdlookup.py:34 +#: picard/releasegroup.py:55 picard/ui/cdlookup.py:35 msgid "Country" msgstr "Kraj" -#: picard/releasegroup.py:56 picard/util/tags.py:81 +#: picard/releasegroup.py:56 msgid "Format" msgstr "Format" @@ -547,16 +430,24 @@ msgstr "" msgid "[no release info]" msgstr "[brak informacji o wydaniu]" -#: picard/tagger.py:316 +#: picard/tagger.py:370 #, python-format -msgid "Loading directory %s" -msgstr "Ładowanie katalogu %s" +msgid "Adding %(count)d file from '%(directory)s' ..." +msgid_plural "Adding %(count)d files from '%(directory)s' ..." +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" -#: picard/tagger.py:452 +#: picard/tagger.py:512 +#, python-format +msgid "Removing album %(id)s: %(artist)s - %(album)s" +msgstr "" + +#: picard/tagger.py:528 msgid "CD Lookup Error" msgstr "Błąd sprawdzania CD" -#: picard/tagger.py:453 +#: picard/tagger.py:529 #, python-format msgid "" "Error while reading CD:\n" @@ -564,37 +455,36 @@ msgid "" "%s" msgstr "Błąd podczas odczytu płyty CD:\n\n%s" -#: picard/ui/cdlookup.py:34 picard/ui/mainwindow.py:544 -#: picard/ui/ui_options_releases.py:216 picard/util/tags.py:21 +#: picard/ui/cdlookup.py:35 picard/ui/mainwindow.py:597 picard/util/tags.py:21 msgid "Album" msgstr "Album" -#: picard/ui/cdlookup.py:34 picard/ui/itemviews.py:96 -#: picard/ui/mainwindow.py:545 picard/util/tags.py:22 +#: picard/ui/cdlookup.py:35 picard/ui/itemviews.py:96 +#: picard/ui/mainwindow.py:598 picard/util/tags.py:22 msgid "Artist" msgstr "Wykonawca" -#: picard/ui/cdlookup.py:34 picard/util/tags.py:24 +#: picard/ui/cdlookup.py:35 picard/util/tags.py:24 msgid "Date" msgstr "Data" -#: picard/ui/cdlookup.py:35 +#: picard/ui/cdlookup.py:36 msgid "Labels" msgstr "Wydawnictwo" -#: picard/ui/cdlookup.py:35 +#: picard/ui/cdlookup.py:36 msgid "Catalog #s" msgstr "Numery katalogowe" -#: picard/ui/cdlookup.py:35 picard/util/tags.py:79 +#: picard/ui/cdlookup.py:36 picard/util/tags.py:78 msgid "Barcode" msgstr "Kod kreskowy" -#: picard/ui/collectionmenu.py:31 +#: picard/ui/collectionmenu.py:42 msgid "Refresh List" msgstr "Odśwież listę " -#: picard/ui/collectionmenu.py:92 +#: picard/ui/collectionmenu.py:86 #, python-format msgid "%s (%i release)" msgid_plural "%s (%i releases)" @@ -602,7 +492,7 @@ msgstr[0] "" msgstr[1] "" msgstr[2] "" -#: picard/ui/coverartbox.py:142 +#: picard/ui/coverartbox.py:141 msgid "View release on MusicBrainz" msgstr "Zobacz wydanie w MusicBrainz" @@ -618,59 +508,59 @@ msgstr "Pokaż &ukryte pliki" msgid "&Set as starting directory" msgstr "" -#: picard/ui/infodialog.py:36 picard/ui/infodialog.py:75 +#: picard/ui/infodialog.py:37 picard/ui/infodialog.py:80 msgid "Info" msgstr "Info" -#: picard/ui/infodialog.py:80 +#: picard/ui/infodialog.py:85 msgid "Filename:" msgstr "Nazwa pliku:" -#: picard/ui/infodialog.py:82 +#: picard/ui/infodialog.py:87 msgid "Format:" msgstr "Format:" -#: picard/ui/infodialog.py:86 +#: picard/ui/infodialog.py:91 msgid "Size:" msgstr "Rozmiar:" -#: picard/ui/infodialog.py:90 +#: picard/ui/infodialog.py:95 msgid "Length:" msgstr "Długość:" -#: picard/ui/infodialog.py:92 +#: picard/ui/infodialog.py:97 msgid "Bitrate:" msgstr "Szybkość transmisji:" -#: picard/ui/infodialog.py:94 +#: picard/ui/infodialog.py:99 msgid "Sample rate:" msgstr "Próbkowanie:" -#: picard/ui/infodialog.py:96 +#: picard/ui/infodialog.py:101 msgid "Bits per sample:" msgstr "Bitów na próbkę:" -#: picard/ui/infodialog.py:100 +#: picard/ui/infodialog.py:105 msgid "Mono" msgstr "Mono" -#: picard/ui/infodialog.py:102 +#: picard/ui/infodialog.py:107 msgid "Stereo" msgstr "Stereo" -#: picard/ui/infodialog.py:105 +#: picard/ui/infodialog.py:110 msgid "Channels:" msgstr "Kanały:" -#: picard/ui/infodialog.py:116 +#: picard/ui/infodialog.py:121 msgid "Album Info" msgstr "Informacje o albumie" -#: picard/ui/infodialog.py:124 +#: picard/ui/infodialog.py:129 msgid "&Errors" msgstr "" -#: picard/ui/infodialog.py:134 picard/ui/ui_infodialog.py:77 +#: picard/ui/infodialog.py:139 picard/ui/ui_infodialog.py:73 msgid "&Info" msgstr "&Informacje" @@ -694,7 +584,7 @@ msgstr "" msgid "Title" msgstr "Tytuł" -#: picard/ui/itemviews.py:95 picard/util/tags.py:88 +#: picard/ui/itemviews.py:95 picard/util/tags.py:86 msgid "Length" msgstr "Długość" @@ -719,8 +609,8 @@ msgid "Collections" msgstr "Kolekcje" #: picard/ui/itemviews.py:365 -msgid "&Plugins" -msgstr "&Wtyczki" +msgid "P&lugins" +msgstr "" #: picard/ui/itemviews.py:541 msgid "file view" @@ -742,12 +632,16 @@ msgstr "" msgid "Contains albums and matched files" msgstr "" -#: picard/ui/logview.py:91 +#: picard/ui/logview.py:109 msgid "Log" msgstr "Log" -#: picard/ui/logview.py:99 -msgid "Status History" +#: picard/ui/logview.py:113 +msgid "Debug mode" +msgstr "" + +#: picard/ui/logview.py:134 +msgid "Activity History" msgstr "" #: picard/ui/mainwindow.py:74 @@ -782,276 +676,309 @@ msgstr "Gotowe" #: picard/ui/mainwindow.py:220 msgid "" -"Picard listens on a port to integrate with your browser and downloads " -"release information when you click the \"Tagger\" buttons on the MusicBrainz" -" website" -msgstr "Nasłuchując na lokalnym porcie Picard umożliwia integrację z przeglądarką: po kliknięciu przycisku „Tagger” na stronie wydania w serwisie MusicBrainz zostanie ono wyświetlone w programie." +"Picard listens on this port to integrate with your browser. When you " +"\"Search\" or \"Open in Browser\" from Picard, clicking the \"Tagger\" " +"button on the web page loads the release into Picard." +msgstr "" -#: picard/ui/mainwindow.py:240 +#: picard/ui/mainwindow.py:243 #, python-format msgid " Listening on port %(port)d " msgstr " Nasłuchiwanie na porcie %(port)d " -#: picard/ui/mainwindow.py:263 +#: picard/ui/mainwindow.py:299 msgid "Submission Error" msgstr "Błąd Wysyłania" -#: picard/ui/mainwindow.py:264 +#: picard/ui/mainwindow.py:300 msgid "" "You need to configure your AcoustID API key before you can submit " "fingerprints." msgstr "Przed wysłaniem odcisku audio musisz skonfigurować swój klucz AcoustID API." -#: picard/ui/mainwindow.py:269 +#: picard/ui/mainwindow.py:305 msgid "&Options..." msgstr "&Opcje" -#: picard/ui/mainwindow.py:273 +#: picard/ui/mainwindow.py:309 msgid "&Cut" msgstr "&Wytnij" -#: picard/ui/mainwindow.py:278 +#: picard/ui/mainwindow.py:314 msgid "&Paste" msgstr "Wkl&ej" -#: picard/ui/mainwindow.py:283 +#: picard/ui/mainwindow.py:319 msgid "&Help..." msgstr "&Pomoc..." -#: picard/ui/mainwindow.py:288 +#: picard/ui/mainwindow.py:323 msgid "&About..." msgstr "&O programie..." -#: picard/ui/mainwindow.py:292 +#: picard/ui/mainwindow.py:327 msgid "&Donate..." msgstr "&Wesprzyj projekt" -#: picard/ui/mainwindow.py:295 +#: picard/ui/mainwindow.py:330 msgid "&Report a Bug..." msgstr "&Zgłoś błąd..." -#: picard/ui/mainwindow.py:298 +#: picard/ui/mainwindow.py:333 msgid "&Support Forum..." msgstr "Forum w&sparcie..." -#: picard/ui/mainwindow.py:301 +#: picard/ui/mainwindow.py:336 msgid "&Add Files..." msgstr "&Dodaj pliki..." -#: picard/ui/mainwindow.py:302 +#: picard/ui/mainwindow.py:337 msgid "Add files to the tagger" msgstr "Dodaj pliki do taggera" -#: picard/ui/mainwindow.py:307 +#: picard/ui/mainwindow.py:342 msgid "A&dd Folder..." msgstr "&Dodaj katalog..." -#: picard/ui/mainwindow.py:308 +#: picard/ui/mainwindow.py:343 msgid "Add a folder to the tagger" msgstr "Dodaj folder do taggera" -#: picard/ui/mainwindow.py:310 +#: picard/ui/mainwindow.py:345 msgid "Ctrl+D" msgstr "Ctrl+D" -#: picard/ui/mainwindow.py:313 +#: picard/ui/mainwindow.py:348 msgid "&Save" msgstr "Zapi&sz" -#: picard/ui/mainwindow.py:314 +#: picard/ui/mainwindow.py:349 msgid "Save selected files" msgstr "Zapisz wybrane pliki" -#: picard/ui/mainwindow.py:320 +#: picard/ui/mainwindow.py:355 msgid "S&ubmit" msgstr "&Wyślij" -#: picard/ui/mainwindow.py:321 -msgid "Submit fingerprints" -msgstr "Wyślij odciski audio" +#: picard/ui/mainwindow.py:356 +msgid "Submit acoustic fingerprints" +msgstr "" -#: picard/ui/mainwindow.py:325 +#: picard/ui/mainwindow.py:360 msgid "E&xit" msgstr "&Wyjdź" -#: picard/ui/mainwindow.py:328 +#: picard/ui/mainwindow.py:363 msgid "Ctrl+Q" msgstr "Ctrl+Q" -#: picard/ui/mainwindow.py:331 +#: picard/ui/mainwindow.py:366 msgid "&Remove" msgstr "&Usuń" -#: picard/ui/mainwindow.py:332 +#: picard/ui/mainwindow.py:367 msgid "Remove selected files/albums" msgstr "Usuń wybrane pliki/albumy" -#: picard/ui/mainwindow.py:336 +#: picard/ui/mainwindow.py:371 msgid "Lookup in &Browser" msgstr "Wyszukaj w &przeglądarce" -#: picard/ui/mainwindow.py:337 +#: picard/ui/mainwindow.py:372 msgid "Lookup selected item on MusicBrainz website" msgstr "Wyszukaj zaznaczenie w serwisie MusicBrainz" -#: picard/ui/mainwindow.py:341 +#: picard/ui/mainwindow.py:376 msgid "File &Browser" msgstr "&Przeglądaj pliki" -#: picard/ui/mainwindow.py:345 +#: picard/ui/mainwindow.py:380 msgid "Ctrl+B" msgstr "Ctrl+B" -#: picard/ui/mainwindow.py:348 +#: picard/ui/mainwindow.py:383 msgid "&Cover Art" msgstr "&Okładka" -#: picard/ui/mainwindow.py:354 picard/ui/mainwindow.py:539 +#: picard/ui/mainwindow.py:389 picard/ui/mainwindow.py:591 msgid "Search" msgstr "Znajdź" -#: picard/ui/mainwindow.py:357 -msgid "&CD Lookup..." -msgstr "Sprawdzanie &CD..." +#: picard/ui/mainwindow.py:392 +msgid "Lookup &CD..." +msgstr "" -#: picard/ui/mainwindow.py:358 picard/ui/mainwindow.py:359 -msgid "Lookup CD" -msgstr "Sprawdź CD" +#: picard/ui/mainwindow.py:393 +msgid "Lookup the details of the CD in your drive" +msgstr "" -#: picard/ui/mainwindow.py:361 +#: picard/ui/mainwindow.py:395 msgid "Ctrl+K" msgstr "Ctrl+K" -#: picard/ui/mainwindow.py:364 +#: picard/ui/mainwindow.py:398 msgid "&Scan" msgstr "&Przeszukaj" -#: picard/ui/mainwindow.py:367 +#: picard/ui/mainwindow.py:401 msgid "Ctrl+Y" msgstr "Ctrl+Y" -#: picard/ui/mainwindow.py:370 +#: picard/ui/mainwindow.py:404 msgid "Cl&uster" msgstr "&Grupa" -#: picard/ui/mainwindow.py:373 +#: picard/ui/mainwindow.py:407 msgid "Ctrl+U" msgstr "Ctrl+U" -#: picard/ui/mainwindow.py:376 +#: picard/ui/mainwindow.py:410 msgid "&Lookup" msgstr "&Sprawdź" -#: picard/ui/mainwindow.py:377 picard/ui/mainwindow.py:378 -msgid "Lookup metadata" -msgstr "Sprawdź metadane" +#: picard/ui/mainwindow.py:411 +msgid "Lookup selected items in MusicBrainz" +msgstr "" -#: picard/ui/mainwindow.py:381 +#: picard/ui/mainwindow.py:416 msgid "Ctrl+L" msgstr "Ctrl+L" -#: picard/ui/mainwindow.py:384 +#: picard/ui/mainwindow.py:419 msgid "&Info..." msgstr "&Info..." -#: picard/ui/mainwindow.py:387 +#: picard/ui/mainwindow.py:422 msgid "Ctrl+I" msgstr "Ctrl+I" -#: picard/ui/mainwindow.py:390 +#: picard/ui/mainwindow.py:425 msgid "&Refresh" msgstr "Odśwież" -#: picard/ui/mainwindow.py:391 +#: picard/ui/mainwindow.py:426 msgid "Ctrl+R" msgstr "Ctrl+R" -#: picard/ui/mainwindow.py:394 +#: picard/ui/mainwindow.py:429 msgid "&Rename Files" msgstr "Zmień nazwy" -#: picard/ui/mainwindow.py:399 +#: picard/ui/mainwindow.py:434 msgid "&Move Files" msgstr "P&rzenieś pliki" -#: picard/ui/mainwindow.py:404 +#: picard/ui/mainwindow.py:439 msgid "Save &Tags" msgstr "Zapisz &tagi" -#: picard/ui/mainwindow.py:409 +#: picard/ui/mainwindow.py:444 msgid "Tags From &File Names..." msgstr "Tagi z nazwy &pliku" -#: picard/ui/mainwindow.py:412 -msgid "View &Log..." -msgstr "Zobacz &Log" - -#: picard/ui/mainwindow.py:415 -msgid "View Status &History..." +#: picard/ui/mainwindow.py:447 +msgid "&Open My Collections in Browser" msgstr "" -#: picard/ui/mainwindow.py:422 -msgid "&Open..." -msgstr "&Otwórz..." +#: picard/ui/mainwindow.py:451 +msgid "View Error/Debug &Log" +msgstr "" -#: picard/ui/mainwindow.py:423 -msgid "Open the file" -msgstr "Otwórz plik" +#: picard/ui/mainwindow.py:454 +msgid "View Activity &History" +msgstr "" -#: picard/ui/mainwindow.py:426 -msgid "Open &Folder..." -msgstr "Otwórz &folder..." +#: picard/ui/mainwindow.py:461 +msgid "&Play file" +msgstr "" -#: picard/ui/mainwindow.py:427 -msgid "Open the containing folder" -msgstr "Otwórz folder w którym się znajduje" +#: picard/ui/mainwindow.py:462 +msgid "Play the file in your default media player" +msgstr "" -#: picard/ui/mainwindow.py:448 +#: picard/ui/mainwindow.py:466 +msgid "Open Containing &Folder" +msgstr "" + +#: picard/ui/mainwindow.py:467 +msgid "Open the containing folder in your file explorer" +msgstr "" + +#: picard/ui/mainwindow.py:492 msgid "&File" msgstr "&Plik" -#: picard/ui/mainwindow.py:456 +#: picard/ui/mainwindow.py:503 msgid "&Edit" msgstr "&Edycja" -#: picard/ui/mainwindow.py:462 +#: picard/ui/mainwindow.py:509 msgid "&View" msgstr "&Widok" -#: picard/ui/mainwindow.py:470 +#: picard/ui/mainwindow.py:515 msgid "&Options" msgstr "&Opcje" -#: picard/ui/mainwindow.py:476 +#: picard/ui/mainwindow.py:521 msgid "&Tools" msgstr "&Narzędzia" -#: picard/ui/mainwindow.py:485 picard/ui/util.py:35 +#: picard/ui/mainwindow.py:532 picard/ui/util.py:35 msgid "&Help" msgstr "&Pomoc" -#: picard/ui/mainwindow.py:505 +#: picard/ui/mainwindow.py:553 msgid "Actions" msgstr "" -#: picard/ui/mainwindow.py:608 +#: picard/ui/mainwindow.py:599 +msgid "Track" +msgstr "Utwór" + +#: picard/ui/mainwindow.py:662 msgid "All Supported Formats" msgstr "Wszystkie wspierane formaty" -#: picard/ui/mainwindow.py:705 +#: picard/ui/mainwindow.py:695 +#, python-format +msgid "Adding directory: '%(directory)s' ..." +msgstr "" + +#: picard/ui/mainwindow.py:702 +#, python-format +msgid "Adding multiple directories from '%(directory)s' ..." +msgstr "" + +#: picard/ui/mainwindow.py:767 msgid "Configuration Required" msgstr "Wymaga konfiguracji" -#: picard/ui/mainwindow.py:706 +#: picard/ui/mainwindow.py:768 msgid "" "Audio fingerprinting is not yet configured. Would you like to configure it " "now?" msgstr "Funkcja odcisków audio nie została jeszcze skonfigurowana. Czy chcesz to zrobić teraz?" -#: picard/ui/mainwindow.py:784 picard/ui/mainwindow.py:791 +#: picard/ui/mainwindow.py:848 #, python-format -msgid " (Error: %s)" -msgstr " (Błąd: %s)" +msgid "%(filename)s (error: %(error)s)" +msgstr "" + +#: picard/ui/mainwindow.py:854 +#, python-format +msgid "%(filename)s" +msgstr "" + +#: picard/ui/mainwindow.py:864 +#, python-format +msgid "%(filename)s (%(similarity)d%%) (error: %(error)s)" +msgstr "" + +#: picard/ui/mainwindow.py:871 +#, python-format +msgid "%(filename)s (%(similarity)d%%)" +msgstr "" #: picard/ui/metadatabox.py:82 #, python-format @@ -1108,387 +1035,387 @@ msgstr[0] "" msgstr[1] "" msgstr[2] "Użyj oryginalnej wartości" -#: picard/ui/passworddialog.py:37 +#: picard/ui/passworddialog.py:40 #, python-format msgid "" "The server %s requires you to login. Please enter your username and " "password." msgstr "Serwer %s wymaga logowania. Wprowadź swoją nazwę użytkownika i hasło." -#: picard/ui/passworddialog.py:75 +#: picard/ui/passworddialog.py:79 #, python-format msgid "" "The proxy %s requires you to login. Please enter your username and password." msgstr "Serwer proxy %s wymaga zalogowania. Podaj użytkownika i hasło." -#: picard/ui/tagsfromfilenames.py:55 picard/ui/tagsfromfilenames.py:100 +#: picard/ui/tagsfromfilenames.py:56 picard/ui/tagsfromfilenames.py:101 msgid "File Name" msgstr "Nazwa pliku" -#: picard/ui/ui_cdlookup.py:66 picard/ui/ui_options_cdlookup.py:55 -#: picard/ui/ui_options_cdlookup_select.py:62 picard/ui/options/cdlookup.py:38 +#: picard/ui/ui_cdlookup.py:53 picard/ui/ui_options_cdlookup.py:42 +#: picard/ui/ui_options_cdlookup_select.py:49 picard/ui/options/cdlookup.py:38 msgid "CD Lookup" msgstr "Sprawdzanie CD" -#: picard/ui/ui_cdlookup.py:67 +#: picard/ui/ui_cdlookup.py:54 msgid "The following releases on MusicBrainz match the CD:" msgstr "Następujące wydania w MusicBrainz pasują do CD:" -#: picard/ui/ui_cdlookup.py:68 +#: picard/ui/ui_cdlookup.py:55 msgid "OK" msgstr "OK" -#: picard/ui/ui_cdlookup.py:69 +#: picard/ui/ui_cdlookup.py:56 msgid "Lookup manually" msgstr "" -#: picard/ui/ui_cdlookup.py:70 +#: picard/ui/ui_cdlookup.py:57 msgid "Cancel" msgstr "Anuluj" -#: picard/ui/ui_edittagdialog.py:101 +#: picard/ui/ui_edittagdialog.py:88 msgid "Edit Tag" msgstr "Edytuj Tag" -#: picard/ui/ui_edittagdialog.py:102 +#: picard/ui/ui_edittagdialog.py:89 msgid "Edit value" msgstr "Edytuj wartość" -#: picard/ui/ui_edittagdialog.py:103 +#: picard/ui/ui_edittagdialog.py:90 msgid "Add value" msgstr "Dodaj wartość" -#: picard/ui/ui_edittagdialog.py:104 +#: picard/ui/ui_edittagdialog.py:91 msgid "Remove value" msgstr "Usuń wartość" -#: picard/ui/ui_infodialog.py:78 +#: picard/ui/ui_infodialog.py:74 msgid "A&rtwork" msgstr "G&rafika" -#: picard/ui/ui_infostatus.py:100 +#: picard/ui/ui_infostatus.py:96 msgid "Form" msgstr "" -#: picard/ui/ui_options.py:51 +#: picard/ui/ui_options.py:38 msgid "Options" msgstr "Opcje" -#: picard/ui/ui_options_advanced.py:46 +#: picard/ui/ui_options_advanced.py:42 msgid "Advanced options" msgstr "" -#: picard/ui/ui_options_advanced.py:47 +#: picard/ui/ui_options_advanced.py:43 msgid "Ignore file paths matching the following regular expression:" msgstr "" -#: picard/ui/ui_options_cdlookup.py:56 +#: picard/ui/ui_options_cdlookup.py:43 msgid "CD-ROM device to use for lookups:" msgstr "Urządzenie CD-ROM do sprawdzania:" -#: picard/ui/ui_options_cdlookup_select.py:63 +#: picard/ui/ui_options_cdlookup_select.py:50 msgid "Default CD-ROM drive to use for lookups:" msgstr "Domyślny napęd CD-ROM do sprawdzania:" -#: picard/ui/ui_options_cover.py:145 +#: picard/ui/ui_options_cover.py:131 msgid "Location" msgstr "Lokalizacja" -#: picard/ui/ui_options_cover.py:146 +#: picard/ui/ui_options_cover.py:132 msgid "Embed cover images into tags" msgstr "Osadzaj grafikę w pliku jako tag" -#: picard/ui/ui_options_cover.py:147 +#: picard/ui/ui_options_cover.py:133 msgid "Only embed a front image" msgstr "" -#: picard/ui/ui_options_cover.py:148 +#: picard/ui/ui_options_cover.py:134 msgid "Save cover images as separate files" msgstr "Zapisuj grafiki jako oddzielne pliki" -#: picard/ui/ui_options_cover.py:149 +#: picard/ui/ui_options_cover.py:135 msgid "Use the following file name for images:" msgstr "Użyj następującej nazwy pliku dla grafik:" -#: picard/ui/ui_options_cover.py:150 +#: picard/ui/ui_options_cover.py:136 msgid "Overwrite the file if it already exists" msgstr "Nadpisz plik jeżeli istnieje" -#: picard/ui/ui_options_cover.py:151 +#: picard/ui/ui_options_cover.py:137 msgid "Coverart Providers" msgstr "Dostawcy grafik" -#: picard/ui/ui_options_cover.py:152 +#: picard/ui/ui_options_cover.py:138 msgid "Amazon" msgstr "Amazon" -#: picard/ui/ui_options_cover.py:153 picard/ui/ui_options_cover.py:155 +#: picard/ui/ui_options_cover.py:139 picard/ui/ui_options_cover.py:141 msgid "Cover Art Archive" msgstr "Cover Art Archive" -#: picard/ui/ui_options_cover.py:154 +#: picard/ui/ui_options_cover.py:140 msgid "Sites on the whitelist" msgstr "Witryny na białej liście" -#: picard/ui/ui_options_cover.py:156 +#: picard/ui/ui_options_cover.py:142 msgid "Only use images of the following size:" msgstr "Używaj tylko obrazów następujących wielkości:" -#: picard/ui/ui_options_cover.py:157 +#: picard/ui/ui_options_cover.py:143 msgid "250 px" msgstr "250 px" -#: picard/ui/ui_options_cover.py:158 +#: picard/ui/ui_options_cover.py:144 msgid "500 px" msgstr "500 px" -#: picard/ui/ui_options_cover.py:159 +#: picard/ui/ui_options_cover.py:145 msgid "Full size" msgstr "pełen rozmiar" -#: picard/ui/ui_options_cover.py:160 +#: picard/ui/ui_options_cover.py:146 msgid "Download only images of the following types:" msgstr "Pobierz tylko obrazy następujących typów:" -#: picard/ui/ui_options_cover.py:161 +#: picard/ui/ui_options_cover.py:147 msgid "Download only approved images" msgstr "Pobieraj tylko zweryfikowane obrazy" -#: picard/ui/ui_options_cover.py:162 +#: picard/ui/ui_options_cover.py:148 msgid "" "Use the first image type as the filename. This will not change the filename " "of front images." msgstr "Użyj pierwszego typu grafiki jako nazwy pliku. Nazwy okładek nie zostaną zmienione." -#: picard/ui/ui_options_fingerprinting.py:83 +#: picard/ui/ui_options_fingerprinting.py:70 msgid "Audio Fingerprinting" msgstr "Odciski audio" -#: picard/ui/ui_options_fingerprinting.py:84 +#: picard/ui/ui_options_fingerprinting.py:71 msgid "Do not use audio fingerprinting" msgstr "Nie używaj odcisków audio" -#: picard/ui/ui_options_fingerprinting.py:85 +#: picard/ui/ui_options_fingerprinting.py:72 msgid "Use AcoustID" msgstr "Używaj AcoustID" -#: picard/ui/ui_options_fingerprinting.py:86 +#: picard/ui/ui_options_fingerprinting.py:73 msgid "AcoustID Settings" msgstr "Ustawienia AcoustID" -#: picard/ui/ui_options_fingerprinting.py:87 +#: picard/ui/ui_options_fingerprinting.py:74 msgid "Fingerprint calculator:" msgstr "Generator odcisków:" -#: picard/ui/ui_options_fingerprinting.py:88 -#: picard/ui/ui_options_interface.py:88 picard/ui/ui_options_renaming.py:138 +#: picard/ui/ui_options_fingerprinting.py:75 +#: picard/ui/ui_options_interface.py:75 picard/ui/ui_options_renaming.py:134 msgid "Browse..." msgstr "Przeglądaj..." -#: picard/ui/ui_options_fingerprinting.py:89 +#: picard/ui/ui_options_fingerprinting.py:76 msgid "Download..." msgstr "Pobierz..." -#: picard/ui/ui_options_fingerprinting.py:90 +#: picard/ui/ui_options_fingerprinting.py:77 msgid "API key:" msgstr "Klucz API:" -#: picard/ui/ui_options_fingerprinting.py:91 +#: picard/ui/ui_options_fingerprinting.py:78 msgid "Get API key..." msgstr "Pobierz klucz API..." -#: picard/ui/ui_options_folksonomy.py:115 picard/ui/options/folksonomy.py:28 +#: picard/ui/ui_options_folksonomy.py:102 picard/ui/options/folksonomy.py:28 msgid "Folksonomy Tags" msgstr "Folksonomia" -#: picard/ui/ui_options_folksonomy.py:117 +#: picard/ui/ui_options_folksonomy.py:104 msgid "Only use my tags" msgstr "Używaj tylko moich tagów" -#: picard/ui/ui_options_folksonomy.py:120 +#: picard/ui/ui_options_folksonomy.py:107 msgid "Maximum number of tags:" msgstr "Maksymalna liczba tagów:" -#: picard/ui/ui_options_general.py:92 +#: picard/ui/ui_options_general.py:88 msgid "MusicBrainz Server" msgstr "Serwer MusicBrainz" -#: picard/ui/ui_options_general.py:93 picard/ui/ui_options_network.py:123 +#: picard/ui/ui_options_general.py:89 picard/ui/ui_options_network.py:110 msgid "Port:" msgstr "Port:" -#: picard/ui/ui_options_general.py:94 picard/ui/ui_options_network.py:124 +#: picard/ui/ui_options_general.py:90 picard/ui/ui_options_network.py:111 msgid "Server address:" msgstr "Adres serwera:" -#: picard/ui/ui_options_general.py:95 +#: picard/ui/ui_options_general.py:91 msgid "Account Information" msgstr "Informacje o koncie" -#: picard/ui/ui_options_general.py:96 picard/ui/ui_options_network.py:121 -#: picard/ui/ui_passworddialog.py:74 +#: picard/ui/ui_options_general.py:92 picard/ui/ui_options_network.py:108 +#: picard/ui/ui_passworddialog.py:70 msgid "Password:" msgstr "Hasło:" -#: picard/ui/ui_options_general.py:97 picard/ui/ui_options_network.py:122 -#: picard/ui/ui_passworddialog.py:73 +#: picard/ui/ui_options_general.py:93 picard/ui/ui_options_network.py:109 +#: picard/ui/ui_passworddialog.py:69 msgid "Username:" msgstr "Użytkownik:" -#: picard/ui/ui_options_general.py:98 picard/ui/options/general.py:31 +#: picard/ui/ui_options_general.py:94 picard/ui/options/general.py:31 msgid "General" msgstr "Ogólne" -#: picard/ui/ui_options_general.py:99 +#: picard/ui/ui_options_general.py:95 msgid "Automatically scan all new files" msgstr "Automatycznie analizuj nowe pliki" -#: picard/ui/ui_options_general.py:100 +#: picard/ui/ui_options_general.py:96 msgid "Ignore MBIDs when loading new files" msgstr "Ignoruj MBID przy ładowaniu nowych plików" -#: picard/ui/ui_options_interface.py:82 +#: picard/ui/ui_options_interface.py:69 msgid "Miscellaneous" msgstr "Różne" -#: picard/ui/ui_options_interface.py:83 +#: picard/ui/ui_options_interface.py:70 msgid "Show text labels under icons" msgstr "Pokazuj etykiety tekstowe pod ikonami" -#: picard/ui/ui_options_interface.py:84 +#: picard/ui/ui_options_interface.py:71 msgid "Allow selection of multiple directories" msgstr "Pozówl na zaznaczanie wielu katalogów" -#: picard/ui/ui_options_interface.py:85 +#: picard/ui/ui_options_interface.py:72 msgid "Use advanced query syntax" msgstr "Użyj zaawansowanej składni w wyszukiwaniu" -#: picard/ui/ui_options_interface.py:86 +#: picard/ui/ui_options_interface.py:73 msgid "Show a quit confirmation dialog for unsaved changes" msgstr "Informuj przy wyjściu o niezapisanych zmianach" -#: picard/ui/ui_options_interface.py:87 +#: picard/ui/ui_options_interface.py:74 msgid "Begin browsing in the following directory:" msgstr "" -#: picard/ui/ui_options_interface.py:89 +#: picard/ui/ui_options_interface.py:76 msgid "User interface language:" msgstr "Język interfejsu:" -#: picard/ui/ui_options_matching.py:86 +#: picard/ui/ui_options_matching.py:73 msgid "Thresholds" msgstr "Progi" -#: picard/ui/ui_options_matching.py:87 +#: picard/ui/ui_options_matching.py:74 msgid "Minimal similarity for matching files to tracks:" msgstr "Minimalne podobieństwo przy dobieraniu utworów:" -#: picard/ui/ui_options_matching.py:91 +#: picard/ui/ui_options_matching.py:78 msgid "Minimal similarity for file lookups:" msgstr "Minimalne podobieństwo dla sprawdzanych plików:" -#: picard/ui/ui_options_matching.py:92 +#: picard/ui/ui_options_matching.py:79 msgid "Minimal similarity for cluster lookups:" msgstr "Minimalne podobieństwo przy dobieraniu albumów:" -#: picard/ui/ui_options_metadata.py:114 picard/ui/options/metadata.py:29 +#: picard/ui/ui_options_metadata.py:101 picard/ui/options/metadata.py:29 msgid "Metadata" msgstr "Metadane" -#: picard/ui/ui_options_metadata.py:115 +#: picard/ui/ui_options_metadata.py:102 msgid "Translate artist names to this locale where possible:" msgstr "Używaj tłumaczeń nazw wykonawców, gdy są dostępne w języku:" -#: picard/ui/ui_options_metadata.py:116 +#: picard/ui/ui_options_metadata.py:103 msgid "Use standardized artist names" msgstr "Używaj ustandaryzowanych nazw wykonawców" -#: picard/ui/ui_options_metadata.py:117 +#: picard/ui/ui_options_metadata.py:104 msgid "Convert Unicode punctuation characters to ASCII" msgstr "Zamieniaj znaki interpunkcyjne Unicode na ASCII" -#: picard/ui/ui_options_metadata.py:118 +#: picard/ui/ui_options_metadata.py:105 msgid "Use release relationships" msgstr "Użyj powiązań wydań" -#: picard/ui/ui_options_metadata.py:119 +#: picard/ui/ui_options_metadata.py:106 msgid "Use track relationships" msgstr "Użyj powiązań utworów" -#: picard/ui/ui_options_metadata.py:120 +#: picard/ui/ui_options_metadata.py:107 msgid "Use folksonomy tags as genre" msgstr "Użyj folksonomii jako gatunku" -#: picard/ui/ui_options_metadata.py:121 +#: picard/ui/ui_options_metadata.py:108 msgid "Custom Fields" msgstr "Pola użytkownika" -#: picard/ui/ui_options_metadata.py:122 +#: picard/ui/ui_options_metadata.py:109 msgid "Various artists:" msgstr "Różni wykonawcy:" -#: picard/ui/ui_options_metadata.py:123 +#: picard/ui/ui_options_metadata.py:110 msgid "Non-album tracks:" msgstr "Utwory spoza albumu:" -#: picard/ui/ui_options_metadata.py:124 picard/ui/ui_options_metadata.py:125 -#: picard/ui/ui_options_renaming.py:147 +#: picard/ui/ui_options_metadata.py:111 picard/ui/ui_options_metadata.py:112 +#: picard/ui/ui_options_renaming.py:143 msgid "Default" msgstr "Domyślnie" -#: picard/ui/ui_options_network.py:120 +#: picard/ui/ui_options_network.py:107 msgid "Web Proxy" msgstr "Serwer proxy" -#: picard/ui/ui_options_network.py:125 +#: picard/ui/ui_options_network.py:112 msgid "Browser Integration" msgstr "" -#: picard/ui/ui_options_network.py:126 +#: picard/ui/ui_options_network.py:113 msgid "Default listening port:" msgstr "" -#: picard/ui/ui_options_network.py:127 +#: picard/ui/ui_options_network.py:114 msgid "Listen only on localhost" msgstr "" -#: picard/ui/ui_options_plugins.py:131 picard/ui/options/plugins.py:38 +#: picard/ui/ui_options_plugins.py:127 picard/ui/options/plugins.py:38 msgid "Plugins" msgstr "Wtyczki" -#: picard/ui/ui_options_plugins.py:132 picard/ui/options/plugins.py:122 +#: picard/ui/ui_options_plugins.py:128 picard/ui/options/plugins.py:122 msgid "Name" msgstr "Nazwa" -#: picard/ui/ui_options_plugins.py:133 picard/util/tags.py:39 +#: picard/ui/ui_options_plugins.py:129 msgid "Version" msgstr "Wersja" -#: picard/ui/ui_options_plugins.py:134 picard/ui/options/plugins.py:125 +#: picard/ui/ui_options_plugins.py:130 picard/ui/options/plugins.py:125 msgid "Author" msgstr "Autor" -#: picard/ui/ui_options_plugins.py:135 +#: picard/ui/ui_options_plugins.py:131 msgid "Install plugin..." msgstr "Zainstaluj wtyczkę..." -#: picard/ui/ui_options_plugins.py:136 +#: picard/ui/ui_options_plugins.py:132 msgid "Open plugin folder" msgstr "Otwórz katalog z wtyczkami" -#: picard/ui/ui_options_plugins.py:137 +#: picard/ui/ui_options_plugins.py:133 msgid "Download plugins" msgstr "Pobierz wtyczki" -#: picard/ui/ui_options_plugins.py:138 +#: picard/ui/ui_options_plugins.py:134 msgid "Details" msgstr "Szczegóły" -#: picard/ui/ui_options_ratings.py:53 +#: picard/ui/ui_options_ratings.py:49 msgid "Enable track ratings" msgstr "Włącz ocenianie utworów" -#: picard/ui/ui_options_ratings.py:54 +#: picard/ui/ui_options_ratings.py:50 msgid "" "Picard saves the ratings together with an e-mail address identifying the " "user who did the rating. That way different ratings for different users can " @@ -1496,207 +1423,167 @@ msgid "" "your ratings." msgstr "Picard zapisuje oceny razem z adresem e-mail, który identyfikuje osobę, która wystawiła ocenę. Tym sposobem różne oceny różnych użytkowników mogą być zachowane w plikach. Podaj adres e-mail, którego chcesz użyć by zapisać swoje oceny." -#: picard/ui/ui_options_ratings.py:55 +#: picard/ui/ui_options_ratings.py:51 msgid "E-mail:" msgstr "E-mail:" -#: picard/ui/ui_options_ratings.py:56 +#: picard/ui/ui_options_ratings.py:52 msgid "Submit ratings to MusicBrainz" msgstr "Wyślij notę do MusicBrainz" -#: picard/ui/ui_options_releases.py:215 +#: picard/ui/ui_options_releases.py:104 msgid "Preferred release types" msgstr "Preferowane typy wydań" -#: picard/ui/ui_options_releases.py:217 -msgid "Single" -msgstr "Singiel" - -#: picard/ui/ui_options_releases.py:218 -msgid "EP" -msgstr "EP" - -#: picard/ui/ui_options_releases.py:219 -msgid "Compilation" -msgstr "Składanka" - -#: picard/ui/ui_options_releases.py:220 -msgid "Soundtrack" -msgstr "Soundtrack" - -#: picard/ui/ui_options_releases.py:221 -msgid "Spokenword" -msgstr "Słowo mówione" - -#: picard/ui/ui_options_releases.py:222 -msgid "Interview" -msgstr "Wywiad" - -#: picard/ui/ui_options_releases.py:223 -msgid "Audiobook" -msgstr "Audiobook" - -#: picard/ui/ui_options_releases.py:224 -msgid "Live" -msgstr "Na żywo" - -#: picard/ui/ui_options_releases.py:225 -msgid "Remix" -msgstr "Remiks" - -#: picard/ui/ui_options_releases.py:227 -msgid "Reset all" -msgstr "Resetuj wszystko" - -#: picard/ui/ui_options_releases.py:228 +#: picard/ui/ui_options_releases.py:105 msgid "Preferred release countries" msgstr "Preferowane kraje dla wydań" -#: picard/ui/ui_options_releases.py:229 picard/ui/ui_options_releases.py:232 +#: picard/ui/ui_options_releases.py:106 picard/ui/ui_options_releases.py:109 msgid ">" msgstr ">" -#: picard/ui/ui_options_releases.py:230 picard/ui/ui_options_releases.py:233 +#: picard/ui/ui_options_releases.py:107 picard/ui/ui_options_releases.py:110 msgid "<" msgstr "<" -#: picard/ui/ui_options_releases.py:231 +#: picard/ui/ui_options_releases.py:108 msgid "Preferred release formats" msgstr "Preferowane formaty wydań" -#: picard/ui/ui_options_renaming.py:134 +#: picard/ui/ui_options_renaming.py:130 msgid "Rename files when saving" msgstr "Zmieniaj nazwy plików podczas zapisywania" -#: picard/ui/ui_options_renaming.py:135 +#: picard/ui/ui_options_renaming.py:131 msgid "Replace non-ASCII characters" msgstr "Podmieniaj znaki nie-ASCII" -#: picard/ui/ui_options_renaming.py:136 +#: picard/ui/ui_options_renaming.py:132 msgid "Windows compatibility" msgstr "" -#: picard/ui/ui_options_renaming.py:137 +#: picard/ui/ui_options_renaming.py:133 msgid "Move files to this directory when saving:" msgstr "Przenoś pliki do tego katalogu podczas zapisywania:" -#: picard/ui/ui_options_renaming.py:139 +#: picard/ui/ui_options_renaming.py:135 msgid "Delete empty directories" msgstr "Usuwaj puste katalogi" -#: picard/ui/ui_options_renaming.py:140 +#: picard/ui/ui_options_renaming.py:136 msgid "Move additional files:" msgstr "Przenoś dodatkowe pliki:" -#: picard/ui/ui_options_renaming.py:141 +#: picard/ui/ui_options_renaming.py:137 msgid "Name files like this" msgstr "Użyj następującego nazewnictwa" -#: picard/ui/ui_options_renaming.py:148 +#: picard/ui/ui_options_renaming.py:144 msgid "Examples" msgstr "Przykłady" -#: picard/ui/ui_options_script.py:49 +#: picard/ui/ui_options_script.py:45 msgid "Tagger Script" msgstr "Skrypt taggera" -#: picard/ui/ui_options_tags.py:165 +#: picard/ui/ui_options_tags.py:152 msgid "Write tags to files" msgstr "Zapisuj tagi do plików" -#: picard/ui/ui_options_tags.py:166 +#: picard/ui/ui_options_tags.py:153 msgid "Preserve timestamps of tagged files" msgstr "Zachowaj znaczniki czasu tagowanych plików" -#: picard/ui/ui_options_tags.py:167 +#: picard/ui/ui_options_tags.py:154 msgid "Before Tagging" msgstr "" -#: picard/ui/ui_options_tags.py:168 +#: picard/ui/ui_options_tags.py:155 msgid "Clear existing tags" msgstr "Wyczyść istniejące tagi" -#: picard/ui/ui_options_tags.py:169 +#: picard/ui/ui_options_tags.py:156 msgid "Remove ID3 tags from FLAC files" msgstr "Usuwaj tagi ID3 z plików FLAC" -#: picard/ui/ui_options_tags.py:170 +#: picard/ui/ui_options_tags.py:157 msgid "Remove APEv2 tags from MP3 files" msgstr "Usuwaj tagi APEv2 z plików MP3" -#: picard/ui/ui_options_tags.py:171 +#: picard/ui/ui_options_tags.py:158 msgid "" "Preserve these tags from being cleared or overwritten with MusicBrainz data:" msgstr "Chroń już istniejące tagi przed usunięciem lub nadpisaniem danymi z MusicBrainz:" -#: picard/ui/ui_options_tags.py:172 +#: picard/ui/ui_options_tags.py:159 msgid "Tags are separated by commas, and are case-sensitive." msgstr "" -#: picard/ui/ui_options_tags.py:173 +#: picard/ui/ui_options_tags.py:160 msgid "Tag Compatibility" msgstr "" -#: picard/ui/ui_options_tags.py:174 +#: picard/ui/ui_options_tags.py:161 msgid "ID3v2 Version" msgstr "" -#: picard/ui/ui_options_tags.py:175 +#: picard/ui/ui_options_tags.py:162 msgid "2.4" msgstr "2.4" -#: picard/ui/ui_options_tags.py:176 +#: picard/ui/ui_options_tags.py:163 msgid "2.3" msgstr "2.3" -#: picard/ui/ui_options_tags.py:177 +#: picard/ui/ui_options_tags.py:164 msgid "ID3v2 Text Encoding" msgstr "" -#: picard/ui/ui_options_tags.py:178 +#: picard/ui/ui_options_tags.py:165 msgid "UTF-8" msgstr "UTF-8" -#: picard/ui/ui_options_tags.py:179 +#: picard/ui/ui_options_tags.py:166 msgid "UTF-16" msgstr "UTF-16" -#: picard/ui/ui_options_tags.py:180 +#: picard/ui/ui_options_tags.py:167 msgid "ISO-8859-1" msgstr "ISO-8859-1" -#: picard/ui/ui_options_tags.py:181 +#: picard/ui/ui_options_tags.py:168 msgid "Join multiple ID3v2.3 tags with:" msgstr "" -#: picard/ui/ui_options_tags.py:182 +#: picard/ui/ui_options_tags.py:169 msgid "" "

Default is '/' to maintain compatibility with previous" " Picard releases.

New alternatives are ';_' or '_/_' or type your own." "

" msgstr "" -#: picard/ui/ui_options_tags.py:183 +#: picard/ui/ui_options_tags.py:170 msgid "Also include ID3v1 tags in the files" msgstr "Dołącz dodatkowo tagi ID3v1" -#: picard/ui/ui_passworddialog.py:72 +#: picard/ui/ui_passworddialog.py:68 msgid "Authentication required" msgstr "Wymagane uwierzytelnienie" -#: picard/ui/ui_passworddialog.py:75 +#: picard/ui/ui_passworddialog.py:71 msgid "Save username and password" msgstr "Zapisz nazwę użytkownika i hasło" -#: picard/ui/ui_tagsfromfilenames.py:54 +#: picard/ui/ui_tagsfromfilenames.py:50 msgid "Convert File Names to Tags" msgstr "Konwetuj nazwy plików do tagów" -#: picard/ui/ui_tagsfromfilenames.py:55 +#: picard/ui/ui_tagsfromfilenames.py:51 msgid "Replace underscores with spaces" msgstr "Zamieniaj podkreślenia na spacje" -#: picard/ui/ui_tagsfromfilenames.py:56 +#: picard/ui/ui_tagsfromfilenames.py:52 msgid "&Preview" msgstr "&Podgląd" @@ -1752,7 +1639,11 @@ msgstr "Zaawansowane" msgid "Regex Error" msgstr "" -#: picard/ui/options/cover.py:63 +#: picard/ui/options/cover.py:44 +msgid "title" +msgstr "" + +#: picard/ui/options/cover.py:68 msgid "Cover Art" msgstr "Okładka" @@ -1768,11 +1659,11 @@ msgstr "Interfejs użytkownika" msgid "System default" msgstr "Domyślny systemowy" -#: picard/ui/options/interface.py:96 +#: picard/ui/options/interface.py:98 msgid "Language changed" msgstr "Język zmieniony" -#: picard/ui/options/interface.py:96 +#: picard/ui/options/interface.py:99 msgid "" "You have changed the interface language. You have to restart Picard in order" " for the change to take effect." @@ -1794,31 +1685,35 @@ msgstr "Plik" msgid "Ratings" msgstr "Oceny" -#: picard/ui/options/releases.py:33 +#: picard/ui/options/releases.py:87 msgid "Preferred Releases" msgstr "Preferowane wydania" +#: picard/ui/options/releases.py:121 +msgid "Reset all" +msgstr "Resetuj wszystko" + #: picard/ui/options/renaming.py:37 msgid "File Naming" msgstr "" -#: picard/ui/options/renaming.py:184 +#: picard/ui/options/renaming.py:187 msgid "Error" msgstr "Błąd" -#: picard/ui/options/renaming.py:184 +#: picard/ui/options/renaming.py:187 msgid "The location to move files to must not be empty." msgstr "Lokacja do której chcesz przenieść pliki nie może być pusta." -#: picard/ui/options/renaming.py:194 +#: picard/ui/options/renaming.py:197 msgid "The file naming format must not be empty." msgstr "Format nazewnictwa nie może być pusty" -#: picard/ui/options/scripting.py:63 +#: picard/ui/options/scripting.py:99 msgid "Scripting" msgstr "Skryptowanie" -#: picard/ui/options/scripting.py:95 +#: picard/ui/options/scripting.py:131 msgid "Script Error" msgstr "Błąd skryptu" @@ -1938,199 +1833,199 @@ msgstr "ASIN" msgid "Grouping" msgstr "Grupowanie" -#: picard/util/tags.py:40 +#: picard/util/tags.py:39 msgid "ISRC" msgstr "ISRC" -#: picard/util/tags.py:41 +#: picard/util/tags.py:40 msgid "Mood" msgstr "Nastrój" -#: picard/util/tags.py:42 +#: picard/util/tags.py:41 msgid "BPM" msgstr "Uderzenia na minutę" -#: picard/util/tags.py:43 +#: picard/util/tags.py:42 msgid "Copyright" msgstr "Prawa autorskie" -#: picard/util/tags.py:44 +#: picard/util/tags.py:43 msgid "License" msgstr "Licencja" -#: picard/util/tags.py:45 +#: picard/util/tags.py:44 msgid "Composer" msgstr "Kompozytor" -#: picard/util/tags.py:46 +#: picard/util/tags.py:45 msgid "Writer" msgstr "Autor" -#: picard/util/tags.py:47 +#: picard/util/tags.py:46 msgid "Conductor" msgstr "Dyrygent" -#: picard/util/tags.py:48 +#: picard/util/tags.py:47 msgid "Lyricist" msgstr "Autor tekstu" -#: picard/util/tags.py:49 +#: picard/util/tags.py:48 msgid "Arranger" msgstr "Aranżer" -#: picard/util/tags.py:50 +#: picard/util/tags.py:49 msgid "Producer" msgstr "Producent" -#: picard/util/tags.py:51 +#: picard/util/tags.py:50 msgid "Engineer" msgstr "Inżynier" -#: picard/util/tags.py:52 +#: picard/util/tags.py:51 msgid "Subtitle" msgstr "Podtytuł" -#: picard/util/tags.py:53 +#: picard/util/tags.py:52 msgid "Disc Subtitle" msgstr "Podtytuł płyty" -#: picard/util/tags.py:54 +#: picard/util/tags.py:53 msgid "Remixer" msgstr "Remixer" -#: picard/util/tags.py:55 +#: picard/util/tags.py:54 msgid "MusicBrainz Recording Id" msgstr "MusicBrainz ID nagrania " -#: picard/util/tags.py:56 +#: picard/util/tags.py:55 msgid "MusicBrainz Track Id" msgstr "" -#: picard/util/tags.py:57 +#: picard/util/tags.py:56 msgid "MusicBrainz Release Id" msgstr "MusicBrainz ID wydania " -#: picard/util/tags.py:58 +#: picard/util/tags.py:57 msgid "MusicBrainz Artist Id" msgstr "MusicBrainz ID artysty" -#: picard/util/tags.py:59 +#: picard/util/tags.py:58 msgid "MusicBrainz Release Artist Id" msgstr "MusicBrainz ID wykonawcy wydania" -#: picard/util/tags.py:60 +#: picard/util/tags.py:59 msgid "MusicBrainz Work Id" msgstr "MusicBrainz ID pracy" -#: picard/util/tags.py:61 +#: picard/util/tags.py:60 msgid "MusicBrainz Release Group Id" msgstr "MusicBrainz ID grupy wydań" -#: picard/util/tags.py:62 +#: picard/util/tags.py:61 msgid "MusicBrainz Disc Id" msgstr "MusicBrainz ID dysku" -#: picard/util/tags.py:63 -msgid "MusicBrainz Sort Name" -msgstr "Nazwa sortowania" - -#: picard/util/tags.py:64 +#: picard/util/tags.py:62 msgid "MusicIP PUID" msgstr "MusicIP PUID" -#: picard/util/tags.py:65 +#: picard/util/tags.py:63 msgid "MusicIP Fingerprint" msgstr "Odcisk palca MusicIP" -#: picard/util/tags.py:66 +#: picard/util/tags.py:64 msgid "AcoustID" msgstr "AcoustID" -#: picard/util/tags.py:67 +#: picard/util/tags.py:65 msgid "AcoustID Fingerprint" msgstr "Odcisk AcoustID" -#: picard/util/tags.py:68 +#: picard/util/tags.py:66 msgid "Disc Id" msgstr "Id dysku" -#: picard/util/tags.py:69 -msgid "Website" -msgstr "Strona www" +#: picard/util/tags.py:67 +msgid "Artist Website" +msgstr "" -#: picard/util/tags.py:70 +#: picard/util/tags.py:68 msgid "Compilation (iTunes)" msgstr "" -#: picard/util/tags.py:71 +#: picard/util/tags.py:69 msgid "Comment" msgstr "Komentarz" -#: picard/util/tags.py:72 +#: picard/util/tags.py:70 msgid "Genre" msgstr "Gatunek" -#: picard/util/tags.py:73 +#: picard/util/tags.py:71 msgid "Encoded By" msgstr "Zakodowane przez" -#: picard/util/tags.py:74 +#: picard/util/tags.py:72 +msgid "Encoder Settings" +msgstr "" + +#: picard/util/tags.py:73 msgid "Performer" msgstr "Wykonawca" -#: picard/util/tags.py:75 +#: picard/util/tags.py:74 msgid "Release Type" msgstr "Rodzaj wydania" -#: picard/util/tags.py:76 +#: picard/util/tags.py:75 msgid "Release Status" msgstr "Status wydania" -#: picard/util/tags.py:77 +#: picard/util/tags.py:76 msgid "Release Country" msgstr "Kraj wydania albumu" -#: picard/util/tags.py:78 +#: picard/util/tags.py:77 msgid "Record Label" msgstr "Wytwórnia" -#: picard/util/tags.py:80 +#: picard/util/tags.py:79 msgid "Catalog Number" msgstr "Numer katalogowy" -#: picard/util/tags.py:82 +#: picard/util/tags.py:80 msgid "DJ-Mixer" msgstr "DJ-Mixer" -#: picard/util/tags.py:83 +#: picard/util/tags.py:81 msgid "Media" msgstr "Multimedia" -#: picard/util/tags.py:84 +#: picard/util/tags.py:82 msgid "Lyrics" msgstr "Teksty utworów" -#: picard/util/tags.py:85 +#: picard/util/tags.py:83 msgid "Mixer" msgstr "Mikser" -#: picard/util/tags.py:86 +#: picard/util/tags.py:84 msgid "Language" msgstr "Język" -#: picard/util/tags.py:87 +#: picard/util/tags.py:85 msgid "Script" msgstr "Skrypt" -#: picard/util/tags.py:89 +#: picard/util/tags.py:87 msgid "Rating" msgstr "Ocena" -#: picard/util/tags.py:90 +#: picard/util/tags.py:88 msgid "Artists" msgstr "" -#: picard/util/tags.py:91 +#: picard/util/tags.py:89 msgid "Work" msgstr "" diff --git a/po/pt.po b/po/pt.po index be3e0c9d8..2c1add61a 100644 --- a/po/pt.po +++ b/po/pt.po @@ -9,8 +9,8 @@ msgid "" msgstr "" "Project-Id-Version: MusicBrainz\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2014-03-20 11:12+0100\n" -"PO-Revision-Date: 2014-03-21 08:44+0000\n" +"POT-Creation-Date: 2014-05-03 17:28+0200\n" +"PO-Revision-Date: 2014-05-04 08:44+0000\n" "Last-Translator: nikki\n" "Language-Team: Portuguese (http://www.transifex.com/projects/p/musicbrainz/language/pt/)\n" "MIME-Version: 1.0\n" @@ -20,6 +20,10 @@ msgstr "" "Language: pt\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" +#: contrib/plugins/albumartist_website.py:3 +msgid "Album Artist Website" +msgstr "" + #: contrib/plugins/no_release.py:50 msgid "Enable plugin for all releases by default" msgstr "" @@ -32,63 +36,55 @@ msgstr "" msgid "Remove specific release information..." msgstr "" -#: contrib/plugins/open_in_gui.py:32 -msgid "Open Error" +#: contrib/plugins/standardise_performers.py:3 +msgid "Standardise Performers" msgstr "" -#: contrib/plugins/open_in_gui.py:32 -#, python-format -msgid "" -"Error while opening file:\n" -"\n" -"%s" -msgstr "" - -#: contrib/plugins/lastfm/ui_options_lastfm.py:117 +#: contrib/plugins/lastfm/ui_options_lastfm.py:99 msgid "Last.fm" msgstr "Last.fm" -#: contrib/plugins/lastfm/ui_options_lastfm.py:118 +#: contrib/plugins/lastfm/ui_options_lastfm.py:100 msgid "Use track tags" msgstr "Usar etiquetas de faixa" -#: contrib/plugins/lastfm/ui_options_lastfm.py:119 +#: contrib/plugins/lastfm/ui_options_lastfm.py:101 msgid "Use artist tags" msgstr "Usar etiquetas de artista" -#: contrib/plugins/lastfm/ui_options_lastfm.py:120 +#: contrib/plugins/lastfm/ui_options_lastfm.py:102 #: picard/ui/options/tags.py:30 msgid "Tags" msgstr "Marcas" -#: contrib/plugins/lastfm/ui_options_lastfm.py:121 -#: picard/ui/ui_options_folksonomy.py:116 +#: contrib/plugins/lastfm/ui_options_lastfm.py:103 +#: picard/ui/ui_options_folksonomy.py:103 msgid "Ignore tags:" msgstr "Ignorar marcas:" -#: contrib/plugins/lastfm/ui_options_lastfm.py:122 -#: picard/ui/ui_options_folksonomy.py:121 +#: contrib/plugins/lastfm/ui_options_lastfm.py:104 +#: picard/ui/ui_options_folksonomy.py:108 msgid "Join multiple tags with:" msgstr "Unir diversas marcas com:" -#: contrib/plugins/lastfm/ui_options_lastfm.py:123 -#: picard/ui/ui_options_folksonomy.py:122 +#: contrib/plugins/lastfm/ui_options_lastfm.py:105 +#: picard/ui/ui_options_folksonomy.py:109 msgid " / " msgstr " / " -#: contrib/plugins/lastfm/ui_options_lastfm.py:124 -#: picard/ui/ui_options_folksonomy.py:123 +#: contrib/plugins/lastfm/ui_options_lastfm.py:106 +#: picard/ui/ui_options_folksonomy.py:110 msgid ", " msgstr ", " -#: contrib/plugins/lastfm/ui_options_lastfm.py:125 -#: picard/ui/ui_options_folksonomy.py:118 +#: contrib/plugins/lastfm/ui_options_lastfm.py:107 +#: picard/ui/ui_options_folksonomy.py:105 msgid "Minimal tag usage:" msgstr "Utilização mínima de marcas:" -#: contrib/plugins/lastfm/ui_options_lastfm.py:126 -#: picard/ui/ui_options_folksonomy.py:119 picard/ui/ui_options_matching.py:88 -#: picard/ui/ui_options_matching.py:89 picard/ui/ui_options_matching.py:90 +#: contrib/plugins/lastfm/ui_options_lastfm.py:108 +#: picard/ui/ui_options_folksonomy.py:106 picard/ui/ui_options_matching.py:75 +#: picard/ui/ui_options_matching.py:76 picard/ui/ui_options_matching.py:77 msgid " %" msgstr " %" @@ -96,420 +92,307 @@ msgstr " %" msgid "Calculate replay &gain..." msgstr "" -#: contrib/plugins/replaygain/__init__.py:66 +#: contrib/plugins/replaygain/__init__.py:67 #, python-format -msgid "Calculating replay gain for \"%s\"..." +msgid "Calculating replay gain for \"%(filename)s\"..." msgstr "" -#: contrib/plugins/replaygain/__init__.py:71 +#: contrib/plugins/replaygain/__init__.py:75 #, python-format -msgid "Replay gain for \"%s\" successfully calculated." +msgid "Replay gain for \"%(filename)s\" successfully calculated." msgstr "" -#: contrib/plugins/replaygain/__init__.py:73 +#: contrib/plugins/replaygain/__init__.py:80 #, python-format -msgid "Could not calculate replay gain for \"%s\"." +msgid "Could not calculate replay gain for \"%(filename)s\"." msgstr "" -#: contrib/plugins/replaygain/__init__.py:76 +#: contrib/plugins/replaygain/__init__.py:85 msgid "Calculate album &gain..." msgstr "" -#: contrib/plugins/replaygain/__init__.py:103 -#: contrib/plugins/replaygain/__init__.py:111 +#: contrib/plugins/replaygain/__init__.py:113 +#: contrib/plugins/replaygain/__init__.py:124 #, python-format -msgid "Calculating album gain for \"%s\"..." +msgid "Calculating album gain for \"%(album)s\"..." msgstr "" -#: contrib/plugins/replaygain/__init__.py:119 +#: contrib/plugins/replaygain/__init__.py:135 #, python-format -msgid "Album gain for \"%s\" successfully calculated." +msgid "Album gain for \"%(album)s\" successfully calculated." msgstr "" -#: contrib/plugins/replaygain/__init__.py:121 +#: contrib/plugins/replaygain/__init__.py:140 #, python-format -msgid "Could not calculate album gain for \"%s\"." +msgid "Could not calculate album gain for \"%(album)s\"." msgstr "" -#: picard/acoustid.py:102 -#, python-format -msgid "AcoustID lookup network error for '%s'!" +#: contrib/plugins/replaygain/ui_options_replaygain.py:59 +msgid "Replay Gain" msgstr "" -#: picard/acoustid.py:117 -#, python-format -msgid "AcoustID lookup failed for '%s'!" +#: contrib/plugins/replaygain/ui_options_replaygain.py:60 +msgid "Path to VorbisGain:" msgstr "" -#: picard/acoustid.py:128 -#, python-format -msgid "Acoustid lookup returned no result for file '%s'" +#: contrib/plugins/replaygain/ui_options_replaygain.py:61 +msgid "Path to MP3Gain:" msgstr "" -#: picard/acoustid.py:132 -#, python-format -msgid "Looking up the fingerprint for file %s..." -msgstr "A procurar a impressão digital para o ficheiro %s..." - -#: picard/acoustidmanager.py:78 -msgid "Submitting AcoustIDs..." -msgstr "Submetendo AcoustIDs..." - -#: picard/acoustidmanager.py:83 -#, python-format -msgid "AcoustID submission failed with error '%s'" +#: contrib/plugins/replaygain/ui_options_replaygain.py:62 +msgid "Path to metaflac:" msgstr "" -#: picard/acoustidmanager.py:85 +#: contrib/plugins/replaygain/ui_options_replaygain.py:63 +msgid "Path to wvgain:" +msgstr "" + +#: contrib/plugins/viewvariables/__init__.py:42 +#, python-format +msgid "File: %s" +msgstr "" + +#: contrib/plugins/viewvariables/__init__.py:47 +#, python-format +msgid "Track: %s %s " +msgstr "" + +#: contrib/plugins/viewvariables/__init__.py:49 +msgid "Variables" +msgstr "" + +#: contrib/plugins/viewvariables/__init__.py:69 +msgid "File variables" +msgstr "" + +#: contrib/plugins/viewvariables/__init__.py:74 +msgid "Hidden variables" +msgstr "" + +#: contrib/plugins/viewvariables/__init__.py:79 +msgid "Tag variables" +msgstr "" + +#: contrib/plugins/viewvariables/ui_variables_dialog.py:73 +msgid "Variable" +msgstr "" + +#: contrib/plugins/viewvariables/ui_variables_dialog.py:75 +msgid "Value" +msgstr "" + +#: picard/acoustid.py:109 +#, python-format +msgid "AcoustID lookup network error for '%(filename)s'!" +msgstr "" + +#: picard/acoustid.py:133 +#, python-format +msgid "AcoustID lookup failed for '%(filename)s'!" +msgstr "" + +#: picard/acoustid.py:155 +#, python-format +msgid "AcoustID lookup returned no result for file '%(filename)s'" +msgstr "" + +#: picard/acoustid.py:166 +#, python-format +msgid "Looking up the fingerprint for file '%(filename)s' ..." +msgstr "" + +#: picard/acoustidmanager.py:80 +msgid "Submitting AcoustIDs ..." +msgstr "" + +#: picard/acoustidmanager.py:94 +#, python-format +msgid "AcoustID submission failed with error '%(error)s'" +msgstr "" + +#: picard/acoustidmanager.py:102 msgid "AcoustIDs successfully submitted." msgstr "" -#: picard/album.py:64 picard/cluster.py:234 +#: picard/album.py:65 picard/cluster.py:255 msgid "Unmatched Files" msgstr "Os ficheiros não correspondem" -#: picard/album.py:187 +#: picard/album.py:188 #, python-format msgid "[could not load album %s]" msgstr "[não foi possivel carregar o álbum %s]" -#: picard/album.py:272 +#: picard/album.py:277 #, python-format -msgid "Album %s loaded" -msgstr "O álbum %s foi carregado" +msgid "Album %(id)s loaded: %(artist)s - %(album)s" +msgstr "" -#: picard/album.py:288 +#: picard/album.py:294 +#, python-format +msgid "Loading album %(id)s ..." +msgstr "" + +#: picard/album.py:303 msgid "[loading album information]" msgstr "[a carregar a informação do álbum]" -#: picard/album.py:463 +#: picard/album.py:478 #, python-format msgid "; %i image" msgid_plural "; %i images" msgstr[0] "" msgstr[1] "" -#: picard/cluster.py:150 picard/cluster.py:159 +#: picard/cluster.py:155 picard/cluster.py:168 #, python-format -msgid "No matching releases for cluster %s" -msgstr "Nenhum lançamento coincidente com o cluster %s" +msgid "No matching releases for cluster %(album)s" +msgstr "" -#: picard/cluster.py:161 +#: picard/cluster.py:174 #, python-format -msgid "Cluster %s identified!" -msgstr "Cluster %s identificado!" +msgid "Cluster %(album)s identified!" +msgstr "" -#: picard/cluster.py:168 +#: picard/cluster.py:185 #, python-format -msgid "Looking up the metadata for cluster %s..." -msgstr "A procurar meta-dados para o cluster %s..." +msgid "Looking up the metadata for cluster %(album)s..." +msgstr "" -#: picard/collection.py:60 +#: picard/collection.py:64 #, python-format -msgid "Added %i release to collection \"%s\"" -msgid_plural "Added %i releases to collection \"%s\"" +msgid "Added %(count)i release to collection \"%(name)s\"" +msgid_plural "Added %(count)i releases to collection \"%(name)s\"" msgstr[0] "" msgstr[1] "" -#: picard/collection.py:72 +#: picard/collection.py:86 #, python-format -msgid "Removed %i release from collection \"%s\"" -msgid_plural "Removed %i releases from collection \"%s\"" +msgid "Removed %(count)i release from collection \"%(name)s\"" +msgid_plural "Removed %(count)i releases from collection \"%(name)s\"" msgstr[0] "" msgstr[1] "" -#: picard/collection.py:81 +#: picard/collection.py:100 #, python-format -msgid "Error loading collections: %s" -msgstr "Erro ao carregar as colecções: %s" +msgid "Error loading collections: %(error)s" +msgstr "" -#: picard/config_upgrade.py:57 picard/config_upgrade.py:70 +#: picard/config_upgrade.py:58 picard/config_upgrade.py:71 msgid "Various Artists file naming scheme removal" msgstr "" -#: picard/config_upgrade.py:58 +#: picard/config_upgrade.py:59 msgid "" "The separate file naming scheme for various artists albums has been removed in this version of Picard.\n" "Your file naming scheme has automatically been merged with that of single artist albums." msgstr "" -#: picard/config_upgrade.py:71 +#: picard/config_upgrade.py:72 msgid "" "The separate file naming scheme for various artists albums has been removed in this version of Picard.\n" "You currently do not use this option, but have a separate file naming scheme defined.\n" "Do you want to remove it or merge it with your file naming scheme for single artist albums?" msgstr "" -#: picard/config_upgrade.py:77 +#: picard/config_upgrade.py:78 msgid "Merge" msgstr "" -#: picard/config_upgrade.py:77 picard/ui/metadatabox.py:254 +#: picard/config_upgrade.py:78 picard/ui/metadatabox.py:254 msgid "Remove" msgstr "Remover" -#: picard/const.py:67 -msgid "CD" -msgstr "CD" - -#: picard/const.py:68 -msgid "CD-R" -msgstr "CD-R" - -#: picard/const.py:69 -msgid "HDCD" -msgstr "HDCD" - -#: picard/const.py:70 -msgid "8cm CD" -msgstr "CD 8cm" - -#: picard/const.py:71 -msgid "Vinyl" -msgstr "Vinil" - -#: picard/const.py:72 -msgid "7\" Vinyl" -msgstr "Vinil 7\"" - -#: picard/const.py:73 -msgid "10\" Vinyl" -msgstr "Vinil 10\"" - -#: picard/const.py:74 -msgid "12\" Vinyl" -msgstr "Vinil 12\"" - -#: picard/const.py:75 -msgid "Digital Media" -msgstr "Multimédia digital" - -#: picard/const.py:76 -msgid "USB Flash Drive" -msgstr "Unidade USB" - -#: picard/const.py:77 -msgid "slotMusic" -msgstr "slotMusic" - -#: picard/const.py:78 -msgid "Cassette" -msgstr "Cassete" - -#: picard/const.py:79 -msgid "DVD" -msgstr "DVD" - -#: picard/const.py:80 -msgid "DVD-Audio" -msgstr "DVD áudio" - -#: picard/const.py:81 -msgid "DVD-Video" -msgstr "DVD vídeo" - -#: picard/const.py:82 -msgid "SACD" -msgstr "SACD" - -#: picard/const.py:83 -msgid "DualDisc" -msgstr "DualDisc" - -#: picard/const.py:84 -msgid "MiniDisc" -msgstr "MiniDisc" - -#: picard/const.py:85 -msgid "Blu-ray" -msgstr "Blu-ray" - -#: picard/const.py:86 -msgid "HD-DVD" -msgstr "HD-DVD" - -#: picard/const.py:87 -msgid "Videotape" -msgstr "Videotape" - -#: picard/const.py:88 -msgid "VHS" -msgstr "VHS" - -#: picard/const.py:89 -msgid "Betamax" -msgstr "Betamax" - #: picard/const.py:90 -msgid "VCD" -msgstr "VCD" - -#: picard/const.py:91 -msgid "SVCD" -msgstr "SVCD" - -#: picard/const.py:92 -msgid "UMD" -msgstr "UMD" - -#: picard/const.py:93 picard/coverartarchive.py:33 -#: picard/ui/ui_options_releases.py:226 -msgid "Other" -msgstr "Outros" - -#: picard/const.py:94 -msgid "LaserDisc" -msgstr "LaserDisc" - -#: picard/const.py:95 -msgid "Cartridge" -msgstr "Cartucho" - -#: picard/const.py:96 -msgid "Reel-to-reel" -msgstr "Reel-to-reel" - -#: picard/const.py:97 -msgid "DAT" -msgstr "DAT" - -#: picard/const.py:98 -msgid "Wax Cylinder" -msgstr "Wax Cylinder" - -#: picard/const.py:99 -msgid "Piano Roll" -msgstr "Piano Roll" - -#: picard/const.py:100 -msgid "DCC" -msgstr "DCC" - -#: picard/const.py:115 msgid "Danish" msgstr "Dinamarquês" -#: picard/const.py:116 +#: picard/const.py:91 msgid "German" msgstr "Alemão" -#: picard/const.py:118 +#: picard/const.py:93 msgid "English" msgstr "Inglês" -#: picard/const.py:119 +#: picard/const.py:94 msgid "English (Canada)" msgstr "Inglês (Canadá)" -#: picard/const.py:120 +#: picard/const.py:95 msgid "English (UK)" msgstr "Inglês (UK)" -#: picard/const.py:122 +#: picard/const.py:97 msgid "Spanish" msgstr "Espanhol" -#: picard/const.py:123 +#: picard/const.py:98 msgid "Estonian" msgstr "Estónio" -#: picard/const.py:125 +#: picard/const.py:100 msgid "Finnish" msgstr "Finlandês" -#: picard/const.py:127 +#: picard/const.py:102 msgid "French" msgstr "Francês" -#: picard/const.py:136 +#: picard/const.py:111 msgid "Italian" msgstr "Italiano" -#: picard/const.py:143 +#: picard/const.py:118 msgid "Dutch" msgstr "Holandês" -#: picard/const.py:145 +#: picard/const.py:120 msgid "Polish" msgstr "Polaco" -#: picard/const.py:147 +#: picard/const.py:122 msgid "Brazilian Portuguese" msgstr "Português do Brasil" -#: picard/const.py:154 +#: picard/const.py:129 msgid "Swedish" msgstr "Sueco" -#: picard/coverart.py:84 +#: picard/coverart.py:85 #, python-format -msgid "Coverart %s downloaded" +msgid "Cover art of type '%(type)s' downloaded for %(albumid)s from %(host)s" msgstr "" -#: picard/coverart.py:240 +#: picard/coverart.py:256 #, python-format -msgid "Downloading http://%s:%i%s" -msgstr "Transferindo http://%s:%i%s" - -#: picard/coverartarchive.py:24 -msgid "Front" -msgstr "" - -#: picard/coverartarchive.py:25 -msgid "Back" -msgstr "Voltar" - -#: picard/coverartarchive.py:26 -msgid "Booklet" -msgstr "" - -#: picard/coverartarchive.py:27 -msgid "Medium" -msgstr "" - -#: picard/coverartarchive.py:28 -msgid "Tray" -msgstr "" - -#: picard/coverartarchive.py:29 -msgid "Obi" +msgid "" +"Downloading cover art of type '%(type)s' for %(albumid)s from %(host)s .." msgstr "" #: picard/coverartarchive.py:30 -msgid "Spine" -msgstr "" - -#: picard/coverartarchive.py:31 picard/ui/mainwindow.py:546 -msgid "Track" -msgstr "Faixa" - -#: picard/coverartarchive.py:32 -msgid "Sticker" -msgstr "" - -#: picard/coverartarchive.py:34 msgid "Unknown" msgstr "" -#: picard/file.py:536 +#: picard/file.py:494 #, python-format -msgid "No matching tracks for file %s" -msgstr "Nenhuma faixa coincidente com %s" +msgid "No matching tracks for file '%(filename)s'" +msgstr "" -#: picard/file.py:548 +#: picard/file.py:510 #, python-format -msgid "No matching tracks above the threshold for file %s" -msgstr "Nenhumas faixas coincidentes com a entrada do ficheiro %s" +msgid "No matching tracks above the threshold for file '%(filename)s'" +msgstr "" -#: picard/file.py:551 +#: picard/file.py:517 #, python-format -msgid "File %s identified!" -msgstr "Ficheiro %s identificado!" +msgid "File '%(filename)s' identified!" +msgstr "" -#: picard/file.py:567 +#: picard/file.py:537 #, python-format -msgid "Looking up the metadata for file %s..." -msgstr "A procurar meta-dados para o ficheiro %s..." +msgid "Looking up the metadata for file %(filename)s ..." +msgstr "" #: picard/releasegroup.py:53 msgid "Tracks" @@ -519,11 +402,11 @@ msgstr "" msgid "Year" msgstr "" -#: picard/releasegroup.py:55 picard/ui/cdlookup.py:34 +#: picard/releasegroup.py:55 picard/ui/cdlookup.py:35 msgid "Country" msgstr "País" -#: picard/releasegroup.py:56 picard/util/tags.py:81 +#: picard/releasegroup.py:56 msgid "Format" msgstr "Formato" @@ -543,16 +426,23 @@ msgstr "" msgid "[no release info]" msgstr "[sem info de lançamento]" -#: picard/tagger.py:316 +#: picard/tagger.py:370 #, python-format -msgid "Loading directory %s" -msgstr "Carregando pasta %s" +msgid "Adding %(count)d file from '%(directory)s' ..." +msgid_plural "Adding %(count)d files from '%(directory)s' ..." +msgstr[0] "" +msgstr[1] "" -#: picard/tagger.py:452 +#: picard/tagger.py:512 +#, python-format +msgid "Removing album %(id)s: %(artist)s - %(album)s" +msgstr "" + +#: picard/tagger.py:528 msgid "CD Lookup Error" msgstr "Erro ao Procurar CD" -#: picard/tagger.py:453 +#: picard/tagger.py:529 #, python-format msgid "" "Error while reading CD:\n" @@ -560,44 +450,43 @@ msgid "" "%s" msgstr "Erro ao ler o CD:\n\n%s" -#: picard/ui/cdlookup.py:34 picard/ui/mainwindow.py:544 -#: picard/ui/ui_options_releases.py:216 picard/util/tags.py:21 +#: picard/ui/cdlookup.py:35 picard/ui/mainwindow.py:597 picard/util/tags.py:21 msgid "Album" msgstr "Álbum" -#: picard/ui/cdlookup.py:34 picard/ui/itemviews.py:96 -#: picard/ui/mainwindow.py:545 picard/util/tags.py:22 +#: picard/ui/cdlookup.py:35 picard/ui/itemviews.py:96 +#: picard/ui/mainwindow.py:598 picard/util/tags.py:22 msgid "Artist" msgstr "Artista" -#: picard/ui/cdlookup.py:34 picard/util/tags.py:24 +#: picard/ui/cdlookup.py:35 picard/util/tags.py:24 msgid "Date" msgstr "Data" -#: picard/ui/cdlookup.py:35 +#: picard/ui/cdlookup.py:36 msgid "Labels" msgstr "Etiquetas" -#: picard/ui/cdlookup.py:35 +#: picard/ui/cdlookup.py:36 msgid "Catalog #s" msgstr "" -#: picard/ui/cdlookup.py:35 picard/util/tags.py:79 +#: picard/ui/cdlookup.py:36 picard/util/tags.py:78 msgid "Barcode" msgstr "Código de Barras" -#: picard/ui/collectionmenu.py:31 +#: picard/ui/collectionmenu.py:42 msgid "Refresh List" msgstr "" -#: picard/ui/collectionmenu.py:92 +#: picard/ui/collectionmenu.py:86 #, python-format msgid "%s (%i release)" msgid_plural "%s (%i releases)" msgstr[0] "" msgstr[1] "" -#: picard/ui/coverartbox.py:142 +#: picard/ui/coverartbox.py:141 msgid "View release on MusicBrainz" msgstr "Ver lançamento no MusicBrainz" @@ -613,59 +502,59 @@ msgstr "Mostrar Fic&heiros Ocultos" msgid "&Set as starting directory" msgstr "" -#: picard/ui/infodialog.py:36 picard/ui/infodialog.py:75 +#: picard/ui/infodialog.py:37 picard/ui/infodialog.py:80 msgid "Info" msgstr "Info" -#: picard/ui/infodialog.py:80 +#: picard/ui/infodialog.py:85 msgid "Filename:" msgstr "Nome do Ficheiro:" -#: picard/ui/infodialog.py:82 +#: picard/ui/infodialog.py:87 msgid "Format:" msgstr "Formato:" -#: picard/ui/infodialog.py:86 +#: picard/ui/infodialog.py:91 msgid "Size:" msgstr "Tamanho:" -#: picard/ui/infodialog.py:90 +#: picard/ui/infodialog.py:95 msgid "Length:" msgstr "Duração:" -#: picard/ui/infodialog.py:92 +#: picard/ui/infodialog.py:97 msgid "Bitrate:" msgstr "Taxa de bits:" -#: picard/ui/infodialog.py:94 +#: picard/ui/infodialog.py:99 msgid "Sample rate:" msgstr "Rácio de amostra:" -#: picard/ui/infodialog.py:96 +#: picard/ui/infodialog.py:101 msgid "Bits per sample:" msgstr "Bits por amostra:" -#: picard/ui/infodialog.py:100 +#: picard/ui/infodialog.py:105 msgid "Mono" msgstr "Mono" -#: picard/ui/infodialog.py:102 +#: picard/ui/infodialog.py:107 msgid "Stereo" msgstr "Estéreo" -#: picard/ui/infodialog.py:105 +#: picard/ui/infodialog.py:110 msgid "Channels:" msgstr "Canais:" -#: picard/ui/infodialog.py:116 +#: picard/ui/infodialog.py:121 msgid "Album Info" msgstr "Info do Álbum" -#: picard/ui/infodialog.py:124 +#: picard/ui/infodialog.py:129 msgid "&Errors" msgstr "" -#: picard/ui/infodialog.py:134 picard/ui/ui_infodialog.py:77 +#: picard/ui/infodialog.py:139 picard/ui/ui_infodialog.py:73 msgid "&Info" msgstr "&Informação" @@ -689,7 +578,7 @@ msgstr "" msgid "Title" msgstr "Título" -#: picard/ui/itemviews.py:95 picard/util/tags.py:88 +#: picard/ui/itemviews.py:95 picard/util/tags.py:86 msgid "Length" msgstr "Duração" @@ -714,8 +603,8 @@ msgid "Collections" msgstr "" #: picard/ui/itemviews.py:365 -msgid "&Plugins" -msgstr "&Plugins" +msgid "P&lugins" +msgstr "" #: picard/ui/itemviews.py:541 msgid "file view" @@ -737,12 +626,16 @@ msgstr "vista de álbum" msgid "Contains albums and matched files" msgstr "Contém álbuns e ficheiros correspondentes" -#: picard/ui/logview.py:91 +#: picard/ui/logview.py:109 msgid "Log" msgstr "Registo" -#: picard/ui/logview.py:99 -msgid "Status History" +#: picard/ui/logview.py:113 +msgid "Debug mode" +msgstr "" + +#: picard/ui/logview.py:134 +msgid "Activity History" msgstr "" #: picard/ui/mainwindow.py:74 @@ -776,276 +669,309 @@ msgstr "" #: picard/ui/mainwindow.py:220 msgid "" -"Picard listens on a port to integrate with your browser and downloads " -"release information when you click the \"Tagger\" buttons on the MusicBrainz" -" website" +"Picard listens on this port to integrate with your browser. When you " +"\"Search\" or \"Open in Browser\" from Picard, clicking the \"Tagger\" " +"button on the web page loads the release into Picard." msgstr "" -#: picard/ui/mainwindow.py:240 +#: picard/ui/mainwindow.py:243 #, python-format msgid " Listening on port %(port)d " msgstr "" -#: picard/ui/mainwindow.py:263 +#: picard/ui/mainwindow.py:299 msgid "Submission Error" msgstr "Erro na Submissão" -#: picard/ui/mainwindow.py:264 +#: picard/ui/mainwindow.py:300 msgid "" "You need to configure your AcoustID API key before you can submit " "fingerprints." msgstr "" -#: picard/ui/mainwindow.py:269 +#: picard/ui/mainwindow.py:305 msgid "&Options..." msgstr "&Opções..." -#: picard/ui/mainwindow.py:273 +#: picard/ui/mainwindow.py:309 msgid "&Cut" msgstr "&Cortar" -#: picard/ui/mainwindow.py:278 +#: picard/ui/mainwindow.py:314 msgid "&Paste" msgstr "Co&lar" -#: picard/ui/mainwindow.py:283 +#: picard/ui/mainwindow.py:319 msgid "&Help..." msgstr "&Ajuda..." -#: picard/ui/mainwindow.py:288 +#: picard/ui/mainwindow.py:323 msgid "&About..." msgstr "&Acerca..." -#: picard/ui/mainwindow.py:292 +#: picard/ui/mainwindow.py:327 msgid "&Donate..." msgstr "&Doar..." -#: picard/ui/mainwindow.py:295 +#: picard/ui/mainwindow.py:330 msgid "&Report a Bug..." msgstr "&Reportar um Erro..." -#: picard/ui/mainwindow.py:298 +#: picard/ui/mainwindow.py:333 msgid "&Support Forum..." msgstr "Forum de &Suporte..." -#: picard/ui/mainwindow.py:301 +#: picard/ui/mainwindow.py:336 msgid "&Add Files..." msgstr "&Adicionar Ficheiros..." -#: picard/ui/mainwindow.py:302 +#: picard/ui/mainwindow.py:337 msgid "Add files to the tagger" msgstr "Adicionar ficheiros ao marcador" -#: picard/ui/mainwindow.py:307 +#: picard/ui/mainwindow.py:342 msgid "A&dd Folder..." msgstr "A&dicionar Pasta..." -#: picard/ui/mainwindow.py:308 +#: picard/ui/mainwindow.py:343 msgid "Add a folder to the tagger" msgstr "Adicionar pasta ao marcador" -#: picard/ui/mainwindow.py:310 +#: picard/ui/mainwindow.py:345 msgid "Ctrl+D" msgstr "Ctrl+D" -#: picard/ui/mainwindow.py:313 +#: picard/ui/mainwindow.py:348 msgid "&Save" msgstr "&Guardar" -#: picard/ui/mainwindow.py:314 +#: picard/ui/mainwindow.py:349 msgid "Save selected files" msgstr "Guardar os ficheiros seleccionados" -#: picard/ui/mainwindow.py:320 +#: picard/ui/mainwindow.py:355 msgid "S&ubmit" msgstr "S&ubmeter" -#: picard/ui/mainwindow.py:321 -msgid "Submit fingerprints" +#: picard/ui/mainwindow.py:356 +msgid "Submit acoustic fingerprints" msgstr "" -#: picard/ui/mainwindow.py:325 +#: picard/ui/mainwindow.py:360 msgid "E&xit" msgstr "Sai&r" -#: picard/ui/mainwindow.py:328 +#: picard/ui/mainwindow.py:363 msgid "Ctrl+Q" msgstr "Ctrl+Q" -#: picard/ui/mainwindow.py:331 +#: picard/ui/mainwindow.py:366 msgid "&Remove" msgstr "&Remover" -#: picard/ui/mainwindow.py:332 +#: picard/ui/mainwindow.py:367 msgid "Remove selected files/albums" msgstr "Remover os ficheiros/álbuns seleccionados" -#: picard/ui/mainwindow.py:336 +#: picard/ui/mainwindow.py:371 msgid "Lookup in &Browser" msgstr "" -#: picard/ui/mainwindow.py:337 +#: picard/ui/mainwindow.py:372 msgid "Lookup selected item on MusicBrainz website" msgstr "Procurar o item seleccionado no site MusicBrainz" -#: picard/ui/mainwindow.py:341 +#: picard/ui/mainwindow.py:376 msgid "File &Browser" msgstr "Nave&gador de Ficheiros" -#: picard/ui/mainwindow.py:345 +#: picard/ui/mainwindow.py:380 msgid "Ctrl+B" msgstr "Ctrl+B" -#: picard/ui/mainwindow.py:348 +#: picard/ui/mainwindow.py:383 msgid "&Cover Art" msgstr "&Capa do Álbum" -#: picard/ui/mainwindow.py:354 picard/ui/mainwindow.py:539 +#: picard/ui/mainwindow.py:389 picard/ui/mainwindow.py:591 msgid "Search" msgstr "Procurar" -#: picard/ui/mainwindow.py:357 -msgid "&CD Lookup..." -msgstr "Pesquisa de &CD..." +#: picard/ui/mainwindow.py:392 +msgid "Lookup &CD..." +msgstr "" -#: picard/ui/mainwindow.py:358 picard/ui/mainwindow.py:359 -msgid "Lookup CD" -msgstr "Procurar CD" +#: picard/ui/mainwindow.py:393 +msgid "Lookup the details of the CD in your drive" +msgstr "" -#: picard/ui/mainwindow.py:361 +#: picard/ui/mainwindow.py:395 msgid "Ctrl+K" msgstr "Ctrl+K" -#: picard/ui/mainwindow.py:364 +#: picard/ui/mainwindow.py:398 msgid "&Scan" msgstr "Pe&squisar" -#: picard/ui/mainwindow.py:367 +#: picard/ui/mainwindow.py:401 msgid "Ctrl+Y" msgstr "Ctrl+Y" -#: picard/ui/mainwindow.py:370 +#: picard/ui/mainwindow.py:404 msgid "Cl&uster" msgstr "Cl&uster" -#: picard/ui/mainwindow.py:373 +#: picard/ui/mainwindow.py:407 msgid "Ctrl+U" msgstr "Ctrl+U" -#: picard/ui/mainwindow.py:376 +#: picard/ui/mainwindow.py:410 msgid "&Lookup" msgstr "&Procurar" -#: picard/ui/mainwindow.py:377 picard/ui/mainwindow.py:378 -msgid "Lookup metadata" -msgstr "Procurar meta-dados" +#: picard/ui/mainwindow.py:411 +msgid "Lookup selected items in MusicBrainz" +msgstr "" -#: picard/ui/mainwindow.py:381 +#: picard/ui/mainwindow.py:416 msgid "Ctrl+L" msgstr "Ctrl+L" -#: picard/ui/mainwindow.py:384 +#: picard/ui/mainwindow.py:419 msgid "&Info..." msgstr "&Info..." -#: picard/ui/mainwindow.py:387 +#: picard/ui/mainwindow.py:422 msgid "Ctrl+I" msgstr "Ctrl+I" -#: picard/ui/mainwindow.py:390 +#: picard/ui/mainwindow.py:425 msgid "&Refresh" msgstr "Actualiza&r" -#: picard/ui/mainwindow.py:391 +#: picard/ui/mainwindow.py:426 msgid "Ctrl+R" msgstr "Ctrl+R" -#: picard/ui/mainwindow.py:394 +#: picard/ui/mainwindow.py:429 msgid "&Rename Files" msgstr "&Renomear Ficheiros" -#: picard/ui/mainwindow.py:399 +#: picard/ui/mainwindow.py:434 msgid "&Move Files" msgstr "&Mover Ficheiros" -#: picard/ui/mainwindow.py:404 +#: picard/ui/mainwindow.py:439 msgid "Save &Tags" msgstr "&Guardar Marcas" -#: picard/ui/mainwindow.py:409 +#: picard/ui/mainwindow.py:444 msgid "Tags From &File Names..." msgstr "Marcas Do Nome de &Ficheiro..." -#: picard/ui/mainwindow.py:412 -msgid "View &Log..." -msgstr "Ver &Registo..." - -#: picard/ui/mainwindow.py:415 -msgid "View Status &History..." +#: picard/ui/mainwindow.py:447 +msgid "&Open My Collections in Browser" msgstr "" -#: picard/ui/mainwindow.py:422 -msgid "&Open..." -msgstr "&Abrir..." +#: picard/ui/mainwindow.py:451 +msgid "View Error/Debug &Log" +msgstr "" -#: picard/ui/mainwindow.py:423 -msgid "Open the file" -msgstr "Abrir o ficheiro" +#: picard/ui/mainwindow.py:454 +msgid "View Activity &History" +msgstr "" -#: picard/ui/mainwindow.py:426 -msgid "Open &Folder..." -msgstr "Abrir &Pasta..." +#: picard/ui/mainwindow.py:461 +msgid "&Play file" +msgstr "" -#: picard/ui/mainwindow.py:427 -msgid "Open the containing folder" -msgstr "Abrir a pasta correspondente" +#: picard/ui/mainwindow.py:462 +msgid "Play the file in your default media player" +msgstr "" -#: picard/ui/mainwindow.py:448 +#: picard/ui/mainwindow.py:466 +msgid "Open Containing &Folder" +msgstr "" + +#: picard/ui/mainwindow.py:467 +msgid "Open the containing folder in your file explorer" +msgstr "" + +#: picard/ui/mainwindow.py:492 msgid "&File" msgstr "&Ficheiro" -#: picard/ui/mainwindow.py:456 +#: picard/ui/mainwindow.py:503 msgid "&Edit" msgstr "&Editar" -#: picard/ui/mainwindow.py:462 +#: picard/ui/mainwindow.py:509 msgid "&View" msgstr "&Ver" -#: picard/ui/mainwindow.py:470 +#: picard/ui/mainwindow.py:515 msgid "&Options" msgstr "&Opções" -#: picard/ui/mainwindow.py:476 +#: picard/ui/mainwindow.py:521 msgid "&Tools" msgstr "Ferramen&tas" -#: picard/ui/mainwindow.py:485 picard/ui/util.py:35 +#: picard/ui/mainwindow.py:532 picard/ui/util.py:35 msgid "&Help" msgstr "&Ajuda" -#: picard/ui/mainwindow.py:505 +#: picard/ui/mainwindow.py:553 msgid "Actions" msgstr "" -#: picard/ui/mainwindow.py:608 +#: picard/ui/mainwindow.py:599 +msgid "Track" +msgstr "Faixa" + +#: picard/ui/mainwindow.py:662 msgid "All Supported Formats" msgstr "Todos os Formatos Suportados" -#: picard/ui/mainwindow.py:705 +#: picard/ui/mainwindow.py:695 +#, python-format +msgid "Adding directory: '%(directory)s' ..." +msgstr "" + +#: picard/ui/mainwindow.py:702 +#, python-format +msgid "Adding multiple directories from '%(directory)s' ..." +msgstr "" + +#: picard/ui/mainwindow.py:767 msgid "Configuration Required" msgstr "Configuração Requerida" -#: picard/ui/mainwindow.py:706 +#: picard/ui/mainwindow.py:768 msgid "" "Audio fingerprinting is not yet configured. Would you like to configure it " "now?" msgstr "" -#: picard/ui/mainwindow.py:784 picard/ui/mainwindow.py:791 +#: picard/ui/mainwindow.py:848 #, python-format -msgid " (Error: %s)" -msgstr " (Erro: %s)" +msgid "%(filename)s (error: %(error)s)" +msgstr "" + +#: picard/ui/mainwindow.py:854 +#, python-format +msgid "%(filename)s" +msgstr "" + +#: picard/ui/mainwindow.py:864 +#, python-format +msgid "%(filename)s (%(similarity)d%%) (error: %(error)s)" +msgstr "" + +#: picard/ui/mainwindow.py:871 +#, python-format +msgid "%(filename)s (%(similarity)d%%)" +msgstr "" #: picard/ui/metadatabox.py:82 #, python-format @@ -1099,387 +1025,387 @@ msgid_plural "Use Original Values" msgstr[0] "" msgstr[1] "" -#: picard/ui/passworddialog.py:37 +#: picard/ui/passworddialog.py:40 #, python-format msgid "" "The server %s requires you to login. Please enter your username and " "password." msgstr "O servidor %s requer o início de sessão. Por favor, indique o nome de utilizador e a palavra-passe." -#: picard/ui/passworddialog.py:75 +#: picard/ui/passworddialog.py:79 #, python-format msgid "" "The proxy %s requires you to login. Please enter your username and password." msgstr "O proxy %s requer início de sessão. Por favor, introduza o nome de utilizador e a palavra-passe." -#: picard/ui/tagsfromfilenames.py:55 picard/ui/tagsfromfilenames.py:100 +#: picard/ui/tagsfromfilenames.py:56 picard/ui/tagsfromfilenames.py:101 msgid "File Name" msgstr "Nome do Ficheiro" -#: picard/ui/ui_cdlookup.py:66 picard/ui/ui_options_cdlookup.py:55 -#: picard/ui/ui_options_cdlookup_select.py:62 picard/ui/options/cdlookup.py:38 +#: picard/ui/ui_cdlookup.py:53 picard/ui/ui_options_cdlookup.py:42 +#: picard/ui/ui_options_cdlookup_select.py:49 picard/ui/options/cdlookup.py:38 msgid "CD Lookup" msgstr "Procurar CD" -#: picard/ui/ui_cdlookup.py:67 +#: picard/ui/ui_cdlookup.py:54 msgid "The following releases on MusicBrainz match the CD:" msgstr "Os seguintes itens MusicBrainz coincidem com o CD:" -#: picard/ui/ui_cdlookup.py:68 +#: picard/ui/ui_cdlookup.py:55 msgid "OK" msgstr "OK" -#: picard/ui/ui_cdlookup.py:69 +#: picard/ui/ui_cdlookup.py:56 msgid "Lookup manually" msgstr "" -#: picard/ui/ui_cdlookup.py:70 +#: picard/ui/ui_cdlookup.py:57 msgid "Cancel" msgstr "Cancelar" -#: picard/ui/ui_edittagdialog.py:101 +#: picard/ui/ui_edittagdialog.py:88 msgid "Edit Tag" msgstr "Editar Etiqueta" -#: picard/ui/ui_edittagdialog.py:102 +#: picard/ui/ui_edittagdialog.py:89 msgid "Edit value" msgstr "Editar valor" -#: picard/ui/ui_edittagdialog.py:103 +#: picard/ui/ui_edittagdialog.py:90 msgid "Add value" msgstr "Adicionar valor" -#: picard/ui/ui_edittagdialog.py:104 +#: picard/ui/ui_edittagdialog.py:91 msgid "Remove value" msgstr "Remover valor" -#: picard/ui/ui_infodialog.py:78 +#: picard/ui/ui_infodialog.py:74 msgid "A&rtwork" msgstr "Capa de Ál&bum:" -#: picard/ui/ui_infostatus.py:100 +#: picard/ui/ui_infostatus.py:96 msgid "Form" msgstr "" -#: picard/ui/ui_options.py:51 +#: picard/ui/ui_options.py:38 msgid "Options" msgstr "Opções" -#: picard/ui/ui_options_advanced.py:46 +#: picard/ui/ui_options_advanced.py:42 msgid "Advanced options" msgstr "" -#: picard/ui/ui_options_advanced.py:47 +#: picard/ui/ui_options_advanced.py:43 msgid "Ignore file paths matching the following regular expression:" msgstr "" -#: picard/ui/ui_options_cdlookup.py:56 +#: picard/ui/ui_options_cdlookup.py:43 msgid "CD-ROM device to use for lookups:" msgstr "Dispositivo de CD a utilizar para pesquisas:" -#: picard/ui/ui_options_cdlookup_select.py:63 +#: picard/ui/ui_options_cdlookup_select.py:50 msgid "Default CD-ROM drive to use for lookups:" msgstr "Unidade de CD a utilizar para pesquisas:" -#: picard/ui/ui_options_cover.py:145 +#: picard/ui/ui_options_cover.py:131 msgid "Location" msgstr "Localização" -#: picard/ui/ui_options_cover.py:146 +#: picard/ui/ui_options_cover.py:132 msgid "Embed cover images into tags" msgstr "Incorporar as capas nas marcas" -#: picard/ui/ui_options_cover.py:147 +#: picard/ui/ui_options_cover.py:133 msgid "Only embed a front image" msgstr "" -#: picard/ui/ui_options_cover.py:148 +#: picard/ui/ui_options_cover.py:134 msgid "Save cover images as separate files" msgstr "Guardar imagens de capa como ficheiros separados" -#: picard/ui/ui_options_cover.py:149 +#: picard/ui/ui_options_cover.py:135 msgid "Use the following file name for images:" msgstr "Usar o seguinte nome de ficheiro para imagens:" -#: picard/ui/ui_options_cover.py:150 +#: picard/ui/ui_options_cover.py:136 msgid "Overwrite the file if it already exists" msgstr "Substituir o ficheiro se já existir" -#: picard/ui/ui_options_cover.py:151 +#: picard/ui/ui_options_cover.py:137 msgid "Coverart Providers" msgstr "" -#: picard/ui/ui_options_cover.py:152 +#: picard/ui/ui_options_cover.py:138 msgid "Amazon" msgstr "Amazon" -#: picard/ui/ui_options_cover.py:153 picard/ui/ui_options_cover.py:155 +#: picard/ui/ui_options_cover.py:139 picard/ui/ui_options_cover.py:141 msgid "Cover Art Archive" msgstr "" -#: picard/ui/ui_options_cover.py:154 +#: picard/ui/ui_options_cover.py:140 msgid "Sites on the whitelist" msgstr "" -#: picard/ui/ui_options_cover.py:156 +#: picard/ui/ui_options_cover.py:142 msgid "Only use images of the following size:" msgstr "Usar apenas imagens com o seguinte tamanho:" -#: picard/ui/ui_options_cover.py:157 +#: picard/ui/ui_options_cover.py:143 msgid "250 px" msgstr "250 px" -#: picard/ui/ui_options_cover.py:158 +#: picard/ui/ui_options_cover.py:144 msgid "500 px" msgstr "500 px" -#: picard/ui/ui_options_cover.py:159 +#: picard/ui/ui_options_cover.py:145 msgid "Full size" msgstr "Tamanho completo" -#: picard/ui/ui_options_cover.py:160 +#: picard/ui/ui_options_cover.py:146 msgid "Download only images of the following types:" msgstr "Transferir apenas imagens dos seguintes tipos:" -#: picard/ui/ui_options_cover.py:161 +#: picard/ui/ui_options_cover.py:147 msgid "Download only approved images" msgstr "Transferir apenas imagens aprovadas" -#: picard/ui/ui_options_cover.py:162 +#: picard/ui/ui_options_cover.py:148 msgid "" "Use the first image type as the filename. This will not change the filename " "of front images." msgstr "" -#: picard/ui/ui_options_fingerprinting.py:83 +#: picard/ui/ui_options_fingerprinting.py:70 msgid "Audio Fingerprinting" msgstr "" -#: picard/ui/ui_options_fingerprinting.py:84 +#: picard/ui/ui_options_fingerprinting.py:71 msgid "Do not use audio fingerprinting" msgstr "" -#: picard/ui/ui_options_fingerprinting.py:85 +#: picard/ui/ui_options_fingerprinting.py:72 msgid "Use AcoustID" msgstr "Usar AcoustID" -#: picard/ui/ui_options_fingerprinting.py:86 +#: picard/ui/ui_options_fingerprinting.py:73 msgid "AcoustID Settings" msgstr "Definições de AcoustID" -#: picard/ui/ui_options_fingerprinting.py:87 +#: picard/ui/ui_options_fingerprinting.py:74 msgid "Fingerprint calculator:" msgstr "" -#: picard/ui/ui_options_fingerprinting.py:88 -#: picard/ui/ui_options_interface.py:88 picard/ui/ui_options_renaming.py:138 +#: picard/ui/ui_options_fingerprinting.py:75 +#: picard/ui/ui_options_interface.py:75 picard/ui/ui_options_renaming.py:134 msgid "Browse..." msgstr "Procurar..." -#: picard/ui/ui_options_fingerprinting.py:89 +#: picard/ui/ui_options_fingerprinting.py:76 msgid "Download..." msgstr "Transferir..." -#: picard/ui/ui_options_fingerprinting.py:90 +#: picard/ui/ui_options_fingerprinting.py:77 msgid "API key:" msgstr "Chave API:" -#: picard/ui/ui_options_fingerprinting.py:91 +#: picard/ui/ui_options_fingerprinting.py:78 msgid "Get API key..." msgstr "Obter chave API..." -#: picard/ui/ui_options_folksonomy.py:115 picard/ui/options/folksonomy.py:28 +#: picard/ui/ui_options_folksonomy.py:102 picard/ui/options/folksonomy.py:28 msgid "Folksonomy Tags" msgstr "Marcas Folksonomy" -#: picard/ui/ui_options_folksonomy.py:117 +#: picard/ui/ui_options_folksonomy.py:104 msgid "Only use my tags" msgstr "Utilizar apenas as minhas marcas" -#: picard/ui/ui_options_folksonomy.py:120 +#: picard/ui/ui_options_folksonomy.py:107 msgid "Maximum number of tags:" msgstr "Número máximo de marcas:" -#: picard/ui/ui_options_general.py:92 +#: picard/ui/ui_options_general.py:88 msgid "MusicBrainz Server" msgstr "Servidor do MusicBrainz" -#: picard/ui/ui_options_general.py:93 picard/ui/ui_options_network.py:123 +#: picard/ui/ui_options_general.py:89 picard/ui/ui_options_network.py:110 msgid "Port:" msgstr "Porta:" -#: picard/ui/ui_options_general.py:94 picard/ui/ui_options_network.py:124 +#: picard/ui/ui_options_general.py:90 picard/ui/ui_options_network.py:111 msgid "Server address:" msgstr "Endereço do servidor:" -#: picard/ui/ui_options_general.py:95 +#: picard/ui/ui_options_general.py:91 msgid "Account Information" msgstr "Informação da Conta" -#: picard/ui/ui_options_general.py:96 picard/ui/ui_options_network.py:121 -#: picard/ui/ui_passworddialog.py:74 +#: picard/ui/ui_options_general.py:92 picard/ui/ui_options_network.py:108 +#: picard/ui/ui_passworddialog.py:70 msgid "Password:" msgstr "Palavra-passe:" -#: picard/ui/ui_options_general.py:97 picard/ui/ui_options_network.py:122 -#: picard/ui/ui_passworddialog.py:73 +#: picard/ui/ui_options_general.py:93 picard/ui/ui_options_network.py:109 +#: picard/ui/ui_passworddialog.py:69 msgid "Username:" msgstr "Nome de Utilizador:" -#: picard/ui/ui_options_general.py:98 picard/ui/options/general.py:31 +#: picard/ui/ui_options_general.py:94 picard/ui/options/general.py:31 msgid "General" msgstr "Geral" -#: picard/ui/ui_options_general.py:99 +#: picard/ui/ui_options_general.py:95 msgid "Automatically scan all new files" msgstr "Verificar todos os novos ficheiros automaticamente" -#: picard/ui/ui_options_general.py:100 +#: picard/ui/ui_options_general.py:96 msgid "Ignore MBIDs when loading new files" msgstr "Ignorar MBIDs ao carregar novos ficheiros" -#: picard/ui/ui_options_interface.py:82 +#: picard/ui/ui_options_interface.py:69 msgid "Miscellaneous" msgstr "Diversos" -#: picard/ui/ui_options_interface.py:83 +#: picard/ui/ui_options_interface.py:70 msgid "Show text labels under icons" msgstr "Mostrar texto por baixo dos ícones" -#: picard/ui/ui_options_interface.py:84 +#: picard/ui/ui_options_interface.py:71 msgid "Allow selection of multiple directories" msgstr "Permitir a selecção de vários directórios" -#: picard/ui/ui_options_interface.py:85 +#: picard/ui/ui_options_interface.py:72 msgid "Use advanced query syntax" msgstr "Utilizar consulta avançada" -#: picard/ui/ui_options_interface.py:86 +#: picard/ui/ui_options_interface.py:73 msgid "Show a quit confirmation dialog for unsaved changes" msgstr "Exibir uma janela de confirmação de saída para alterações não guardadas" -#: picard/ui/ui_options_interface.py:87 +#: picard/ui/ui_options_interface.py:74 msgid "Begin browsing in the following directory:" msgstr "" -#: picard/ui/ui_options_interface.py:89 +#: picard/ui/ui_options_interface.py:76 msgid "User interface language:" msgstr "Idioma da interface do utilizador:" -#: picard/ui/ui_options_matching.py:86 +#: picard/ui/ui_options_matching.py:73 msgid "Thresholds" msgstr "Limites" -#: picard/ui/ui_options_matching.py:87 +#: picard/ui/ui_options_matching.py:74 msgid "Minimal similarity for matching files to tracks:" msgstr "Semelhança mínima para correspondência de ficheiros com faixas:" -#: picard/ui/ui_options_matching.py:91 +#: picard/ui/ui_options_matching.py:78 msgid "Minimal similarity for file lookups:" msgstr "Semelhança mínima para as pesquisas de ficheiros:" -#: picard/ui/ui_options_matching.py:92 +#: picard/ui/ui_options_matching.py:79 msgid "Minimal similarity for cluster lookups:" msgstr "Semelhança mínima para as pesquisas de cluster:" -#: picard/ui/ui_options_metadata.py:114 picard/ui/options/metadata.py:29 +#: picard/ui/ui_options_metadata.py:101 picard/ui/options/metadata.py:29 msgid "Metadata" msgstr "Meta-dados" -#: picard/ui/ui_options_metadata.py:115 +#: picard/ui/ui_options_metadata.py:102 msgid "Translate artist names to this locale where possible:" msgstr "" -#: picard/ui/ui_options_metadata.py:116 +#: picard/ui/ui_options_metadata.py:103 msgid "Use standardized artist names" msgstr "Usar nomes de artista padronizados" -#: picard/ui/ui_options_metadata.py:117 +#: picard/ui/ui_options_metadata.py:104 msgid "Convert Unicode punctuation characters to ASCII" msgstr "" -#: picard/ui/ui_options_metadata.py:118 +#: picard/ui/ui_options_metadata.py:105 msgid "Use release relationships" msgstr "Utilizar relações de distribuição" -#: picard/ui/ui_options_metadata.py:119 +#: picard/ui/ui_options_metadata.py:106 msgid "Use track relationships" msgstr "Utilizar relações de faixas" -#: picard/ui/ui_options_metadata.py:120 +#: picard/ui/ui_options_metadata.py:107 msgid "Use folksonomy tags as genre" msgstr "Utilizar marcas folksonomy como género" -#: picard/ui/ui_options_metadata.py:121 +#: picard/ui/ui_options_metadata.py:108 msgid "Custom Fields" msgstr "Campos Personalizados" -#: picard/ui/ui_options_metadata.py:122 +#: picard/ui/ui_options_metadata.py:109 msgid "Various artists:" msgstr "Vários artistas:" -#: picard/ui/ui_options_metadata.py:123 +#: picard/ui/ui_options_metadata.py:110 msgid "Non-album tracks:" msgstr "Faixas não pertencentes a nenhum álbum:" -#: picard/ui/ui_options_metadata.py:124 picard/ui/ui_options_metadata.py:125 -#: picard/ui/ui_options_renaming.py:147 +#: picard/ui/ui_options_metadata.py:111 picard/ui/ui_options_metadata.py:112 +#: picard/ui/ui_options_renaming.py:143 msgid "Default" msgstr "Por omissão" -#: picard/ui/ui_options_network.py:120 +#: picard/ui/ui_options_network.py:107 msgid "Web Proxy" msgstr "Proxy Web" -#: picard/ui/ui_options_network.py:125 +#: picard/ui/ui_options_network.py:112 msgid "Browser Integration" msgstr "" -#: picard/ui/ui_options_network.py:126 +#: picard/ui/ui_options_network.py:113 msgid "Default listening port:" msgstr "" -#: picard/ui/ui_options_network.py:127 +#: picard/ui/ui_options_network.py:114 msgid "Listen only on localhost" msgstr "" -#: picard/ui/ui_options_plugins.py:131 picard/ui/options/plugins.py:38 +#: picard/ui/ui_options_plugins.py:127 picard/ui/options/plugins.py:38 msgid "Plugins" msgstr "Plugins" -#: picard/ui/ui_options_plugins.py:132 picard/ui/options/plugins.py:122 +#: picard/ui/ui_options_plugins.py:128 picard/ui/options/plugins.py:122 msgid "Name" msgstr "Nome" -#: picard/ui/ui_options_plugins.py:133 picard/util/tags.py:39 +#: picard/ui/ui_options_plugins.py:129 msgid "Version" msgstr "Versão" -#: picard/ui/ui_options_plugins.py:134 picard/ui/options/plugins.py:125 +#: picard/ui/ui_options_plugins.py:130 picard/ui/options/plugins.py:125 msgid "Author" msgstr "Autor" -#: picard/ui/ui_options_plugins.py:135 +#: picard/ui/ui_options_plugins.py:131 msgid "Install plugin..." msgstr "Instalar plugin..." -#: picard/ui/ui_options_plugins.py:136 +#: picard/ui/ui_options_plugins.py:132 msgid "Open plugin folder" msgstr "Abrir pasta de plugins" -#: picard/ui/ui_options_plugins.py:137 +#: picard/ui/ui_options_plugins.py:133 msgid "Download plugins" msgstr "Transferir plugins" -#: picard/ui/ui_options_plugins.py:138 +#: picard/ui/ui_options_plugins.py:134 msgid "Details" msgstr "Detalhes" -#: picard/ui/ui_options_ratings.py:53 +#: picard/ui/ui_options_ratings.py:49 msgid "Enable track ratings" msgstr "Activar as avaliações" -#: picard/ui/ui_options_ratings.py:54 +#: picard/ui/ui_options_ratings.py:50 msgid "" "Picard saves the ratings together with an e-mail address identifying the " "user who did the rating. That way different ratings for different users can " @@ -1487,207 +1413,167 @@ msgid "" "your ratings." msgstr "O Picard guarda as avaliações em conjunto com o endereço de e-mail do utilizador que deu a avaliação. Dessa forma, serão armazenadas as diferentes avaliações dos diversos utilizadores. Por favor, indique o e-mail que pretende utilizar para guardar as suas avaliações." -#: picard/ui/ui_options_ratings.py:55 +#: picard/ui/ui_options_ratings.py:51 msgid "E-mail:" msgstr "E-mail:" -#: picard/ui/ui_options_ratings.py:56 +#: picard/ui/ui_options_ratings.py:52 msgid "Submit ratings to MusicBrainz" msgstr "Submeter avaliações par MusicBrainz" -#: picard/ui/ui_options_releases.py:215 +#: picard/ui/ui_options_releases.py:104 msgid "Preferred release types" msgstr "Tipos preferidos de lançamento" -#: picard/ui/ui_options_releases.py:217 -msgid "Single" -msgstr "" - -#: picard/ui/ui_options_releases.py:218 -msgid "EP" -msgstr "EP" - -#: picard/ui/ui_options_releases.py:219 -msgid "Compilation" -msgstr "Compilação" - -#: picard/ui/ui_options_releases.py:220 -msgid "Soundtrack" -msgstr "Banda Sonora" - -#: picard/ui/ui_options_releases.py:221 -msgid "Spokenword" -msgstr "Palavra Dita" - -#: picard/ui/ui_options_releases.py:222 -msgid "Interview" -msgstr "Entrevista" - -#: picard/ui/ui_options_releases.py:223 -msgid "Audiobook" -msgstr "" - -#: picard/ui/ui_options_releases.py:224 -msgid "Live" -msgstr "Ao Vivo" - -#: picard/ui/ui_options_releases.py:225 -msgid "Remix" -msgstr "Remistura" - -#: picard/ui/ui_options_releases.py:227 -msgid "Reset all" -msgstr "Reiniciar todos" - -#: picard/ui/ui_options_releases.py:228 +#: picard/ui/ui_options_releases.py:105 msgid "Preferred release countries" msgstr "Países preferidos de lançamento" -#: picard/ui/ui_options_releases.py:229 picard/ui/ui_options_releases.py:232 +#: picard/ui/ui_options_releases.py:106 picard/ui/ui_options_releases.py:109 msgid ">" msgstr ">" -#: picard/ui/ui_options_releases.py:230 picard/ui/ui_options_releases.py:233 +#: picard/ui/ui_options_releases.py:107 picard/ui/ui_options_releases.py:110 msgid "<" msgstr "<" -#: picard/ui/ui_options_releases.py:231 +#: picard/ui/ui_options_releases.py:108 msgid "Preferred release formats" msgstr "Formatos preferidos de lançamento" -#: picard/ui/ui_options_renaming.py:134 +#: picard/ui/ui_options_renaming.py:130 msgid "Rename files when saving" msgstr "Renomear ficheiros ao guardar" -#: picard/ui/ui_options_renaming.py:135 +#: picard/ui/ui_options_renaming.py:131 msgid "Replace non-ASCII characters" msgstr "Substituir os caracteres non-ASCII" -#: picard/ui/ui_options_renaming.py:136 +#: picard/ui/ui_options_renaming.py:132 msgid "Windows compatibility" msgstr "" -#: picard/ui/ui_options_renaming.py:137 +#: picard/ui/ui_options_renaming.py:133 msgid "Move files to this directory when saving:" msgstr "Mover ficheiros para este directório ao guardar:" -#: picard/ui/ui_options_renaming.py:139 +#: picard/ui/ui_options_renaming.py:135 msgid "Delete empty directories" msgstr "Apagar directórios vazios" -#: picard/ui/ui_options_renaming.py:140 +#: picard/ui/ui_options_renaming.py:136 msgid "Move additional files:" msgstr "Mover ficheiros adicionais:" -#: picard/ui/ui_options_renaming.py:141 +#: picard/ui/ui_options_renaming.py:137 msgid "Name files like this" msgstr "Nomear ficheiros como este" -#: picard/ui/ui_options_renaming.py:148 +#: picard/ui/ui_options_renaming.py:144 msgid "Examples" msgstr "Exemplos" -#: picard/ui/ui_options_script.py:49 +#: picard/ui/ui_options_script.py:45 msgid "Tagger Script" msgstr "Tagger Script" -#: picard/ui/ui_options_tags.py:165 +#: picard/ui/ui_options_tags.py:152 msgid "Write tags to files" msgstr "Escrever marcas nos ficheiros" -#: picard/ui/ui_options_tags.py:166 +#: picard/ui/ui_options_tags.py:153 msgid "Preserve timestamps of tagged files" msgstr "" -#: picard/ui/ui_options_tags.py:167 +#: picard/ui/ui_options_tags.py:154 msgid "Before Tagging" msgstr "" -#: picard/ui/ui_options_tags.py:168 +#: picard/ui/ui_options_tags.py:155 msgid "Clear existing tags" msgstr "Apagar marcas existentes" -#: picard/ui/ui_options_tags.py:169 +#: picard/ui/ui_options_tags.py:156 msgid "Remove ID3 tags from FLAC files" msgstr "Remover marcas ID3 dos ficheiros FLAC" -#: picard/ui/ui_options_tags.py:170 +#: picard/ui/ui_options_tags.py:157 msgid "Remove APEv2 tags from MP3 files" msgstr "Remover marcas APEv2 dos ficheiros MP3" -#: picard/ui/ui_options_tags.py:171 +#: picard/ui/ui_options_tags.py:158 msgid "" "Preserve these tags from being cleared or overwritten with MusicBrainz data:" msgstr "" -#: picard/ui/ui_options_tags.py:172 +#: picard/ui/ui_options_tags.py:159 msgid "Tags are separated by commas, and are case-sensitive." msgstr "" -#: picard/ui/ui_options_tags.py:173 +#: picard/ui/ui_options_tags.py:160 msgid "Tag Compatibility" msgstr "" -#: picard/ui/ui_options_tags.py:174 +#: picard/ui/ui_options_tags.py:161 msgid "ID3v2 Version" msgstr "" -#: picard/ui/ui_options_tags.py:175 +#: picard/ui/ui_options_tags.py:162 msgid "2.4" msgstr "2.4" -#: picard/ui/ui_options_tags.py:176 +#: picard/ui/ui_options_tags.py:163 msgid "2.3" msgstr "2.3" -#: picard/ui/ui_options_tags.py:177 +#: picard/ui/ui_options_tags.py:164 msgid "ID3v2 Text Encoding" msgstr "" -#: picard/ui/ui_options_tags.py:178 +#: picard/ui/ui_options_tags.py:165 msgid "UTF-8" msgstr "UTF-8" -#: picard/ui/ui_options_tags.py:179 +#: picard/ui/ui_options_tags.py:166 msgid "UTF-16" msgstr "UTF-16" -#: picard/ui/ui_options_tags.py:180 +#: picard/ui/ui_options_tags.py:167 msgid "ISO-8859-1" msgstr "ISO-8859-1" -#: picard/ui/ui_options_tags.py:181 +#: picard/ui/ui_options_tags.py:168 msgid "Join multiple ID3v2.3 tags with:" msgstr "" -#: picard/ui/ui_options_tags.py:182 +#: picard/ui/ui_options_tags.py:169 msgid "" "

Default is '/' to maintain compatibility with previous" " Picard releases.

New alternatives are ';_' or '_/_' or type your own." "

" msgstr "" -#: picard/ui/ui_options_tags.py:183 +#: picard/ui/ui_options_tags.py:170 msgid "Also include ID3v1 tags in the files" msgstr "Incluir marcas ID3v1 nos ficheiros" -#: picard/ui/ui_passworddialog.py:72 +#: picard/ui/ui_passworddialog.py:68 msgid "Authentication required" msgstr "Autenticação requerida" -#: picard/ui/ui_passworddialog.py:75 +#: picard/ui/ui_passworddialog.py:71 msgid "Save username and password" msgstr "Guardar nome de utilizador e palavra-passe" -#: picard/ui/ui_tagsfromfilenames.py:54 +#: picard/ui/ui_tagsfromfilenames.py:50 msgid "Convert File Names to Tags" msgstr "Converter Nome de Ficheiros para Marcas" -#: picard/ui/ui_tagsfromfilenames.py:55 +#: picard/ui/ui_tagsfromfilenames.py:51 msgid "Replace underscores with spaces" msgstr "Substituir traço inferior por espaços" -#: picard/ui/ui_tagsfromfilenames.py:56 +#: picard/ui/ui_tagsfromfilenames.py:52 msgid "&Preview" msgstr "&Pré-visualizar" @@ -1743,7 +1629,11 @@ msgstr "Avançado" msgid "Regex Error" msgstr "" -#: picard/ui/options/cover.py:63 +#: picard/ui/options/cover.py:44 +msgid "title" +msgstr "" + +#: picard/ui/options/cover.py:68 msgid "Cover Art" msgstr "Capa do Álbum" @@ -1759,11 +1649,11 @@ msgstr "Interface do Utilizador" msgid "System default" msgstr "Omissão de sistema" -#: picard/ui/options/interface.py:96 +#: picard/ui/options/interface.py:98 msgid "Language changed" msgstr "Idioma alterado" -#: picard/ui/options/interface.py:96 +#: picard/ui/options/interface.py:99 msgid "" "You have changed the interface language. You have to restart Picard in order" " for the change to take effect." @@ -1785,31 +1675,35 @@ msgstr "Ficheiro" msgid "Ratings" msgstr "Avaliações" -#: picard/ui/options/releases.py:33 +#: picard/ui/options/releases.py:87 msgid "Preferred Releases" msgstr "Lançamentos Preferidos" +#: picard/ui/options/releases.py:121 +msgid "Reset all" +msgstr "Reiniciar todos" + #: picard/ui/options/renaming.py:37 msgid "File Naming" msgstr "" -#: picard/ui/options/renaming.py:184 +#: picard/ui/options/renaming.py:187 msgid "Error" msgstr "Erro" -#: picard/ui/options/renaming.py:184 +#: picard/ui/options/renaming.py:187 msgid "The location to move files to must not be empty." msgstr "A localização para onde quer mover ficheiros não pode estar vazia." -#: picard/ui/options/renaming.py:194 +#: picard/ui/options/renaming.py:197 msgid "The file naming format must not be empty." msgstr "O formato de nomeação não pode estar vazio." -#: picard/ui/options/scripting.py:63 +#: picard/ui/options/scripting.py:99 msgid "Scripting" msgstr "Programação" -#: picard/ui/options/scripting.py:95 +#: picard/ui/options/scripting.py:131 msgid "Script Error" msgstr "Erro de Programação" @@ -1929,199 +1823,199 @@ msgstr "ASIN" msgid "Grouping" msgstr "Agrupar" -#: picard/util/tags.py:40 +#: picard/util/tags.py:39 msgid "ISRC" msgstr "ISRC" -#: picard/util/tags.py:41 +#: picard/util/tags.py:40 msgid "Mood" msgstr "Disposição" -#: picard/util/tags.py:42 +#: picard/util/tags.py:41 msgid "BPM" msgstr "BPM" -#: picard/util/tags.py:43 +#: picard/util/tags.py:42 msgid "Copyright" msgstr "Direitos de Autor" -#: picard/util/tags.py:44 +#: picard/util/tags.py:43 msgid "License" msgstr "" -#: picard/util/tags.py:45 +#: picard/util/tags.py:44 msgid "Composer" msgstr "Compositor" -#: picard/util/tags.py:46 +#: picard/util/tags.py:45 msgid "Writer" msgstr "" -#: picard/util/tags.py:47 +#: picard/util/tags.py:46 msgid "Conductor" msgstr "Maestro" -#: picard/util/tags.py:48 +#: picard/util/tags.py:47 msgid "Lyricist" msgstr "Liricista" -#: picard/util/tags.py:49 +#: picard/util/tags.py:48 msgid "Arranger" msgstr "Arranjador" -#: picard/util/tags.py:50 +#: picard/util/tags.py:49 msgid "Producer" msgstr "Produtor" -#: picard/util/tags.py:51 +#: picard/util/tags.py:50 msgid "Engineer" msgstr "Engenheiro" -#: picard/util/tags.py:52 +#: picard/util/tags.py:51 msgid "Subtitle" msgstr "Sub-título" -#: picard/util/tags.py:53 +#: picard/util/tags.py:52 msgid "Disc Subtitle" msgstr "Sub-título do Disco" -#: picard/util/tags.py:54 +#: picard/util/tags.py:53 msgid "Remixer" msgstr "Remistura" -#: picard/util/tags.py:55 +#: picard/util/tags.py:54 msgid "MusicBrainz Recording Id" msgstr "" -#: picard/util/tags.py:56 +#: picard/util/tags.py:55 msgid "MusicBrainz Track Id" msgstr "" -#: picard/util/tags.py:57 +#: picard/util/tags.py:56 msgid "MusicBrainz Release Id" msgstr "Id de lançamento MusicBrainz" -#: picard/util/tags.py:58 +#: picard/util/tags.py:57 msgid "MusicBrainz Artist Id" msgstr "Id de Artista MusicBrainz" -#: picard/util/tags.py:59 +#: picard/util/tags.py:58 msgid "MusicBrainz Release Artist Id" msgstr "Id de lançamento de Artista MusicBrainz" -#: picard/util/tags.py:60 +#: picard/util/tags.py:59 msgid "MusicBrainz Work Id" msgstr "" -#: picard/util/tags.py:61 +#: picard/util/tags.py:60 msgid "MusicBrainz Release Group Id" msgstr "" -#: picard/util/tags.py:62 +#: picard/util/tags.py:61 msgid "MusicBrainz Disc Id" msgstr "Id de Disco MusicBrainz" -#: picard/util/tags.py:63 -msgid "MusicBrainz Sort Name" -msgstr "Ordenar por Nome MusicBrainz" - -#: picard/util/tags.py:64 +#: picard/util/tags.py:62 msgid "MusicIP PUID" msgstr "MusicIP PUID" -#: picard/util/tags.py:65 +#: picard/util/tags.py:63 msgid "MusicIP Fingerprint" msgstr "Impressão digital MusicIP" -#: picard/util/tags.py:66 +#: picard/util/tags.py:64 msgid "AcoustID" msgstr "AcoustID" -#: picard/util/tags.py:67 +#: picard/util/tags.py:65 msgid "AcoustID Fingerprint" msgstr "" -#: picard/util/tags.py:68 +#: picard/util/tags.py:66 msgid "Disc Id" msgstr "Id do Disco" -#: picard/util/tags.py:69 -msgid "Website" -msgstr "Sítio Web" +#: picard/util/tags.py:67 +msgid "Artist Website" +msgstr "" -#: picard/util/tags.py:70 +#: picard/util/tags.py:68 msgid "Compilation (iTunes)" msgstr "" -#: picard/util/tags.py:71 +#: picard/util/tags.py:69 msgid "Comment" msgstr "Comentário" -#: picard/util/tags.py:72 +#: picard/util/tags.py:70 msgid "Genre" msgstr "Género" -#: picard/util/tags.py:73 +#: picard/util/tags.py:71 msgid "Encoded By" msgstr "Codificado Por" -#: picard/util/tags.py:74 +#: picard/util/tags.py:72 +msgid "Encoder Settings" +msgstr "" + +#: picard/util/tags.py:73 msgid "Performer" msgstr "Intérprete" -#: picard/util/tags.py:75 +#: picard/util/tags.py:74 msgid "Release Type" msgstr "Tipo de Lançamento" -#: picard/util/tags.py:76 +#: picard/util/tags.py:75 msgid "Release Status" msgstr "Estado de Lançamento" -#: picard/util/tags.py:77 +#: picard/util/tags.py:76 msgid "Release Country" msgstr "País de Lançamento" -#: picard/util/tags.py:78 +#: picard/util/tags.py:77 msgid "Record Label" msgstr "Editora" -#: picard/util/tags.py:80 +#: picard/util/tags.py:79 msgid "Catalog Number" msgstr "Número do Catálogo" -#: picard/util/tags.py:82 +#: picard/util/tags.py:80 msgid "DJ-Mixer" msgstr "DJ" -#: picard/util/tags.py:83 +#: picard/util/tags.py:81 msgid "Media" msgstr "Média" -#: picard/util/tags.py:84 +#: picard/util/tags.py:82 msgid "Lyrics" msgstr "Letras" -#: picard/util/tags.py:85 +#: picard/util/tags.py:83 msgid "Mixer" msgstr "Misturador" -#: picard/util/tags.py:86 +#: picard/util/tags.py:84 msgid "Language" msgstr "Idioma" -#: picard/util/tags.py:87 +#: picard/util/tags.py:85 msgid "Script" msgstr "Script" -#: picard/util/tags.py:89 +#: picard/util/tags.py:87 msgid "Rating" msgstr "Avaliação" -#: picard/util/tags.py:90 +#: picard/util/tags.py:88 msgid "Artists" msgstr "" -#: picard/util/tags.py:91 +#: picard/util/tags.py:89 msgid "Work" msgstr "" diff --git a/po/pt_BR.po b/po/pt_BR.po index bfffb108a..35dad582d 100644 --- a/po/pt_BR.po +++ b/po/pt_BR.po @@ -10,8 +10,8 @@ msgid "" msgstr "" "Project-Id-Version: MusicBrainz\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2014-03-20 11:12+0100\n" -"PO-Revision-Date: 2014-03-21 08:44+0000\n" +"POT-Creation-Date: 2014-05-03 17:28+0200\n" +"PO-Revision-Date: 2014-05-04 08:44+0000\n" "Last-Translator: nikki\n" "Language-Team: Portuguese (Brazil) (http://www.transifex.com/projects/p/musicbrainz/language/pt_BR/)\n" "MIME-Version: 1.0\n" @@ -21,6 +21,10 @@ msgstr "" "Language: pt_BR\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n" +#: contrib/plugins/albumartist_website.py:3 +msgid "Album Artist Website" +msgstr "" + #: contrib/plugins/no_release.py:50 msgid "Enable plugin for all releases by default" msgstr "" @@ -33,63 +37,55 @@ msgstr "" msgid "Remove specific release information..." msgstr "" -#: contrib/plugins/open_in_gui.py:32 -msgid "Open Error" +#: contrib/plugins/standardise_performers.py:3 +msgid "Standardise Performers" msgstr "" -#: contrib/plugins/open_in_gui.py:32 -#, python-format -msgid "" -"Error while opening file:\n" -"\n" -"%s" -msgstr "" - -#: contrib/plugins/lastfm/ui_options_lastfm.py:117 +#: contrib/plugins/lastfm/ui_options_lastfm.py:99 msgid "Last.fm" msgstr "" -#: contrib/plugins/lastfm/ui_options_lastfm.py:118 +#: contrib/plugins/lastfm/ui_options_lastfm.py:100 msgid "Use track tags" msgstr "" -#: contrib/plugins/lastfm/ui_options_lastfm.py:119 +#: contrib/plugins/lastfm/ui_options_lastfm.py:101 msgid "Use artist tags" msgstr "" -#: contrib/plugins/lastfm/ui_options_lastfm.py:120 +#: contrib/plugins/lastfm/ui_options_lastfm.py:102 #: picard/ui/options/tags.py:30 msgid "Tags" msgstr "Etiquetas" -#: contrib/plugins/lastfm/ui_options_lastfm.py:121 -#: picard/ui/ui_options_folksonomy.py:116 +#: contrib/plugins/lastfm/ui_options_lastfm.py:103 +#: picard/ui/ui_options_folksonomy.py:103 msgid "Ignore tags:" msgstr "Ignorar etiquetas:" -#: contrib/plugins/lastfm/ui_options_lastfm.py:122 -#: picard/ui/ui_options_folksonomy.py:121 +#: contrib/plugins/lastfm/ui_options_lastfm.py:104 +#: picard/ui/ui_options_folksonomy.py:108 msgid "Join multiple tags with:" msgstr "Juntar várias etiquetas com:" -#: contrib/plugins/lastfm/ui_options_lastfm.py:123 -#: picard/ui/ui_options_folksonomy.py:122 +#: contrib/plugins/lastfm/ui_options_lastfm.py:105 +#: picard/ui/ui_options_folksonomy.py:109 msgid " / " msgstr " / " -#: contrib/plugins/lastfm/ui_options_lastfm.py:124 -#: picard/ui/ui_options_folksonomy.py:123 +#: contrib/plugins/lastfm/ui_options_lastfm.py:106 +#: picard/ui/ui_options_folksonomy.py:110 msgid ", " msgstr ", " -#: contrib/plugins/lastfm/ui_options_lastfm.py:125 -#: picard/ui/ui_options_folksonomy.py:118 +#: contrib/plugins/lastfm/ui_options_lastfm.py:107 +#: picard/ui/ui_options_folksonomy.py:105 msgid "Minimal tag usage:" msgstr "Uso mínimo de etiqueta:" -#: contrib/plugins/lastfm/ui_options_lastfm.py:126 -#: picard/ui/ui_options_folksonomy.py:119 picard/ui/ui_options_matching.py:88 -#: picard/ui/ui_options_matching.py:89 picard/ui/ui_options_matching.py:90 +#: contrib/plugins/lastfm/ui_options_lastfm.py:108 +#: picard/ui/ui_options_folksonomy.py:106 picard/ui/ui_options_matching.py:75 +#: picard/ui/ui_options_matching.py:76 picard/ui/ui_options_matching.py:77 msgid " %" msgstr " %" @@ -97,420 +93,307 @@ msgstr " %" msgid "Calculate replay &gain..." msgstr "" -#: contrib/plugins/replaygain/__init__.py:66 +#: contrib/plugins/replaygain/__init__.py:67 #, python-format -msgid "Calculating replay gain for \"%s\"..." +msgid "Calculating replay gain for \"%(filename)s\"..." msgstr "" -#: contrib/plugins/replaygain/__init__.py:71 +#: contrib/plugins/replaygain/__init__.py:75 #, python-format -msgid "Replay gain for \"%s\" successfully calculated." +msgid "Replay gain for \"%(filename)s\" successfully calculated." msgstr "" -#: contrib/plugins/replaygain/__init__.py:73 +#: contrib/plugins/replaygain/__init__.py:80 #, python-format -msgid "Could not calculate replay gain for \"%s\"." +msgid "Could not calculate replay gain for \"%(filename)s\"." msgstr "" -#: contrib/plugins/replaygain/__init__.py:76 +#: contrib/plugins/replaygain/__init__.py:85 msgid "Calculate album &gain..." msgstr "" -#: contrib/plugins/replaygain/__init__.py:103 -#: contrib/plugins/replaygain/__init__.py:111 +#: contrib/plugins/replaygain/__init__.py:113 +#: contrib/plugins/replaygain/__init__.py:124 #, python-format -msgid "Calculating album gain for \"%s\"..." +msgid "Calculating album gain for \"%(album)s\"..." msgstr "" -#: contrib/plugins/replaygain/__init__.py:119 +#: contrib/plugins/replaygain/__init__.py:135 #, python-format -msgid "Album gain for \"%s\" successfully calculated." +msgid "Album gain for \"%(album)s\" successfully calculated." msgstr "" -#: contrib/plugins/replaygain/__init__.py:121 +#: contrib/plugins/replaygain/__init__.py:140 #, python-format -msgid "Could not calculate album gain for \"%s\"." +msgid "Could not calculate album gain for \"%(album)s\"." msgstr "" -#: picard/acoustid.py:102 -#, python-format -msgid "AcoustID lookup network error for '%s'!" +#: contrib/plugins/replaygain/ui_options_replaygain.py:59 +msgid "Replay Gain" msgstr "" -#: picard/acoustid.py:117 -#, python-format -msgid "AcoustID lookup failed for '%s'!" +#: contrib/plugins/replaygain/ui_options_replaygain.py:60 +msgid "Path to VorbisGain:" msgstr "" -#: picard/acoustid.py:128 -#, python-format -msgid "Acoustid lookup returned no result for file '%s'" +#: contrib/plugins/replaygain/ui_options_replaygain.py:61 +msgid "Path to MP3Gain:" msgstr "" -#: picard/acoustid.py:132 -#, python-format -msgid "Looking up the fingerprint for file %s..." -msgstr "Procurando pela fingerprint do arquivo %s..." - -#: picard/acoustidmanager.py:78 -msgid "Submitting AcoustIDs..." -msgstr "Enviando AcoustIDs..." - -#: picard/acoustidmanager.py:83 -#, python-format -msgid "AcoustID submission failed with error '%s'" +#: contrib/plugins/replaygain/ui_options_replaygain.py:62 +msgid "Path to metaflac:" msgstr "" -#: picard/acoustidmanager.py:85 +#: contrib/plugins/replaygain/ui_options_replaygain.py:63 +msgid "Path to wvgain:" +msgstr "" + +#: contrib/plugins/viewvariables/__init__.py:42 +#, python-format +msgid "File: %s" +msgstr "" + +#: contrib/plugins/viewvariables/__init__.py:47 +#, python-format +msgid "Track: %s %s " +msgstr "" + +#: contrib/plugins/viewvariables/__init__.py:49 +msgid "Variables" +msgstr "" + +#: contrib/plugins/viewvariables/__init__.py:69 +msgid "File variables" +msgstr "" + +#: contrib/plugins/viewvariables/__init__.py:74 +msgid "Hidden variables" +msgstr "" + +#: contrib/plugins/viewvariables/__init__.py:79 +msgid "Tag variables" +msgstr "" + +#: contrib/plugins/viewvariables/ui_variables_dialog.py:73 +msgid "Variable" +msgstr "" + +#: contrib/plugins/viewvariables/ui_variables_dialog.py:75 +msgid "Value" +msgstr "" + +#: picard/acoustid.py:109 +#, python-format +msgid "AcoustID lookup network error for '%(filename)s'!" +msgstr "" + +#: picard/acoustid.py:133 +#, python-format +msgid "AcoustID lookup failed for '%(filename)s'!" +msgstr "" + +#: picard/acoustid.py:155 +#, python-format +msgid "AcoustID lookup returned no result for file '%(filename)s'" +msgstr "" + +#: picard/acoustid.py:166 +#, python-format +msgid "Looking up the fingerprint for file '%(filename)s' ..." +msgstr "" + +#: picard/acoustidmanager.py:80 +msgid "Submitting AcoustIDs ..." +msgstr "" + +#: picard/acoustidmanager.py:94 +#, python-format +msgid "AcoustID submission failed with error '%(error)s'" +msgstr "" + +#: picard/acoustidmanager.py:102 msgid "AcoustIDs successfully submitted." msgstr "" -#: picard/album.py:64 picard/cluster.py:234 +#: picard/album.py:65 picard/cluster.py:255 msgid "Unmatched Files" msgstr "Arquivos não identificados" -#: picard/album.py:187 +#: picard/album.py:188 #, python-format msgid "[could not load album %s]" msgstr "[não foi possível carregar o álbum %s]" -#: picard/album.py:272 +#: picard/album.py:277 #, python-format -msgid "Album %s loaded" +msgid "Album %(id)s loaded: %(artist)s - %(album)s" msgstr "" -#: picard/album.py:288 +#: picard/album.py:294 +#, python-format +msgid "Loading album %(id)s ..." +msgstr "" + +#: picard/album.py:303 msgid "[loading album information]" msgstr "[carregando informações do álbum]" -#: picard/album.py:463 +#: picard/album.py:478 #, python-format msgid "; %i image" msgid_plural "; %i images" msgstr[0] "" msgstr[1] "" -#: picard/cluster.py:150 picard/cluster.py:159 +#: picard/cluster.py:155 picard/cluster.py:168 #, python-format -msgid "No matching releases for cluster %s" -msgstr "Nenhum álbum encontrado para o grupo %s" - -#: picard/cluster.py:161 -#, python-format -msgid "Cluster %s identified!" -msgstr "Grupo %s encontrado!" - -#: picard/cluster.py:168 -#, python-format -msgid "Looking up the metadata for cluster %s..." -msgstr "Procurando por metadados no grupo %s..." - -#: picard/collection.py:60 -#, python-format -msgid "Added %i release to collection \"%s\"" -msgid_plural "Added %i releases to collection \"%s\"" -msgstr[0] "" -msgstr[1] "" - -#: picard/collection.py:72 -#, python-format -msgid "Removed %i release from collection \"%s\"" -msgid_plural "Removed %i releases from collection \"%s\"" -msgstr[0] "" -msgstr[1] "" - -#: picard/collection.py:81 -#, python-format -msgid "Error loading collections: %s" +msgid "No matching releases for cluster %(album)s" msgstr "" -#: picard/config_upgrade.py:57 picard/config_upgrade.py:70 +#: picard/cluster.py:174 +#, python-format +msgid "Cluster %(album)s identified!" +msgstr "" + +#: picard/cluster.py:185 +#, python-format +msgid "Looking up the metadata for cluster %(album)s..." +msgstr "" + +#: picard/collection.py:64 +#, python-format +msgid "Added %(count)i release to collection \"%(name)s\"" +msgid_plural "Added %(count)i releases to collection \"%(name)s\"" +msgstr[0] "" +msgstr[1] "" + +#: picard/collection.py:86 +#, python-format +msgid "Removed %(count)i release from collection \"%(name)s\"" +msgid_plural "Removed %(count)i releases from collection \"%(name)s\"" +msgstr[0] "" +msgstr[1] "" + +#: picard/collection.py:100 +#, python-format +msgid "Error loading collections: %(error)s" +msgstr "" + +#: picard/config_upgrade.py:58 picard/config_upgrade.py:71 msgid "Various Artists file naming scheme removal" msgstr "" -#: picard/config_upgrade.py:58 +#: picard/config_upgrade.py:59 msgid "" "The separate file naming scheme for various artists albums has been removed in this version of Picard.\n" "Your file naming scheme has automatically been merged with that of single artist albums." msgstr "" -#: picard/config_upgrade.py:71 +#: picard/config_upgrade.py:72 msgid "" "The separate file naming scheme for various artists albums has been removed in this version of Picard.\n" "You currently do not use this option, but have a separate file naming scheme defined.\n" "Do you want to remove it or merge it with your file naming scheme for single artist albums?" msgstr "" -#: picard/config_upgrade.py:77 +#: picard/config_upgrade.py:78 msgid "Merge" msgstr "" -#: picard/config_upgrade.py:77 picard/ui/metadatabox.py:254 +#: picard/config_upgrade.py:78 picard/ui/metadatabox.py:254 msgid "Remove" msgstr "Remover" -#: picard/const.py:67 -msgid "CD" -msgstr "CD" - -#: picard/const.py:68 -msgid "CD-R" -msgstr "CD-R" - -#: picard/const.py:69 -msgid "HDCD" -msgstr "HDCD" - -#: picard/const.py:70 -msgid "8cm CD" -msgstr "8cm CD" - -#: picard/const.py:71 -msgid "Vinyl" -msgstr "Vinil" - -#: picard/const.py:72 -msgid "7\" Vinyl" -msgstr "7\" Vinil" - -#: picard/const.py:73 -msgid "10\" Vinyl" -msgstr "10\" Vinil" - -#: picard/const.py:74 -msgid "12\" Vinyl" -msgstr "12\" Vinil" - -#: picard/const.py:75 -msgid "Digital Media" -msgstr "Mídia Digital" - -#: picard/const.py:76 -msgid "USB Flash Drive" -msgstr "Unidade Flash USB" - -#: picard/const.py:77 -msgid "slotMusic" -msgstr "" - -#: picard/const.py:78 -msgid "Cassette" -msgstr "Cassete" - -#: picard/const.py:79 -msgid "DVD" -msgstr "DVD" - -#: picard/const.py:80 -msgid "DVD-Audio" -msgstr "DVD-Áudio" - -#: picard/const.py:81 -msgid "DVD-Video" -msgstr "DVD-Vídeo" - -#: picard/const.py:82 -msgid "SACD" -msgstr "SACD" - -#: picard/const.py:83 -msgid "DualDisc" -msgstr "DualDisc" - -#: picard/const.py:84 -msgid "MiniDisc" -msgstr "Mini disco" - -#: picard/const.py:85 -msgid "Blu-ray" -msgstr "Blu-ray" - -#: picard/const.py:86 -msgid "HD-DVD" -msgstr "HD-DVD" - -#: picard/const.py:87 -msgid "Videotape" -msgstr "Videotape" - -#: picard/const.py:88 -msgid "VHS" -msgstr "VHS" - -#: picard/const.py:89 -msgid "Betamax" -msgstr "Betamax" - #: picard/const.py:90 -msgid "VCD" -msgstr "VCD" - -#: picard/const.py:91 -msgid "SVCD" -msgstr "SVCD" - -#: picard/const.py:92 -msgid "UMD" -msgstr "UMD" - -#: picard/const.py:93 picard/coverartarchive.py:33 -#: picard/ui/ui_options_releases.py:226 -msgid "Other" -msgstr "Outro(s)" - -#: picard/const.py:94 -msgid "LaserDisc" -msgstr "Disco a leser" - -#: picard/const.py:95 -msgid "Cartridge" -msgstr "Cartucho" - -#: picard/const.py:96 -msgid "Reel-to-reel" -msgstr "" - -#: picard/const.py:97 -msgid "DAT" -msgstr "Dat" - -#: picard/const.py:98 -msgid "Wax Cylinder" -msgstr "Cilindro de Cera" - -#: picard/const.py:99 -msgid "Piano Roll" -msgstr "Piano" - -#: picard/const.py:100 -msgid "DCC" -msgstr "" - -#: picard/const.py:115 msgid "Danish" msgstr "" -#: picard/const.py:116 +#: picard/const.py:91 msgid "German" msgstr "Alemão" -#: picard/const.py:118 +#: picard/const.py:93 msgid "English" msgstr "Inglês" -#: picard/const.py:119 +#: picard/const.py:94 msgid "English (Canada)" msgstr "Inglês (Canadá)" -#: picard/const.py:120 +#: picard/const.py:95 msgid "English (UK)" msgstr "Inglês Britânico" -#: picard/const.py:122 +#: picard/const.py:97 msgid "Spanish" msgstr "Espanhol" -#: picard/const.py:123 +#: picard/const.py:98 msgid "Estonian" msgstr "Estoniano" -#: picard/const.py:125 +#: picard/const.py:100 msgid "Finnish" msgstr "Finlandês" -#: picard/const.py:127 +#: picard/const.py:102 msgid "French" msgstr "Francês" -#: picard/const.py:136 +#: picard/const.py:111 msgid "Italian" msgstr "Italiano" -#: picard/const.py:143 +#: picard/const.py:118 msgid "Dutch" msgstr "Holandês" -#: picard/const.py:145 +#: picard/const.py:120 msgid "Polish" msgstr "Polonês" -#: picard/const.py:147 +#: picard/const.py:122 msgid "Brazilian Portuguese" msgstr "Português brasileiro" -#: picard/const.py:154 +#: picard/const.py:129 msgid "Swedish" msgstr "Sueco" -#: picard/coverart.py:84 +#: picard/coverart.py:85 #, python-format -msgid "Coverart %s downloaded" +msgid "Cover art of type '%(type)s' downloaded for %(albumid)s from %(host)s" msgstr "" -#: picard/coverart.py:240 +#: picard/coverart.py:256 #, python-format -msgid "Downloading http://%s:%i%s" -msgstr "" - -#: picard/coverartarchive.py:24 -msgid "Front" -msgstr "" - -#: picard/coverartarchive.py:25 -msgid "Back" -msgstr "" - -#: picard/coverartarchive.py:26 -msgid "Booklet" -msgstr "" - -#: picard/coverartarchive.py:27 -msgid "Medium" -msgstr "" - -#: picard/coverartarchive.py:28 -msgid "Tray" -msgstr "" - -#: picard/coverartarchive.py:29 -msgid "Obi" +msgid "" +"Downloading cover art of type '%(type)s' for %(albumid)s from %(host)s .." msgstr "" #: picard/coverartarchive.py:30 -msgid "Spine" -msgstr "" - -#: picard/coverartarchive.py:31 picard/ui/mainwindow.py:546 -msgid "Track" -msgstr "Faixa" - -#: picard/coverartarchive.py:32 -msgid "Sticker" -msgstr "" - -#: picard/coverartarchive.py:34 msgid "Unknown" msgstr "" -#: picard/file.py:536 +#: picard/file.py:494 #, python-format -msgid "No matching tracks for file %s" -msgstr "Nenhuma faixa identificada para o arquivo %s" +msgid "No matching tracks for file '%(filename)s'" +msgstr "" -#: picard/file.py:548 +#: picard/file.py:510 #, python-format -msgid "No matching tracks above the threshold for file %s" -msgstr "Não há faixas compatíveis o suficiente para o arquivo %s" +msgid "No matching tracks above the threshold for file '%(filename)s'" +msgstr "" -#: picard/file.py:551 +#: picard/file.py:517 #, python-format -msgid "File %s identified!" -msgstr "Arquivo %s identificado!" +msgid "File '%(filename)s' identified!" +msgstr "" -#: picard/file.py:567 +#: picard/file.py:537 #, python-format -msgid "Looking up the metadata for file %s..." -msgstr "Procurando por metadados no arquivo %s..." +msgid "Looking up the metadata for file %(filename)s ..." +msgstr "" #: picard/releasegroup.py:53 msgid "Tracks" @@ -520,11 +403,11 @@ msgstr "" msgid "Year" msgstr "" -#: picard/releasegroup.py:55 picard/ui/cdlookup.py:34 +#: picard/releasegroup.py:55 picard/ui/cdlookup.py:35 msgid "Country" msgstr "País" -#: picard/releasegroup.py:56 picard/util/tags.py:81 +#: picard/releasegroup.py:56 msgid "Format" msgstr "Formato" @@ -544,16 +427,23 @@ msgstr "" msgid "[no release info]" msgstr "" -#: picard/tagger.py:316 +#: picard/tagger.py:370 #, python-format -msgid "Loading directory %s" +msgid "Adding %(count)d file from '%(directory)s' ..." +msgid_plural "Adding %(count)d files from '%(directory)s' ..." +msgstr[0] "" +msgstr[1] "" + +#: picard/tagger.py:512 +#, python-format +msgid "Removing album %(id)s: %(artist)s - %(album)s" msgstr "" -#: picard/tagger.py:452 +#: picard/tagger.py:528 msgid "CD Lookup Error" msgstr "Erro ao procurar CD" -#: picard/tagger.py:453 +#: picard/tagger.py:529 #, python-format msgid "" "Error while reading CD:\n" @@ -561,44 +451,43 @@ msgid "" "%s" msgstr "Erro ao ler o CD:\n\n%s" -#: picard/ui/cdlookup.py:34 picard/ui/mainwindow.py:544 -#: picard/ui/ui_options_releases.py:216 picard/util/tags.py:21 +#: picard/ui/cdlookup.py:35 picard/ui/mainwindow.py:597 picard/util/tags.py:21 msgid "Album" msgstr "Álbum" -#: picard/ui/cdlookup.py:34 picard/ui/itemviews.py:96 -#: picard/ui/mainwindow.py:545 picard/util/tags.py:22 +#: picard/ui/cdlookup.py:35 picard/ui/itemviews.py:96 +#: picard/ui/mainwindow.py:598 picard/util/tags.py:22 msgid "Artist" msgstr "Artista" -#: picard/ui/cdlookup.py:34 picard/util/tags.py:24 +#: picard/ui/cdlookup.py:35 picard/util/tags.py:24 msgid "Date" msgstr "Data" -#: picard/ui/cdlookup.py:35 +#: picard/ui/cdlookup.py:36 msgid "Labels" msgstr "Rótulos" -#: picard/ui/cdlookup.py:35 +#: picard/ui/cdlookup.py:36 msgid "Catalog #s" msgstr "Catálogo #s" -#: picard/ui/cdlookup.py:35 picard/util/tags.py:79 +#: picard/ui/cdlookup.py:36 picard/util/tags.py:78 msgid "Barcode" msgstr "Código de barras" -#: picard/ui/collectionmenu.py:31 +#: picard/ui/collectionmenu.py:42 msgid "Refresh List" msgstr "" -#: picard/ui/collectionmenu.py:92 +#: picard/ui/collectionmenu.py:86 #, python-format msgid "%s (%i release)" msgid_plural "%s (%i releases)" msgstr[0] "" msgstr[1] "" -#: picard/ui/coverartbox.py:142 +#: picard/ui/coverartbox.py:141 msgid "View release on MusicBrainz" msgstr "" @@ -614,59 +503,59 @@ msgstr "Mostrar arquivos &ocultos" msgid "&Set as starting directory" msgstr "" -#: picard/ui/infodialog.py:36 picard/ui/infodialog.py:75 +#: picard/ui/infodialog.py:37 picard/ui/infodialog.py:80 msgid "Info" msgstr "Informação" -#: picard/ui/infodialog.py:80 +#: picard/ui/infodialog.py:85 msgid "Filename:" msgstr "Nome do arquivo:" -#: picard/ui/infodialog.py:82 +#: picard/ui/infodialog.py:87 msgid "Format:" msgstr "Formato:" -#: picard/ui/infodialog.py:86 +#: picard/ui/infodialog.py:91 msgid "Size:" msgstr "Tamanho:" -#: picard/ui/infodialog.py:90 +#: picard/ui/infodialog.py:95 msgid "Length:" msgstr "Duração:" -#: picard/ui/infodialog.py:92 +#: picard/ui/infodialog.py:97 msgid "Bitrate:" msgstr "Taxa de bits:" -#: picard/ui/infodialog.py:94 +#: picard/ui/infodialog.py:99 msgid "Sample rate:" msgstr "Taxa de amostragem:" -#: picard/ui/infodialog.py:96 +#: picard/ui/infodialog.py:101 msgid "Bits per sample:" msgstr "Bits por amostragem:" -#: picard/ui/infodialog.py:100 +#: picard/ui/infodialog.py:105 msgid "Mono" msgstr "Mono" -#: picard/ui/infodialog.py:102 +#: picard/ui/infodialog.py:107 msgid "Stereo" msgstr "Estéreo" -#: picard/ui/infodialog.py:105 +#: picard/ui/infodialog.py:110 msgid "Channels:" msgstr "Canais:" -#: picard/ui/infodialog.py:116 +#: picard/ui/infodialog.py:121 msgid "Album Info" msgstr "" -#: picard/ui/infodialog.py:124 +#: picard/ui/infodialog.py:129 msgid "&Errors" msgstr "" -#: picard/ui/infodialog.py:134 picard/ui/ui_infodialog.py:77 +#: picard/ui/infodialog.py:139 picard/ui/ui_infodialog.py:73 msgid "&Info" msgstr "&Informação" @@ -690,7 +579,7 @@ msgstr "" msgid "Title" msgstr "Título" -#: picard/ui/itemviews.py:95 picard/util/tags.py:88 +#: picard/ui/itemviews.py:95 picard/util/tags.py:86 msgid "Length" msgstr "Duração" @@ -715,8 +604,8 @@ msgid "Collections" msgstr "" #: picard/ui/itemviews.py:365 -msgid "&Plugins" -msgstr "&Plugins" +msgid "P&lugins" +msgstr "" #: picard/ui/itemviews.py:541 msgid "file view" @@ -738,12 +627,16 @@ msgstr "" msgid "Contains albums and matched files" msgstr "" -#: picard/ui/logview.py:91 +#: picard/ui/logview.py:109 msgid "Log" msgstr "Log" -#: picard/ui/logview.py:99 -msgid "Status History" +#: picard/ui/logview.py:113 +msgid "Debug mode" +msgstr "" + +#: picard/ui/logview.py:134 +msgid "Activity History" msgstr "" #: picard/ui/mainwindow.py:74 @@ -777,276 +670,309 @@ msgstr "Pronto" #: picard/ui/mainwindow.py:220 msgid "" -"Picard listens on a port to integrate with your browser and downloads " -"release information when you click the \"Tagger\" buttons on the MusicBrainz" -" website" +"Picard listens on this port to integrate with your browser. When you " +"\"Search\" or \"Open in Browser\" from Picard, clicking the \"Tagger\" " +"button on the web page loads the release into Picard." msgstr "" -#: picard/ui/mainwindow.py:240 +#: picard/ui/mainwindow.py:243 #, python-format msgid " Listening on port %(port)d " msgstr "" -#: picard/ui/mainwindow.py:263 +#: picard/ui/mainwindow.py:299 msgid "Submission Error" msgstr "Erro na submissão" -#: picard/ui/mainwindow.py:264 +#: picard/ui/mainwindow.py:300 msgid "" "You need to configure your AcoustID API key before you can submit " "fingerprints." msgstr "Você precisa configurar sua chave API do AcoustID antes de enviar as impressões digitais." -#: picard/ui/mainwindow.py:269 +#: picard/ui/mainwindow.py:305 msgid "&Options..." msgstr "&Opções..." -#: picard/ui/mainwindow.py:273 +#: picard/ui/mainwindow.py:309 msgid "&Cut" msgstr "&Cortar" -#: picard/ui/mainwindow.py:278 +#: picard/ui/mainwindow.py:314 msgid "&Paste" msgstr "&Colar" -#: picard/ui/mainwindow.py:283 +#: picard/ui/mainwindow.py:319 msgid "&Help..." msgstr "&Ajuda..." -#: picard/ui/mainwindow.py:288 +#: picard/ui/mainwindow.py:323 msgid "&About..." msgstr "&Sobre..." -#: picard/ui/mainwindow.py:292 +#: picard/ui/mainwindow.py:327 msgid "&Donate..." msgstr "&Doar..." -#: picard/ui/mainwindow.py:295 +#: picard/ui/mainwindow.py:330 msgid "&Report a Bug..." msgstr "&Reporte um bug..." -#: picard/ui/mainwindow.py:298 +#: picard/ui/mainwindow.py:333 msgid "&Support Forum..." msgstr "&Fórum de suporte..." -#: picard/ui/mainwindow.py:301 +#: picard/ui/mainwindow.py:336 msgid "&Add Files..." msgstr "&Adicionar arquivos..." -#: picard/ui/mainwindow.py:302 +#: picard/ui/mainwindow.py:337 msgid "Add files to the tagger" msgstr "Selecione os arquivos para identificar" -#: picard/ui/mainwindow.py:307 +#: picard/ui/mainwindow.py:342 msgid "A&dd Folder..." msgstr "A&dicionar pasta..." -#: picard/ui/mainwindow.py:308 +#: picard/ui/mainwindow.py:343 msgid "Add a folder to the tagger" msgstr "Selecione uma pasta para identificar" -#: picard/ui/mainwindow.py:310 +#: picard/ui/mainwindow.py:345 msgid "Ctrl+D" msgstr "Ctrl+D" -#: picard/ui/mainwindow.py:313 +#: picard/ui/mainwindow.py:348 msgid "&Save" msgstr "&Salvar" -#: picard/ui/mainwindow.py:314 +#: picard/ui/mainwindow.py:349 msgid "Save selected files" msgstr "Salvar os arquivos selecionados" -#: picard/ui/mainwindow.py:320 +#: picard/ui/mainwindow.py:355 msgid "S&ubmit" msgstr "" -#: picard/ui/mainwindow.py:321 -msgid "Submit fingerprints" -msgstr "Enviar impressões digitais" +#: picard/ui/mainwindow.py:356 +msgid "Submit acoustic fingerprints" +msgstr "" -#: picard/ui/mainwindow.py:325 +#: picard/ui/mainwindow.py:360 msgid "E&xit" msgstr "&Sair" -#: picard/ui/mainwindow.py:328 +#: picard/ui/mainwindow.py:363 msgid "Ctrl+Q" msgstr "Ctrl+Q" -#: picard/ui/mainwindow.py:331 +#: picard/ui/mainwindow.py:366 msgid "&Remove" msgstr "&Remover" -#: picard/ui/mainwindow.py:332 +#: picard/ui/mainwindow.py:367 msgid "Remove selected files/albums" msgstr "Remover os arquivos/álbuns selecionados" -#: picard/ui/mainwindow.py:336 +#: picard/ui/mainwindow.py:371 msgid "Lookup in &Browser" msgstr "" -#: picard/ui/mainwindow.py:337 +#: picard/ui/mainwindow.py:372 msgid "Lookup selected item on MusicBrainz website" msgstr "" -#: picard/ui/mainwindow.py:341 +#: picard/ui/mainwindow.py:376 msgid "File &Browser" msgstr "&Abrir arquivo" -#: picard/ui/mainwindow.py:345 +#: picard/ui/mainwindow.py:380 msgid "Ctrl+B" msgstr "Ctrl+B" -#: picard/ui/mainwindow.py:348 +#: picard/ui/mainwindow.py:383 msgid "&Cover Art" msgstr "&Capa" -#: picard/ui/mainwindow.py:354 picard/ui/mainwindow.py:539 +#: picard/ui/mainwindow.py:389 picard/ui/mainwindow.py:591 msgid "Search" msgstr "Buscar" -#: picard/ui/mainwindow.py:357 -msgid "&CD Lookup..." -msgstr "&Procurar CD..." +#: picard/ui/mainwindow.py:392 +msgid "Lookup &CD..." +msgstr "" -#: picard/ui/mainwindow.py:358 picard/ui/mainwindow.py:359 -msgid "Lookup CD" -msgstr "Procurar CD" +#: picard/ui/mainwindow.py:393 +msgid "Lookup the details of the CD in your drive" +msgstr "" -#: picard/ui/mainwindow.py:361 +#: picard/ui/mainwindow.py:395 msgid "Ctrl+K" msgstr "Ctrl+K" -#: picard/ui/mainwindow.py:364 +#: picard/ui/mainwindow.py:398 msgid "&Scan" msgstr "&Verificar" -#: picard/ui/mainwindow.py:367 +#: picard/ui/mainwindow.py:401 msgid "Ctrl+Y" msgstr "Ctrl+Y" -#: picard/ui/mainwindow.py:370 +#: picard/ui/mainwindow.py:404 msgid "Cl&uster" msgstr "&Grupo" -#: picard/ui/mainwindow.py:373 +#: picard/ui/mainwindow.py:407 msgid "Ctrl+U" msgstr "Ctrl+U" -#: picard/ui/mainwindow.py:376 +#: picard/ui/mainwindow.py:410 msgid "&Lookup" msgstr "&Procurar" -#: picard/ui/mainwindow.py:377 picard/ui/mainwindow.py:378 -msgid "Lookup metadata" -msgstr "Procurar metadados" +#: picard/ui/mainwindow.py:411 +msgid "Lookup selected items in MusicBrainz" +msgstr "" -#: picard/ui/mainwindow.py:381 +#: picard/ui/mainwindow.py:416 msgid "Ctrl+L" msgstr "Ctrl+L" -#: picard/ui/mainwindow.py:384 +#: picard/ui/mainwindow.py:419 msgid "&Info..." msgstr "" -#: picard/ui/mainwindow.py:387 +#: picard/ui/mainwindow.py:422 msgid "Ctrl+I" msgstr "" -#: picard/ui/mainwindow.py:390 +#: picard/ui/mainwindow.py:425 msgid "&Refresh" msgstr "Atuali&zar" -#: picard/ui/mainwindow.py:391 +#: picard/ui/mainwindow.py:426 msgid "Ctrl+R" msgstr "" -#: picard/ui/mainwindow.py:394 +#: picard/ui/mainwindow.py:429 msgid "&Rename Files" msgstr "&Renomear arquivos" -#: picard/ui/mainwindow.py:399 +#: picard/ui/mainwindow.py:434 msgid "&Move Files" msgstr "&Mover arquivos" -#: picard/ui/mainwindow.py:404 +#: picard/ui/mainwindow.py:439 msgid "Save &Tags" msgstr "Salvar &tags" -#: picard/ui/mainwindow.py:409 +#: picard/ui/mainwindow.py:444 msgid "Tags From &File Names..." msgstr "Marcar tags a partir dos nomes dos &arquivos..." -#: picard/ui/mainwindow.py:412 -msgid "View &Log..." -msgstr "Ver &log..." - -#: picard/ui/mainwindow.py:415 -msgid "View Status &History..." +#: picard/ui/mainwindow.py:447 +msgid "&Open My Collections in Browser" msgstr "" -#: picard/ui/mainwindow.py:422 -msgid "&Open..." +#: picard/ui/mainwindow.py:451 +msgid "View Error/Debug &Log" msgstr "" -#: picard/ui/mainwindow.py:423 -msgid "Open the file" -msgstr "Abrir o arquivo" - -#: picard/ui/mainwindow.py:426 -msgid "Open &Folder..." +#: picard/ui/mainwindow.py:454 +msgid "View Activity &History" msgstr "" -#: picard/ui/mainwindow.py:427 -msgid "Open the containing folder" +#: picard/ui/mainwindow.py:461 +msgid "&Play file" msgstr "" -#: picard/ui/mainwindow.py:448 +#: picard/ui/mainwindow.py:462 +msgid "Play the file in your default media player" +msgstr "" + +#: picard/ui/mainwindow.py:466 +msgid "Open Containing &Folder" +msgstr "" + +#: picard/ui/mainwindow.py:467 +msgid "Open the containing folder in your file explorer" +msgstr "" + +#: picard/ui/mainwindow.py:492 msgid "&File" msgstr "&Arquivo" -#: picard/ui/mainwindow.py:456 +#: picard/ui/mainwindow.py:503 msgid "&Edit" msgstr "&Editar" -#: picard/ui/mainwindow.py:462 +#: picard/ui/mainwindow.py:509 msgid "&View" msgstr "&Exibir" -#: picard/ui/mainwindow.py:470 +#: picard/ui/mainwindow.py:515 msgid "&Options" msgstr "&Opções" -#: picard/ui/mainwindow.py:476 +#: picard/ui/mainwindow.py:521 msgid "&Tools" msgstr "&Ferramentas" -#: picard/ui/mainwindow.py:485 picard/ui/util.py:35 +#: picard/ui/mainwindow.py:532 picard/ui/util.py:35 msgid "&Help" msgstr "&Ajuda" -#: picard/ui/mainwindow.py:505 +#: picard/ui/mainwindow.py:553 msgid "Actions" msgstr "" -#: picard/ui/mainwindow.py:608 +#: picard/ui/mainwindow.py:599 +msgid "Track" +msgstr "Faixa" + +#: picard/ui/mainwindow.py:662 msgid "All Supported Formats" msgstr "Todos os formatos suportados" -#: picard/ui/mainwindow.py:705 +#: picard/ui/mainwindow.py:695 +#, python-format +msgid "Adding directory: '%(directory)s' ..." +msgstr "" + +#: picard/ui/mainwindow.py:702 +#, python-format +msgid "Adding multiple directories from '%(directory)s' ..." +msgstr "" + +#: picard/ui/mainwindow.py:767 msgid "Configuration Required" msgstr "Configuração Requerida" -#: picard/ui/mainwindow.py:706 +#: picard/ui/mainwindow.py:768 msgid "" "Audio fingerprinting is not yet configured. Would you like to configure it " "now?" msgstr "" -#: picard/ui/mainwindow.py:784 picard/ui/mainwindow.py:791 +#: picard/ui/mainwindow.py:848 #, python-format -msgid " (Error: %s)" -msgstr " (Erro: %s)" +msgid "%(filename)s (error: %(error)s)" +msgstr "" + +#: picard/ui/mainwindow.py:854 +#, python-format +msgid "%(filename)s" +msgstr "" + +#: picard/ui/mainwindow.py:864 +#, python-format +msgid "%(filename)s (%(similarity)d%%) (error: %(error)s)" +msgstr "" + +#: picard/ui/mainwindow.py:871 +#, python-format +msgid "%(filename)s (%(similarity)d%%)" +msgstr "" #: picard/ui/metadatabox.py:82 #, python-format @@ -1100,387 +1026,387 @@ msgid_plural "Use Original Values" msgstr[0] "" msgstr[1] "Usar Valor Original" -#: picard/ui/passworddialog.py:37 +#: picard/ui/passworddialog.py:40 #, python-format msgid "" "The server %s requires you to login. Please enter your username and " "password." msgstr "O servidor %s requer login. Por favor digite seu nome de usuário e senha." -#: picard/ui/passworddialog.py:75 +#: picard/ui/passworddialog.py:79 #, python-format msgid "" "The proxy %s requires you to login. Please enter your username and password." msgstr "O proxy %s requer autenticação. Por favor digite seu usuário e senha." -#: picard/ui/tagsfromfilenames.py:55 picard/ui/tagsfromfilenames.py:100 +#: picard/ui/tagsfromfilenames.py:56 picard/ui/tagsfromfilenames.py:101 msgid "File Name" msgstr "Nome do arquivo" -#: picard/ui/ui_cdlookup.py:66 picard/ui/ui_options_cdlookup.py:55 -#: picard/ui/ui_options_cdlookup_select.py:62 picard/ui/options/cdlookup.py:38 +#: picard/ui/ui_cdlookup.py:53 picard/ui/ui_options_cdlookup.py:42 +#: picard/ui/ui_options_cdlookup_select.py:49 picard/ui/options/cdlookup.py:38 msgid "CD Lookup" msgstr "Procurar CD" -#: picard/ui/ui_cdlookup.py:67 +#: picard/ui/ui_cdlookup.py:54 msgid "The following releases on MusicBrainz match the CD:" msgstr "Álbuns no MusicBrainz compatíveis com o CD:" -#: picard/ui/ui_cdlookup.py:68 +#: picard/ui/ui_cdlookup.py:55 msgid "OK" msgstr "OK" -#: picard/ui/ui_cdlookup.py:69 +#: picard/ui/ui_cdlookup.py:56 msgid "Lookup manually" msgstr "" -#: picard/ui/ui_cdlookup.py:70 +#: picard/ui/ui_cdlookup.py:57 msgid "Cancel" msgstr "Cancelar" -#: picard/ui/ui_edittagdialog.py:101 +#: picard/ui/ui_edittagdialog.py:88 msgid "Edit Tag" msgstr "" -#: picard/ui/ui_edittagdialog.py:102 +#: picard/ui/ui_edittagdialog.py:89 msgid "Edit value" msgstr "Editar valor" -#: picard/ui/ui_edittagdialog.py:103 +#: picard/ui/ui_edittagdialog.py:90 msgid "Add value" msgstr "Adicionar valor" -#: picard/ui/ui_edittagdialog.py:104 +#: picard/ui/ui_edittagdialog.py:91 msgid "Remove value" msgstr "Remover valor" -#: picard/ui/ui_infodialog.py:78 +#: picard/ui/ui_infodialog.py:74 msgid "A&rtwork" msgstr "&Capa" -#: picard/ui/ui_infostatus.py:100 +#: picard/ui/ui_infostatus.py:96 msgid "Form" msgstr "" -#: picard/ui/ui_options.py:51 +#: picard/ui/ui_options.py:38 msgid "Options" msgstr "Opções" -#: picard/ui/ui_options_advanced.py:46 +#: picard/ui/ui_options_advanced.py:42 msgid "Advanced options" msgstr "" -#: picard/ui/ui_options_advanced.py:47 +#: picard/ui/ui_options_advanced.py:43 msgid "Ignore file paths matching the following regular expression:" msgstr "" -#: picard/ui/ui_options_cdlookup.py:56 +#: picard/ui/ui_options_cdlookup.py:43 msgid "CD-ROM device to use for lookups:" msgstr "Unidade de CD-ROM a ser usada para buscas:" -#: picard/ui/ui_options_cdlookup_select.py:63 +#: picard/ui/ui_options_cdlookup_select.py:50 msgid "Default CD-ROM drive to use for lookups:" msgstr "Unidade de CD-ROM padrão a ser usada para buscas:" -#: picard/ui/ui_options_cover.py:145 +#: picard/ui/ui_options_cover.py:131 msgid "Location" msgstr "Localização" -#: picard/ui/ui_options_cover.py:146 +#: picard/ui/ui_options_cover.py:132 msgid "Embed cover images into tags" msgstr "Embutir imagens de capa nas tags" -#: picard/ui/ui_options_cover.py:147 +#: picard/ui/ui_options_cover.py:133 msgid "Only embed a front image" msgstr "" -#: picard/ui/ui_options_cover.py:148 +#: picard/ui/ui_options_cover.py:134 msgid "Save cover images as separate files" msgstr "Salvar imagens de capa em arquivos separados" -#: picard/ui/ui_options_cover.py:149 +#: picard/ui/ui_options_cover.py:135 msgid "Use the following file name for images:" msgstr "" -#: picard/ui/ui_options_cover.py:150 +#: picard/ui/ui_options_cover.py:136 msgid "Overwrite the file if it already exists" msgstr "Substituir o arquivo se já existir" -#: picard/ui/ui_options_cover.py:151 +#: picard/ui/ui_options_cover.py:137 msgid "Coverart Providers" msgstr "" -#: picard/ui/ui_options_cover.py:152 +#: picard/ui/ui_options_cover.py:138 msgid "Amazon" msgstr "" -#: picard/ui/ui_options_cover.py:153 picard/ui/ui_options_cover.py:155 +#: picard/ui/ui_options_cover.py:139 picard/ui/ui_options_cover.py:141 msgid "Cover Art Archive" msgstr "" -#: picard/ui/ui_options_cover.py:154 +#: picard/ui/ui_options_cover.py:140 msgid "Sites on the whitelist" msgstr "" -#: picard/ui/ui_options_cover.py:156 +#: picard/ui/ui_options_cover.py:142 msgid "Only use images of the following size:" msgstr "" -#: picard/ui/ui_options_cover.py:157 +#: picard/ui/ui_options_cover.py:143 msgid "250 px" msgstr "" -#: picard/ui/ui_options_cover.py:158 +#: picard/ui/ui_options_cover.py:144 msgid "500 px" msgstr "" -#: picard/ui/ui_options_cover.py:159 +#: picard/ui/ui_options_cover.py:145 msgid "Full size" msgstr "" -#: picard/ui/ui_options_cover.py:160 +#: picard/ui/ui_options_cover.py:146 msgid "Download only images of the following types:" msgstr "" -#: picard/ui/ui_options_cover.py:161 +#: picard/ui/ui_options_cover.py:147 msgid "Download only approved images" msgstr "" -#: picard/ui/ui_options_cover.py:162 +#: picard/ui/ui_options_cover.py:148 msgid "" "Use the first image type as the filename. This will not change the filename " "of front images." msgstr "" -#: picard/ui/ui_options_fingerprinting.py:83 +#: picard/ui/ui_options_fingerprinting.py:70 msgid "Audio Fingerprinting" msgstr "" -#: picard/ui/ui_options_fingerprinting.py:84 +#: picard/ui/ui_options_fingerprinting.py:71 msgid "Do not use audio fingerprinting" msgstr "" -#: picard/ui/ui_options_fingerprinting.py:85 +#: picard/ui/ui_options_fingerprinting.py:72 msgid "Use AcoustID" msgstr "Usar AcoustID" -#: picard/ui/ui_options_fingerprinting.py:86 +#: picard/ui/ui_options_fingerprinting.py:73 msgid "AcoustID Settings" msgstr "" -#: picard/ui/ui_options_fingerprinting.py:87 +#: picard/ui/ui_options_fingerprinting.py:74 msgid "Fingerprint calculator:" msgstr "" -#: picard/ui/ui_options_fingerprinting.py:88 -#: picard/ui/ui_options_interface.py:88 picard/ui/ui_options_renaming.py:138 +#: picard/ui/ui_options_fingerprinting.py:75 +#: picard/ui/ui_options_interface.py:75 picard/ui/ui_options_renaming.py:134 msgid "Browse..." msgstr "Procurar..." -#: picard/ui/ui_options_fingerprinting.py:89 +#: picard/ui/ui_options_fingerprinting.py:76 msgid "Download..." msgstr "Baixar..." -#: picard/ui/ui_options_fingerprinting.py:90 +#: picard/ui/ui_options_fingerprinting.py:77 msgid "API key:" msgstr "Chave API:" -#: picard/ui/ui_options_fingerprinting.py:91 +#: picard/ui/ui_options_fingerprinting.py:78 msgid "Get API key..." msgstr "Obter chave API..." -#: picard/ui/ui_options_folksonomy.py:115 picard/ui/options/folksonomy.py:28 +#: picard/ui/ui_options_folksonomy.py:102 picard/ui/options/folksonomy.py:28 msgid "Folksonomy Tags" msgstr "Etiquetas de folksonomia" -#: picard/ui/ui_options_folksonomy.py:117 +#: picard/ui/ui_options_folksonomy.py:104 msgid "Only use my tags" msgstr "Use somente minhas tags" -#: picard/ui/ui_options_folksonomy.py:120 +#: picard/ui/ui_options_folksonomy.py:107 msgid "Maximum number of tags:" msgstr "Número máximo de etiquetas:" -#: picard/ui/ui_options_general.py:92 +#: picard/ui/ui_options_general.py:88 msgid "MusicBrainz Server" msgstr "Servidor MusicBrainz" -#: picard/ui/ui_options_general.py:93 picard/ui/ui_options_network.py:123 +#: picard/ui/ui_options_general.py:89 picard/ui/ui_options_network.py:110 msgid "Port:" msgstr "Porta:" -#: picard/ui/ui_options_general.py:94 picard/ui/ui_options_network.py:124 +#: picard/ui/ui_options_general.py:90 picard/ui/ui_options_network.py:111 msgid "Server address:" msgstr "Endereço do servidor:" -#: picard/ui/ui_options_general.py:95 +#: picard/ui/ui_options_general.py:91 msgid "Account Information" msgstr "Informações da conta" -#: picard/ui/ui_options_general.py:96 picard/ui/ui_options_network.py:121 -#: picard/ui/ui_passworddialog.py:74 +#: picard/ui/ui_options_general.py:92 picard/ui/ui_options_network.py:108 +#: picard/ui/ui_passworddialog.py:70 msgid "Password:" msgstr "Senha:" -#: picard/ui/ui_options_general.py:97 picard/ui/ui_options_network.py:122 -#: picard/ui/ui_passworddialog.py:73 +#: picard/ui/ui_options_general.py:93 picard/ui/ui_options_network.py:109 +#: picard/ui/ui_passworddialog.py:69 msgid "Username:" msgstr "Nome de usuário:" -#: picard/ui/ui_options_general.py:98 picard/ui/options/general.py:31 +#: picard/ui/ui_options_general.py:94 picard/ui/options/general.py:31 msgid "General" msgstr "Geral" -#: picard/ui/ui_options_general.py:99 +#: picard/ui/ui_options_general.py:95 msgid "Automatically scan all new files" msgstr "Analisar novos arquivos automaticamente" -#: picard/ui/ui_options_general.py:100 +#: picard/ui/ui_options_general.py:96 msgid "Ignore MBIDs when loading new files" msgstr "" -#: picard/ui/ui_options_interface.py:82 +#: picard/ui/ui_options_interface.py:69 msgid "Miscellaneous" msgstr "Diversos" -#: picard/ui/ui_options_interface.py:83 +#: picard/ui/ui_options_interface.py:70 msgid "Show text labels under icons" msgstr "Mostrar nomes embaixo dos ícones" -#: picard/ui/ui_options_interface.py:84 +#: picard/ui/ui_options_interface.py:71 msgid "Allow selection of multiple directories" msgstr "Permitir a seleção de várias pastas" -#: picard/ui/ui_options_interface.py:85 +#: picard/ui/ui_options_interface.py:72 msgid "Use advanced query syntax" msgstr "Usar sintaxe de consulta avançada" -#: picard/ui/ui_options_interface.py:86 +#: picard/ui/ui_options_interface.py:73 msgid "Show a quit confirmation dialog for unsaved changes" msgstr "Mostre uma janela de confirmação para alterações não salvas" -#: picard/ui/ui_options_interface.py:87 +#: picard/ui/ui_options_interface.py:74 msgid "Begin browsing in the following directory:" msgstr "" -#: picard/ui/ui_options_interface.py:89 +#: picard/ui/ui_options_interface.py:76 msgid "User interface language:" msgstr "Interface de linguagem do usuário:" -#: picard/ui/ui_options_matching.py:86 +#: picard/ui/ui_options_matching.py:73 msgid "Thresholds" msgstr "Preferências" -#: picard/ui/ui_options_matching.py:87 +#: picard/ui/ui_options_matching.py:74 msgid "Minimal similarity for matching files to tracks:" msgstr "Similaridade mínima para associar faixas e arquivos:" -#: picard/ui/ui_options_matching.py:91 +#: picard/ui/ui_options_matching.py:78 msgid "Minimal similarity for file lookups:" msgstr "Similaridade mínima para pesquisas de arquivo:" -#: picard/ui/ui_options_matching.py:92 +#: picard/ui/ui_options_matching.py:79 msgid "Minimal similarity for cluster lookups:" msgstr "Similaridade mínima para pesquisas de grupo:" -#: picard/ui/ui_options_metadata.py:114 picard/ui/options/metadata.py:29 +#: picard/ui/ui_options_metadata.py:101 picard/ui/options/metadata.py:29 msgid "Metadata" msgstr "Metadados" -#: picard/ui/ui_options_metadata.py:115 +#: picard/ui/ui_options_metadata.py:102 msgid "Translate artist names to this locale where possible:" msgstr "Traduza os nomes dos artistas para esta localização quando possível:" -#: picard/ui/ui_options_metadata.py:116 +#: picard/ui/ui_options_metadata.py:103 msgid "Use standardized artist names" msgstr "Usar nomes de artistas padronizados" -#: picard/ui/ui_options_metadata.py:117 +#: picard/ui/ui_options_metadata.py:104 msgid "Convert Unicode punctuation characters to ASCII" msgstr "Converter caracteres de pontuação Unicode para ASCII" -#: picard/ui/ui_options_metadata.py:118 +#: picard/ui/ui_options_metadata.py:105 msgid "Use release relationships" msgstr "Usar relacionamentos de álbuns" -#: picard/ui/ui_options_metadata.py:119 +#: picard/ui/ui_options_metadata.py:106 msgid "Use track relationships" msgstr "Usar relacionamentos de faixa" -#: picard/ui/ui_options_metadata.py:120 +#: picard/ui/ui_options_metadata.py:107 msgid "Use folksonomy tags as genre" msgstr "Usar etiquetas de folksonomia (dos usuários) como gênero" -#: picard/ui/ui_options_metadata.py:121 +#: picard/ui/ui_options_metadata.py:108 msgid "Custom Fields" msgstr "Campos personalizados" -#: picard/ui/ui_options_metadata.py:122 +#: picard/ui/ui_options_metadata.py:109 msgid "Various artists:" msgstr "Vários artistas:" -#: picard/ui/ui_options_metadata.py:123 +#: picard/ui/ui_options_metadata.py:110 msgid "Non-album tracks:" msgstr "Faixas sem álbum:" -#: picard/ui/ui_options_metadata.py:124 picard/ui/ui_options_metadata.py:125 -#: picard/ui/ui_options_renaming.py:147 +#: picard/ui/ui_options_metadata.py:111 picard/ui/ui_options_metadata.py:112 +#: picard/ui/ui_options_renaming.py:143 msgid "Default" msgstr "Padrão" -#: picard/ui/ui_options_network.py:120 +#: picard/ui/ui_options_network.py:107 msgid "Web Proxy" msgstr "Proxy" -#: picard/ui/ui_options_network.py:125 +#: picard/ui/ui_options_network.py:112 msgid "Browser Integration" msgstr "" -#: picard/ui/ui_options_network.py:126 +#: picard/ui/ui_options_network.py:113 msgid "Default listening port:" msgstr "" -#: picard/ui/ui_options_network.py:127 +#: picard/ui/ui_options_network.py:114 msgid "Listen only on localhost" msgstr "" -#: picard/ui/ui_options_plugins.py:131 picard/ui/options/plugins.py:38 +#: picard/ui/ui_options_plugins.py:127 picard/ui/options/plugins.py:38 msgid "Plugins" msgstr "Plugins" -#: picard/ui/ui_options_plugins.py:132 picard/ui/options/plugins.py:122 +#: picard/ui/ui_options_plugins.py:128 picard/ui/options/plugins.py:122 msgid "Name" msgstr "Nome" -#: picard/ui/ui_options_plugins.py:133 picard/util/tags.py:39 +#: picard/ui/ui_options_plugins.py:129 msgid "Version" msgstr "Versão" -#: picard/ui/ui_options_plugins.py:134 picard/ui/options/plugins.py:125 +#: picard/ui/ui_options_plugins.py:130 picard/ui/options/plugins.py:125 msgid "Author" msgstr "Autor" -#: picard/ui/ui_options_plugins.py:135 +#: picard/ui/ui_options_plugins.py:131 msgid "Install plugin..." msgstr "Instalar plugin..." -#: picard/ui/ui_options_plugins.py:136 +#: picard/ui/ui_options_plugins.py:132 msgid "Open plugin folder" msgstr "Abrir o diretório de plugins" -#: picard/ui/ui_options_plugins.py:137 +#: picard/ui/ui_options_plugins.py:133 msgid "Download plugins" msgstr "Baixar plugins" -#: picard/ui/ui_options_plugins.py:138 +#: picard/ui/ui_options_plugins.py:134 msgid "Details" msgstr "Detalhes" -#: picard/ui/ui_options_ratings.py:53 +#: picard/ui/ui_options_ratings.py:49 msgid "Enable track ratings" msgstr "Abilitar classificação de faixas" -#: picard/ui/ui_options_ratings.py:54 +#: picard/ui/ui_options_ratings.py:50 msgid "" "Picard saves the ratings together with an e-mail address identifying the " "user who did the rating. That way different ratings for different users can " @@ -1488,207 +1414,167 @@ msgid "" "your ratings." msgstr "O Picard salva as avaliações juntamente com um endereço de e-mail para identificar o usuário que fez a avaliação. Dessa forma, avaliações de usuários diferentes podem ser armazenadas em arquivos. Por favor, Indique o e-mail que você deseja usar para salvar suas avaliações" -#: picard/ui/ui_options_ratings.py:55 +#: picard/ui/ui_options_ratings.py:51 msgid "E-mail:" msgstr "E-mail:" -#: picard/ui/ui_options_ratings.py:56 +#: picard/ui/ui_options_ratings.py:52 msgid "Submit ratings to MusicBrainz" msgstr "Enviar avaliações para o MusicBrainz" -#: picard/ui/ui_options_releases.py:215 +#: picard/ui/ui_options_releases.py:104 msgid "Preferred release types" msgstr "Tipos de release preferidos" -#: picard/ui/ui_options_releases.py:217 -msgid "Single" -msgstr "Single" - -#: picard/ui/ui_options_releases.py:218 -msgid "EP" -msgstr "EP" - -#: picard/ui/ui_options_releases.py:219 -msgid "Compilation" -msgstr "Compilação" - -#: picard/ui/ui_options_releases.py:220 -msgid "Soundtrack" -msgstr "Trilha sonora" - -#: picard/ui/ui_options_releases.py:221 -msgid "Spokenword" -msgstr "Falado" - -#: picard/ui/ui_options_releases.py:222 -msgid "Interview" -msgstr "Entrevista" - -#: picard/ui/ui_options_releases.py:223 -msgid "Audiobook" -msgstr "Livro em áudio" - -#: picard/ui/ui_options_releases.py:224 -msgid "Live" -msgstr "Ao vivo" - -#: picard/ui/ui_options_releases.py:225 -msgid "Remix" -msgstr "Remix" - -#: picard/ui/ui_options_releases.py:227 -msgid "Reset all" -msgstr "Limpar tudo" - -#: picard/ui/ui_options_releases.py:228 +#: picard/ui/ui_options_releases.py:105 msgid "Preferred release countries" msgstr "" -#: picard/ui/ui_options_releases.py:229 picard/ui/ui_options_releases.py:232 +#: picard/ui/ui_options_releases.py:106 picard/ui/ui_options_releases.py:109 msgid ">" msgstr ">" -#: picard/ui/ui_options_releases.py:230 picard/ui/ui_options_releases.py:233 +#: picard/ui/ui_options_releases.py:107 picard/ui/ui_options_releases.py:110 msgid "<" msgstr "<" -#: picard/ui/ui_options_releases.py:231 +#: picard/ui/ui_options_releases.py:108 msgid "Preferred release formats" msgstr "Formatos preferidos de lançamento" -#: picard/ui/ui_options_renaming.py:134 +#: picard/ui/ui_options_renaming.py:130 msgid "Rename files when saving" msgstr "Renomear arquivos ao gravar" -#: picard/ui/ui_options_renaming.py:135 +#: picard/ui/ui_options_renaming.py:131 msgid "Replace non-ASCII characters" msgstr "Substituir caracteres não-ASCII" -#: picard/ui/ui_options_renaming.py:136 +#: picard/ui/ui_options_renaming.py:132 msgid "Windows compatibility" msgstr "" -#: picard/ui/ui_options_renaming.py:137 +#: picard/ui/ui_options_renaming.py:133 msgid "Move files to this directory when saving:" msgstr "Mover arquivos para este diretório ao gravar:" -#: picard/ui/ui_options_renaming.py:139 +#: picard/ui/ui_options_renaming.py:135 msgid "Delete empty directories" msgstr "Apagar pastas vazias" -#: picard/ui/ui_options_renaming.py:140 +#: picard/ui/ui_options_renaming.py:136 msgid "Move additional files:" msgstr "Mover arquivos adicionais:" -#: picard/ui/ui_options_renaming.py:141 +#: picard/ui/ui_options_renaming.py:137 msgid "Name files like this" msgstr "Nomear arquivos assim" -#: picard/ui/ui_options_renaming.py:148 +#: picard/ui/ui_options_renaming.py:144 msgid "Examples" msgstr "Exemplos" -#: picard/ui/ui_options_script.py:49 +#: picard/ui/ui_options_script.py:45 msgid "Tagger Script" msgstr "Script de tags" -#: picard/ui/ui_options_tags.py:165 +#: picard/ui/ui_options_tags.py:152 msgid "Write tags to files" msgstr "Escrever as etiquetas no arquivo" -#: picard/ui/ui_options_tags.py:166 +#: picard/ui/ui_options_tags.py:153 msgid "Preserve timestamps of tagged files" msgstr "" -#: picard/ui/ui_options_tags.py:167 +#: picard/ui/ui_options_tags.py:154 msgid "Before Tagging" msgstr "" -#: picard/ui/ui_options_tags.py:168 +#: picard/ui/ui_options_tags.py:155 msgid "Clear existing tags" msgstr "Limpar rótulos existentes" -#: picard/ui/ui_options_tags.py:169 +#: picard/ui/ui_options_tags.py:156 msgid "Remove ID3 tags from FLAC files" msgstr "Remover tags ID3 de arquivos FLAC" -#: picard/ui/ui_options_tags.py:170 +#: picard/ui/ui_options_tags.py:157 msgid "Remove APEv2 tags from MP3 files" msgstr "Remover tags APEv2 de arquivos MP3" -#: picard/ui/ui_options_tags.py:171 +#: picard/ui/ui_options_tags.py:158 msgid "" "Preserve these tags from being cleared or overwritten with MusicBrainz data:" msgstr "" -#: picard/ui/ui_options_tags.py:172 +#: picard/ui/ui_options_tags.py:159 msgid "Tags are separated by commas, and are case-sensitive." msgstr "" -#: picard/ui/ui_options_tags.py:173 +#: picard/ui/ui_options_tags.py:160 msgid "Tag Compatibility" msgstr "" -#: picard/ui/ui_options_tags.py:174 +#: picard/ui/ui_options_tags.py:161 msgid "ID3v2 Version" msgstr "" -#: picard/ui/ui_options_tags.py:175 +#: picard/ui/ui_options_tags.py:162 msgid "2.4" msgstr "2.4" -#: picard/ui/ui_options_tags.py:176 +#: picard/ui/ui_options_tags.py:163 msgid "2.3" msgstr "2.3" -#: picard/ui/ui_options_tags.py:177 +#: picard/ui/ui_options_tags.py:164 msgid "ID3v2 Text Encoding" msgstr "" -#: picard/ui/ui_options_tags.py:178 +#: picard/ui/ui_options_tags.py:165 msgid "UTF-8" msgstr "UTF-8" -#: picard/ui/ui_options_tags.py:179 +#: picard/ui/ui_options_tags.py:166 msgid "UTF-16" msgstr "UTF-16" -#: picard/ui/ui_options_tags.py:180 +#: picard/ui/ui_options_tags.py:167 msgid "ISO-8859-1" msgstr "ISO-8859-1" -#: picard/ui/ui_options_tags.py:181 +#: picard/ui/ui_options_tags.py:168 msgid "Join multiple ID3v2.3 tags with:" msgstr "" -#: picard/ui/ui_options_tags.py:182 +#: picard/ui/ui_options_tags.py:169 msgid "" "

Default is '/' to maintain compatibility with previous" " Picard releases.

New alternatives are ';_' or '_/_' or type your own." "

" msgstr "" -#: picard/ui/ui_options_tags.py:183 +#: picard/ui/ui_options_tags.py:170 msgid "Also include ID3v1 tags in the files" msgstr "Também incluir rótulos ID3v1 nos arquivos" -#: picard/ui/ui_passworddialog.py:72 +#: picard/ui/ui_passworddialog.py:68 msgid "Authentication required" msgstr "Autenticação necessária" -#: picard/ui/ui_passworddialog.py:75 +#: picard/ui/ui_passworddialog.py:71 msgid "Save username and password" msgstr "Salvar nome de usuário e senha" -#: picard/ui/ui_tagsfromfilenames.py:54 +#: picard/ui/ui_tagsfromfilenames.py:50 msgid "Convert File Names to Tags" msgstr "Converter nomes de arquivo para tags" -#: picard/ui/ui_tagsfromfilenames.py:55 +#: picard/ui/ui_tagsfromfilenames.py:51 msgid "Replace underscores with spaces" msgstr "Substituir _ (underscore) por espaços" -#: picard/ui/ui_tagsfromfilenames.py:56 +#: picard/ui/ui_tagsfromfilenames.py:52 msgid "&Preview" msgstr "&Visualizar" @@ -1744,7 +1630,11 @@ msgstr "Avançado" msgid "Regex Error" msgstr "" -#: picard/ui/options/cover.py:63 +#: picard/ui/options/cover.py:44 +msgid "title" +msgstr "" + +#: picard/ui/options/cover.py:68 msgid "Cover Art" msgstr "Capa" @@ -1760,11 +1650,11 @@ msgstr "Interface de Usuário" msgid "System default" msgstr "Padrão do sistema" -#: picard/ui/options/interface.py:96 +#: picard/ui/options/interface.py:98 msgid "Language changed" msgstr "Alterar Idioma" -#: picard/ui/options/interface.py:96 +#: picard/ui/options/interface.py:99 msgid "" "You have changed the interface language. You have to restart Picard in order" " for the change to take effect." @@ -1786,31 +1676,35 @@ msgstr "Arquivo" msgid "Ratings" msgstr "Classificação" -#: picard/ui/options/releases.py:33 +#: picard/ui/options/releases.py:87 msgid "Preferred Releases" msgstr "" +#: picard/ui/options/releases.py:121 +msgid "Reset all" +msgstr "Limpar tudo" + #: picard/ui/options/renaming.py:37 msgid "File Naming" msgstr "" -#: picard/ui/options/renaming.py:184 +#: picard/ui/options/renaming.py:187 msgid "Error" msgstr "Erro" -#: picard/ui/options/renaming.py:184 +#: picard/ui/options/renaming.py:187 msgid "The location to move files to must not be empty." msgstr "O local para mover os arquivos precisa ser escolhido." -#: picard/ui/options/renaming.py:194 +#: picard/ui/options/renaming.py:197 msgid "The file naming format must not be empty." msgstr "O formato para nomear arquivos não pode estar vazio." -#: picard/ui/options/scripting.py:63 +#: picard/ui/options/scripting.py:99 msgid "Scripting" msgstr "Scripts" -#: picard/ui/options/scripting.py:95 +#: picard/ui/options/scripting.py:131 msgid "Script Error" msgstr "Erro de script" @@ -1930,199 +1824,199 @@ msgstr "ASIN" msgid "Grouping" msgstr "Agrupando" -#: picard/util/tags.py:40 +#: picard/util/tags.py:39 msgid "ISRC" msgstr "ISRC" -#: picard/util/tags.py:41 +#: picard/util/tags.py:40 msgid "Mood" msgstr "Modo" -#: picard/util/tags.py:42 +#: picard/util/tags.py:41 msgid "BPM" msgstr "BPM" -#: picard/util/tags.py:43 +#: picard/util/tags.py:42 msgid "Copyright" msgstr "Direitos Autorais" -#: picard/util/tags.py:44 +#: picard/util/tags.py:43 msgid "License" msgstr "Licença" -#: picard/util/tags.py:45 +#: picard/util/tags.py:44 msgid "Composer" msgstr "Compositor" -#: picard/util/tags.py:46 +#: picard/util/tags.py:45 msgid "Writer" msgstr "Autor" -#: picard/util/tags.py:47 +#: picard/util/tags.py:46 msgid "Conductor" msgstr "Regente" -#: picard/util/tags.py:48 +#: picard/util/tags.py:47 msgid "Lyricist" msgstr "Letrista" -#: picard/util/tags.py:49 +#: picard/util/tags.py:48 msgid "Arranger" msgstr "Arranjador" -#: picard/util/tags.py:50 +#: picard/util/tags.py:49 msgid "Producer" msgstr "Produtor" -#: picard/util/tags.py:51 +#: picard/util/tags.py:50 msgid "Engineer" msgstr "Engenheiro" -#: picard/util/tags.py:52 +#: picard/util/tags.py:51 msgid "Subtitle" msgstr "Subtítulo" -#: picard/util/tags.py:53 +#: picard/util/tags.py:52 msgid "Disc Subtitle" msgstr "Subtitulo do Disco" -#: picard/util/tags.py:54 +#: picard/util/tags.py:53 msgid "Remixer" msgstr "Mixagem" -#: picard/util/tags.py:55 +#: picard/util/tags.py:54 msgid "MusicBrainz Recording Id" msgstr "" -#: picard/util/tags.py:56 +#: picard/util/tags.py:55 msgid "MusicBrainz Track Id" msgstr "" -#: picard/util/tags.py:57 +#: picard/util/tags.py:56 msgid "MusicBrainz Release Id" msgstr "Id MusicBrainz do Álbum" -#: picard/util/tags.py:58 +#: picard/util/tags.py:57 msgid "MusicBrainz Artist Id" msgstr "Id MusicBrainz do Artista" -#: picard/util/tags.py:59 +#: picard/util/tags.py:58 msgid "MusicBrainz Release Artist Id" msgstr "Id MusicBrainz do Artista" -#: picard/util/tags.py:60 +#: picard/util/tags.py:59 msgid "MusicBrainz Work Id" msgstr "" -#: picard/util/tags.py:61 +#: picard/util/tags.py:60 msgid "MusicBrainz Release Group Id" msgstr "" -#: picard/util/tags.py:62 +#: picard/util/tags.py:61 msgid "MusicBrainz Disc Id" msgstr "MusicBrainz Disco Id" -#: picard/util/tags.py:63 -msgid "MusicBrainz Sort Name" -msgstr "MusicBrainz Organizar Nome" - -#: picard/util/tags.py:64 +#: picard/util/tags.py:62 msgid "MusicIP PUID" msgstr "PUID MusicIP" -#: picard/util/tags.py:65 +#: picard/util/tags.py:63 msgid "MusicIP Fingerprint" msgstr "MusicIP Fingerprint" -#: picard/util/tags.py:66 +#: picard/util/tags.py:64 msgid "AcoustID" msgstr "AcoustID" -#: picard/util/tags.py:67 +#: picard/util/tags.py:65 msgid "AcoustID Fingerprint" msgstr "Impressão digital do AcoustID" -#: picard/util/tags.py:68 +#: picard/util/tags.py:66 msgid "Disc Id" msgstr "Disco Id" -#: picard/util/tags.py:69 -msgid "Website" -msgstr "Página" +#: picard/util/tags.py:67 +msgid "Artist Website" +msgstr "" -#: picard/util/tags.py:70 +#: picard/util/tags.py:68 msgid "Compilation (iTunes)" msgstr "" -#: picard/util/tags.py:71 +#: picard/util/tags.py:69 msgid "Comment" msgstr "Comentários" -#: picard/util/tags.py:72 +#: picard/util/tags.py:70 msgid "Genre" msgstr "Gênero" -#: picard/util/tags.py:73 +#: picard/util/tags.py:71 msgid "Encoded By" msgstr "Codificado por" -#: picard/util/tags.py:74 +#: picard/util/tags.py:72 +msgid "Encoder Settings" +msgstr "" + +#: picard/util/tags.py:73 msgid "Performer" msgstr "Intérprete" -#: picard/util/tags.py:75 +#: picard/util/tags.py:74 msgid "Release Type" msgstr "Tipo de Lançamento" -#: picard/util/tags.py:76 +#: picard/util/tags.py:75 msgid "Release Status" msgstr "Estado do Lançamento" -#: picard/util/tags.py:77 +#: picard/util/tags.py:76 msgid "Release Country" msgstr "País de Lançamento" -#: picard/util/tags.py:78 +#: picard/util/tags.py:77 msgid "Record Label" msgstr "Gravadora" -#: picard/util/tags.py:80 +#: picard/util/tags.py:79 msgid "Catalog Number" msgstr "Número de Catálogo" -#: picard/util/tags.py:82 +#: picard/util/tags.py:80 msgid "DJ-Mixer" msgstr "DJ-Mixer" -#: picard/util/tags.py:83 +#: picard/util/tags.py:81 msgid "Media" msgstr "Mídia" -#: picard/util/tags.py:84 +#: picard/util/tags.py:82 msgid "Lyrics" msgstr "Letras" -#: picard/util/tags.py:85 +#: picard/util/tags.py:83 msgid "Mixer" msgstr "Mixer" -#: picard/util/tags.py:86 +#: picard/util/tags.py:84 msgid "Language" msgstr "Linguagem" -#: picard/util/tags.py:87 +#: picard/util/tags.py:85 msgid "Script" msgstr "Script" -#: picard/util/tags.py:89 +#: picard/util/tags.py:87 msgid "Rating" msgstr "" -#: picard/util/tags.py:90 +#: picard/util/tags.py:88 msgid "Artists" msgstr "" -#: picard/util/tags.py:91 +#: picard/util/tags.py:89 msgid "Work" msgstr "" diff --git a/po/ro.po b/po/ro.po index aec20ec04..17aefb94b 100644 --- a/po/ro.po +++ b/po/ro.po @@ -9,8 +9,8 @@ msgid "" msgstr "" "Project-Id-Version: MusicBrainz\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2014-03-20 11:12+0100\n" -"PO-Revision-Date: 2014-03-21 08:44+0000\n" +"POT-Creation-Date: 2014-05-03 17:28+0200\n" +"PO-Revision-Date: 2014-05-04 08:44+0000\n" "Last-Translator: nikki\n" "Language-Team: Romanian (http://www.transifex.com/projects/p/musicbrainz/language/ro/)\n" "MIME-Version: 1.0\n" @@ -20,6 +20,10 @@ msgstr "" "Language: ro\n" "Plural-Forms: nplurals=3; plural=(n==1?0:(((n%100>19)||((n%100==0)&&(n!=0)))?2:1));\n" +#: contrib/plugins/albumartist_website.py:3 +msgid "Album Artist Website" +msgstr "" + #: contrib/plugins/no_release.py:50 msgid "Enable plugin for all releases by default" msgstr "" @@ -32,63 +36,55 @@ msgstr "" msgid "Remove specific release information..." msgstr "" -#: contrib/plugins/open_in_gui.py:32 -msgid "Open Error" +#: contrib/plugins/standardise_performers.py:3 +msgid "Standardise Performers" msgstr "" -#: contrib/plugins/open_in_gui.py:32 -#, python-format -msgid "" -"Error while opening file:\n" -"\n" -"%s" -msgstr "" - -#: contrib/plugins/lastfm/ui_options_lastfm.py:117 +#: contrib/plugins/lastfm/ui_options_lastfm.py:99 msgid "Last.fm" msgstr "Last.fm" -#: contrib/plugins/lastfm/ui_options_lastfm.py:118 +#: contrib/plugins/lastfm/ui_options_lastfm.py:100 msgid "Use track tags" msgstr "" -#: contrib/plugins/lastfm/ui_options_lastfm.py:119 +#: contrib/plugins/lastfm/ui_options_lastfm.py:101 msgid "Use artist tags" msgstr "" -#: contrib/plugins/lastfm/ui_options_lastfm.py:120 +#: contrib/plugins/lastfm/ui_options_lastfm.py:102 #: picard/ui/options/tags.py:30 msgid "Tags" msgstr "Etichete" -#: contrib/plugins/lastfm/ui_options_lastfm.py:121 -#: picard/ui/ui_options_folksonomy.py:116 +#: contrib/plugins/lastfm/ui_options_lastfm.py:103 +#: picard/ui/ui_options_folksonomy.py:103 msgid "Ignore tags:" msgstr "Ignoră etichetele:" -#: contrib/plugins/lastfm/ui_options_lastfm.py:122 -#: picard/ui/ui_options_folksonomy.py:121 +#: contrib/plugins/lastfm/ui_options_lastfm.py:104 +#: picard/ui/ui_options_folksonomy.py:108 msgid "Join multiple tags with:" msgstr "Unește etichete multiple cu:" -#: contrib/plugins/lastfm/ui_options_lastfm.py:123 -#: picard/ui/ui_options_folksonomy.py:122 +#: contrib/plugins/lastfm/ui_options_lastfm.py:105 +#: picard/ui/ui_options_folksonomy.py:109 msgid " / " msgstr " / " -#: contrib/plugins/lastfm/ui_options_lastfm.py:124 -#: picard/ui/ui_options_folksonomy.py:123 +#: contrib/plugins/lastfm/ui_options_lastfm.py:106 +#: picard/ui/ui_options_folksonomy.py:110 msgid ", " msgstr ", " -#: contrib/plugins/lastfm/ui_options_lastfm.py:125 -#: picard/ui/ui_options_folksonomy.py:118 +#: contrib/plugins/lastfm/ui_options_lastfm.py:107 +#: picard/ui/ui_options_folksonomy.py:105 msgid "Minimal tag usage:" msgstr "Cât mai puține tag-uri:" -#: contrib/plugins/lastfm/ui_options_lastfm.py:126 -#: picard/ui/ui_options_folksonomy.py:119 picard/ui/ui_options_matching.py:88 -#: picard/ui/ui_options_matching.py:89 picard/ui/ui_options_matching.py:90 +#: contrib/plugins/lastfm/ui_options_lastfm.py:108 +#: picard/ui/ui_options_folksonomy.py:106 picard/ui/ui_options_matching.py:75 +#: picard/ui/ui_options_matching.py:76 picard/ui/ui_options_matching.py:77 msgid " %" msgstr " %" @@ -96,93 +92,152 @@ msgstr " %" msgid "Calculate replay &gain..." msgstr "" -#: contrib/plugins/replaygain/__init__.py:66 +#: contrib/plugins/replaygain/__init__.py:67 #, python-format -msgid "Calculating replay gain for \"%s\"..." +msgid "Calculating replay gain for \"%(filename)s\"..." msgstr "" -#: contrib/plugins/replaygain/__init__.py:71 +#: contrib/plugins/replaygain/__init__.py:75 #, python-format -msgid "Replay gain for \"%s\" successfully calculated." +msgid "Replay gain for \"%(filename)s\" successfully calculated." msgstr "" -#: contrib/plugins/replaygain/__init__.py:73 +#: contrib/plugins/replaygain/__init__.py:80 #, python-format -msgid "Could not calculate replay gain for \"%s\"." +msgid "Could not calculate replay gain for \"%(filename)s\"." msgstr "" -#: contrib/plugins/replaygain/__init__.py:76 +#: contrib/plugins/replaygain/__init__.py:85 msgid "Calculate album &gain..." msgstr "" -#: contrib/plugins/replaygain/__init__.py:103 -#: contrib/plugins/replaygain/__init__.py:111 +#: contrib/plugins/replaygain/__init__.py:113 +#: contrib/plugins/replaygain/__init__.py:124 #, python-format -msgid "Calculating album gain for \"%s\"..." +msgid "Calculating album gain for \"%(album)s\"..." msgstr "" -#: contrib/plugins/replaygain/__init__.py:119 +#: contrib/plugins/replaygain/__init__.py:135 #, python-format -msgid "Album gain for \"%s\" successfully calculated." +msgid "Album gain for \"%(album)s\" successfully calculated." msgstr "" -#: contrib/plugins/replaygain/__init__.py:121 +#: contrib/plugins/replaygain/__init__.py:140 #, python-format -msgid "Could not calculate album gain for \"%s\"." +msgid "Could not calculate album gain for \"%(album)s\"." msgstr "" -#: picard/acoustid.py:102 -#, python-format -msgid "AcoustID lookup network error for '%s'!" +#: contrib/plugins/replaygain/ui_options_replaygain.py:59 +msgid "Replay Gain" msgstr "" -#: picard/acoustid.py:117 -#, python-format -msgid "AcoustID lookup failed for '%s'!" +#: contrib/plugins/replaygain/ui_options_replaygain.py:60 +msgid "Path to VorbisGain:" msgstr "" -#: picard/acoustid.py:128 -#, python-format -msgid "Acoustid lookup returned no result for file '%s'" +#: contrib/plugins/replaygain/ui_options_replaygain.py:61 +msgid "Path to MP3Gain:" msgstr "" -#: picard/acoustid.py:132 -#, python-format -msgid "Looking up the fingerprint for file %s..." +#: contrib/plugins/replaygain/ui_options_replaygain.py:62 +msgid "Path to metaflac:" msgstr "" -#: picard/acoustidmanager.py:78 -msgid "Submitting AcoustIDs..." -msgstr "Transmitere AcoustIDs..." - -#: picard/acoustidmanager.py:83 -#, python-format -msgid "AcoustID submission failed with error '%s'" +#: contrib/plugins/replaygain/ui_options_replaygain.py:63 +msgid "Path to wvgain:" msgstr "" -#: picard/acoustidmanager.py:85 +#: contrib/plugins/viewvariables/__init__.py:42 +#, python-format +msgid "File: %s" +msgstr "" + +#: contrib/plugins/viewvariables/__init__.py:47 +#, python-format +msgid "Track: %s %s " +msgstr "" + +#: contrib/plugins/viewvariables/__init__.py:49 +msgid "Variables" +msgstr "" + +#: contrib/plugins/viewvariables/__init__.py:69 +msgid "File variables" +msgstr "" + +#: contrib/plugins/viewvariables/__init__.py:74 +msgid "Hidden variables" +msgstr "" + +#: contrib/plugins/viewvariables/__init__.py:79 +msgid "Tag variables" +msgstr "" + +#: contrib/plugins/viewvariables/ui_variables_dialog.py:73 +msgid "Variable" +msgstr "" + +#: contrib/plugins/viewvariables/ui_variables_dialog.py:75 +msgid "Value" +msgstr "" + +#: picard/acoustid.py:109 +#, python-format +msgid "AcoustID lookup network error for '%(filename)s'!" +msgstr "" + +#: picard/acoustid.py:133 +#, python-format +msgid "AcoustID lookup failed for '%(filename)s'!" +msgstr "" + +#: picard/acoustid.py:155 +#, python-format +msgid "AcoustID lookup returned no result for file '%(filename)s'" +msgstr "" + +#: picard/acoustid.py:166 +#, python-format +msgid "Looking up the fingerprint for file '%(filename)s' ..." +msgstr "" + +#: picard/acoustidmanager.py:80 +msgid "Submitting AcoustIDs ..." +msgstr "" + +#: picard/acoustidmanager.py:94 +#, python-format +msgid "AcoustID submission failed with error '%(error)s'" +msgstr "" + +#: picard/acoustidmanager.py:102 msgid "AcoustIDs successfully submitted." msgstr "" -#: picard/album.py:64 picard/cluster.py:234 +#: picard/album.py:65 picard/cluster.py:255 msgid "Unmatched Files" msgstr "Fișiere neașezate" -#: picard/album.py:187 +#: picard/album.py:188 #, python-format msgid "[could not load album %s]" msgstr "[nu s-a putut încărca albumul %s]" -#: picard/album.py:272 +#: picard/album.py:277 #, python-format -msgid "Album %s loaded" +msgid "Album %(id)s loaded: %(artist)s - %(album)s" msgstr "" -#: picard/album.py:288 +#: picard/album.py:294 +#, python-format +msgid "Loading album %(id)s ..." +msgstr "" + +#: picard/album.py:303 msgid "[loading album information]" msgstr "[se încarcă informațiile albumului]" -#: picard/album.py:463 +#: picard/album.py:478 #, python-format msgid "; %i image" msgid_plural "; %i images" @@ -190,328 +245,156 @@ msgstr[0] "" msgstr[1] "" msgstr[2] "" -#: picard/cluster.py:150 picard/cluster.py:159 +#: picard/cluster.py:155 picard/cluster.py:168 #, python-format -msgid "No matching releases for cluster %s" +msgid "No matching releases for cluster %(album)s" msgstr "" -#: picard/cluster.py:161 +#: picard/cluster.py:174 #, python-format -msgid "Cluster %s identified!" +msgid "Cluster %(album)s identified!" msgstr "" -#: picard/cluster.py:168 +#: picard/cluster.py:185 #, python-format -msgid "Looking up the metadata for cluster %s..." +msgid "Looking up the metadata for cluster %(album)s..." msgstr "" -#: picard/collection.py:60 +#: picard/collection.py:64 #, python-format -msgid "Added %i release to collection \"%s\"" -msgid_plural "Added %i releases to collection \"%s\"" +msgid "Added %(count)i release to collection \"%(name)s\"" +msgid_plural "Added %(count)i releases to collection \"%(name)s\"" msgstr[0] "" msgstr[1] "" msgstr[2] "" -#: picard/collection.py:72 +#: picard/collection.py:86 #, python-format -msgid "Removed %i release from collection \"%s\"" -msgid_plural "Removed %i releases from collection \"%s\"" +msgid "Removed %(count)i release from collection \"%(name)s\"" +msgid_plural "Removed %(count)i releases from collection \"%(name)s\"" msgstr[0] "" msgstr[1] "" msgstr[2] "" -#: picard/collection.py:81 +#: picard/collection.py:100 #, python-format -msgid "Error loading collections: %s" +msgid "Error loading collections: %(error)s" msgstr "" -#: picard/config_upgrade.py:57 picard/config_upgrade.py:70 +#: picard/config_upgrade.py:58 picard/config_upgrade.py:71 msgid "Various Artists file naming scheme removal" msgstr "" -#: picard/config_upgrade.py:58 +#: picard/config_upgrade.py:59 msgid "" "The separate file naming scheme for various artists albums has been removed in this version of Picard.\n" "Your file naming scheme has automatically been merged with that of single artist albums." msgstr "" -#: picard/config_upgrade.py:71 +#: picard/config_upgrade.py:72 msgid "" "The separate file naming scheme for various artists albums has been removed in this version of Picard.\n" "You currently do not use this option, but have a separate file naming scheme defined.\n" "Do you want to remove it or merge it with your file naming scheme for single artist albums?" msgstr "" -#: picard/config_upgrade.py:77 +#: picard/config_upgrade.py:78 msgid "Merge" msgstr "Combină" -#: picard/config_upgrade.py:77 picard/ui/metadatabox.py:254 +#: picard/config_upgrade.py:78 picard/ui/metadatabox.py:254 msgid "Remove" msgstr "Înlătu&ră" -#: picard/const.py:67 -msgid "CD" -msgstr "CD" - -#: picard/const.py:68 -msgid "CD-R" -msgstr "CD-R" - -#: picard/const.py:69 -msgid "HDCD" -msgstr "" - -#: picard/const.py:70 -msgid "8cm CD" -msgstr "" - -#: picard/const.py:71 -msgid "Vinyl" -msgstr "Vinil" - -#: picard/const.py:72 -msgid "7\" Vinyl" -msgstr "" - -#: picard/const.py:73 -msgid "10\" Vinyl" -msgstr "" - -#: picard/const.py:74 -msgid "12\" Vinyl" -msgstr "" - -#: picard/const.py:75 -msgid "Digital Media" -msgstr "" - -#: picard/const.py:76 -msgid "USB Flash Drive" -msgstr "Memorie USB" - -#: picard/const.py:77 -msgid "slotMusic" -msgstr "" - -#: picard/const.py:78 -msgid "Cassette" -msgstr "Casetă" - -#: picard/const.py:79 -msgid "DVD" -msgstr "DVD" - -#: picard/const.py:80 -msgid "DVD-Audio" -msgstr "DVD-Audio" - -#: picard/const.py:81 -msgid "DVD-Video" -msgstr "DVD-Video" - -#: picard/const.py:82 -msgid "SACD" -msgstr "" - -#: picard/const.py:83 -msgid "DualDisc" -msgstr "" - -#: picard/const.py:84 -msgid "MiniDisc" -msgstr "" - -#: picard/const.py:85 -msgid "Blu-ray" -msgstr "Blu-ray" - -#: picard/const.py:86 -msgid "HD-DVD" -msgstr "" - -#: picard/const.py:87 -msgid "Videotape" -msgstr "Casetă video" - -#: picard/const.py:88 -msgid "VHS" -msgstr "VHS" - -#: picard/const.py:89 -msgid "Betamax" -msgstr "Betamax" - #: picard/const.py:90 -msgid "VCD" -msgstr "" - -#: picard/const.py:91 -msgid "SVCD" -msgstr "" - -#: picard/const.py:92 -msgid "UMD" -msgstr "" - -#: picard/const.py:93 picard/coverartarchive.py:33 -#: picard/ui/ui_options_releases.py:226 -msgid "Other" -msgstr "" - -#: picard/const.py:94 -msgid "LaserDisc" -msgstr "LaserDisc" - -#: picard/const.py:95 -msgid "Cartridge" -msgstr "Cartuș" - -#: picard/const.py:96 -msgid "Reel-to-reel" -msgstr "" - -#: picard/const.py:97 -msgid "DAT" -msgstr "" - -#: picard/const.py:98 -msgid "Wax Cylinder" -msgstr "Cilindru de ceară" - -#: picard/const.py:99 -msgid "Piano Roll" -msgstr "" - -#: picard/const.py:100 -msgid "DCC" -msgstr "" - -#: picard/const.py:115 msgid "Danish" msgstr "Daneză" -#: picard/const.py:116 +#: picard/const.py:91 msgid "German" msgstr "Germană" -#: picard/const.py:118 +#: picard/const.py:93 msgid "English" msgstr "Engleză" -#: picard/const.py:119 +#: picard/const.py:94 msgid "English (Canada)" msgstr "Engleză (canadiană)" -#: picard/const.py:120 +#: picard/const.py:95 msgid "English (UK)" msgstr "Engleză (britanică)" -#: picard/const.py:122 +#: picard/const.py:97 msgid "Spanish" msgstr "Spaniolă" -#: picard/const.py:123 +#: picard/const.py:98 msgid "Estonian" msgstr "Estonă" -#: picard/const.py:125 +#: picard/const.py:100 msgid "Finnish" msgstr "Finlandeză" -#: picard/const.py:127 +#: picard/const.py:102 msgid "French" msgstr "Franceză" -#: picard/const.py:136 +#: picard/const.py:111 msgid "Italian" msgstr "Italiană" -#: picard/const.py:143 +#: picard/const.py:118 msgid "Dutch" msgstr "Olandeză" -#: picard/const.py:145 +#: picard/const.py:120 msgid "Polish" msgstr "Poloneză" -#: picard/const.py:147 +#: picard/const.py:122 msgid "Brazilian Portuguese" msgstr "" -#: picard/const.py:154 +#: picard/const.py:129 msgid "Swedish" msgstr "Suedeză" -#: picard/coverart.py:84 +#: picard/coverart.py:85 #, python-format -msgid "Coverart %s downloaded" +msgid "Cover art of type '%(type)s' downloaded for %(albumid)s from %(host)s" msgstr "" -#: picard/coverart.py:240 +#: picard/coverart.py:256 #, python-format -msgid "Downloading http://%s:%i%s" -msgstr "" - -#: picard/coverartarchive.py:24 -msgid "Front" -msgstr "" - -#: picard/coverartarchive.py:25 -msgid "Back" -msgstr "" - -#: picard/coverartarchive.py:26 -msgid "Booklet" -msgstr "" - -#: picard/coverartarchive.py:27 -msgid "Medium" -msgstr "" - -#: picard/coverartarchive.py:28 -msgid "Tray" -msgstr "" - -#: picard/coverartarchive.py:29 -msgid "Obi" +msgid "" +"Downloading cover art of type '%(type)s' for %(albumid)s from %(host)s .." msgstr "" #: picard/coverartarchive.py:30 -msgid "Spine" -msgstr "" - -#: picard/coverartarchive.py:31 picard/ui/mainwindow.py:546 -msgid "Track" -msgstr "Piesă" - -#: picard/coverartarchive.py:32 -msgid "Sticker" -msgstr "" - -#: picard/coverartarchive.py:34 msgid "Unknown" msgstr "" -#: picard/file.py:536 +#: picard/file.py:494 #, python-format -msgid "No matching tracks for file %s" +msgid "No matching tracks for file '%(filename)s'" msgstr "" -#: picard/file.py:548 +#: picard/file.py:510 #, python-format -msgid "No matching tracks above the threshold for file %s" +msgid "No matching tracks above the threshold for file '%(filename)s'" msgstr "" -#: picard/file.py:551 +#: picard/file.py:517 #, python-format -msgid "File %s identified!" -msgstr "Fişierul %s a fost identificat!" +msgid "File '%(filename)s' identified!" +msgstr "" -#: picard/file.py:567 +#: picard/file.py:537 #, python-format -msgid "Looking up the metadata for file %s..." +msgid "Looking up the metadata for file %(filename)s ..." msgstr "" #: picard/releasegroup.py:53 @@ -522,11 +405,11 @@ msgstr "" msgid "Year" msgstr "" -#: picard/releasegroup.py:55 picard/ui/cdlookup.py:34 +#: picard/releasegroup.py:55 picard/ui/cdlookup.py:35 msgid "Country" msgstr "Țară" -#: picard/releasegroup.py:56 picard/util/tags.py:81 +#: picard/releasegroup.py:56 msgid "Format" msgstr "Format" @@ -546,16 +429,24 @@ msgstr "" msgid "[no release info]" msgstr "" -#: picard/tagger.py:316 +#: picard/tagger.py:370 #, python-format -msgid "Loading directory %s" +msgid "Adding %(count)d file from '%(directory)s' ..." +msgid_plural "Adding %(count)d files from '%(directory)s' ..." +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" + +#: picard/tagger.py:512 +#, python-format +msgid "Removing album %(id)s: %(artist)s - %(album)s" msgstr "" -#: picard/tagger.py:452 +#: picard/tagger.py:528 msgid "CD Lookup Error" msgstr "Eroare la căutarea discului" -#: picard/tagger.py:453 +#: picard/tagger.py:529 #, python-format msgid "" "Error while reading CD:\n" @@ -563,37 +454,36 @@ msgid "" "%s" msgstr "Eroare la citirea discului:\n\n%s" -#: picard/ui/cdlookup.py:34 picard/ui/mainwindow.py:544 -#: picard/ui/ui_options_releases.py:216 picard/util/tags.py:21 +#: picard/ui/cdlookup.py:35 picard/ui/mainwindow.py:597 picard/util/tags.py:21 msgid "Album" msgstr "Album" -#: picard/ui/cdlookup.py:34 picard/ui/itemviews.py:96 -#: picard/ui/mainwindow.py:545 picard/util/tags.py:22 +#: picard/ui/cdlookup.py:35 picard/ui/itemviews.py:96 +#: picard/ui/mainwindow.py:598 picard/util/tags.py:22 msgid "Artist" msgstr "Artist" -#: picard/ui/cdlookup.py:34 picard/util/tags.py:24 +#: picard/ui/cdlookup.py:35 picard/util/tags.py:24 msgid "Date" msgstr "Dată" -#: picard/ui/cdlookup.py:35 +#: picard/ui/cdlookup.py:36 msgid "Labels" msgstr "Case de discuri" -#: picard/ui/cdlookup.py:35 +#: picard/ui/cdlookup.py:36 msgid "Catalog #s" msgstr "" -#: picard/ui/cdlookup.py:35 picard/util/tags.py:79 +#: picard/ui/cdlookup.py:36 picard/util/tags.py:78 msgid "Barcode" msgstr "Cod de bare" -#: picard/ui/collectionmenu.py:31 +#: picard/ui/collectionmenu.py:42 msgid "Refresh List" msgstr "" -#: picard/ui/collectionmenu.py:92 +#: picard/ui/collectionmenu.py:86 #, python-format msgid "%s (%i release)" msgid_plural "%s (%i releases)" @@ -601,7 +491,7 @@ msgstr[0] "" msgstr[1] "" msgstr[2] "" -#: picard/ui/coverartbox.py:142 +#: picard/ui/coverartbox.py:141 msgid "View release on MusicBrainz" msgstr "" @@ -617,59 +507,59 @@ msgstr "Afișează fișierele ascunse" msgid "&Set as starting directory" msgstr "" -#: picard/ui/infodialog.py:36 picard/ui/infodialog.py:75 +#: picard/ui/infodialog.py:37 picard/ui/infodialog.py:80 msgid "Info" msgstr "Informații" -#: picard/ui/infodialog.py:80 +#: picard/ui/infodialog.py:85 msgid "Filename:" msgstr "Nume fișier:" -#: picard/ui/infodialog.py:82 +#: picard/ui/infodialog.py:87 msgid "Format:" msgstr "Format:" -#: picard/ui/infodialog.py:86 +#: picard/ui/infodialog.py:91 msgid "Size:" msgstr "Mărime:" -#: picard/ui/infodialog.py:90 +#: picard/ui/infodialog.py:95 msgid "Length:" msgstr "Durată:" -#: picard/ui/infodialog.py:92 +#: picard/ui/infodialog.py:97 msgid "Bitrate:" msgstr "Rata de biți:" -#: picard/ui/infodialog.py:94 +#: picard/ui/infodialog.py:99 msgid "Sample rate:" msgstr "Rata de eșantionare:" -#: picard/ui/infodialog.py:96 +#: picard/ui/infodialog.py:101 msgid "Bits per sample:" msgstr "Biți pe eșantion:" -#: picard/ui/infodialog.py:100 +#: picard/ui/infodialog.py:105 msgid "Mono" msgstr "Mono" -#: picard/ui/infodialog.py:102 +#: picard/ui/infodialog.py:107 msgid "Stereo" msgstr "Stereo" -#: picard/ui/infodialog.py:105 +#: picard/ui/infodialog.py:110 msgid "Channels:" msgstr "Canale:" -#: picard/ui/infodialog.py:116 +#: picard/ui/infodialog.py:121 msgid "Album Info" msgstr "" -#: picard/ui/infodialog.py:124 +#: picard/ui/infodialog.py:129 msgid "&Errors" msgstr "" -#: picard/ui/infodialog.py:134 picard/ui/ui_infodialog.py:77 +#: picard/ui/infodialog.py:139 picard/ui/ui_infodialog.py:73 msgid "&Info" msgstr "&Informații" @@ -693,7 +583,7 @@ msgstr "" msgid "Title" msgstr "Titlu" -#: picard/ui/itemviews.py:95 picard/util/tags.py:88 +#: picard/ui/itemviews.py:95 picard/util/tags.py:86 msgid "Length" msgstr "Durată:" @@ -718,8 +608,8 @@ msgid "Collections" msgstr "" #: picard/ui/itemviews.py:365 -msgid "&Plugins" -msgstr "&Module" +msgid "P&lugins" +msgstr "" #: picard/ui/itemviews.py:541 msgid "file view" @@ -741,12 +631,16 @@ msgstr "" msgid "Contains albums and matched files" msgstr "" -#: picard/ui/logview.py:91 +#: picard/ui/logview.py:109 msgid "Log" msgstr "Jurnal" -#: picard/ui/logview.py:99 -msgid "Status History" +#: picard/ui/logview.py:113 +msgid "Debug mode" +msgstr "" + +#: picard/ui/logview.py:134 +msgid "Activity History" msgstr "" #: picard/ui/mainwindow.py:74 @@ -781,276 +675,309 @@ msgstr "Pregătit" #: picard/ui/mainwindow.py:220 msgid "" -"Picard listens on a port to integrate with your browser and downloads " -"release information when you click the \"Tagger\" buttons on the MusicBrainz" -" website" +"Picard listens on this port to integrate with your browser. When you " +"\"Search\" or \"Open in Browser\" from Picard, clicking the \"Tagger\" " +"button on the web page loads the release into Picard." msgstr "" -#: picard/ui/mainwindow.py:240 +#: picard/ui/mainwindow.py:243 #, python-format msgid " Listening on port %(port)d " msgstr "Ascultare pe portul %(port)d " -#: picard/ui/mainwindow.py:263 +#: picard/ui/mainwindow.py:299 msgid "Submission Error" msgstr "" -#: picard/ui/mainwindow.py:264 +#: picard/ui/mainwindow.py:300 msgid "" "You need to configure your AcoustID API key before you can submit " "fingerprints." msgstr "" -#: picard/ui/mainwindow.py:269 +#: picard/ui/mainwindow.py:305 msgid "&Options..." msgstr "&Opțiuni" -#: picard/ui/mainwindow.py:273 +#: picard/ui/mainwindow.py:309 msgid "&Cut" msgstr "&Taie" -#: picard/ui/mainwindow.py:278 +#: picard/ui/mainwindow.py:314 msgid "&Paste" msgstr "Li&pește" -#: picard/ui/mainwindow.py:283 +#: picard/ui/mainwindow.py:319 msgid "&Help..." msgstr "&Ajutor" -#: picard/ui/mainwindow.py:288 +#: picard/ui/mainwindow.py:323 msgid "&About..." msgstr "&Despre..." -#: picard/ui/mainwindow.py:292 +#: picard/ui/mainwindow.py:327 msgid "&Donate..." msgstr "Donea&ză..." -#: picard/ui/mainwindow.py:295 +#: picard/ui/mainwindow.py:330 msgid "&Report a Bug..." msgstr "&Raportează o problemă" -#: picard/ui/mainwindow.py:298 +#: picard/ui/mainwindow.py:333 msgid "&Support Forum..." msgstr "Forum a&sistență" -#: picard/ui/mainwindow.py:301 +#: picard/ui/mainwindow.py:336 msgid "&Add Files..." msgstr "&Adaugă fișiere..." -#: picard/ui/mainwindow.py:302 +#: picard/ui/mainwindow.py:337 msgid "Add files to the tagger" msgstr "Adaugă fișiere în program" -#: picard/ui/mainwindow.py:307 +#: picard/ui/mainwindow.py:342 msgid "A&dd Folder..." msgstr "A&daugă dosar..." -#: picard/ui/mainwindow.py:308 +#: picard/ui/mainwindow.py:343 msgid "Add a folder to the tagger" msgstr "Adaugă un dosar în program" -#: picard/ui/mainwindow.py:310 +#: picard/ui/mainwindow.py:345 msgid "Ctrl+D" msgstr "Ctrl+D" -#: picard/ui/mainwindow.py:313 +#: picard/ui/mainwindow.py:348 msgid "&Save" msgstr "&Înregistrează" -#: picard/ui/mainwindow.py:314 +#: picard/ui/mainwindow.py:349 msgid "Save selected files" msgstr "Înregistrează fișierele selectate" -#: picard/ui/mainwindow.py:320 +#: picard/ui/mainwindow.py:355 msgid "S&ubmit" msgstr "Trimite" -#: picard/ui/mainwindow.py:321 -msgid "Submit fingerprints" -msgstr "Trimiteţi amprentele digitale" +#: picard/ui/mainwindow.py:356 +msgid "Submit acoustic fingerprints" +msgstr "" -#: picard/ui/mainwindow.py:325 +#: picard/ui/mainwindow.py:360 msgid "E&xit" msgstr "&Ieșire" -#: picard/ui/mainwindow.py:328 +#: picard/ui/mainwindow.py:363 msgid "Ctrl+Q" msgstr "Ctrl+Q" -#: picard/ui/mainwindow.py:331 +#: picard/ui/mainwindow.py:366 msgid "&Remove" msgstr "Înlătu&ră" -#: picard/ui/mainwindow.py:332 +#: picard/ui/mainwindow.py:367 msgid "Remove selected files/albums" msgstr "Înlătură fișierele/albumele selectate" -#: picard/ui/mainwindow.py:336 +#: picard/ui/mainwindow.py:371 msgid "Lookup in &Browser" msgstr "" -#: picard/ui/mainwindow.py:337 +#: picard/ui/mainwindow.py:372 msgid "Lookup selected item on MusicBrainz website" msgstr "" -#: picard/ui/mainwindow.py:341 +#: picard/ui/mainwindow.py:376 msgid "File &Browser" msgstr "&Parcurgere fișiere" -#: picard/ui/mainwindow.py:345 +#: picard/ui/mainwindow.py:380 msgid "Ctrl+B" msgstr "Ctrl+B" -#: picard/ui/mainwindow.py:348 +#: picard/ui/mainwindow.py:383 msgid "&Cover Art" msgstr "&Coperți" -#: picard/ui/mainwindow.py:354 picard/ui/mainwindow.py:539 +#: picard/ui/mainwindow.py:389 picard/ui/mainwindow.py:591 msgid "Search" msgstr "Caută" -#: picard/ui/mainwindow.py:357 -msgid "&CD Lookup..." -msgstr "&Căutare disc..." +#: picard/ui/mainwindow.py:392 +msgid "Lookup &CD..." +msgstr "" -#: picard/ui/mainwindow.py:358 picard/ui/mainwindow.py:359 -msgid "Lookup CD" -msgstr "Caută discul" +#: picard/ui/mainwindow.py:393 +msgid "Lookup the details of the CD in your drive" +msgstr "" -#: picard/ui/mainwindow.py:361 +#: picard/ui/mainwindow.py:395 msgid "Ctrl+K" msgstr "Ctrl+K" -#: picard/ui/mainwindow.py:364 +#: picard/ui/mainwindow.py:398 msgid "&Scan" msgstr "Analizea&ză" -#: picard/ui/mainwindow.py:367 +#: picard/ui/mainwindow.py:401 msgid "Ctrl+Y" msgstr "Ctrl+Y" -#: picard/ui/mainwindow.py:370 +#: picard/ui/mainwindow.py:404 msgid "Cl&uster" msgstr "Gr&upează" -#: picard/ui/mainwindow.py:373 +#: picard/ui/mainwindow.py:407 msgid "Ctrl+U" msgstr "Ctrl+U" -#: picard/ui/mainwindow.py:376 +#: picard/ui/mainwindow.py:410 msgid "&Lookup" msgstr "&Căutare" -#: picard/ui/mainwindow.py:377 picard/ui/mainwindow.py:378 -msgid "Lookup metadata" -msgstr "Caută metadate" +#: picard/ui/mainwindow.py:411 +msgid "Lookup selected items in MusicBrainz" +msgstr "" -#: picard/ui/mainwindow.py:381 +#: picard/ui/mainwindow.py:416 msgid "Ctrl+L" msgstr "Ctrl+L" -#: picard/ui/mainwindow.py:384 +#: picard/ui/mainwindow.py:419 msgid "&Info..." msgstr "" -#: picard/ui/mainwindow.py:387 +#: picard/ui/mainwindow.py:422 msgid "Ctrl+I" msgstr "Ctrl+I" -#: picard/ui/mainwindow.py:390 +#: picard/ui/mainwindow.py:425 msgid "&Refresh" msgstr "Actualiza&re" -#: picard/ui/mainwindow.py:391 +#: picard/ui/mainwindow.py:426 msgid "Ctrl+R" msgstr "Ctrl+R" -#: picard/ui/mainwindow.py:394 +#: picard/ui/mainwindow.py:429 msgid "&Rename Files" msgstr "&Redenumește fișierele" -#: picard/ui/mainwindow.py:399 +#: picard/ui/mainwindow.py:434 msgid "&Move Files" msgstr "&Mută fișierele" -#: picard/ui/mainwindow.py:404 +#: picard/ui/mainwindow.py:439 msgid "Save &Tags" msgstr "Înregistrează tag-urile" -#: picard/ui/mainwindow.py:409 +#: picard/ui/mainwindow.py:444 msgid "Tags From &File Names..." msgstr "Generare taguri din numele fișierelor" -#: picard/ui/mainwindow.py:412 -msgid "View &Log..." -msgstr "Afișează jurnalul" - -#: picard/ui/mainwindow.py:415 -msgid "View Status &History..." +#: picard/ui/mainwindow.py:447 +msgid "&Open My Collections in Browser" msgstr "" -#: picard/ui/mainwindow.py:422 -msgid "&Open..." +#: picard/ui/mainwindow.py:451 +msgid "View Error/Debug &Log" msgstr "" -#: picard/ui/mainwindow.py:423 -msgid "Open the file" +#: picard/ui/mainwindow.py:454 +msgid "View Activity &History" msgstr "" -#: picard/ui/mainwindow.py:426 -msgid "Open &Folder..." +#: picard/ui/mainwindow.py:461 +msgid "&Play file" msgstr "" -#: picard/ui/mainwindow.py:427 -msgid "Open the containing folder" +#: picard/ui/mainwindow.py:462 +msgid "Play the file in your default media player" msgstr "" -#: picard/ui/mainwindow.py:448 +#: picard/ui/mainwindow.py:466 +msgid "Open Containing &Folder" +msgstr "" + +#: picard/ui/mainwindow.py:467 +msgid "Open the containing folder in your file explorer" +msgstr "" + +#: picard/ui/mainwindow.py:492 msgid "&File" msgstr "&Fișier" -#: picard/ui/mainwindow.py:456 +#: picard/ui/mainwindow.py:503 msgid "&Edit" msgstr "&Editare" -#: picard/ui/mainwindow.py:462 +#: picard/ui/mainwindow.py:509 msgid "&View" msgstr "Afișa&re" -#: picard/ui/mainwindow.py:470 +#: picard/ui/mainwindow.py:515 msgid "&Options" msgstr "&Opțiuni" -#: picard/ui/mainwindow.py:476 +#: picard/ui/mainwindow.py:521 msgid "&Tools" msgstr "Unel&te" -#: picard/ui/mainwindow.py:485 picard/ui/util.py:35 +#: picard/ui/mainwindow.py:532 picard/ui/util.py:35 msgid "&Help" msgstr "&Ajutor" -#: picard/ui/mainwindow.py:505 +#: picard/ui/mainwindow.py:553 msgid "Actions" msgstr "" -#: picard/ui/mainwindow.py:608 +#: picard/ui/mainwindow.py:599 +msgid "Track" +msgstr "Piesă" + +#: picard/ui/mainwindow.py:662 msgid "All Supported Formats" msgstr "Toate formatele cunoscute" -#: picard/ui/mainwindow.py:705 +#: picard/ui/mainwindow.py:695 +#, python-format +msgid "Adding directory: '%(directory)s' ..." +msgstr "" + +#: picard/ui/mainwindow.py:702 +#, python-format +msgid "Adding multiple directories from '%(directory)s' ..." +msgstr "" + +#: picard/ui/mainwindow.py:767 msgid "Configuration Required" msgstr "Configurare necesară" -#: picard/ui/mainwindow.py:706 +#: picard/ui/mainwindow.py:768 msgid "" "Audio fingerprinting is not yet configured. Would you like to configure it " "now?" msgstr "" -#: picard/ui/mainwindow.py:784 picard/ui/mainwindow.py:791 +#: picard/ui/mainwindow.py:848 #, python-format -msgid " (Error: %s)" -msgstr " (Eroare: %s)" +msgid "%(filename)s (error: %(error)s)" +msgstr "" + +#: picard/ui/mainwindow.py:854 +#, python-format +msgid "%(filename)s" +msgstr "" + +#: picard/ui/mainwindow.py:864 +#, python-format +msgid "%(filename)s (%(similarity)d%%) (error: %(error)s)" +msgstr "" + +#: picard/ui/mainwindow.py:871 +#, python-format +msgid "%(filename)s (%(similarity)d%%)" +msgstr "" #: picard/ui/metadatabox.py:82 #, python-format @@ -1107,387 +1034,387 @@ msgstr[0] "" msgstr[1] "" msgstr[2] "" -#: picard/ui/passworddialog.py:37 +#: picard/ui/passworddialog.py:40 #, python-format msgid "" "The server %s requires you to login. Please enter your username and " "password." msgstr "Serverul %s necesită să vă autentificați. Vă rugăm introduceți numele de utilizator și parola." -#: picard/ui/passworddialog.py:75 +#: picard/ui/passworddialog.py:79 #, python-format msgid "" "The proxy %s requires you to login. Please enter your username and password." msgstr "Proxy-ul %s necesită să vă autentificați. Vă rugăm introduceți numele de utilizator și parola." -#: picard/ui/tagsfromfilenames.py:55 picard/ui/tagsfromfilenames.py:100 +#: picard/ui/tagsfromfilenames.py:56 picard/ui/tagsfromfilenames.py:101 msgid "File Name" msgstr "Numele fișierului" -#: picard/ui/ui_cdlookup.py:66 picard/ui/ui_options_cdlookup.py:55 -#: picard/ui/ui_options_cdlookup_select.py:62 picard/ui/options/cdlookup.py:38 +#: picard/ui/ui_cdlookup.py:53 picard/ui/ui_options_cdlookup.py:42 +#: picard/ui/ui_options_cdlookup_select.py:49 picard/ui/options/cdlookup.py:38 msgid "CD Lookup" msgstr "Căutare CD" -#: picard/ui/ui_cdlookup.py:67 +#: picard/ui/ui_cdlookup.py:54 msgid "The following releases on MusicBrainz match the CD:" msgstr "Următoarele albume de pe MusicBrainz se potrivesc discului:" -#: picard/ui/ui_cdlookup.py:68 +#: picard/ui/ui_cdlookup.py:55 msgid "OK" msgstr "OK" -#: picard/ui/ui_cdlookup.py:69 +#: picard/ui/ui_cdlookup.py:56 msgid "Lookup manually" msgstr "" -#: picard/ui/ui_cdlookup.py:70 +#: picard/ui/ui_cdlookup.py:57 msgid "Cancel" msgstr "Renunță" -#: picard/ui/ui_edittagdialog.py:101 +#: picard/ui/ui_edittagdialog.py:88 msgid "Edit Tag" msgstr "Editați Tag-ul" -#: picard/ui/ui_edittagdialog.py:102 +#: picard/ui/ui_edittagdialog.py:89 msgid "Edit value" msgstr "Editați valoarea" -#: picard/ui/ui_edittagdialog.py:103 +#: picard/ui/ui_edittagdialog.py:90 msgid "Add value" msgstr "Adauga valoare" -#: picard/ui/ui_edittagdialog.py:104 +#: picard/ui/ui_edittagdialog.py:91 msgid "Remove value" msgstr "Elimină valoarea" -#: picard/ui/ui_infodialog.py:78 +#: picard/ui/ui_infodialog.py:74 msgid "A&rtwork" msgstr "Cope&rți" -#: picard/ui/ui_infostatus.py:100 +#: picard/ui/ui_infostatus.py:96 msgid "Form" msgstr "" -#: picard/ui/ui_options.py:51 +#: picard/ui/ui_options.py:38 msgid "Options" msgstr "Opțiuni" -#: picard/ui/ui_options_advanced.py:46 +#: picard/ui/ui_options_advanced.py:42 msgid "Advanced options" msgstr "" -#: picard/ui/ui_options_advanced.py:47 +#: picard/ui/ui_options_advanced.py:43 msgid "Ignore file paths matching the following regular expression:" msgstr "" -#: picard/ui/ui_options_cdlookup.py:56 +#: picard/ui/ui_options_cdlookup.py:43 msgid "CD-ROM device to use for lookups:" msgstr "Unitatea de disc folosită pentru căutări:" -#: picard/ui/ui_options_cdlookup_select.py:63 +#: picard/ui/ui_options_cdlookup_select.py:50 msgid "Default CD-ROM drive to use for lookups:" msgstr "Unitatea de disc folosită pentru căutări:" -#: picard/ui/ui_options_cover.py:145 +#: picard/ui/ui_options_cover.py:131 msgid "Location" msgstr "Locație" -#: picard/ui/ui_options_cover.py:146 +#: picard/ui/ui_options_cover.py:132 msgid "Embed cover images into tags" msgstr "Încorporează imaginile coperților în tag-uri" -#: picard/ui/ui_options_cover.py:147 +#: picard/ui/ui_options_cover.py:133 msgid "Only embed a front image" msgstr "" -#: picard/ui/ui_options_cover.py:148 +#: picard/ui/ui_options_cover.py:134 msgid "Save cover images as separate files" msgstr "Salvează coperțile ca fișiere separate" -#: picard/ui/ui_options_cover.py:149 +#: picard/ui/ui_options_cover.py:135 msgid "Use the following file name for images:" msgstr "Utilizați următorul nume de fișier pentru imagini:" -#: picard/ui/ui_options_cover.py:150 +#: picard/ui/ui_options_cover.py:136 msgid "Overwrite the file if it already exists" msgstr "Supra-scrie fișierul dacă există deja" -#: picard/ui/ui_options_cover.py:151 +#: picard/ui/ui_options_cover.py:137 msgid "Coverart Providers" msgstr "" -#: picard/ui/ui_options_cover.py:152 +#: picard/ui/ui_options_cover.py:138 msgid "Amazon" msgstr "Amazon" -#: picard/ui/ui_options_cover.py:153 picard/ui/ui_options_cover.py:155 +#: picard/ui/ui_options_cover.py:139 picard/ui/ui_options_cover.py:141 msgid "Cover Art Archive" msgstr "Cover Art Archive" -#: picard/ui/ui_options_cover.py:154 +#: picard/ui/ui_options_cover.py:140 msgid "Sites on the whitelist" msgstr "" -#: picard/ui/ui_options_cover.py:156 +#: picard/ui/ui_options_cover.py:142 msgid "Only use images of the following size:" msgstr "" -#: picard/ui/ui_options_cover.py:157 +#: picard/ui/ui_options_cover.py:143 msgid "250 px" msgstr "250 pixeli" -#: picard/ui/ui_options_cover.py:158 +#: picard/ui/ui_options_cover.py:144 msgid "500 px" msgstr "500 pixeli" -#: picard/ui/ui_options_cover.py:159 +#: picard/ui/ui_options_cover.py:145 msgid "Full size" msgstr "Mărime completă" -#: picard/ui/ui_options_cover.py:160 +#: picard/ui/ui_options_cover.py:146 msgid "Download only images of the following types:" msgstr "" -#: picard/ui/ui_options_cover.py:161 +#: picard/ui/ui_options_cover.py:147 msgid "Download only approved images" msgstr "" -#: picard/ui/ui_options_cover.py:162 +#: picard/ui/ui_options_cover.py:148 msgid "" "Use the first image type as the filename. This will not change the filename " "of front images." msgstr "" -#: picard/ui/ui_options_fingerprinting.py:83 +#: picard/ui/ui_options_fingerprinting.py:70 msgid "Audio Fingerprinting" msgstr "Amprentare Audio" -#: picard/ui/ui_options_fingerprinting.py:84 +#: picard/ui/ui_options_fingerprinting.py:71 msgid "Do not use audio fingerprinting" msgstr "Nu utilizați amprentarea audio" -#: picard/ui/ui_options_fingerprinting.py:85 +#: picard/ui/ui_options_fingerprinting.py:72 msgid "Use AcoustID" msgstr "Utilizați AcoustID" -#: picard/ui/ui_options_fingerprinting.py:86 +#: picard/ui/ui_options_fingerprinting.py:73 msgid "AcoustID Settings" msgstr "Setări AcoustID" -#: picard/ui/ui_options_fingerprinting.py:87 +#: picard/ui/ui_options_fingerprinting.py:74 msgid "Fingerprint calculator:" msgstr "" -#: picard/ui/ui_options_fingerprinting.py:88 -#: picard/ui/ui_options_interface.py:88 picard/ui/ui_options_renaming.py:138 +#: picard/ui/ui_options_fingerprinting.py:75 +#: picard/ui/ui_options_interface.py:75 picard/ui/ui_options_renaming.py:134 msgid "Browse..." msgstr "Navigare..." -#: picard/ui/ui_options_fingerprinting.py:89 +#: picard/ui/ui_options_fingerprinting.py:76 msgid "Download..." msgstr "Descărcați..." -#: picard/ui/ui_options_fingerprinting.py:90 +#: picard/ui/ui_options_fingerprinting.py:77 msgid "API key:" msgstr "Cheie API:" -#: picard/ui/ui_options_fingerprinting.py:91 +#: picard/ui/ui_options_fingerprinting.py:78 msgid "Get API key..." msgstr "Obține cheie API..." -#: picard/ui/ui_options_folksonomy.py:115 picard/ui/options/folksonomy.py:28 +#: picard/ui/ui_options_folksonomy.py:102 picard/ui/options/folksonomy.py:28 msgid "Folksonomy Tags" msgstr "Etichete utilizator" -#: picard/ui/ui_options_folksonomy.py:117 +#: picard/ui/ui_options_folksonomy.py:104 msgid "Only use my tags" msgstr "Utilizeaza numai etichetele mele" -#: picard/ui/ui_options_folksonomy.py:120 +#: picard/ui/ui_options_folksonomy.py:107 msgid "Maximum number of tags:" msgstr "Număr maxim de etichete:" -#: picard/ui/ui_options_general.py:92 +#: picard/ui/ui_options_general.py:88 msgid "MusicBrainz Server" msgstr "Serverul MusicBrainz" -#: picard/ui/ui_options_general.py:93 picard/ui/ui_options_network.py:123 +#: picard/ui/ui_options_general.py:89 picard/ui/ui_options_network.py:110 msgid "Port:" msgstr "Port:" -#: picard/ui/ui_options_general.py:94 picard/ui/ui_options_network.py:124 +#: picard/ui/ui_options_general.py:90 picard/ui/ui_options_network.py:111 msgid "Server address:" msgstr "Adresa serverului:" -#: picard/ui/ui_options_general.py:95 +#: picard/ui/ui_options_general.py:91 msgid "Account Information" msgstr "Informații cont" -#: picard/ui/ui_options_general.py:96 picard/ui/ui_options_network.py:121 -#: picard/ui/ui_passworddialog.py:74 +#: picard/ui/ui_options_general.py:92 picard/ui/ui_options_network.py:108 +#: picard/ui/ui_passworddialog.py:70 msgid "Password:" msgstr "Parolă:" -#: picard/ui/ui_options_general.py:97 picard/ui/ui_options_network.py:122 -#: picard/ui/ui_passworddialog.py:73 +#: picard/ui/ui_options_general.py:93 picard/ui/ui_options_network.py:109 +#: picard/ui/ui_passworddialog.py:69 msgid "Username:" msgstr "Utilizator:" -#: picard/ui/ui_options_general.py:98 picard/ui/options/general.py:31 +#: picard/ui/ui_options_general.py:94 picard/ui/options/general.py:31 msgid "General" msgstr "Generale" -#: picard/ui/ui_options_general.py:99 +#: picard/ui/ui_options_general.py:95 msgid "Automatically scan all new files" msgstr "Analizează automat fișierele nou adăugate" -#: picard/ui/ui_options_general.py:100 +#: picard/ui/ui_options_general.py:96 msgid "Ignore MBIDs when loading new files" msgstr "Ignoră MBIDs la încărcarea fișierelor noi" -#: picard/ui/ui_options_interface.py:82 +#: picard/ui/ui_options_interface.py:69 msgid "Miscellaneous" msgstr "Diverse" -#: picard/ui/ui_options_interface.py:83 +#: picard/ui/ui_options_interface.py:70 msgid "Show text labels under icons" msgstr "Afișează etichete sub icoane" -#: picard/ui/ui_options_interface.py:84 +#: picard/ui/ui_options_interface.py:71 msgid "Allow selection of multiple directories" msgstr "Permite a selecta dosare multiple" -#: picard/ui/ui_options_interface.py:85 +#: picard/ui/ui_options_interface.py:72 msgid "Use advanced query syntax" msgstr "Folosește sintaxa avansată de căutare" -#: picard/ui/ui_options_interface.py:86 +#: picard/ui/ui_options_interface.py:73 msgid "Show a quit confirmation dialog for unsaved changes" msgstr "" -#: picard/ui/ui_options_interface.py:87 +#: picard/ui/ui_options_interface.py:74 msgid "Begin browsing in the following directory:" msgstr "" -#: picard/ui/ui_options_interface.py:89 +#: picard/ui/ui_options_interface.py:76 msgid "User interface language:" msgstr "" -#: picard/ui/ui_options_matching.py:86 +#: picard/ui/ui_options_matching.py:73 msgid "Thresholds" msgstr "Limite" -#: picard/ui/ui_options_matching.py:87 +#: picard/ui/ui_options_matching.py:74 msgid "Minimal similarity for matching files to tracks:" msgstr "Similaritate minimă pentru asocierea fișierelor cu piese" -#: picard/ui/ui_options_matching.py:91 +#: picard/ui/ui_options_matching.py:78 msgid "Minimal similarity for file lookups:" msgstr "Similaritate minimă pentru căutare de fișiere" -#: picard/ui/ui_options_matching.py:92 +#: picard/ui/ui_options_matching.py:79 msgid "Minimal similarity for cluster lookups:" msgstr "Similaritate minimă pentru căutare de grupaje" -#: picard/ui/ui_options_metadata.py:114 picard/ui/options/metadata.py:29 +#: picard/ui/ui_options_metadata.py:101 picard/ui/options/metadata.py:29 msgid "Metadata" msgstr "Metadate" -#: picard/ui/ui_options_metadata.py:115 +#: picard/ui/ui_options_metadata.py:102 msgid "Translate artist names to this locale where possible:" msgstr "Traduceți numele artiștilor la această setare regională unde este posibil:" -#: picard/ui/ui_options_metadata.py:116 +#: picard/ui/ui_options_metadata.py:103 msgid "Use standardized artist names" msgstr "Folosiți nume standardizate de artiști" -#: picard/ui/ui_options_metadata.py:117 +#: picard/ui/ui_options_metadata.py:104 msgid "Convert Unicode punctuation characters to ASCII" msgstr "Convertiți semnele de punctuație Unicode în ASCII" -#: picard/ui/ui_options_metadata.py:118 +#: picard/ui/ui_options_metadata.py:105 msgid "Use release relationships" msgstr "Folosește asocieri pentru albume" -#: picard/ui/ui_options_metadata.py:119 +#: picard/ui/ui_options_metadata.py:106 msgid "Use track relationships" msgstr "Folosește asocieri pentru piese" -#: picard/ui/ui_options_metadata.py:120 +#: picard/ui/ui_options_metadata.py:107 msgid "Use folksonomy tags as genre" msgstr "Folosește etichetele „folksonomy” ca genuri muzicale" -#: picard/ui/ui_options_metadata.py:121 +#: picard/ui/ui_options_metadata.py:108 msgid "Custom Fields" msgstr "Câmpuri personalizate" -#: picard/ui/ui_options_metadata.py:122 +#: picard/ui/ui_options_metadata.py:109 msgid "Various artists:" msgstr "Artiști multipli:" -#: picard/ui/ui_options_metadata.py:123 +#: picard/ui/ui_options_metadata.py:110 msgid "Non-album tracks:" msgstr "Piese fără album:" -#: picard/ui/ui_options_metadata.py:124 picard/ui/ui_options_metadata.py:125 -#: picard/ui/ui_options_renaming.py:147 +#: picard/ui/ui_options_metadata.py:111 picard/ui/ui_options_metadata.py:112 +#: picard/ui/ui_options_renaming.py:143 msgid "Default" msgstr "Implicit" -#: picard/ui/ui_options_network.py:120 +#: picard/ui/ui_options_network.py:107 msgid "Web Proxy" msgstr "Proxy de rețea" -#: picard/ui/ui_options_network.py:125 +#: picard/ui/ui_options_network.py:112 msgid "Browser Integration" msgstr "" -#: picard/ui/ui_options_network.py:126 +#: picard/ui/ui_options_network.py:113 msgid "Default listening port:" msgstr "" -#: picard/ui/ui_options_network.py:127 +#: picard/ui/ui_options_network.py:114 msgid "Listen only on localhost" msgstr "" -#: picard/ui/ui_options_plugins.py:131 picard/ui/options/plugins.py:38 +#: picard/ui/ui_options_plugins.py:127 picard/ui/options/plugins.py:38 msgid "Plugins" msgstr "Module" -#: picard/ui/ui_options_plugins.py:132 picard/ui/options/plugins.py:122 +#: picard/ui/ui_options_plugins.py:128 picard/ui/options/plugins.py:122 msgid "Name" msgstr "Nume" -#: picard/ui/ui_options_plugins.py:133 picard/util/tags.py:39 +#: picard/ui/ui_options_plugins.py:129 msgid "Version" msgstr "Versiune" -#: picard/ui/ui_options_plugins.py:134 picard/ui/options/plugins.py:125 +#: picard/ui/ui_options_plugins.py:130 picard/ui/options/plugins.py:125 msgid "Author" msgstr "Autor" -#: picard/ui/ui_options_plugins.py:135 +#: picard/ui/ui_options_plugins.py:131 msgid "Install plugin..." msgstr "Instalează modul..." -#: picard/ui/ui_options_plugins.py:136 +#: picard/ui/ui_options_plugins.py:132 msgid "Open plugin folder" msgstr "Deschideți dosarul de module" -#: picard/ui/ui_options_plugins.py:137 +#: picard/ui/ui_options_plugins.py:133 msgid "Download plugins" msgstr "Descărcați module" -#: picard/ui/ui_options_plugins.py:138 +#: picard/ui/ui_options_plugins.py:134 msgid "Details" msgstr "Detalii" -#: picard/ui/ui_options_ratings.py:53 +#: picard/ui/ui_options_ratings.py:49 msgid "Enable track ratings" msgstr "" -#: picard/ui/ui_options_ratings.py:54 +#: picard/ui/ui_options_ratings.py:50 msgid "" "Picard saves the ratings together with an e-mail address identifying the " "user who did the rating. That way different ratings for different users can " @@ -1495,207 +1422,167 @@ msgid "" "your ratings." msgstr "" -#: picard/ui/ui_options_ratings.py:55 +#: picard/ui/ui_options_ratings.py:51 msgid "E-mail:" msgstr "E-mail:" -#: picard/ui/ui_options_ratings.py:56 +#: picard/ui/ui_options_ratings.py:52 msgid "Submit ratings to MusicBrainz" msgstr "" -#: picard/ui/ui_options_releases.py:215 +#: picard/ui/ui_options_releases.py:104 msgid "Preferred release types" msgstr "" -#: picard/ui/ui_options_releases.py:217 -msgid "Single" -msgstr "Single" - -#: picard/ui/ui_options_releases.py:218 -msgid "EP" -msgstr "EP" - -#: picard/ui/ui_options_releases.py:219 -msgid "Compilation" -msgstr "Compilație" - -#: picard/ui/ui_options_releases.py:220 -msgid "Soundtrack" -msgstr "Coloană sonoră" - -#: picard/ui/ui_options_releases.py:221 -msgid "Spokenword" -msgstr "" - -#: picard/ui/ui_options_releases.py:222 -msgid "Interview" -msgstr "Interviu" - -#: picard/ui/ui_options_releases.py:223 -msgid "Audiobook" -msgstr "Carte audio" - -#: picard/ui/ui_options_releases.py:224 -msgid "Live" -msgstr "Live" - -#: picard/ui/ui_options_releases.py:225 -msgid "Remix" -msgstr "Remix" - -#: picard/ui/ui_options_releases.py:227 -msgid "Reset all" -msgstr "Resetare totală" - -#: picard/ui/ui_options_releases.py:228 +#: picard/ui/ui_options_releases.py:105 msgid "Preferred release countries" msgstr "" -#: picard/ui/ui_options_releases.py:229 picard/ui/ui_options_releases.py:232 +#: picard/ui/ui_options_releases.py:106 picard/ui/ui_options_releases.py:109 msgid ">" msgstr ">" -#: picard/ui/ui_options_releases.py:230 picard/ui/ui_options_releases.py:233 +#: picard/ui/ui_options_releases.py:107 picard/ui/ui_options_releases.py:110 msgid "<" msgstr "<" -#: picard/ui/ui_options_releases.py:231 +#: picard/ui/ui_options_releases.py:108 msgid "Preferred release formats" msgstr "" -#: picard/ui/ui_options_renaming.py:134 +#: picard/ui/ui_options_renaming.py:130 msgid "Rename files when saving" msgstr "Redenumește fișierele la salvare" -#: picard/ui/ui_options_renaming.py:135 +#: picard/ui/ui_options_renaming.py:131 msgid "Replace non-ASCII characters" msgstr "Înlocuiește caracterele non-ASCII" -#: picard/ui/ui_options_renaming.py:136 +#: picard/ui/ui_options_renaming.py:132 msgid "Windows compatibility" msgstr "" -#: picard/ui/ui_options_renaming.py:137 +#: picard/ui/ui_options_renaming.py:133 msgid "Move files to this directory when saving:" msgstr "Mută fișierele în acest director la salvare:" -#: picard/ui/ui_options_renaming.py:139 +#: picard/ui/ui_options_renaming.py:135 msgid "Delete empty directories" msgstr "Șterge dosarele rămase goale" -#: picard/ui/ui_options_renaming.py:140 +#: picard/ui/ui_options_renaming.py:136 msgid "Move additional files:" msgstr "Mută și aceste fișiere:" -#: picard/ui/ui_options_renaming.py:141 +#: picard/ui/ui_options_renaming.py:137 msgid "Name files like this" msgstr "Numește fișierele astfel" -#: picard/ui/ui_options_renaming.py:148 +#: picard/ui/ui_options_renaming.py:144 msgid "Examples" msgstr "Exemple" -#: picard/ui/ui_options_script.py:49 +#: picard/ui/ui_options_script.py:45 msgid "Tagger Script" msgstr "Scripturi de etichetare" -#: picard/ui/ui_options_tags.py:165 +#: picard/ui/ui_options_tags.py:152 msgid "Write tags to files" msgstr "" -#: picard/ui/ui_options_tags.py:166 +#: picard/ui/ui_options_tags.py:153 msgid "Preserve timestamps of tagged files" msgstr "" -#: picard/ui/ui_options_tags.py:167 +#: picard/ui/ui_options_tags.py:154 msgid "Before Tagging" msgstr "" -#: picard/ui/ui_options_tags.py:168 +#: picard/ui/ui_options_tags.py:155 msgid "Clear existing tags" msgstr "" -#: picard/ui/ui_options_tags.py:169 +#: picard/ui/ui_options_tags.py:156 msgid "Remove ID3 tags from FLAC files" msgstr "Șterge tag-urile ID3 din fișierele FLAC" -#: picard/ui/ui_options_tags.py:170 +#: picard/ui/ui_options_tags.py:157 msgid "Remove APEv2 tags from MP3 files" msgstr "Șterge tag-urile APEv2 din fișierele MP3" -#: picard/ui/ui_options_tags.py:171 +#: picard/ui/ui_options_tags.py:158 msgid "" "Preserve these tags from being cleared or overwritten with MusicBrainz data:" msgstr "" -#: picard/ui/ui_options_tags.py:172 +#: picard/ui/ui_options_tags.py:159 msgid "Tags are separated by commas, and are case-sensitive." msgstr "" -#: picard/ui/ui_options_tags.py:173 +#: picard/ui/ui_options_tags.py:160 msgid "Tag Compatibility" msgstr "" -#: picard/ui/ui_options_tags.py:174 +#: picard/ui/ui_options_tags.py:161 msgid "ID3v2 Version" msgstr "" -#: picard/ui/ui_options_tags.py:175 +#: picard/ui/ui_options_tags.py:162 msgid "2.4" msgstr "2.4" -#: picard/ui/ui_options_tags.py:176 +#: picard/ui/ui_options_tags.py:163 msgid "2.3" msgstr "2.3" -#: picard/ui/ui_options_tags.py:177 +#: picard/ui/ui_options_tags.py:164 msgid "ID3v2 Text Encoding" msgstr "" -#: picard/ui/ui_options_tags.py:178 +#: picard/ui/ui_options_tags.py:165 msgid "UTF-8" msgstr "UTF-8" -#: picard/ui/ui_options_tags.py:179 +#: picard/ui/ui_options_tags.py:166 msgid "UTF-16" msgstr "UTF-16" -#: picard/ui/ui_options_tags.py:180 +#: picard/ui/ui_options_tags.py:167 msgid "ISO-8859-1" msgstr "ISO-8859-1" -#: picard/ui/ui_options_tags.py:181 +#: picard/ui/ui_options_tags.py:168 msgid "Join multiple ID3v2.3 tags with:" msgstr "" -#: picard/ui/ui_options_tags.py:182 +#: picard/ui/ui_options_tags.py:169 msgid "" "

Default is '/' to maintain compatibility with previous" " Picard releases.

New alternatives are ';_' or '_/_' or type your own." "

" msgstr "" -#: picard/ui/ui_options_tags.py:183 +#: picard/ui/ui_options_tags.py:170 msgid "Also include ID3v1 tags in the files" msgstr "" -#: picard/ui/ui_passworddialog.py:72 +#: picard/ui/ui_passworddialog.py:68 msgid "Authentication required" msgstr "Autentificare necesară" -#: picard/ui/ui_passworddialog.py:75 +#: picard/ui/ui_passworddialog.py:71 msgid "Save username and password" msgstr "Păstrează numele și parola" -#: picard/ui/ui_tagsfromfilenames.py:54 +#: picard/ui/ui_tagsfromfilenames.py:50 msgid "Convert File Names to Tags" msgstr "Transformă numele fișierelor în tag-uri" -#: picard/ui/ui_tagsfromfilenames.py:55 +#: picard/ui/ui_tagsfromfilenames.py:51 msgid "Replace underscores with spaces" msgstr "Înlocuiește liniuța de subliniere cu spațiu" -#: picard/ui/ui_tagsfromfilenames.py:56 +#: picard/ui/ui_tagsfromfilenames.py:52 msgid "&Preview" msgstr "&Previzualizează" @@ -1751,7 +1638,11 @@ msgstr "Avansat" msgid "Regex Error" msgstr "" -#: picard/ui/options/cover.py:63 +#: picard/ui/options/cover.py:44 +msgid "title" +msgstr "" + +#: picard/ui/options/cover.py:68 msgid "Cover Art" msgstr "Coperta" @@ -1767,11 +1658,11 @@ msgstr "Interfata utilizator" msgid "System default" msgstr "Limba implicită" -#: picard/ui/options/interface.py:96 +#: picard/ui/options/interface.py:98 msgid "Language changed" msgstr "Limba modificată" -#: picard/ui/options/interface.py:96 +#: picard/ui/options/interface.py:99 msgid "" "You have changed the interface language. You have to restart Picard in order" " for the change to take effect." @@ -1793,31 +1684,35 @@ msgstr "Fișier" msgid "Ratings" msgstr "" -#: picard/ui/options/releases.py:33 +#: picard/ui/options/releases.py:87 msgid "Preferred Releases" msgstr "" +#: picard/ui/options/releases.py:121 +msgid "Reset all" +msgstr "Resetare totală" + #: picard/ui/options/renaming.py:37 msgid "File Naming" msgstr "" -#: picard/ui/options/renaming.py:184 +#: picard/ui/options/renaming.py:187 msgid "Error" msgstr "Eroare" -#: picard/ui/options/renaming.py:184 +#: picard/ui/options/renaming.py:187 msgid "The location to move files to must not be empty." msgstr "Locul de mutat fișierele nu trebuie să fie gol" -#: picard/ui/options/renaming.py:194 +#: picard/ui/options/renaming.py:197 msgid "The file naming format must not be empty." msgstr "Formatul numelor de fișiere nu poate fi gol." -#: picard/ui/options/scripting.py:63 +#: picard/ui/options/scripting.py:99 msgid "Scripting" msgstr "" -#: picard/ui/options/scripting.py:95 +#: picard/ui/options/scripting.py:131 msgid "Script Error" msgstr "Eroare în script" @@ -1937,199 +1832,199 @@ msgstr "" msgid "Grouping" msgstr "" -#: picard/util/tags.py:40 +#: picard/util/tags.py:39 msgid "ISRC" msgstr "ISRC" -#: picard/util/tags.py:41 +#: picard/util/tags.py:40 msgid "Mood" msgstr "" -#: picard/util/tags.py:42 +#: picard/util/tags.py:41 msgid "BPM" msgstr "BPM" -#: picard/util/tags.py:43 +#: picard/util/tags.py:42 msgid "Copyright" msgstr "Drepturi de autor" -#: picard/util/tags.py:44 +#: picard/util/tags.py:43 msgid "License" msgstr "Licență" -#: picard/util/tags.py:45 +#: picard/util/tags.py:44 msgid "Composer" msgstr "Compozitor" -#: picard/util/tags.py:46 +#: picard/util/tags.py:45 msgid "Writer" msgstr "Scriitor" -#: picard/util/tags.py:47 +#: picard/util/tags.py:46 msgid "Conductor" msgstr "Dirijor" -#: picard/util/tags.py:48 +#: picard/util/tags.py:47 msgid "Lyricist" msgstr "Textier" -#: picard/util/tags.py:49 +#: picard/util/tags.py:48 msgid "Arranger" msgstr "Orchestrator" -#: picard/util/tags.py:50 +#: picard/util/tags.py:49 msgid "Producer" msgstr "Producător" -#: picard/util/tags.py:51 +#: picard/util/tags.py:50 msgid "Engineer" msgstr "Inginer" -#: picard/util/tags.py:52 +#: picard/util/tags.py:51 msgid "Subtitle" msgstr "Subtitlu" -#: picard/util/tags.py:53 +#: picard/util/tags.py:52 msgid "Disc Subtitle" msgstr "Subtitlu Disc" -#: picard/util/tags.py:54 +#: picard/util/tags.py:53 msgid "Remixer" msgstr "Remixer" -#: picard/util/tags.py:55 +#: picard/util/tags.py:54 msgid "MusicBrainz Recording Id" msgstr "" -#: picard/util/tags.py:56 +#: picard/util/tags.py:55 msgid "MusicBrainz Track Id" msgstr "" -#: picard/util/tags.py:57 +#: picard/util/tags.py:56 msgid "MusicBrainz Release Id" msgstr "" -#: picard/util/tags.py:58 +#: picard/util/tags.py:57 msgid "MusicBrainz Artist Id" msgstr "" -#: picard/util/tags.py:59 +#: picard/util/tags.py:58 msgid "MusicBrainz Release Artist Id" msgstr "" -#: picard/util/tags.py:60 +#: picard/util/tags.py:59 msgid "MusicBrainz Work Id" msgstr "" -#: picard/util/tags.py:61 +#: picard/util/tags.py:60 msgid "MusicBrainz Release Group Id" msgstr "" -#: picard/util/tags.py:62 +#: picard/util/tags.py:61 msgid "MusicBrainz Disc Id" msgstr "" -#: picard/util/tags.py:63 -msgid "MusicBrainz Sort Name" -msgstr "" - -#: picard/util/tags.py:64 +#: picard/util/tags.py:62 msgid "MusicIP PUID" msgstr "" -#: picard/util/tags.py:65 +#: picard/util/tags.py:63 msgid "MusicIP Fingerprint" msgstr "" -#: picard/util/tags.py:66 +#: picard/util/tags.py:64 msgid "AcoustID" msgstr "AcoustID" -#: picard/util/tags.py:67 +#: picard/util/tags.py:65 msgid "AcoustID Fingerprint" msgstr "" -#: picard/util/tags.py:68 +#: picard/util/tags.py:66 msgid "Disc Id" msgstr "" -#: picard/util/tags.py:69 -msgid "Website" -msgstr "Site Web" +#: picard/util/tags.py:67 +msgid "Artist Website" +msgstr "" -#: picard/util/tags.py:70 +#: picard/util/tags.py:68 msgid "Compilation (iTunes)" msgstr "" -#: picard/util/tags.py:71 +#: picard/util/tags.py:69 msgid "Comment" msgstr "Comentariu" -#: picard/util/tags.py:72 +#: picard/util/tags.py:70 msgid "Genre" msgstr "Gen muzical" -#: picard/util/tags.py:73 +#: picard/util/tags.py:71 msgid "Encoded By" msgstr "Codificat de" -#: picard/util/tags.py:74 +#: picard/util/tags.py:72 +msgid "Encoder Settings" +msgstr "" + +#: picard/util/tags.py:73 msgid "Performer" msgstr "Interpret" -#: picard/util/tags.py:75 +#: picard/util/tags.py:74 msgid "Release Type" msgstr "" -#: picard/util/tags.py:76 +#: picard/util/tags.py:75 msgid "Release Status" msgstr "" -#: picard/util/tags.py:77 +#: picard/util/tags.py:76 msgid "Release Country" msgstr "" -#: picard/util/tags.py:78 +#: picard/util/tags.py:77 msgid "Record Label" msgstr "Casa de discuri" -#: picard/util/tags.py:80 +#: picard/util/tags.py:79 msgid "Catalog Number" msgstr "Nr. catalog" -#: picard/util/tags.py:82 +#: picard/util/tags.py:80 msgid "DJ-Mixer" msgstr "DJ-Mixer" -#: picard/util/tags.py:83 +#: picard/util/tags.py:81 msgid "Media" msgstr "" -#: picard/util/tags.py:84 +#: picard/util/tags.py:82 msgid "Lyrics" msgstr "Versuri" -#: picard/util/tags.py:85 +#: picard/util/tags.py:83 msgid "Mixer" msgstr "" -#: picard/util/tags.py:86 +#: picard/util/tags.py:84 msgid "Language" msgstr "Limba" -#: picard/util/tags.py:87 +#: picard/util/tags.py:85 msgid "Script" msgstr "Script" -#: picard/util/tags.py:89 +#: picard/util/tags.py:87 msgid "Rating" msgstr "" -#: picard/util/tags.py:90 +#: picard/util/tags.py:88 msgid "Artists" msgstr "" -#: picard/util/tags.py:91 +#: picard/util/tags.py:89 msgid "Work" msgstr "" diff --git a/po/ru.po b/po/ru.po index acea4d793..7b021705c 100644 --- a/po/ru.po +++ b/po/ru.po @@ -7,13 +7,14 @@ # Ivan Ivaschenko , 2014 # Nikolai Prokoschenko , 2012 # aeontech , 2014 +# Дмитрий Яковлев , 2014 msgid "" msgstr "" "Project-Id-Version: MusicBrainz\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2014-03-20 11:12+0100\n" -"PO-Revision-Date: 2014-03-21 08:44+0000\n" -"Last-Translator: nikki\n" +"POT-Creation-Date: 2014-05-03 17:28+0200\n" +"PO-Revision-Date: 2014-05-04 12:40+0000\n" +"Last-Translator: Дмитрий Яковлев \n" "Language-Team: Russian (http://www.transifex.com/projects/p/musicbrainz/language/ru/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -22,523 +23,406 @@ msgstr "" "Language: ru\n" "Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" +#: contrib/plugins/albumartist_website.py:3 +msgid "Album Artist Website" +msgstr "Сайт исполнителя альбома" + #: contrib/plugins/no_release.py:50 msgid "Enable plugin for all releases by default" msgstr "Использовать плагин по умолчанию для всех альбомов" #: contrib/plugins/no_release.py:51 msgid "Tags to strip (comma-separated)" -msgstr "" +msgstr "Разделять метки (через запятую)" #: contrib/plugins/no_release.py:63 msgid "Remove specific release information..." msgstr "Удалить информацию о конкретном альбоме" -#: contrib/plugins/open_in_gui.py:32 -msgid "Open Error" -msgstr "" +#: contrib/plugins/standardise_performers.py:3 +msgid "Standardise Performers" +msgstr "Стандартизация Исполнителей" -#: contrib/plugins/open_in_gui.py:32 -#, python-format -msgid "" -"Error while opening file:\n" -"\n" -"%s" -msgstr "" - -#: contrib/plugins/lastfm/ui_options_lastfm.py:117 +#: contrib/plugins/lastfm/ui_options_lastfm.py:99 msgid "Last.fm" msgstr "Last.fm" -#: contrib/plugins/lastfm/ui_options_lastfm.py:118 +#: contrib/plugins/lastfm/ui_options_lastfm.py:100 msgid "Use track tags" msgstr "Использовать метки композиции" -#: contrib/plugins/lastfm/ui_options_lastfm.py:119 +#: contrib/plugins/lastfm/ui_options_lastfm.py:101 msgid "Use artist tags" -msgstr "" +msgstr "Использовать метки исполнителей" -#: contrib/plugins/lastfm/ui_options_lastfm.py:120 +#: contrib/plugins/lastfm/ui_options_lastfm.py:102 #: picard/ui/options/tags.py:30 msgid "Tags" msgstr "Тэги" -#: contrib/plugins/lastfm/ui_options_lastfm.py:121 -#: picard/ui/ui_options_folksonomy.py:116 +#: contrib/plugins/lastfm/ui_options_lastfm.py:103 +#: picard/ui/ui_options_folksonomy.py:103 msgid "Ignore tags:" msgstr "Игнорировать теги:" -#: contrib/plugins/lastfm/ui_options_lastfm.py:122 -#: picard/ui/ui_options_folksonomy.py:121 +#: contrib/plugins/lastfm/ui_options_lastfm.py:104 +#: picard/ui/ui_options_folksonomy.py:108 msgid "Join multiple tags with:" msgstr "Объединять множественные теги с помощью:" -#: contrib/plugins/lastfm/ui_options_lastfm.py:123 -#: picard/ui/ui_options_folksonomy.py:122 +#: contrib/plugins/lastfm/ui_options_lastfm.py:105 +#: picard/ui/ui_options_folksonomy.py:109 msgid " / " msgstr " / " -#: contrib/plugins/lastfm/ui_options_lastfm.py:124 -#: picard/ui/ui_options_folksonomy.py:123 +#: contrib/plugins/lastfm/ui_options_lastfm.py:106 +#: picard/ui/ui_options_folksonomy.py:110 msgid ", " msgstr ", " -#: contrib/plugins/lastfm/ui_options_lastfm.py:125 -#: picard/ui/ui_options_folksonomy.py:118 +#: contrib/plugins/lastfm/ui_options_lastfm.py:107 +#: picard/ui/ui_options_folksonomy.py:105 msgid "Minimal tag usage:" msgstr "Минимальное использование тегов:" -#: contrib/plugins/lastfm/ui_options_lastfm.py:126 -#: picard/ui/ui_options_folksonomy.py:119 picard/ui/ui_options_matching.py:88 -#: picard/ui/ui_options_matching.py:89 picard/ui/ui_options_matching.py:90 +#: contrib/plugins/lastfm/ui_options_lastfm.py:108 +#: picard/ui/ui_options_folksonomy.py:106 picard/ui/ui_options_matching.py:75 +#: picard/ui/ui_options_matching.py:76 picard/ui/ui_options_matching.py:77 msgid " %" msgstr " %" #: contrib/plugins/replaygain/__init__.py:50 msgid "Calculate replay &gain..." -msgstr "" +msgstr "Вычисления преобразования и усиления..." -#: contrib/plugins/replaygain/__init__.py:66 +#: contrib/plugins/replaygain/__init__.py:67 #, python-format -msgid "Calculating replay gain for \"%s\"..." -msgstr "" +msgid "Calculating replay gain for \"%(filename)s\"..." +msgstr "Расчет replay gain для \"%(filename)s\"..." -#: contrib/plugins/replaygain/__init__.py:71 +#: contrib/plugins/replaygain/__init__.py:75 #, python-format -msgid "Replay gain for \"%s\" successfully calculated." -msgstr "" +msgid "Replay gain for \"%(filename)s\" successfully calculated." +msgstr "Replay gain для \"%(filename)s\" успешно рассчитывается." -#: contrib/plugins/replaygain/__init__.py:73 +#: contrib/plugins/replaygain/__init__.py:80 #, python-format -msgid "Could not calculate replay gain for \"%s\"." -msgstr "" +msgid "Could not calculate replay gain for \"%(filename)s\"." +msgstr "Не могу рассчитать replay gain для \"%(filename)s\"." -#: contrib/plugins/replaygain/__init__.py:76 +#: contrib/plugins/replaygain/__init__.py:85 msgid "Calculate album &gain..." -msgstr "" +msgstr "Вычисления усиления альбома..." -#: contrib/plugins/replaygain/__init__.py:103 -#: contrib/plugins/replaygain/__init__.py:111 +#: contrib/plugins/replaygain/__init__.py:113 +#: contrib/plugins/replaygain/__init__.py:124 #, python-format -msgid "Calculating album gain for \"%s\"..." -msgstr "" +msgid "Calculating album gain for \"%(album)s\"..." +msgstr "Расчет усиления для альбома \"%(album)s\"..." -#: contrib/plugins/replaygain/__init__.py:119 +#: contrib/plugins/replaygain/__init__.py:135 #, python-format -msgid "Album gain for \"%s\" successfully calculated." -msgstr "" +msgid "Album gain for \"%(album)s\" successfully calculated." +msgstr "Усиление альбома для \"%(album)s\" успешно рассчитывается." -#: contrib/plugins/replaygain/__init__.py:121 +#: contrib/plugins/replaygain/__init__.py:140 #, python-format -msgid "Could not calculate album gain for \"%s\"." -msgstr "" +msgid "Could not calculate album gain for \"%(album)s\"." +msgstr "Не удалось рассчитать усиление для альбома \"%(album)s\"." -#: picard/acoustid.py:102 +#: contrib/plugins/replaygain/ui_options_replaygain.py:59 +msgid "Replay Gain" +msgstr "Replay Gain" + +#: contrib/plugins/replaygain/ui_options_replaygain.py:60 +msgid "Path to VorbisGain:" +msgstr "Путь к VorbisGain:" + +#: contrib/plugins/replaygain/ui_options_replaygain.py:61 +msgid "Path to MP3Gain:" +msgstr "Путь к MP3Gain:" + +#: contrib/plugins/replaygain/ui_options_replaygain.py:62 +msgid "Path to metaflac:" +msgstr "Путь к metaflac:" + +#: contrib/plugins/replaygain/ui_options_replaygain.py:63 +msgid "Path to wvgain:" +msgstr "Путь к wvgain:" + +#: contrib/plugins/viewvariables/__init__.py:42 #, python-format -msgid "AcoustID lookup network error for '%s'!" -msgstr "" +msgid "File: %s" +msgstr "Файл: %s" -#: picard/acoustid.py:117 +#: contrib/plugins/viewvariables/__init__.py:47 #, python-format -msgid "AcoustID lookup failed for '%s'!" -msgstr "" +msgid "Track: %s %s " +msgstr "Трек: %s %s" -#: picard/acoustid.py:128 +#: contrib/plugins/viewvariables/__init__.py:49 +msgid "Variables" +msgstr "Переменные" + +#: contrib/plugins/viewvariables/__init__.py:69 +msgid "File variables" +msgstr "Файловые переменные" + +#: contrib/plugins/viewvariables/__init__.py:74 +msgid "Hidden variables" +msgstr "Скрытые переменные" + +#: contrib/plugins/viewvariables/__init__.py:79 +msgid "Tag variables" +msgstr "Переменные тега" + +#: contrib/plugins/viewvariables/ui_variables_dialog.py:73 +msgid "Variable" +msgstr "Переменная" + +#: contrib/plugins/viewvariables/ui_variables_dialog.py:75 +msgid "Value" +msgstr "Значение" + +#: picard/acoustid.py:109 #, python-format -msgid "Acoustid lookup returned no result for file '%s'" -msgstr "" +msgid "AcoustID lookup network error for '%(filename)s'!" +msgstr "AcoustID поиск ошибок в сети для '%(filename)s'!" -#: picard/acoustid.py:132 +#: picard/acoustid.py:133 #, python-format -msgid "Looking up the fingerprint for file %s..." -msgstr "Поиск отпечатка для файла %s…" +msgid "AcoustID lookup failed for '%(filename)s'!" +msgstr "AcoustID ошибка при поиске для '%(filename)s'!" -#: picard/acoustidmanager.py:78 -msgid "Submitting AcoustIDs..." -msgstr "Идёт передача AcoustID…" - -#: picard/acoustidmanager.py:83 +#: picard/acoustid.py:155 #, python-format -msgid "AcoustID submission failed with error '%s'" -msgstr "" +msgid "AcoustID lookup returned no result for file '%(filename)s'" +msgstr "AcoustID поиск вернулся без результатов для файла '%(filename)s\"" -#: picard/acoustidmanager.py:85 +#: picard/acoustid.py:166 +#, python-format +msgid "Looking up the fingerprint for file '%(filename)s' ..." +msgstr "Поиск отпечатка для файла '%(filename)s' ..." + +#: picard/acoustidmanager.py:80 +msgid "Submitting AcoustIDs ..." +msgstr "Отправка AcoustIDs ..." + +#: picard/acoustidmanager.py:94 +#, python-format +msgid "AcoustID submission failed with error '%(error)s'" +msgstr "Представление AcoustID завершилась с ошибкой '%(error)s'" + +#: picard/acoustidmanager.py:102 msgid "AcoustIDs successfully submitted." -msgstr "" +msgstr "AcoustIDs успешно отправлен." -#: picard/album.py:64 picard/cluster.py:234 +#: picard/album.py:65 picard/cluster.py:255 msgid "Unmatched Files" msgstr "Неопознанные файлы" -#: picard/album.py:187 +#: picard/album.py:188 #, python-format msgid "[could not load album %s]" msgstr "[не удается загрузить альбом %s]" -#: picard/album.py:272 +#: picard/album.py:277 #, python-format -msgid "Album %s loaded" -msgstr "" +msgid "Album %(id)s loaded: %(artist)s - %(album)s" +msgstr "Альбом %(id)s загружен: %(artist)s - %(album)s" -#: picard/album.py:288 +#: picard/album.py:294 +#, python-format +msgid "Loading album %(id)s ..." +msgstr "Загрузка альбома %(id)s ..." + +#: picard/album.py:303 msgid "[loading album information]" msgstr "[загружается информация об альбоме]" -#: picard/album.py:463 +#: picard/album.py:478 #, python-format msgid "; %i image" msgid_plural "; %i images" -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" +msgstr[0] "; %i изображение" +msgstr[1] "; %i изображений" +msgstr[2] "; %i изображения" -#: picard/cluster.py:150 picard/cluster.py:159 +#: picard/cluster.py:155 picard/cluster.py:168 #, python-format -msgid "No matching releases for cluster %s" -msgstr "Нет подходящих альбомов для кластера %s" +msgid "No matching releases for cluster %(album)s" +msgstr "Нет совпадения для кластера %(album)s" -#: picard/cluster.py:161 +#: picard/cluster.py:174 #, python-format -msgid "Cluster %s identified!" -msgstr "Кластер %s идентифицирован!" +msgid "Cluster %(album)s identified!" +msgstr "Кластер %(album)s идентифицирован!" -#: picard/cluster.py:168 +#: picard/cluster.py:185 #, python-format -msgid "Looking up the metadata for cluster %s..." -msgstr "Поиск метаданных для кластера %s…" +msgid "Looking up the metadata for cluster %(album)s..." +msgstr "Поиск метаданных для кластера %(album)s..." -#: picard/collection.py:60 +#: picard/collection.py:64 #, python-format -msgid "Added %i release to collection \"%s\"" -msgid_plural "Added %i releases to collection \"%s\"" -msgstr[0] "%i альбом добавлен в коллекцию «%s»" -msgstr[1] "%i альбома добавлено в коллекцию «%s»" -msgstr[2] "%i альбомов добавлено в коллекцию «%s»" +msgid "Added %(count)i release to collection \"%(name)s\"" +msgid_plural "Added %(count)i releases to collection \"%(name)s\"" +msgstr[0] "Добавлен %(count)i релиз в коллекцию \"%(name)s\"" +msgstr[1] "Добавлены %(count)i релизы в коллекцию \"%(name)s\"" +msgstr[2] "Добавлен %(count)i релиза в коллекцию \"%(name)s\"" -#: picard/collection.py:72 +#: picard/collection.py:86 #, python-format -msgid "Removed %i release from collection \"%s\"" -msgid_plural "Removed %i releases from collection \"%s\"" -msgstr[0] "%i альбом удалён из коллекции «%s»" -msgstr[1] "%i альбомa удалено из коллекции «%s»" -msgstr[2] "%i альбомов удалено из коллекции «%s»" +msgid "Removed %(count)i release from collection \"%(name)s\"" +msgid_plural "Removed %(count)i releases from collection \"%(name)s\"" +msgstr[0] "Удален %(count)i релиз из коллекции \"%(name)s\"" +msgstr[1] "Удалены %(count)i релизы из коллекции \"%(name)s\"" +msgstr[2] "Удален %(count)i релиз из коллекции \"%(name)s\"" -#: picard/collection.py:81 +#: picard/collection.py:100 #, python-format -msgid "Error loading collections: %s" -msgstr "" +msgid "Error loading collections: %(error)s" +msgstr "Ошибка при загрузке коллекции: %(error)s" -#: picard/config_upgrade.py:57 picard/config_upgrade.py:70 +#: picard/config_upgrade.py:58 picard/config_upgrade.py:71 msgid "Various Artists file naming scheme removal" -msgstr "" +msgstr "Various Artists схема именования файлов для удаления" -#: picard/config_upgrade.py:58 +#: picard/config_upgrade.py:59 msgid "" "The separate file naming scheme for various artists albums has been removed in this version of Picard.\n" "Your file naming scheme has automatically been merged with that of single artist albums." -msgstr "" +msgstr "Отдельная схема обозначения файлов различных альбомов исполнителя была удалена в этой версии Picard.\nВаша схема обозначения файлов была автоматически объединена с единственным исполнителем альбома" -#: picard/config_upgrade.py:71 +#: picard/config_upgrade.py:72 msgid "" "The separate file naming scheme for various artists albums has been removed in this version of Picard.\n" "You currently do not use this option, but have a separate file naming scheme defined.\n" "Do you want to remove it or merge it with your file naming scheme for single artist albums?" -msgstr "" +msgstr "Отдельная схема именования файлов для различных художников, альбомы, был удален в этой версии Picard.\nВ настоящее время Вы не используете этот параметр, но есть отдельная схема именования файлов определены.\nВы действительно хотите удалить или объединить его с вашей схема именования файлов для одного художника альбомы?" -#: picard/config_upgrade.py:77 +#: picard/config_upgrade.py:78 msgid "Merge" msgstr "Объединить" -#: picard/config_upgrade.py:77 picard/ui/metadatabox.py:254 +#: picard/config_upgrade.py:78 picard/ui/metadatabox.py:254 msgid "Remove" msgstr "Удалить" -#: picard/const.py:67 -msgid "CD" -msgstr "CD" - -#: picard/const.py:68 -msgid "CD-R" -msgstr "CD-R" - -#: picard/const.py:69 -msgid "HDCD" -msgstr "HDCD" - -#: picard/const.py:70 -msgid "8cm CD" -msgstr "8 см CD" - -#: picard/const.py:71 -msgid "Vinyl" -msgstr "Винил" - -#: picard/const.py:72 -msgid "7\" Vinyl" -msgstr "миньон" - -#: picard/const.py:73 -msgid "10\" Vinyl" -msgstr "гранд" - -#: picard/const.py:74 -msgid "12\" Vinyl" -msgstr "гигант" - -#: picard/const.py:75 -msgid "Digital Media" -msgstr "Цифровой носитель" - -#: picard/const.py:76 -msgid "USB Flash Drive" -msgstr "флэшка" - -#: picard/const.py:77 -msgid "slotMusic" -msgstr "slotMusic" - -#: picard/const.py:78 -msgid "Cassette" -msgstr "Кассета" - -#: picard/const.py:79 -msgid "DVD" -msgstr "DVD" - -#: picard/const.py:80 -msgid "DVD-Audio" -msgstr "Аудио-DVD" - -#: picard/const.py:81 -msgid "DVD-Video" -msgstr "Видео-DVD" - -#: picard/const.py:82 -msgid "SACD" -msgstr "SACD" - -#: picard/const.py:83 -msgid "DualDisc" -msgstr "" - -#: picard/const.py:84 -msgid "MiniDisc" -msgstr "MiniDisc" - -#: picard/const.py:85 -msgid "Blu-ray" -msgstr "Blu-ray" - -#: picard/const.py:86 -msgid "HD-DVD" -msgstr "HD-DVD" - -#: picard/const.py:87 -msgid "Videotape" -msgstr "Видеопленка" - -#: picard/const.py:88 -msgid "VHS" -msgstr "Видеокассета" - -#: picard/const.py:89 -msgid "Betamax" -msgstr "Betamax" - #: picard/const.py:90 -msgid "VCD" -msgstr "VCD" +msgid "Danish" +msgstr "Датский" #: picard/const.py:91 -msgid "SVCD" -msgstr "SVCD" - -#: picard/const.py:92 -msgid "UMD" -msgstr "UMD" - -#: picard/const.py:93 picard/coverartarchive.py:33 -#: picard/ui/ui_options_releases.py:226 -msgid "Other" -msgstr "Прочее" - -#: picard/const.py:94 -msgid "LaserDisc" -msgstr "LaserDisc" - -#: picard/const.py:95 -msgid "Cartridge" -msgstr "Картридж" - -#: picard/const.py:96 -msgid "Reel-to-reel" -msgstr "Магнитная лента" - -#: picard/const.py:97 -msgid "DAT" -msgstr "DAT" - -#: picard/const.py:98 -msgid "Wax Cylinder" -msgstr "Восковой валик" - -#: picard/const.py:99 -msgid "Piano Roll" -msgstr "Лента механического пианино" - -#: picard/const.py:100 -msgid "DCC" -msgstr "" - -#: picard/const.py:115 -msgid "Danish" -msgstr "" - -#: picard/const.py:116 msgid "German" msgstr "Немецкий" -#: picard/const.py:118 +#: picard/const.py:93 msgid "English" msgstr "Английский" -#: picard/const.py:119 +#: picard/const.py:94 msgid "English (Canada)" msgstr "Английский (Канадский)" -#: picard/const.py:120 +#: picard/const.py:95 msgid "English (UK)" msgstr "Английский (Великобритания)" -#: picard/const.py:122 +#: picard/const.py:97 msgid "Spanish" msgstr "Испанский" -#: picard/const.py:123 +#: picard/const.py:98 msgid "Estonian" msgstr "Эстонский" -#: picard/const.py:125 +#: picard/const.py:100 msgid "Finnish" msgstr "Финский" -#: picard/const.py:127 +#: picard/const.py:102 msgid "French" msgstr "Французский" -#: picard/const.py:136 +#: picard/const.py:111 msgid "Italian" msgstr "Итальянский" -#: picard/const.py:143 +#: picard/const.py:118 msgid "Dutch" msgstr "Голландский" -#: picard/const.py:145 +#: picard/const.py:120 msgid "Polish" msgstr "Польский" -#: picard/const.py:147 +#: picard/const.py:122 msgid "Brazilian Portuguese" msgstr "Португальский (Бразилия)" -#: picard/const.py:154 +#: picard/const.py:129 msgid "Swedish" msgstr "Шведский" -#: picard/coverart.py:84 +#: picard/coverart.py:85 #, python-format -msgid "Coverart %s downloaded" -msgstr "" +msgid "Cover art of type '%(type)s' downloaded for %(albumid)s from %(host)s" +msgstr "Обложка типа '%(type)s' загружены %(albumid)s из %(host)s" -#: picard/coverart.py:240 +#: picard/coverart.py:256 #, python-format -msgid "Downloading http://%s:%i%s" -msgstr "" - -#: picard/coverartarchive.py:24 -msgid "Front" -msgstr "" - -#: picard/coverartarchive.py:25 -msgid "Back" -msgstr "" - -#: picard/coverartarchive.py:26 -msgid "Booklet" -msgstr "" - -#: picard/coverartarchive.py:27 -msgid "Medium" -msgstr "" - -#: picard/coverartarchive.py:28 -msgid "Tray" -msgstr "" - -#: picard/coverartarchive.py:29 -msgid "Obi" -msgstr "" +msgid "" +"Downloading cover art of type '%(type)s' for %(albumid)s from %(host)s .." +msgstr "Загрузка обложки типа '%(type)s' для %(albumid)s с %(host)s .." #: picard/coverartarchive.py:30 -msgid "Spine" -msgstr "" - -#: picard/coverartarchive.py:31 picard/ui/mainwindow.py:546 -msgid "Track" -msgstr "Произведение" - -#: picard/coverartarchive.py:32 -msgid "Sticker" -msgstr "" - -#: picard/coverartarchive.py:34 msgid "Unknown" -msgstr "" +msgstr "Неизвестный" -#: picard/file.py:536 +#: picard/file.py:494 #, python-format -msgid "No matching tracks for file %s" -msgstr "Нет подходящих произведений для файла %s" +msgid "No matching tracks for file '%(filename)s'" +msgstr "Нет соответствующих треков для файла '%(filename)s'" -#: picard/file.py:548 +#: picard/file.py:510 #, python-format -msgid "No matching tracks above the threshold for file %s" -msgstr "Не найдены треки, удовлетворяющие условиям для файла %s" +msgid "No matching tracks above the threshold for file '%(filename)s'" +msgstr "Нет совпадения треков для файла '%(filename)s'" -#: picard/file.py:551 +#: picard/file.py:517 #, python-format -msgid "File %s identified!" -msgstr "Файл %s идентифицирован!" +msgid "File '%(filename)s' identified!" +msgstr "Файл '%(filename)s' идентифицирован!" -#: picard/file.py:567 +#: picard/file.py:537 #, python-format -msgid "Looking up the metadata for file %s..." -msgstr "Поиск метаданных для файла %s…" +msgid "Looking up the metadata for file %(filename)s ..." +msgstr "Просмотр метаданных для файла %(filename)s..." #: picard/releasegroup.py:53 msgid "Tracks" -msgstr "" +msgstr "Дорожка" #: picard/releasegroup.py:54 msgid "Year" -msgstr "" +msgstr "Год" -#: picard/releasegroup.py:55 picard/ui/cdlookup.py:34 +#: picard/releasegroup.py:55 picard/ui/cdlookup.py:35 msgid "Country" msgstr "Страна" -#: picard/releasegroup.py:56 picard/util/tags.py:81 +#: picard/releasegroup.py:56 msgid "Format" msgstr "Формат" #: picard/releasegroup.py:57 msgid "Label" -msgstr "" +msgstr " Лейбл" #: picard/releasegroup.py:58 msgid "Cat No" -msgstr "" +msgstr "Номер каталога" #: picard/releasegroup.py:88 msgid "[no barcode]" @@ -548,16 +432,24 @@ msgstr "[штрих-код отсутствует]" msgid "[no release info]" msgstr "[нет информации о альбоме]" -#: picard/tagger.py:316 +#: picard/tagger.py:370 #, python-format -msgid "Loading directory %s" -msgstr "" +msgid "Adding %(count)d file from '%(directory)s' ..." +msgid_plural "Adding %(count)d files from '%(directory)s' ..." +msgstr[0] "Добавление %(count)d файла из '%(directory)s' ..." +msgstr[1] "Добавление %(count)d файлов из '%(directory)s' ..." +msgstr[2] "Добавление %(count)d файлов из '%(directory)s' ..." -#: picard/tagger.py:452 +#: picard/tagger.py:512 +#, python-format +msgid "Removing album %(id)s: %(artist)s - %(album)s" +msgstr "Удаление альбома %(id)s: %(artist)s - %(album)s" + +#: picard/tagger.py:528 msgid "CD Lookup Error" msgstr "Ошибка опознавания CD" -#: picard/tagger.py:453 +#: picard/tagger.py:529 #, python-format msgid "" "Error while reading CD:\n" @@ -565,37 +457,36 @@ msgid "" "%s" msgstr "Ошибка чтения диска:\n\n%s" -#: picard/ui/cdlookup.py:34 picard/ui/mainwindow.py:544 -#: picard/ui/ui_options_releases.py:216 picard/util/tags.py:21 +#: picard/ui/cdlookup.py:35 picard/ui/mainwindow.py:597 picard/util/tags.py:21 msgid "Album" msgstr "Альбом" -#: picard/ui/cdlookup.py:34 picard/ui/itemviews.py:96 -#: picard/ui/mainwindow.py:545 picard/util/tags.py:22 +#: picard/ui/cdlookup.py:35 picard/ui/itemviews.py:96 +#: picard/ui/mainwindow.py:598 picard/util/tags.py:22 msgid "Artist" msgstr "Исполнитель" -#: picard/ui/cdlookup.py:34 picard/util/tags.py:24 +#: picard/ui/cdlookup.py:35 picard/util/tags.py:24 msgid "Date" msgstr "Дата" -#: picard/ui/cdlookup.py:35 +#: picard/ui/cdlookup.py:36 msgid "Labels" msgstr "Лейблы" -#: picard/ui/cdlookup.py:35 +#: picard/ui/cdlookup.py:36 msgid "Catalog #s" -msgstr "" +msgstr "Каталог #s" -#: picard/ui/cdlookup.py:35 picard/util/tags.py:79 +#: picard/ui/cdlookup.py:36 picard/util/tags.py:78 msgid "Barcode" msgstr "Штрих-код" -#: picard/ui/collectionmenu.py:31 +#: picard/ui/collectionmenu.py:42 msgid "Refresh List" -msgstr "" +msgstr "Обновить список" -#: picard/ui/collectionmenu.py:92 +#: picard/ui/collectionmenu.py:86 #, python-format msgid "%s (%i release)" msgid_plural "%s (%i releases)" @@ -603,7 +494,7 @@ msgstr[0] "%s (%i альбом)" msgstr[1] "%s (%i альбома)" msgstr[2] "%s (%i альбомов)" -#: picard/ui/coverartbox.py:142 +#: picard/ui/coverartbox.py:141 msgid "View release on MusicBrainz" msgstr "Открыть альбом на MusicBrainz" @@ -617,61 +508,61 @@ msgstr "Показать &скрытые файлы" #: picard/ui/filebrowser.py:48 msgid "&Set as starting directory" -msgstr "" +msgstr "&Установить в качестве исходного каталога" -#: picard/ui/infodialog.py:36 picard/ui/infodialog.py:75 +#: picard/ui/infodialog.py:37 picard/ui/infodialog.py:80 msgid "Info" -msgstr "" +msgstr "Информация" -#: picard/ui/infodialog.py:80 +#: picard/ui/infodialog.py:85 msgid "Filename:" msgstr "Имя файла:" -#: picard/ui/infodialog.py:82 +#: picard/ui/infodialog.py:87 msgid "Format:" msgstr "Формат:" -#: picard/ui/infodialog.py:86 +#: picard/ui/infodialog.py:91 msgid "Size:" msgstr "Размер:" -#: picard/ui/infodialog.py:90 +#: picard/ui/infodialog.py:95 msgid "Length:" msgstr "Длительность:" -#: picard/ui/infodialog.py:92 +#: picard/ui/infodialog.py:97 msgid "Bitrate:" msgstr "Битрейт:" -#: picard/ui/infodialog.py:94 +#: picard/ui/infodialog.py:99 msgid "Sample rate:" msgstr "Частота дискретизации:" -#: picard/ui/infodialog.py:96 +#: picard/ui/infodialog.py:101 msgid "Bits per sample:" msgstr "Битов на семпл:" -#: picard/ui/infodialog.py:100 +#: picard/ui/infodialog.py:105 msgid "Mono" msgstr "Моно" -#: picard/ui/infodialog.py:102 +#: picard/ui/infodialog.py:107 msgid "Stereo" msgstr "Стерео" -#: picard/ui/infodialog.py:105 +#: picard/ui/infodialog.py:110 msgid "Channels:" msgstr "Каналы:" -#: picard/ui/infodialog.py:116 +#: picard/ui/infodialog.py:121 msgid "Album Info" msgstr "Информация об альбоме" -#: picard/ui/infodialog.py:124 +#: picard/ui/infodialog.py:129 msgid "&Errors" msgstr "O&шибки" -#: picard/ui/infodialog.py:134 picard/ui/ui_infodialog.py:77 +#: picard/ui/infodialog.py:139 picard/ui/ui_infodialog.py:73 msgid "&Info" msgstr "&Информация" @@ -685,17 +576,17 @@ msgstr "Альбомы" #: picard/ui/infostatus.py:53 msgid "Pending files" -msgstr "" +msgstr "Отложенные файлы" #: picard/ui/infostatus.py:54 msgid "Pending requests" -msgstr "" +msgstr "Запросы, ожидающие обработки" #: picard/ui/itemviews.py:94 picard/util/tags.py:23 msgid "Title" msgstr "Название" -#: picard/ui/itemviews.py:95 picard/util/tags.py:88 +#: picard/ui/itemviews.py:95 picard/util/tags.py:86 msgid "Length" msgstr "Длина" @@ -720,8 +611,8 @@ msgid "Collections" msgstr "Коллекции" #: picard/ui/itemviews.py:365 -msgid "&Plugins" -msgstr "П&лагины" +msgid "P&lugins" +msgstr "Плагины" #: picard/ui/itemviews.py:541 msgid "file view" @@ -729,7 +620,7 @@ msgstr "вид на файлы" #: picard/ui/itemviews.py:542 msgid "Contains unmatched files and clusters" -msgstr "" +msgstr "Содержит несовпадающие файлы и кластеры" #: picard/ui/itemviews.py:562 msgid "Clusters" @@ -741,15 +632,19 @@ msgstr "вид на альбом" #: picard/ui/itemviews.py:572 msgid "Contains albums and matched files" -msgstr "" +msgstr "Содержит альбомы с соответствующими файлами" -#: picard/ui/logview.py:91 +#: picard/ui/logview.py:109 msgid "Log" msgstr "Отчёт" -#: picard/ui/logview.py:99 -msgid "Status History" -msgstr "" +#: picard/ui/logview.py:113 +msgid "Debug mode" +msgstr "Режим отладки" + +#: picard/ui/logview.py:134 +msgid "Activity History" +msgstr "История активности" #: picard/ui/mainwindow.py:74 msgid "MusicBrainz Picard" @@ -769,9 +664,9 @@ msgid "" "There is %d unsaved file. Closing Picard will lose all unsaved changes." msgid_plural "" "There are %d unsaved files. Closing Picard will lose all unsaved changes." -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" +msgstr[0] "Есть %d несохраненный файл. При закрытие Picard потеряет несохраненные изменения" +msgstr[1] "Есть %d несохраненные файлы. При закрытие Picard потеряет все несохраненные изменения" +msgstr[2] "Есть %d несохраненные файлы. При закрытие Picard потеряет все несохраненные изменения" #: picard/ui/mainwindow.py:164 msgid "&Quit Picard" @@ -783,284 +678,317 @@ msgstr "Готово" #: picard/ui/mainwindow.py:220 msgid "" -"Picard listens on a port to integrate with your browser and downloads " -"release information when you click the \"Tagger\" buttons on the MusicBrainz" -" website" -msgstr "Picard открывает порт для интеграции с вашим браузером и скачивает информацию о альбомах когда вы нажимаете кнопку «Tagger» на сайте MusicBrainz" +"Picard listens on this port to integrate with your browser. When you " +"\"Search\" or \"Open in Browser\" from Picard, clicking the \"Tagger\" " +"button on the web page loads the release into Picard." +msgstr "Picard прослушивает этот порт для интеграции с браузером." -#: picard/ui/mainwindow.py:240 +#: picard/ui/mainwindow.py:243 #, python-format msgid " Listening on port %(port)d " -msgstr "" +msgstr "Слушать через порт %(port)d" -#: picard/ui/mainwindow.py:263 +#: picard/ui/mainwindow.py:299 msgid "Submission Error" msgstr "Ошибка передачи" -#: picard/ui/mainwindow.py:264 +#: picard/ui/mainwindow.py:300 msgid "" "You need to configure your AcoustID API key before you can submit " "fingerprints." msgstr "Требуется настроить ваш ключ AcoustID перед тем как вы сможете отсылать новые отпечатки." -#: picard/ui/mainwindow.py:269 +#: picard/ui/mainwindow.py:305 msgid "&Options..." msgstr "&Настройки…" -#: picard/ui/mainwindow.py:273 +#: picard/ui/mainwindow.py:309 msgid "&Cut" msgstr "&Вырезать" -#: picard/ui/mainwindow.py:278 +#: picard/ui/mainwindow.py:314 msgid "&Paste" msgstr "В&ставить" -#: picard/ui/mainwindow.py:283 +#: picard/ui/mainwindow.py:319 msgid "&Help..." msgstr "&Помощь…" -#: picard/ui/mainwindow.py:288 +#: picard/ui/mainwindow.py:323 msgid "&About..." msgstr "&О программе…" -#: picard/ui/mainwindow.py:292 +#: picard/ui/mainwindow.py:327 msgid "&Donate..." msgstr "&Пожертвовать..." -#: picard/ui/mainwindow.py:295 +#: picard/ui/mainwindow.py:330 msgid "&Report a Bug..." msgstr "&Сообщить об ошибке…" -#: picard/ui/mainwindow.py:298 +#: picard/ui/mainwindow.py:333 msgid "&Support Forum..." msgstr "&Форум поддержки…" -#: picard/ui/mainwindow.py:301 +#: picard/ui/mainwindow.py:336 msgid "&Add Files..." msgstr "&Добавить файлы…" -#: picard/ui/mainwindow.py:302 +#: picard/ui/mainwindow.py:337 msgid "Add files to the tagger" msgstr "Добавить файлы в теггер" -#: picard/ui/mainwindow.py:307 +#: picard/ui/mainwindow.py:342 msgid "A&dd Folder..." msgstr "Д&обавить папку…" -#: picard/ui/mainwindow.py:308 +#: picard/ui/mainwindow.py:343 msgid "Add a folder to the tagger" msgstr "Добавить папку в теггер" -#: picard/ui/mainwindow.py:310 +#: picard/ui/mainwindow.py:345 msgid "Ctrl+D" msgstr "Ctrl+D" -#: picard/ui/mainwindow.py:313 +#: picard/ui/mainwindow.py:348 msgid "&Save" msgstr "&Сохранить" -#: picard/ui/mainwindow.py:314 +#: picard/ui/mainwindow.py:349 msgid "Save selected files" msgstr "Сохранить выбранные файлы" -#: picard/ui/mainwindow.py:320 +#: picard/ui/mainwindow.py:355 msgid "S&ubmit" -msgstr "" +msgstr "Отправить" -#: picard/ui/mainwindow.py:321 -msgid "Submit fingerprints" -msgstr "Отослать отпечатки" +#: picard/ui/mainwindow.py:356 +msgid "Submit acoustic fingerprints" +msgstr "Представить акустические отпечатки" -#: picard/ui/mainwindow.py:325 +#: picard/ui/mainwindow.py:360 msgid "E&xit" msgstr "&Выход" -#: picard/ui/mainwindow.py:328 +#: picard/ui/mainwindow.py:363 msgid "Ctrl+Q" msgstr "Ctrl+Q" -#: picard/ui/mainwindow.py:331 +#: picard/ui/mainwindow.py:366 msgid "&Remove" msgstr "&Удалить" -#: picard/ui/mainwindow.py:332 +#: picard/ui/mainwindow.py:367 msgid "Remove selected files/albums" msgstr "Убрать отмеченные файлы или альбомы" -#: picard/ui/mainwindow.py:336 +#: picard/ui/mainwindow.py:371 msgid "Lookup in &Browser" -msgstr "" +msgstr "Обзор в %обозревателе" -#: picard/ui/mainwindow.py:337 +#: picard/ui/mainwindow.py:372 msgid "Lookup selected item on MusicBrainz website" msgstr "Найти выбранное на сайте MusicBrainz" -#: picard/ui/mainwindow.py:341 +#: picard/ui/mainwindow.py:376 msgid "File &Browser" msgstr "Обзор &файлов" -#: picard/ui/mainwindow.py:345 +#: picard/ui/mainwindow.py:380 msgid "Ctrl+B" msgstr "Ctrl+B" -#: picard/ui/mainwindow.py:348 +#: picard/ui/mainwindow.py:383 msgid "&Cover Art" msgstr "&Обложка" -#: picard/ui/mainwindow.py:354 picard/ui/mainwindow.py:539 +#: picard/ui/mainwindow.py:389 picard/ui/mainwindow.py:591 msgid "Search" msgstr "Поиск" -#: picard/ui/mainwindow.py:357 -msgid "&CD Lookup..." -msgstr "Опознать &CD…" +#: picard/ui/mainwindow.py:392 +msgid "Lookup &CD..." +msgstr "Поиск &CD..." -#: picard/ui/mainwindow.py:358 picard/ui/mainwindow.py:359 -msgid "Lookup CD" -msgstr "Опознать CD" +#: picard/ui/mainwindow.py:393 +msgid "Lookup the details of the CD in your drive" +msgstr "Поиск информации о CD в дисководе" -#: picard/ui/mainwindow.py:361 +#: picard/ui/mainwindow.py:395 msgid "Ctrl+K" msgstr "Ctrl+K" -#: picard/ui/mainwindow.py:364 +#: picard/ui/mainwindow.py:398 msgid "&Scan" msgstr "&Сканировать" -#: picard/ui/mainwindow.py:367 +#: picard/ui/mainwindow.py:401 msgid "Ctrl+Y" msgstr "Ctrl+Y" -#: picard/ui/mainwindow.py:370 +#: picard/ui/mainwindow.py:404 msgid "Cl&uster" msgstr "&Разбить на кластеры" -#: picard/ui/mainwindow.py:373 +#: picard/ui/mainwindow.py:407 msgid "Ctrl+U" msgstr "Ctrl+U" -#: picard/ui/mainwindow.py:376 +#: picard/ui/mainwindow.py:410 msgid "&Lookup" msgstr "&Опознать" -#: picard/ui/mainwindow.py:377 picard/ui/mainwindow.py:378 -msgid "Lookup metadata" -msgstr "Искать метаданные" +#: picard/ui/mainwindow.py:411 +msgid "Lookup selected items in MusicBrainz" +msgstr "Поиск выбранных элементов в MusicBrainz" -#: picard/ui/mainwindow.py:381 +#: picard/ui/mainwindow.py:416 msgid "Ctrl+L" msgstr "Ctrl+L" -#: picard/ui/mainwindow.py:384 +#: picard/ui/mainwindow.py:419 msgid "&Info..." -msgstr "" +msgstr "&Информация..." -#: picard/ui/mainwindow.py:387 +#: picard/ui/mainwindow.py:422 msgid "Ctrl+I" -msgstr "" +msgstr "Ctrl+I" -#: picard/ui/mainwindow.py:390 +#: picard/ui/mainwindow.py:425 msgid "&Refresh" msgstr "&Обновить" -#: picard/ui/mainwindow.py:391 +#: picard/ui/mainwindow.py:426 msgid "Ctrl+R" -msgstr "" +msgstr "Ctrl+R" -#: picard/ui/mainwindow.py:394 +#: picard/ui/mainwindow.py:429 msgid "&Rename Files" msgstr "&Переименовывать файлы" -#: picard/ui/mainwindow.py:399 +#: picard/ui/mainwindow.py:434 msgid "&Move Files" msgstr "П&ереносить файлы" -#: picard/ui/mainwindow.py:404 +#: picard/ui/mainwindow.py:439 msgid "Save &Tags" msgstr "Сохранять &теги" -#: picard/ui/mainwindow.py:409 +#: picard/ui/mainwindow.py:444 msgid "Tags From &File Names..." msgstr "Теги из имён &файлов…" -#: picard/ui/mainwindow.py:412 -msgid "View &Log..." -msgstr "П&росмотреть отчет..." +#: picard/ui/mainwindow.py:447 +msgid "&Open My Collections in Browser" +msgstr "&Открыть Мою Коллекцию в Браузере" -#: picard/ui/mainwindow.py:415 -msgid "View Status &History..." -msgstr "" +#: picard/ui/mainwindow.py:451 +msgid "View Error/Debug &Log" +msgstr "Просмотр &Журнала ошибок" -#: picard/ui/mainwindow.py:422 -msgid "&Open..." -msgstr "&Открыть" +#: picard/ui/mainwindow.py:454 +msgid "View Activity &History" +msgstr "Просмотр активности &Истории" -#: picard/ui/mainwindow.py:423 -msgid "Open the file" -msgstr "Открыть файл" +#: picard/ui/mainwindow.py:461 +msgid "&Play file" +msgstr "&Воспроизвести файл" -#: picard/ui/mainwindow.py:426 -msgid "Open &Folder..." -msgstr "Открыть &папку" +#: picard/ui/mainwindow.py:462 +msgid "Play the file in your default media player" +msgstr "Воспроизвести этот файл в проигрывателе по умолчанию" -#: picard/ui/mainwindow.py:427 -msgid "Open the containing folder" -msgstr "Открыть содержащую папку" +#: picard/ui/mainwindow.py:466 +msgid "Open Containing &Folder" +msgstr "Открыть содержащую &папку" -#: picard/ui/mainwindow.py:448 +#: picard/ui/mainwindow.py:467 +msgid "Open the containing folder in your file explorer" +msgstr "Откройте папку, содержащую файл в вашем обозревателе" + +#: picard/ui/mainwindow.py:492 msgid "&File" msgstr "&Файл" -#: picard/ui/mainwindow.py:456 +#: picard/ui/mainwindow.py:503 msgid "&Edit" msgstr "&Правка" -#: picard/ui/mainwindow.py:462 +#: picard/ui/mainwindow.py:509 msgid "&View" msgstr "&Вид" -#: picard/ui/mainwindow.py:470 +#: picard/ui/mainwindow.py:515 msgid "&Options" msgstr "&Настройки" -#: picard/ui/mainwindow.py:476 +#: picard/ui/mainwindow.py:521 msgid "&Tools" msgstr "&Инструменты" -#: picard/ui/mainwindow.py:485 picard/ui/util.py:35 +#: picard/ui/mainwindow.py:532 picard/ui/util.py:35 msgid "&Help" msgstr "&Справка" -#: picard/ui/mainwindow.py:505 +#: picard/ui/mainwindow.py:553 msgid "Actions" msgstr "Действия" -#: picard/ui/mainwindow.py:608 +#: picard/ui/mainwindow.py:599 +msgid "Track" +msgstr "Произведение" + +#: picard/ui/mainwindow.py:662 msgid "All Supported Formats" msgstr "Все поддерживаемые форматы" -#: picard/ui/mainwindow.py:705 +#: picard/ui/mainwindow.py:695 +#, python-format +msgid "Adding directory: '%(directory)s' ..." +msgstr "Добавление папки:'%(directory)s' ..." + +#: picard/ui/mainwindow.py:702 +#, python-format +msgid "Adding multiple directories from '%(directory)s' ..." +msgstr "Добавление нескольких папок из '%(directory)s' ..." + +#: picard/ui/mainwindow.py:767 msgid "Configuration Required" msgstr "Требуется настройка" -#: picard/ui/mainwindow.py:706 +#: picard/ui/mainwindow.py:768 msgid "" "Audio fingerprinting is not yet configured. Would you like to configure it " "now?" msgstr "Поддержка звуковых отпечатков не настроена. Хотите настроить её сейчас?" -#: picard/ui/mainwindow.py:784 picard/ui/mainwindow.py:791 +#: picard/ui/mainwindow.py:848 #, python-format -msgid " (Error: %s)" -msgstr " (Ошибка: %s)" +msgid "%(filename)s (error: %(error)s)" +msgstr "%(filename)s (error: %(error)s)" + +#: picard/ui/mainwindow.py:854 +#, python-format +msgid "%(filename)s" +msgstr "%(filename)s" + +#: picard/ui/mainwindow.py:864 +#, python-format +msgid "%(filename)s (%(similarity)d%%) (error: %(error)s)" +msgstr "%(filename)s (%(similarity)d%%) (error: %(error)s)" + +#: picard/ui/mainwindow.py:871 +#, python-format +msgid "%(filename)s (%(similarity)d%%)" +msgstr "%(filename)s (%(similarity)d%%)" #: picard/ui/metadatabox.py:82 #, python-format msgid "(different across %d item)" msgid_plural "(different across %d items)" -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" +msgstr[0] "(отличающийся через %d пункт)" +msgstr[1] "(отличающийся через %d пункты)" +msgstr[2] "(отличающийся через %d пункты)" #: picard/ui/metadatabox.py:90 #, python-format @@ -1109,387 +1037,387 @@ msgstr[0] "Использовать изначальное значение" msgstr[1] "Использовать изначальные значения" msgstr[2] "Использовать изначальные значения" -#: picard/ui/passworddialog.py:37 +#: picard/ui/passworddialog.py:40 #, python-format msgid "" "The server %s requires you to login. Please enter your username and " "password." msgstr "Сервер %s требует вашей авторизации. Пожалуйста введите имя пользователя и пароль" -#: picard/ui/passworddialog.py:75 +#: picard/ui/passworddialog.py:79 #, python-format msgid "" "The proxy %s requires you to login. Please enter your username and password." msgstr "Прокси сервер %s требует вашей авторизации. Пожалуйста введите имя пользователя и пароль." -#: picard/ui/tagsfromfilenames.py:55 picard/ui/tagsfromfilenames.py:100 +#: picard/ui/tagsfromfilenames.py:56 picard/ui/tagsfromfilenames.py:101 msgid "File Name" msgstr "Имя файла" -#: picard/ui/ui_cdlookup.py:66 picard/ui/ui_options_cdlookup.py:55 -#: picard/ui/ui_options_cdlookup_select.py:62 picard/ui/options/cdlookup.py:38 +#: picard/ui/ui_cdlookup.py:53 picard/ui/ui_options_cdlookup.py:42 +#: picard/ui/ui_options_cdlookup_select.py:49 picard/ui/options/cdlookup.py:38 msgid "CD Lookup" msgstr "Поиск CD" -#: picard/ui/ui_cdlookup.py:67 +#: picard/ui/ui_cdlookup.py:54 msgid "The following releases on MusicBrainz match the CD:" msgstr "Следующие альбомы на MusicBrainz соответствуют CD:" -#: picard/ui/ui_cdlookup.py:68 +#: picard/ui/ui_cdlookup.py:55 msgid "OK" msgstr "OK" -#: picard/ui/ui_cdlookup.py:69 +#: picard/ui/ui_cdlookup.py:56 msgid "Lookup manually" msgstr " Опознать вручную " -#: picard/ui/ui_cdlookup.py:70 +#: picard/ui/ui_cdlookup.py:57 msgid "Cancel" msgstr "Отмена" -#: picard/ui/ui_edittagdialog.py:101 +#: picard/ui/ui_edittagdialog.py:88 msgid "Edit Tag" msgstr "Править ярлык" -#: picard/ui/ui_edittagdialog.py:102 +#: picard/ui/ui_edittagdialog.py:89 msgid "Edit value" msgstr "Править значение" -#: picard/ui/ui_edittagdialog.py:103 +#: picard/ui/ui_edittagdialog.py:90 msgid "Add value" msgstr "Добавить значение" -#: picard/ui/ui_edittagdialog.py:104 +#: picard/ui/ui_edittagdialog.py:91 msgid "Remove value" msgstr "Удалить значение" -#: picard/ui/ui_infodialog.py:78 +#: picard/ui/ui_infodialog.py:74 msgid "A&rtwork" msgstr "&Обложка" -#: picard/ui/ui_infostatus.py:100 +#: picard/ui/ui_infostatus.py:96 msgid "Form" -msgstr "" +msgstr "Форма" -#: picard/ui/ui_options.py:51 +#: picard/ui/ui_options.py:38 msgid "Options" msgstr "Настройки" -#: picard/ui/ui_options_advanced.py:46 +#: picard/ui/ui_options_advanced.py:42 msgid "Advanced options" msgstr "Расширенные опции" -#: picard/ui/ui_options_advanced.py:47 +#: picard/ui/ui_options_advanced.py:43 msgid "Ignore file paths matching the following regular expression:" -msgstr "" +msgstr "Игнорировать пути к файлам, соответствующие следующим регулярным выражениям:" -#: picard/ui/ui_options_cdlookup.py:56 +#: picard/ui/ui_options_cdlookup.py:43 msgid "CD-ROM device to use for lookups:" msgstr "Привод CD-ROM для опознавания:" -#: picard/ui/ui_options_cdlookup_select.py:63 +#: picard/ui/ui_options_cdlookup_select.py:50 msgid "Default CD-ROM drive to use for lookups:" msgstr "Привод CD-ROM по умолчанию:" -#: picard/ui/ui_options_cover.py:145 +#: picard/ui/ui_options_cover.py:131 msgid "Location" msgstr "Расположение" -#: picard/ui/ui_options_cover.py:146 +#: picard/ui/ui_options_cover.py:132 msgid "Embed cover images into tags" msgstr "Добавлять обложки в теги" -#: picard/ui/ui_options_cover.py:147 +#: picard/ui/ui_options_cover.py:133 msgid "Only embed a front image" msgstr "Вставлять только переднюю обложку" -#: picard/ui/ui_options_cover.py:148 +#: picard/ui/ui_options_cover.py:134 msgid "Save cover images as separate files" msgstr "Сохранять обложки как отдельные файлы" -#: picard/ui/ui_options_cover.py:149 +#: picard/ui/ui_options_cover.py:135 msgid "Use the following file name for images:" -msgstr "" +msgstr "Использовать следующие имя файла для изображений:" -#: picard/ui/ui_options_cover.py:150 +#: picard/ui/ui_options_cover.py:136 msgid "Overwrite the file if it already exists" msgstr "Перезаписывать файл, если он уже есть" -#: picard/ui/ui_options_cover.py:151 +#: picard/ui/ui_options_cover.py:137 msgid "Coverart Providers" -msgstr "" +msgstr "Обложка Провайдеров" -#: picard/ui/ui_options_cover.py:152 +#: picard/ui/ui_options_cover.py:138 msgid "Amazon" msgstr "Amazon" -#: picard/ui/ui_options_cover.py:153 picard/ui/ui_options_cover.py:155 +#: picard/ui/ui_options_cover.py:139 picard/ui/ui_options_cover.py:141 msgid "Cover Art Archive" -msgstr "" +msgstr "Архив Обложек " -#: picard/ui/ui_options_cover.py:154 +#: picard/ui/ui_options_cover.py:140 msgid "Sites on the whitelist" -msgstr "" +msgstr "Сайт в белый список" -#: picard/ui/ui_options_cover.py:156 +#: picard/ui/ui_options_cover.py:142 msgid "Only use images of the following size:" msgstr "Использовать изображения только следующих типов:" -#: picard/ui/ui_options_cover.py:157 +#: picard/ui/ui_options_cover.py:143 msgid "250 px" msgstr "250 px" -#: picard/ui/ui_options_cover.py:158 +#: picard/ui/ui_options_cover.py:144 msgid "500 px" msgstr "500 px" -#: picard/ui/ui_options_cover.py:159 +#: picard/ui/ui_options_cover.py:145 msgid "Full size" msgstr "Полный размер" -#: picard/ui/ui_options_cover.py:160 +#: picard/ui/ui_options_cover.py:146 msgid "Download only images of the following types:" msgstr "Загружать изображения только следующих типов:" -#: picard/ui/ui_options_cover.py:161 +#: picard/ui/ui_options_cover.py:147 msgid "Download only approved images" msgstr "Загружать только утвержденные изображения." -#: picard/ui/ui_options_cover.py:162 +#: picard/ui/ui_options_cover.py:148 msgid "" "Use the first image type as the filename. This will not change the filename " "of front images." -msgstr "" +msgstr "Используйте образ первого типа в качестве имени файла. Это не изменит Имя файла изображения лицевой стороны." -#: picard/ui/ui_options_fingerprinting.py:83 +#: picard/ui/ui_options_fingerprinting.py:70 msgid "Audio Fingerprinting" msgstr "Звуковые отпечатки" -#: picard/ui/ui_options_fingerprinting.py:84 +#: picard/ui/ui_options_fingerprinting.py:71 msgid "Do not use audio fingerprinting" -msgstr "" +msgstr "Не использовать аудио отпечатки" -#: picard/ui/ui_options_fingerprinting.py:85 +#: picard/ui/ui_options_fingerprinting.py:72 msgid "Use AcoustID" -msgstr "" +msgstr "Использовать AcoustID" -#: picard/ui/ui_options_fingerprinting.py:86 +#: picard/ui/ui_options_fingerprinting.py:73 msgid "AcoustID Settings" -msgstr "" +msgstr "Настройки AcoustID" -#: picard/ui/ui_options_fingerprinting.py:87 +#: picard/ui/ui_options_fingerprinting.py:74 msgid "Fingerprint calculator:" -msgstr "" +msgstr "Калькулятор отпечатка:" -#: picard/ui/ui_options_fingerprinting.py:88 -#: picard/ui/ui_options_interface.py:88 picard/ui/ui_options_renaming.py:138 +#: picard/ui/ui_options_fingerprinting.py:75 +#: picard/ui/ui_options_interface.py:75 picard/ui/ui_options_renaming.py:134 msgid "Browse..." msgstr "Обзор…" -#: picard/ui/ui_options_fingerprinting.py:89 +#: picard/ui/ui_options_fingerprinting.py:76 msgid "Download..." msgstr "Загрузка..." -#: picard/ui/ui_options_fingerprinting.py:90 +#: picard/ui/ui_options_fingerprinting.py:77 msgid "API key:" msgstr "Ключ API:" -#: picard/ui/ui_options_fingerprinting.py:91 +#: picard/ui/ui_options_fingerprinting.py:78 msgid "Get API key..." -msgstr "" +msgstr "Получить API ключ..." -#: picard/ui/ui_options_folksonomy.py:115 picard/ui/options/folksonomy.py:28 +#: picard/ui/ui_options_folksonomy.py:102 picard/ui/options/folksonomy.py:28 msgid "Folksonomy Tags" msgstr "Теги, выбранные сообществом" -#: picard/ui/ui_options_folksonomy.py:117 +#: picard/ui/ui_options_folksonomy.py:104 msgid "Only use my tags" msgstr "Использовать только мои теги" -#: picard/ui/ui_options_folksonomy.py:120 +#: picard/ui/ui_options_folksonomy.py:107 msgid "Maximum number of tags:" msgstr "Максимальное число тегов:" -#: picard/ui/ui_options_general.py:92 +#: picard/ui/ui_options_general.py:88 msgid "MusicBrainz Server" msgstr "Сервер MusicBrainz" -#: picard/ui/ui_options_general.py:93 picard/ui/ui_options_network.py:123 +#: picard/ui/ui_options_general.py:89 picard/ui/ui_options_network.py:110 msgid "Port:" msgstr "Порт:" -#: picard/ui/ui_options_general.py:94 picard/ui/ui_options_network.py:124 +#: picard/ui/ui_options_general.py:90 picard/ui/ui_options_network.py:111 msgid "Server address:" msgstr "Адрес сервера:" -#: picard/ui/ui_options_general.py:95 +#: picard/ui/ui_options_general.py:91 msgid "Account Information" msgstr "Сведения об учётной записи" -#: picard/ui/ui_options_general.py:96 picard/ui/ui_options_network.py:121 -#: picard/ui/ui_passworddialog.py:74 +#: picard/ui/ui_options_general.py:92 picard/ui/ui_options_network.py:108 +#: picard/ui/ui_passworddialog.py:70 msgid "Password:" msgstr "Пароль:" -#: picard/ui/ui_options_general.py:97 picard/ui/ui_options_network.py:122 -#: picard/ui/ui_passworddialog.py:73 +#: picard/ui/ui_options_general.py:93 picard/ui/ui_options_network.py:109 +#: picard/ui/ui_passworddialog.py:69 msgid "Username:" msgstr "Имя пользователя:" -#: picard/ui/ui_options_general.py:98 picard/ui/options/general.py:31 +#: picard/ui/ui_options_general.py:94 picard/ui/options/general.py:31 msgid "General" msgstr "Основные" -#: picard/ui/ui_options_general.py:99 +#: picard/ui/ui_options_general.py:95 msgid "Automatically scan all new files" -msgstr "Автоматически сканировать все добавляемые файлы" +msgstr "Автоматически сканировать новые файлы" -#: picard/ui/ui_options_general.py:100 +#: picard/ui/ui_options_general.py:96 msgid "Ignore MBIDs when loading new files" -msgstr "" +msgstr "Игнорировать MBIDs при загрузке новых файлов" -#: picard/ui/ui_options_interface.py:82 +#: picard/ui/ui_options_interface.py:69 msgid "Miscellaneous" msgstr "Разное" -#: picard/ui/ui_options_interface.py:83 +#: picard/ui/ui_options_interface.py:70 msgid "Show text labels under icons" msgstr "Показывать подписи под значками" -#: picard/ui/ui_options_interface.py:84 +#: picard/ui/ui_options_interface.py:71 msgid "Allow selection of multiple directories" msgstr "Разрешить выбор нескольких каталогов" -#: picard/ui/ui_options_interface.py:85 +#: picard/ui/ui_options_interface.py:72 msgid "Use advanced query syntax" msgstr "Использовать расширенный синтаксис запросов" -#: picard/ui/ui_options_interface.py:86 +#: picard/ui/ui_options_interface.py:73 msgid "Show a quit confirmation dialog for unsaved changes" -msgstr "" +msgstr "Показывать диалоговое окно подтверждения закройте для несохраненные изменения" -#: picard/ui/ui_options_interface.py:87 +#: picard/ui/ui_options_interface.py:74 msgid "Begin browsing in the following directory:" -msgstr "" +msgstr "Открывать в следующем каталоге:" -#: picard/ui/ui_options_interface.py:89 +#: picard/ui/ui_options_interface.py:76 msgid "User interface language:" msgstr "Язык интерфейса:" -#: picard/ui/ui_options_matching.py:86 +#: picard/ui/ui_options_matching.py:73 msgid "Thresholds" msgstr "Ограничения" -#: picard/ui/ui_options_matching.py:87 +#: picard/ui/ui_options_matching.py:74 msgid "Minimal similarity for matching files to tracks:" msgstr "Минимальное сходство для соотнесения файлов и произведений:" -#: picard/ui/ui_options_matching.py:91 +#: picard/ui/ui_options_matching.py:78 msgid "Minimal similarity for file lookups:" msgstr "Минимальное сходство при опознавании файлов:" -#: picard/ui/ui_options_matching.py:92 +#: picard/ui/ui_options_matching.py:79 msgid "Minimal similarity for cluster lookups:" msgstr "Минимальное сходство при опознавании кластеров:" -#: picard/ui/ui_options_metadata.py:114 picard/ui/options/metadata.py:29 +#: picard/ui/ui_options_metadata.py:101 picard/ui/options/metadata.py:29 msgid "Metadata" msgstr "Метаданные" -#: picard/ui/ui_options_metadata.py:115 +#: picard/ui/ui_options_metadata.py:102 msgid "Translate artist names to this locale where possible:" msgstr "При возможности, переводить имена музыкантов на местный язык:" -#: picard/ui/ui_options_metadata.py:116 +#: picard/ui/ui_options_metadata.py:103 msgid "Use standardized artist names" msgstr "Использовать общепризнанные имена для музыкантов" -#: picard/ui/ui_options_metadata.py:117 +#: picard/ui/ui_options_metadata.py:104 msgid "Convert Unicode punctuation characters to ASCII" msgstr "Превращать знаки препинания Юникода в простой вариант ASCII " -#: picard/ui/ui_options_metadata.py:118 +#: picard/ui/ui_options_metadata.py:105 msgid "Use release relationships" msgstr "Использовать взаимосвязи альбомов" -#: picard/ui/ui_options_metadata.py:119 +#: picard/ui/ui_options_metadata.py:106 msgid "Use track relationships" msgstr "Использовать взаимосвязи произведений" -#: picard/ui/ui_options_metadata.py:120 +#: picard/ui/ui_options_metadata.py:107 msgid "Use folksonomy tags as genre" msgstr "Использовать теги, выбранные сообществом, в качестве жанра" -#: picard/ui/ui_options_metadata.py:121 +#: picard/ui/ui_options_metadata.py:108 msgid "Custom Fields" msgstr "Произвольные поля" -#: picard/ui/ui_options_metadata.py:122 +#: picard/ui/ui_options_metadata.py:109 msgid "Various artists:" msgstr "Сборники:" -#: picard/ui/ui_options_metadata.py:123 +#: picard/ui/ui_options_metadata.py:110 msgid "Non-album tracks:" msgstr "Произведения не из альбома:" -#: picard/ui/ui_options_metadata.py:124 picard/ui/ui_options_metadata.py:125 -#: picard/ui/ui_options_renaming.py:147 +#: picard/ui/ui_options_metadata.py:111 picard/ui/ui_options_metadata.py:112 +#: picard/ui/ui_options_renaming.py:143 msgid "Default" msgstr "По умолчанию" -#: picard/ui/ui_options_network.py:120 +#: picard/ui/ui_options_network.py:107 msgid "Web Proxy" msgstr "Прокси" -#: picard/ui/ui_options_network.py:125 +#: picard/ui/ui_options_network.py:112 msgid "Browser Integration" -msgstr "" +msgstr "Интеграция С Броузером" -#: picard/ui/ui_options_network.py:126 +#: picard/ui/ui_options_network.py:113 msgid "Default listening port:" -msgstr "" +msgstr "Порт для прослушивания:" -#: picard/ui/ui_options_network.py:127 +#: picard/ui/ui_options_network.py:114 msgid "Listen only on localhost" -msgstr "" +msgstr "Слушать только на localhost" -#: picard/ui/ui_options_plugins.py:131 picard/ui/options/plugins.py:38 +#: picard/ui/ui_options_plugins.py:127 picard/ui/options/plugins.py:38 msgid "Plugins" msgstr "Плагины" -#: picard/ui/ui_options_plugins.py:132 picard/ui/options/plugins.py:122 +#: picard/ui/ui_options_plugins.py:128 picard/ui/options/plugins.py:122 msgid "Name" msgstr "Имя" -#: picard/ui/ui_options_plugins.py:133 picard/util/tags.py:39 +#: picard/ui/ui_options_plugins.py:129 msgid "Version" msgstr "Версия" -#: picard/ui/ui_options_plugins.py:134 picard/ui/options/plugins.py:125 +#: picard/ui/ui_options_plugins.py:130 picard/ui/options/plugins.py:125 msgid "Author" msgstr "Автор" -#: picard/ui/ui_options_plugins.py:135 +#: picard/ui/ui_options_plugins.py:131 msgid "Install plugin..." msgstr "Установка плагина..." -#: picard/ui/ui_options_plugins.py:136 +#: picard/ui/ui_options_plugins.py:132 msgid "Open plugin folder" msgstr "Открыть папку с плагинами" -#: picard/ui/ui_options_plugins.py:137 +#: picard/ui/ui_options_plugins.py:133 msgid "Download plugins" msgstr "Скачать плагины" -#: picard/ui/ui_options_plugins.py:138 +#: picard/ui/ui_options_plugins.py:134 msgid "Details" msgstr "Подробности" -#: picard/ui/ui_options_ratings.py:53 +#: picard/ui/ui_options_ratings.py:49 msgid "Enable track ratings" msgstr "Включить рейтинги композиций" -#: picard/ui/ui_options_ratings.py:54 +#: picard/ui/ui_options_ratings.py:50 msgid "" "Picard saves the ratings together with an e-mail address identifying the " "user who did the rating. That way different ratings for different users can " @@ -1497,207 +1425,167 @@ msgid "" "your ratings." msgstr "Picard сохраняет рейтинги вместе с адресом эл. почты, который идентифицирует пользователя, который поставил оценку. Этим способом разные рейтинги для разных пользователей могут быть сохранены в файлах. Пожалуйста укажите адрес эл. почты, который вы хотите использовать для сохранения ваших оценок." -#: picard/ui/ui_options_ratings.py:55 +#: picard/ui/ui_options_ratings.py:51 msgid "E-mail:" msgstr "E-mail:" -#: picard/ui/ui_options_ratings.py:56 +#: picard/ui/ui_options_ratings.py:52 msgid "Submit ratings to MusicBrainz" msgstr "Отправить рейтинги в MusicBrainz" -#: picard/ui/ui_options_releases.py:215 +#: picard/ui/ui_options_releases.py:104 msgid "Preferred release types" msgstr "Предпочтительный тип альбома" -#: picard/ui/ui_options_releases.py:217 -msgid "Single" -msgstr "Сингл" - -#: picard/ui/ui_options_releases.py:218 -msgid "EP" -msgstr "ЕР" - -#: picard/ui/ui_options_releases.py:219 -msgid "Compilation" -msgstr "Сборник" - -#: picard/ui/ui_options_releases.py:220 -msgid "Soundtrack" -msgstr "Саундтрек" - -#: picard/ui/ui_options_releases.py:221 -msgid "Spokenword" -msgstr "" - -#: picard/ui/ui_options_releases.py:222 -msgid "Interview" -msgstr "" - -#: picard/ui/ui_options_releases.py:223 -msgid "Audiobook" -msgstr "Аудиокнига" - -#: picard/ui/ui_options_releases.py:224 -msgid "Live" -msgstr "Вживую" - -#: picard/ui/ui_options_releases.py:225 -msgid "Remix" -msgstr "Ремикс" - -#: picard/ui/ui_options_releases.py:227 -msgid "Reset all" -msgstr "Сбросить всё" - -#: picard/ui/ui_options_releases.py:228 +#: picard/ui/ui_options_releases.py:105 msgid "Preferred release countries" msgstr "Предпочтительные страны выпуска альбома" -#: picard/ui/ui_options_releases.py:229 picard/ui/ui_options_releases.py:232 +#: picard/ui/ui_options_releases.py:106 picard/ui/ui_options_releases.py:109 msgid ">" -msgstr "" +msgstr ">" -#: picard/ui/ui_options_releases.py:230 picard/ui/ui_options_releases.py:233 +#: picard/ui/ui_options_releases.py:107 picard/ui/ui_options_releases.py:110 msgid "<" -msgstr "" +msgstr "<" -#: picard/ui/ui_options_releases.py:231 +#: picard/ui/ui_options_releases.py:108 msgid "Preferred release formats" msgstr "Предпочтительные форматы альбомов" -#: picard/ui/ui_options_renaming.py:134 +#: picard/ui/ui_options_renaming.py:130 msgid "Rename files when saving" msgstr "Переименовывать файлы при сохранении" -#: picard/ui/ui_options_renaming.py:135 +#: picard/ui/ui_options_renaming.py:131 msgid "Replace non-ASCII characters" msgstr "Заменять не-ASCII символы" -#: picard/ui/ui_options_renaming.py:136 +#: picard/ui/ui_options_renaming.py:132 msgid "Windows compatibility" msgstr "Совместимость с Windows" -#: picard/ui/ui_options_renaming.py:137 +#: picard/ui/ui_options_renaming.py:133 msgid "Move files to this directory when saving:" msgstr "Перенести файлы в эту директорию во время сохранения:" -#: picard/ui/ui_options_renaming.py:139 +#: picard/ui/ui_options_renaming.py:135 msgid "Delete empty directories" msgstr "Удалять пустые каталоги" -#: picard/ui/ui_options_renaming.py:140 +#: picard/ui/ui_options_renaming.py:136 msgid "Move additional files:" msgstr "Переносить дополнительные файлы:" -#: picard/ui/ui_options_renaming.py:141 +#: picard/ui/ui_options_renaming.py:137 msgid "Name files like this" msgstr "Переименовать файлы согласно шаблону" -#: picard/ui/ui_options_renaming.py:148 +#: picard/ui/ui_options_renaming.py:144 msgid "Examples" msgstr "Примеры" -#: picard/ui/ui_options_script.py:49 +#: picard/ui/ui_options_script.py:45 msgid "Tagger Script" msgstr "Скрипт теггера" -#: picard/ui/ui_options_tags.py:165 +#: picard/ui/ui_options_tags.py:152 msgid "Write tags to files" msgstr "Записать тэги в файлы" -#: picard/ui/ui_options_tags.py:166 +#: picard/ui/ui_options_tags.py:153 msgid "Preserve timestamps of tagged files" -msgstr "" +msgstr "Сохранять временные метки файлов с тегами" -#: picard/ui/ui_options_tags.py:167 +#: picard/ui/ui_options_tags.py:154 msgid "Before Tagging" -msgstr "" +msgstr "До Тегов" -#: picard/ui/ui_options_tags.py:168 +#: picard/ui/ui_options_tags.py:155 msgid "Clear existing tags" msgstr "Очищать существующие теги" -#: picard/ui/ui_options_tags.py:169 +#: picard/ui/ui_options_tags.py:156 msgid "Remove ID3 tags from FLAC files" msgstr "Удалять ID3 теги из FLAC файлов" -#: picard/ui/ui_options_tags.py:170 +#: picard/ui/ui_options_tags.py:157 msgid "Remove APEv2 tags from MP3 files" msgstr "Удалять APEv2 теги из MP3 файлов" -#: picard/ui/ui_options_tags.py:171 +#: picard/ui/ui_options_tags.py:158 msgid "" "Preserve these tags from being cleared or overwritten with MusicBrainz data:" -msgstr "" +msgstr "Сохраните эти тэги от того, чтобы они не были очищенным или переписанный данными с MusicBrainz:" -#: picard/ui/ui_options_tags.py:172 +#: picard/ui/ui_options_tags.py:159 msgid "Tags are separated by commas, and are case-sensitive." msgstr "Ярлыки разделены запятыми и чувствительны к регистру." -#: picard/ui/ui_options_tags.py:173 +#: picard/ui/ui_options_tags.py:160 msgid "Tag Compatibility" -msgstr "" +msgstr "Совместимость Тегов" -#: picard/ui/ui_options_tags.py:174 +#: picard/ui/ui_options_tags.py:161 msgid "ID3v2 Version" -msgstr "" +msgstr "ID3v2 Версии" -#: picard/ui/ui_options_tags.py:175 +#: picard/ui/ui_options_tags.py:162 msgid "2.4" msgstr "2.4" -#: picard/ui/ui_options_tags.py:176 +#: picard/ui/ui_options_tags.py:163 msgid "2.3" msgstr "2.3" -#: picard/ui/ui_options_tags.py:177 +#: picard/ui/ui_options_tags.py:164 msgid "ID3v2 Text Encoding" -msgstr "" +msgstr "ID3v2 Кодировка Текста" -#: picard/ui/ui_options_tags.py:178 +#: picard/ui/ui_options_tags.py:165 msgid "UTF-8" msgstr "UTF-8" -#: picard/ui/ui_options_tags.py:179 +#: picard/ui/ui_options_tags.py:166 msgid "UTF-16" msgstr "UTF-16" -#: picard/ui/ui_options_tags.py:180 +#: picard/ui/ui_options_tags.py:167 msgid "ISO-8859-1" msgstr "ISO-8859-1" -#: picard/ui/ui_options_tags.py:181 +#: picard/ui/ui_options_tags.py:168 msgid "Join multiple ID3v2.3 tags with:" msgstr "Объединять множественные теги ID3v2.3 используя:" -#: picard/ui/ui_options_tags.py:182 +#: picard/ui/ui_options_tags.py:169 msgid "" "

Default is '/' to maintain compatibility with previous" " Picard releases.

New alternatives are ';_' or '_/_' or type your own." "

" msgstr "

По умолчанию, '/' для сохранения совместумости с предыдущими версиями Picard.

Новые варианты ';_' или '_/_' или что то по вашему выбору.

" -#: picard/ui/ui_options_tags.py:183 +#: picard/ui/ui_options_tags.py:170 msgid "Also include ID3v1 tags in the files" msgstr "Также включать в файлы теги ID3v1" -#: picard/ui/ui_passworddialog.py:72 +#: picard/ui/ui_passworddialog.py:68 msgid "Authentication required" msgstr "Требуется аутентификация" -#: picard/ui/ui_passworddialog.py:75 +#: picard/ui/ui_passworddialog.py:71 msgid "Save username and password" msgstr "Сохранить имя пользователя и пароль" -#: picard/ui/ui_tagsfromfilenames.py:54 +#: picard/ui/ui_tagsfromfilenames.py:50 msgid "Convert File Names to Tags" msgstr "Преобразовать имена файлов в теги" -#: picard/ui/ui_tagsfromfilenames.py:55 +#: picard/ui/ui_tagsfromfilenames.py:51 msgid "Replace underscores with spaces" msgstr "Заменять символы подчёркивания на пробелы" -#: picard/ui/ui_tagsfromfilenames.py:56 +#: picard/ui/ui_tagsfromfilenames.py:52 msgid "&Preview" msgstr "&Предварительный просмотр" @@ -1743,7 +1631,7 @@ msgid "" "

Credits
\n" "Copyright © 2004-2014 Robert Kaye, Lukáš Lalinský and others%(translator-credits)s

\n" "

%(picard-doc-url)s

\n" -msgstr "" +msgstr "

MusicBrainz Picard
\nVersion %(version)s

\n

\nPyQt %(pyqt-version)s
\nMutagen %(mutagen-version)s
\nDiscid %(discid-version)s\n

\n

Supported formats
%(formats)s

\n

Please donate
\nThank you for using Picard. Picard relies on the MusicBrainz database, which is operated by the MetaBrainz Foundation with the help of thousands of volunteers. If you like this application please consider donating to the MetaBrainz Foundation to keep the service running.

\n

Donate now!

\n

Credits
\nCopyright © 2004-2014 Robert Kaye, Lukáš Lalinský and others%(translator-credits)s

\n

%(picard-doc-url)s

\n" #: picard/ui/options/advanced.py:31 msgid "Advanced" @@ -1751,15 +1639,19 @@ msgstr "Расширенные" #: picard/ui/options/advanced.py:66 msgid "Regex Error" -msgstr "" +msgstr "Ошибка Regex" -#: picard/ui/options/cover.py:63 +#: picard/ui/options/cover.py:44 +msgid "title" +msgstr "название" + +#: picard/ui/options/cover.py:68 msgid "Cover Art" msgstr "Обложка" #: picard/ui/options/fingerprinting.py:32 msgid "Fingerprinting" -msgstr "" +msgstr "Слепок" #: picard/ui/options/interface.py:35 msgid "User Interface" @@ -1769,11 +1661,11 @@ msgstr "Интерфейс" msgid "System default" msgstr "Установленный в системе" -#: picard/ui/options/interface.py:96 +#: picard/ui/options/interface.py:98 msgid "Language changed" msgstr "Язык изменён" -#: picard/ui/options/interface.py:96 +#: picard/ui/options/interface.py:99 msgid "" "You have changed the interface language. You have to restart Picard in order" " for the change to take effect." @@ -1795,31 +1687,35 @@ msgstr "Файл" msgid "Ratings" msgstr "Рейтинги" -#: picard/ui/options/releases.py:33 +#: picard/ui/options/releases.py:87 msgid "Preferred Releases" msgstr "Предпочтенные альбомы" +#: picard/ui/options/releases.py:121 +msgid "Reset all" +msgstr "Сбросить всё" + #: picard/ui/options/renaming.py:37 msgid "File Naming" -msgstr "" +msgstr "Имя файла" -#: picard/ui/options/renaming.py:184 +#: picard/ui/options/renaming.py:187 msgid "Error" msgstr "Ошибка" -#: picard/ui/options/renaming.py:184 +#: picard/ui/options/renaming.py:187 msgid "The location to move files to must not be empty." msgstr "Местоположение для перемещаемых файлов не может быть пустым." -#: picard/ui/options/renaming.py:194 +#: picard/ui/options/renaming.py:197 msgid "The file naming format must not be empty." msgstr "Формат переименования файла не может быть пустым." -#: picard/ui/options/scripting.py:63 +#: picard/ui/options/scripting.py:99 msgid "Scripting" msgstr "Скрипты" -#: picard/ui/options/scripting.py:95 +#: picard/ui/options/scripting.py:131 msgid "Script Error" msgstr "Ошибка скрипта" @@ -1929,7 +1825,7 @@ msgstr "Порядок сортировки альбома" #: picard/util/tags.py:36 msgid "Composer Sort Order" -msgstr "" +msgstr "Порядок Сортировки Композиторов" #: picard/util/tags.py:37 msgid "ASIN" @@ -1939,201 +1835,201 @@ msgstr "ASIN" msgid "Grouping" msgstr "Группировка" -#: picard/util/tags.py:40 +#: picard/util/tags.py:39 msgid "ISRC" msgstr "ISRC" -#: picard/util/tags.py:41 +#: picard/util/tags.py:40 msgid "Mood" msgstr "Настроение" -#: picard/util/tags.py:42 +#: picard/util/tags.py:41 msgid "BPM" msgstr "уд./мин." -#: picard/util/tags.py:43 +#: picard/util/tags.py:42 msgid "Copyright" msgstr "Copyright" -#: picard/util/tags.py:44 +#: picard/util/tags.py:43 msgid "License" msgstr "Лицензия" -#: picard/util/tags.py:45 +#: picard/util/tags.py:44 msgid "Composer" msgstr "Композитор" -#: picard/util/tags.py:46 +#: picard/util/tags.py:45 msgid "Writer" -msgstr "" +msgstr "Автор" -#: picard/util/tags.py:47 +#: picard/util/tags.py:46 msgid "Conductor" msgstr "Дирижёр" -#: picard/util/tags.py:48 +#: picard/util/tags.py:47 msgid "Lyricist" msgstr "Автор текста" -#: picard/util/tags.py:49 +#: picard/util/tags.py:48 msgid "Arranger" msgstr "Аранжировщик" -#: picard/util/tags.py:50 +#: picard/util/tags.py:49 msgid "Producer" msgstr "Продюсер" -#: picard/util/tags.py:51 +#: picard/util/tags.py:50 msgid "Engineer" msgstr "Звукооператор" -#: picard/util/tags.py:52 +#: picard/util/tags.py:51 msgid "Subtitle" msgstr "Подзаголовок" -#: picard/util/tags.py:53 +#: picard/util/tags.py:52 msgid "Disc Subtitle" msgstr "Подзаголовок диска" -#: picard/util/tags.py:54 +#: picard/util/tags.py:53 msgid "Remixer" msgstr "Ремиксер" -#: picard/util/tags.py:55 +#: picard/util/tags.py:54 msgid "MusicBrainz Recording Id" -msgstr "" +msgstr "Id Записи MusicBrainz" + +#: picard/util/tags.py:55 +msgid "MusicBrainz Track Id" +msgstr "MusicBrainz трек Id" #: picard/util/tags.py:56 -msgid "MusicBrainz Track Id" -msgstr "" - -#: picard/util/tags.py:57 msgid "MusicBrainz Release Id" msgstr "MusicBrainz ID альбома" -#: picard/util/tags.py:58 +#: picard/util/tags.py:57 msgid "MusicBrainz Artist Id" msgstr "MusicBrainz ID исполнителя" -#: picard/util/tags.py:59 +#: picard/util/tags.py:58 msgid "MusicBrainz Release Artist Id" msgstr "MusicBrainz ID главного музыканта альбома" -#: picard/util/tags.py:60 +#: picard/util/tags.py:59 msgid "MusicBrainz Work Id" -msgstr "" +msgstr "Id работы MusicBrainz" -#: picard/util/tags.py:61 +#: picard/util/tags.py:60 msgid "MusicBrainz Release Group Id" msgstr "MusicBrainz ID группы альбомов" -#: picard/util/tags.py:62 +#: picard/util/tags.py:61 msgid "MusicBrainz Disc Id" msgstr "Номер диска в базе MusicBrainz" -#: picard/util/tags.py:63 -msgid "MusicBrainz Sort Name" -msgstr "Название в базе MusicBrainz" - -#: picard/util/tags.py:64 +#: picard/util/tags.py:62 msgid "MusicIP PUID" msgstr "MusicIP PUID" -#: picard/util/tags.py:65 +#: picard/util/tags.py:63 msgid "MusicIP Fingerprint" msgstr "MusicIP Fingerprint" -#: picard/util/tags.py:66 +#: picard/util/tags.py:64 msgid "AcoustID" -msgstr "" +msgstr "AcoustID" -#: picard/util/tags.py:67 +#: picard/util/tags.py:65 msgid "AcoustID Fingerprint" -msgstr "" +msgstr "AcoustID отпечатки" -#: picard/util/tags.py:68 +#: picard/util/tags.py:66 msgid "Disc Id" msgstr "Номер диска" -#: picard/util/tags.py:69 -msgid "Website" -msgstr "Сайт" +#: picard/util/tags.py:67 +msgid "Artist Website" +msgstr "Сайт Исполнителя" -#: picard/util/tags.py:70 +#: picard/util/tags.py:68 msgid "Compilation (iTunes)" msgstr "Сборник (iTunes)" -#: picard/util/tags.py:71 +#: picard/util/tags.py:69 msgid "Comment" msgstr "Комментарий" -#: picard/util/tags.py:72 +#: picard/util/tags.py:70 msgid "Genre" msgstr "Жанр" -#: picard/util/tags.py:73 +#: picard/util/tags.py:71 msgid "Encoded By" msgstr "Кодировано" -#: picard/util/tags.py:74 +#: picard/util/tags.py:72 +msgid "Encoder Settings" +msgstr "Настройки кодировщика" + +#: picard/util/tags.py:73 msgid "Performer" msgstr "Исполнитель" -#: picard/util/tags.py:75 +#: picard/util/tags.py:74 msgid "Release Type" msgstr "Тип альбома" -#: picard/util/tags.py:76 +#: picard/util/tags.py:75 msgid "Release Status" msgstr "Статус альбома" -#: picard/util/tags.py:77 +#: picard/util/tags.py:76 msgid "Release Country" msgstr "Страна выпуска" -#: picard/util/tags.py:78 +#: picard/util/tags.py:77 msgid "Record Label" msgstr "Звукозаписывающий лейбл" -#: picard/util/tags.py:80 +#: picard/util/tags.py:79 msgid "Catalog Number" msgstr "Номер каталога" -#: picard/util/tags.py:82 +#: picard/util/tags.py:80 msgid "DJ-Mixer" msgstr "DJ-Микшер" -#: picard/util/tags.py:83 +#: picard/util/tags.py:81 msgid "Media" msgstr "Медиа" -#: picard/util/tags.py:84 +#: picard/util/tags.py:82 msgid "Lyrics" msgstr "Текст" -#: picard/util/tags.py:85 +#: picard/util/tags.py:83 msgid "Mixer" msgstr "Микшер" -#: picard/util/tags.py:86 +#: picard/util/tags.py:84 msgid "Language" msgstr "Язык" -#: picard/util/tags.py:87 +#: picard/util/tags.py:85 msgid "Script" msgstr "Сценарий" -#: picard/util/tags.py:89 +#: picard/util/tags.py:87 msgid "Rating" msgstr "Оценка" -#: picard/util/tags.py:90 +#: picard/util/tags.py:88 msgid "Artists" msgstr "Исполнители" -#: picard/util/tags.py:91 +#: picard/util/tags.py:89 msgid "Work" -msgstr "" +msgstr "Работа" #: picard/util/webbrowser2.py:90 msgid "Web Browser Error" diff --git a/po/sk.po b/po/sk.po index 79aaae104..2b1ad8b85 100644 --- a/po/sk.po +++ b/po/sk.po @@ -9,8 +9,8 @@ msgid "" msgstr "" "Project-Id-Version: MusicBrainz\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2014-03-20 11:12+0100\n" -"PO-Revision-Date: 2014-03-21 08:44+0000\n" +"POT-Creation-Date: 2014-05-03 17:28+0200\n" +"PO-Revision-Date: 2014-05-04 08:44+0000\n" "Last-Translator: nikki\n" "Language-Team: Slovak (http://www.transifex.com/projects/p/musicbrainz/language/sk/)\n" "MIME-Version: 1.0\n" @@ -20,6 +20,10 @@ msgstr "" "Language: sk\n" "Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n" +#: contrib/plugins/albumartist_website.py:3 +msgid "Album Artist Website" +msgstr "" + #: contrib/plugins/no_release.py:50 msgid "Enable plugin for all releases by default" msgstr "Predvoliť povoliť zásuvný modul pre všetky vydania" @@ -32,63 +36,55 @@ msgstr "Tagy k odstráneniu (oddelené čiarkou)" msgid "Remove specific release information..." msgstr "Odstrániť konkrétne informácie z vydania…" -#: contrib/plugins/open_in_gui.py:32 -msgid "Open Error" -msgstr "Chyba pri otváraní" +#: contrib/plugins/standardise_performers.py:3 +msgid "Standardise Performers" +msgstr "" -#: contrib/plugins/open_in_gui.py:32 -#, python-format -msgid "" -"Error while opening file:\n" -"\n" -"%s" -msgstr "Chyba pri otváraní súboru:\n\n%s" - -#: contrib/plugins/lastfm/ui_options_lastfm.py:117 +#: contrib/plugins/lastfm/ui_options_lastfm.py:99 msgid "Last.fm" msgstr "Služba Last.fm" -#: contrib/plugins/lastfm/ui_options_lastfm.py:118 +#: contrib/plugins/lastfm/ui_options_lastfm.py:100 msgid "Use track tags" msgstr "Použiť tagy skladieb" -#: contrib/plugins/lastfm/ui_options_lastfm.py:119 +#: contrib/plugins/lastfm/ui_options_lastfm.py:101 msgid "Use artist tags" msgstr "Použiť tagy umelca" -#: contrib/plugins/lastfm/ui_options_lastfm.py:120 +#: contrib/plugins/lastfm/ui_options_lastfm.py:102 #: picard/ui/options/tags.py:30 msgid "Tags" msgstr "Tagy" -#: contrib/plugins/lastfm/ui_options_lastfm.py:121 -#: picard/ui/ui_options_folksonomy.py:116 +#: contrib/plugins/lastfm/ui_options_lastfm.py:103 +#: picard/ui/ui_options_folksonomy.py:103 msgid "Ignore tags:" msgstr "Ignorovať tagy:" -#: contrib/plugins/lastfm/ui_options_lastfm.py:122 -#: picard/ui/ui_options_folksonomy.py:121 +#: contrib/plugins/lastfm/ui_options_lastfm.py:104 +#: picard/ui/ui_options_folksonomy.py:108 msgid "Join multiple tags with:" msgstr "Spojiť viac tagov s:" -#: contrib/plugins/lastfm/ui_options_lastfm.py:123 -#: picard/ui/ui_options_folksonomy.py:122 +#: contrib/plugins/lastfm/ui_options_lastfm.py:105 +#: picard/ui/ui_options_folksonomy.py:109 msgid " / " msgstr " / " -#: contrib/plugins/lastfm/ui_options_lastfm.py:124 -#: picard/ui/ui_options_folksonomy.py:123 +#: contrib/plugins/lastfm/ui_options_lastfm.py:106 +#: picard/ui/ui_options_folksonomy.py:110 msgid ", " msgstr ", " -#: contrib/plugins/lastfm/ui_options_lastfm.py:125 -#: picard/ui/ui_options_folksonomy.py:118 +#: contrib/plugins/lastfm/ui_options_lastfm.py:107 +#: picard/ui/ui_options_folksonomy.py:105 msgid "Minimal tag usage:" msgstr "Minimálne využitie tagu pre použitie" -#: contrib/plugins/lastfm/ui_options_lastfm.py:126 -#: picard/ui/ui_options_folksonomy.py:119 picard/ui/ui_options_matching.py:88 -#: picard/ui/ui_options_matching.py:89 picard/ui/ui_options_matching.py:90 +#: contrib/plugins/lastfm/ui_options_lastfm.py:108 +#: picard/ui/ui_options_folksonomy.py:106 picard/ui/ui_options_matching.py:75 +#: picard/ui/ui_options_matching.py:76 picard/ui/ui_options_matching.py:77 msgid " %" msgstr " %" @@ -96,93 +92,152 @@ msgstr " %" msgid "Calculate replay &gain..." msgstr "Spočítať replay &gain…" -#: contrib/plugins/replaygain/__init__.py:66 +#: contrib/plugins/replaygain/__init__.py:67 #, python-format -msgid "Calculating replay gain for \"%s\"..." -msgstr "Počítanie replay gain pre „%s“…" +msgid "Calculating replay gain for \"%(filename)s\"..." +msgstr "" -#: contrib/plugins/replaygain/__init__.py:71 +#: contrib/plugins/replaygain/__init__.py:75 #, python-format -msgid "Replay gain for \"%s\" successfully calculated." -msgstr "Úspešne spočítané replay gain pre „%s.“" +msgid "Replay gain for \"%(filename)s\" successfully calculated." +msgstr "" -#: contrib/plugins/replaygain/__init__.py:73 +#: contrib/plugins/replaygain/__init__.py:80 #, python-format -msgid "Could not calculate replay gain for \"%s\"." -msgstr "Nepodarilo sa spočítať replay gain pre „%s.“" +msgid "Could not calculate replay gain for \"%(filename)s\"." +msgstr "" -#: contrib/plugins/replaygain/__init__.py:76 +#: contrib/plugins/replaygain/__init__.py:85 msgid "Calculate album &gain..." msgstr "Spočítať replay &gain pre album…" -#: contrib/plugins/replaygain/__init__.py:103 -#: contrib/plugins/replaygain/__init__.py:111 +#: contrib/plugins/replaygain/__init__.py:113 +#: contrib/plugins/replaygain/__init__.py:124 #, python-format -msgid "Calculating album gain for \"%s\"..." -msgstr "Počítanie replay gain pre album „%s“…" - -#: contrib/plugins/replaygain/__init__.py:119 -#, python-format -msgid "Album gain for \"%s\" successfully calculated." -msgstr "Úspešne spočítané replay gain pre album „%s.“" - -#: contrib/plugins/replaygain/__init__.py:121 -#, python-format -msgid "Could not calculate album gain for \"%s\"." -msgstr "Nepodarilo sa spočítať replay gain pre album „%s.“" - -#: picard/acoustid.py:102 -#, python-format -msgid "AcoustID lookup network error for '%s'!" +msgid "Calculating album gain for \"%(album)s\"..." msgstr "" -#: picard/acoustid.py:117 +#: contrib/plugins/replaygain/__init__.py:135 #, python-format -msgid "AcoustID lookup failed for '%s'!" +msgid "Album gain for \"%(album)s\" successfully calculated." msgstr "" -#: picard/acoustid.py:128 +#: contrib/plugins/replaygain/__init__.py:140 #, python-format -msgid "Acoustid lookup returned no result for file '%s'" +msgid "Could not calculate album gain for \"%(album)s\"." msgstr "" -#: picard/acoustid.py:132 -#, python-format -msgid "Looking up the fingerprint for file %s..." -msgstr "Hľadám otlačky pre súbor %s" - -#: picard/acoustidmanager.py:78 -msgid "Submitting AcoustIDs..." -msgstr "Odosielajú sa AcoustID údaje..." - -#: picard/acoustidmanager.py:83 -#, python-format -msgid "AcoustID submission failed with error '%s'" +#: contrib/plugins/replaygain/ui_options_replaygain.py:59 +msgid "Replay Gain" msgstr "" -#: picard/acoustidmanager.py:85 +#: contrib/plugins/replaygain/ui_options_replaygain.py:60 +msgid "Path to VorbisGain:" +msgstr "" + +#: contrib/plugins/replaygain/ui_options_replaygain.py:61 +msgid "Path to MP3Gain:" +msgstr "" + +#: contrib/plugins/replaygain/ui_options_replaygain.py:62 +msgid "Path to metaflac:" +msgstr "" + +#: contrib/plugins/replaygain/ui_options_replaygain.py:63 +msgid "Path to wvgain:" +msgstr "" + +#: contrib/plugins/viewvariables/__init__.py:42 +#, python-format +msgid "File: %s" +msgstr "" + +#: contrib/plugins/viewvariables/__init__.py:47 +#, python-format +msgid "Track: %s %s " +msgstr "" + +#: contrib/plugins/viewvariables/__init__.py:49 +msgid "Variables" +msgstr "" + +#: contrib/plugins/viewvariables/__init__.py:69 +msgid "File variables" +msgstr "" + +#: contrib/plugins/viewvariables/__init__.py:74 +msgid "Hidden variables" +msgstr "" + +#: contrib/plugins/viewvariables/__init__.py:79 +msgid "Tag variables" +msgstr "" + +#: contrib/plugins/viewvariables/ui_variables_dialog.py:73 +msgid "Variable" +msgstr "" + +#: contrib/plugins/viewvariables/ui_variables_dialog.py:75 +msgid "Value" +msgstr "" + +#: picard/acoustid.py:109 +#, python-format +msgid "AcoustID lookup network error for '%(filename)s'!" +msgstr "" + +#: picard/acoustid.py:133 +#, python-format +msgid "AcoustID lookup failed for '%(filename)s'!" +msgstr "" + +#: picard/acoustid.py:155 +#, python-format +msgid "AcoustID lookup returned no result for file '%(filename)s'" +msgstr "" + +#: picard/acoustid.py:166 +#, python-format +msgid "Looking up the fingerprint for file '%(filename)s' ..." +msgstr "" + +#: picard/acoustidmanager.py:80 +msgid "Submitting AcoustIDs ..." +msgstr "" + +#: picard/acoustidmanager.py:94 +#, python-format +msgid "AcoustID submission failed with error '%(error)s'" +msgstr "" + +#: picard/acoustidmanager.py:102 msgid "AcoustIDs successfully submitted." msgstr "" -#: picard/album.py:64 picard/cluster.py:234 +#: picard/album.py:65 picard/cluster.py:255 msgid "Unmatched Files" msgstr "Nerozpoznané súbory" -#: picard/album.py:187 +#: picard/album.py:188 #, python-format msgid "[could not load album %s]" msgstr "[nemožem nahrať album %s]" -#: picard/album.py:272 +#: picard/album.py:277 #, python-format -msgid "Album %s loaded" -msgstr "Načítaný album %s" +msgid "Album %(id)s loaded: %(artist)s - %(album)s" +msgstr "" -#: picard/album.py:288 +#: picard/album.py:294 +#, python-format +msgid "Loading album %(id)s ..." +msgstr "" + +#: picard/album.py:303 msgid "[loading album information]" msgstr "[nahrávam informácie o albume]" -#: picard/album.py:463 +#: picard/album.py:478 #, python-format msgid "; %i image" msgid_plural "; %i images" @@ -190,329 +245,157 @@ msgstr[0] "; %i obrázok" msgstr[1] "; %i obrázky" msgstr[2] "; %i obrázkov" -#: picard/cluster.py:150 picard/cluster.py:159 +#: picard/cluster.py:155 picard/cluster.py:168 #, python-format -msgid "No matching releases for cluster %s" -msgstr "Žiadny zodpovedajúci album pre klaster %s" - -#: picard/cluster.py:161 -#, python-format -msgid "Cluster %s identified!" -msgstr "Klaster %s najdený" - -#: picard/cluster.py:168 -#, python-format -msgid "Looking up the metadata for cluster %s..." -msgstr "Vyhľadávam metaúdaje pre klaster %s" - -#: picard/collection.py:60 -#, python-format -msgid "Added %i release to collection \"%s\"" -msgid_plural "Added %i releases to collection \"%s\"" -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" - -#: picard/collection.py:72 -#, python-format -msgid "Removed %i release from collection \"%s\"" -msgid_plural "Removed %i releases from collection \"%s\"" -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" - -#: picard/collection.py:81 -#, python-format -msgid "Error loading collections: %s" +msgid "No matching releases for cluster %(album)s" msgstr "" -#: picard/config_upgrade.py:57 picard/config_upgrade.py:70 +#: picard/cluster.py:174 +#, python-format +msgid "Cluster %(album)s identified!" +msgstr "" + +#: picard/cluster.py:185 +#, python-format +msgid "Looking up the metadata for cluster %(album)s..." +msgstr "" + +#: picard/collection.py:64 +#, python-format +msgid "Added %(count)i release to collection \"%(name)s\"" +msgid_plural "Added %(count)i releases to collection \"%(name)s\"" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" + +#: picard/collection.py:86 +#, python-format +msgid "Removed %(count)i release from collection \"%(name)s\"" +msgid_plural "Removed %(count)i releases from collection \"%(name)s\"" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" + +#: picard/collection.py:100 +#, python-format +msgid "Error loading collections: %(error)s" +msgstr "" + +#: picard/config_upgrade.py:58 picard/config_upgrade.py:71 msgid "Various Artists file naming scheme removal" msgstr "Odstránenie pravidiel pre pomenovanie rôznych umelcov" -#: picard/config_upgrade.py:58 +#: picard/config_upgrade.py:59 msgid "" "The separate file naming scheme for various artists albums has been removed in this version of Picard.\n" "Your file naming scheme has automatically been merged with that of single artist albums." msgstr "" -#: picard/config_upgrade.py:71 +#: picard/config_upgrade.py:72 msgid "" "The separate file naming scheme for various artists albums has been removed in this version of Picard.\n" "You currently do not use this option, but have a separate file naming scheme defined.\n" "Do you want to remove it or merge it with your file naming scheme for single artist albums?" msgstr "" -#: picard/config_upgrade.py:77 +#: picard/config_upgrade.py:78 msgid "Merge" msgstr "Zlúčiť" -#: picard/config_upgrade.py:77 picard/ui/metadatabox.py:254 +#: picard/config_upgrade.py:78 picard/ui/metadatabox.py:254 msgid "Remove" msgstr "Odstrániť" -#: picard/const.py:67 -msgid "CD" -msgstr "CD" - -#: picard/const.py:68 -msgid "CD-R" -msgstr "CD-R" - -#: picard/const.py:69 -msgid "HDCD" -msgstr "HDCD" - -#: picard/const.py:70 -msgid "8cm CD" -msgstr "8cm CD" - -#: picard/const.py:71 -msgid "Vinyl" -msgstr "Vinyl" - -#: picard/const.py:72 -msgid "7\" Vinyl" -msgstr "7\" vinyl" - -#: picard/const.py:73 -msgid "10\" Vinyl" -msgstr "10\" vinyl" - -#: picard/const.py:74 -msgid "12\" Vinyl" -msgstr "12\" vinyl" - -#: picard/const.py:75 -msgid "Digital Media" -msgstr "Digitálne médium" - -#: picard/const.py:76 -msgid "USB Flash Drive" -msgstr "USB kľúč" - -#: picard/const.py:77 -msgid "slotMusic" -msgstr "slotMusic" - -#: picard/const.py:78 -msgid "Cassette" -msgstr "Kazeta" - -#: picard/const.py:79 -msgid "DVD" -msgstr "DVD" - -#: picard/const.py:80 -msgid "DVD-Audio" -msgstr "DVD-Audio" - -#: picard/const.py:81 -msgid "DVD-Video" -msgstr "DVD-Video" - -#: picard/const.py:82 -msgid "SACD" -msgstr "SACD" - -#: picard/const.py:83 -msgid "DualDisc" -msgstr "DualDisc" - -#: picard/const.py:84 -msgid "MiniDisc" -msgstr "MiniDisk" - -#: picard/const.py:85 -msgid "Blu-ray" -msgstr "Blu-ray" - -#: picard/const.py:86 -msgid "HD-DVD" -msgstr "HD-DVD" - -#: picard/const.py:87 -msgid "Videotape" -msgstr "Videokazeta" - -#: picard/const.py:88 -msgid "VHS" -msgstr "VHS" - -#: picard/const.py:89 -msgid "Betamax" -msgstr "Betamax" - #: picard/const.py:90 -msgid "VCD" -msgstr "VCD" - -#: picard/const.py:91 -msgid "SVCD" -msgstr "SVCD" - -#: picard/const.py:92 -msgid "UMD" -msgstr "UMD" - -#: picard/const.py:93 picard/coverartarchive.py:33 -#: picard/ui/ui_options_releases.py:226 -msgid "Other" -msgstr "Iný" - -#: picard/const.py:94 -msgid "LaserDisc" -msgstr "LaserDisk" - -#: picard/const.py:95 -msgid "Cartridge" -msgstr "Cartridge" - -#: picard/const.py:96 -msgid "Reel-to-reel" -msgstr "" - -#: picard/const.py:97 -msgid "DAT" -msgstr "DAT" - -#: picard/const.py:98 -msgid "Wax Cylinder" -msgstr "Voskový valec" - -#: picard/const.py:99 -msgid "Piano Roll" -msgstr "Piano Roll" - -#: picard/const.py:100 -msgid "DCC" -msgstr "DCC" - -#: picard/const.py:115 msgid "Danish" msgstr "Dánčina" -#: picard/const.py:116 +#: picard/const.py:91 msgid "German" msgstr "Nemčina" -#: picard/const.py:118 +#: picard/const.py:93 msgid "English" msgstr "Angličtina" -#: picard/const.py:119 +#: picard/const.py:94 msgid "English (Canada)" msgstr "Angličtina (Kanada)" -#: picard/const.py:120 +#: picard/const.py:95 msgid "English (UK)" msgstr "Angličtina (UK)" -#: picard/const.py:122 +#: picard/const.py:97 msgid "Spanish" msgstr "Španielsky" -#: picard/const.py:123 +#: picard/const.py:98 msgid "Estonian" msgstr "Estónčina" -#: picard/const.py:125 +#: picard/const.py:100 msgid "Finnish" msgstr "Fínština" -#: picard/const.py:127 +#: picard/const.py:102 msgid "French" msgstr "Francúzština" -#: picard/const.py:136 +#: picard/const.py:111 msgid "Italian" msgstr "Taliančina" -#: picard/const.py:143 +#: picard/const.py:118 msgid "Dutch" msgstr "Holandština" -#: picard/const.py:145 +#: picard/const.py:120 msgid "Polish" msgstr "Polsky" -#: picard/const.py:147 +#: picard/const.py:122 msgid "Brazilian Portuguese" msgstr "Brazílska Portugalčina" -#: picard/const.py:154 +#: picard/const.py:129 msgid "Swedish" msgstr "Švédština" -#: picard/coverart.py:84 +#: picard/coverart.py:85 #, python-format -msgid "Coverart %s downloaded" -msgstr "Prebal albumu %s prevzatý" +msgid "Cover art of type '%(type)s' downloaded for %(albumid)s from %(host)s" +msgstr "" -#: picard/coverart.py:240 +#: picard/coverart.py:256 #, python-format -msgid "Downloading http://%s:%i%s" -msgstr "Preberanie http://%s:%i%s" - -#: picard/coverartarchive.py:24 -msgid "Front" -msgstr "" - -#: picard/coverartarchive.py:25 -msgid "Back" -msgstr "" - -#: picard/coverartarchive.py:26 -msgid "Booklet" -msgstr "" - -#: picard/coverartarchive.py:27 -msgid "Medium" -msgstr "" - -#: picard/coverartarchive.py:28 -msgid "Tray" -msgstr "" - -#: picard/coverartarchive.py:29 -msgid "Obi" +msgid "" +"Downloading cover art of type '%(type)s' for %(albumid)s from %(host)s .." msgstr "" #: picard/coverartarchive.py:30 -msgid "Spine" -msgstr "" - -#: picard/coverartarchive.py:31 picard/ui/mainwindow.py:546 -msgid "Track" -msgstr "Skladba" - -#: picard/coverartarchive.py:32 -msgid "Sticker" -msgstr "" - -#: picard/coverartarchive.py:34 msgid "Unknown" msgstr "" -#: picard/file.py:536 +#: picard/file.py:494 #, python-format -msgid "No matching tracks for file %s" -msgstr "Žiadne odpovedajúce skladby pre súbor %s" +msgid "No matching tracks for file '%(filename)s'" +msgstr "" -#: picard/file.py:548 +#: picard/file.py:510 #, python-format -msgid "No matching tracks above the threshold for file %s" -msgstr "Žiadne odpovedajúce skladby nad danou úrovňou pre súbor %s" +msgid "No matching tracks above the threshold for file '%(filename)s'" +msgstr "" -#: picard/file.py:551 +#: picard/file.py:517 #, python-format -msgid "File %s identified!" -msgstr "Súbor %s identifikovaný!" +msgid "File '%(filename)s' identified!" +msgstr "" -#: picard/file.py:567 +#: picard/file.py:537 #, python-format -msgid "Looking up the metadata for file %s..." -msgstr "Vyhľadávam metadata pre súbor %s" +msgid "Looking up the metadata for file %(filename)s ..." +msgstr "" #: picard/releasegroup.py:53 msgid "Tracks" @@ -522,11 +405,11 @@ msgstr "" msgid "Year" msgstr "" -#: picard/releasegroup.py:55 picard/ui/cdlookup.py:34 +#: picard/releasegroup.py:55 picard/ui/cdlookup.py:35 msgid "Country" msgstr "Krajina" -#: picard/releasegroup.py:56 picard/util/tags.py:81 +#: picard/releasegroup.py:56 msgid "Format" msgstr "Formát" @@ -546,16 +429,24 @@ msgstr "" msgid "[no release info]" msgstr "[bez informácií o vydaní]" -#: picard/tagger.py:316 +#: picard/tagger.py:370 #, python-format -msgid "Loading directory %s" -msgstr "Načítanie priečinka %s" +msgid "Adding %(count)d file from '%(directory)s' ..." +msgid_plural "Adding %(count)d files from '%(directory)s' ..." +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" -#: picard/tagger.py:452 +#: picard/tagger.py:512 +#, python-format +msgid "Removing album %(id)s: %(artist)s - %(album)s" +msgstr "" + +#: picard/tagger.py:528 msgid "CD Lookup Error" msgstr "Chyba pri prehľadávaní CD" -#: picard/tagger.py:453 +#: picard/tagger.py:529 #, python-format msgid "" "Error while reading CD:\n" @@ -563,37 +454,36 @@ msgid "" "%s" msgstr "Chyba pri čítaní CD:\n\n%s" -#: picard/ui/cdlookup.py:34 picard/ui/mainwindow.py:544 -#: picard/ui/ui_options_releases.py:216 picard/util/tags.py:21 +#: picard/ui/cdlookup.py:35 picard/ui/mainwindow.py:597 picard/util/tags.py:21 msgid "Album" msgstr "Album" -#: picard/ui/cdlookup.py:34 picard/ui/itemviews.py:96 -#: picard/ui/mainwindow.py:545 picard/util/tags.py:22 +#: picard/ui/cdlookup.py:35 picard/ui/itemviews.py:96 +#: picard/ui/mainwindow.py:598 picard/util/tags.py:22 msgid "Artist" msgstr "Umelec" -#: picard/ui/cdlookup.py:34 picard/util/tags.py:24 +#: picard/ui/cdlookup.py:35 picard/util/tags.py:24 msgid "Date" msgstr "Dátum" -#: picard/ui/cdlookup.py:35 +#: picard/ui/cdlookup.py:36 msgid "Labels" msgstr "" -#: picard/ui/cdlookup.py:35 +#: picard/ui/cdlookup.py:36 msgid "Catalog #s" msgstr "Katalógové č." -#: picard/ui/cdlookup.py:35 picard/util/tags.py:79 +#: picard/ui/cdlookup.py:36 picard/util/tags.py:78 msgid "Barcode" msgstr "Čiarkový kód" -#: picard/ui/collectionmenu.py:31 +#: picard/ui/collectionmenu.py:42 msgid "Refresh List" msgstr "" -#: picard/ui/collectionmenu.py:92 +#: picard/ui/collectionmenu.py:86 #, python-format msgid "%s (%i release)" msgid_plural "%s (%i releases)" @@ -601,7 +491,7 @@ msgstr[0] "" msgstr[1] "" msgstr[2] "" -#: picard/ui/coverartbox.py:142 +#: picard/ui/coverartbox.py:141 msgid "View release on MusicBrainz" msgstr "Zobraziť vydanie v MusicBrainz" @@ -617,59 +507,59 @@ msgstr "Zobraziť &Skryť súbory" msgid "&Set as starting directory" msgstr "" -#: picard/ui/infodialog.py:36 picard/ui/infodialog.py:75 +#: picard/ui/infodialog.py:37 picard/ui/infodialog.py:80 msgid "Info" msgstr "" -#: picard/ui/infodialog.py:80 +#: picard/ui/infodialog.py:85 msgid "Filename:" msgstr "Názov súboru:" -#: picard/ui/infodialog.py:82 +#: picard/ui/infodialog.py:87 msgid "Format:" msgstr "Formát:" -#: picard/ui/infodialog.py:86 +#: picard/ui/infodialog.py:91 msgid "Size:" msgstr "Veľkosť:" -#: picard/ui/infodialog.py:90 +#: picard/ui/infodialog.py:95 msgid "Length:" msgstr "Dĺžka:" -#: picard/ui/infodialog.py:92 +#: picard/ui/infodialog.py:97 msgid "Bitrate:" msgstr "Bitrate:" -#: picard/ui/infodialog.py:94 +#: picard/ui/infodialog.py:99 msgid "Sample rate:" msgstr "Frekvencia vzorku:" -#: picard/ui/infodialog.py:96 +#: picard/ui/infodialog.py:101 msgid "Bits per sample:" msgstr "Bitov na vzorok:" -#: picard/ui/infodialog.py:100 +#: picard/ui/infodialog.py:105 msgid "Mono" msgstr "Mono" -#: picard/ui/infodialog.py:102 +#: picard/ui/infodialog.py:107 msgid "Stereo" msgstr "Stereo" -#: picard/ui/infodialog.py:105 +#: picard/ui/infodialog.py:110 msgid "Channels:" msgstr "Kanály:" -#: picard/ui/infodialog.py:116 +#: picard/ui/infodialog.py:121 msgid "Album Info" msgstr "" -#: picard/ui/infodialog.py:124 +#: picard/ui/infodialog.py:129 msgid "&Errors" msgstr "" -#: picard/ui/infodialog.py:134 picard/ui/ui_infodialog.py:77 +#: picard/ui/infodialog.py:139 picard/ui/ui_infodialog.py:73 msgid "&Info" msgstr "&Informácie" @@ -693,7 +583,7 @@ msgstr "" msgid "Title" msgstr "Názov" -#: picard/ui/itemviews.py:95 picard/util/tags.py:88 +#: picard/ui/itemviews.py:95 picard/util/tags.py:86 msgid "Length" msgstr "Dĺžka" @@ -718,8 +608,8 @@ msgid "Collections" msgstr "" #: picard/ui/itemviews.py:365 -msgid "&Plugins" -msgstr "&Plugíny" +msgid "P&lugins" +msgstr "" #: picard/ui/itemviews.py:541 msgid "file view" @@ -741,12 +631,16 @@ msgstr "" msgid "Contains albums and matched files" msgstr "" -#: picard/ui/logview.py:91 +#: picard/ui/logview.py:109 msgid "Log" msgstr "Log" -#: picard/ui/logview.py:99 -msgid "Status History" +#: picard/ui/logview.py:113 +msgid "Debug mode" +msgstr "" + +#: picard/ui/logview.py:134 +msgid "Activity History" msgstr "" #: picard/ui/mainwindow.py:74 @@ -781,276 +675,309 @@ msgstr "Pripravené" #: picard/ui/mainwindow.py:220 msgid "" -"Picard listens on a port to integrate with your browser and downloads " -"release information when you click the \"Tagger\" buttons on the MusicBrainz" -" website" +"Picard listens on this port to integrate with your browser. When you " +"\"Search\" or \"Open in Browser\" from Picard, clicking the \"Tagger\" " +"button on the web page loads the release into Picard." msgstr "" -#: picard/ui/mainwindow.py:240 +#: picard/ui/mainwindow.py:243 #, python-format msgid " Listening on port %(port)d " msgstr "Počúvam na porte %(port)d" -#: picard/ui/mainwindow.py:263 +#: picard/ui/mainwindow.py:299 msgid "Submission Error" msgstr "Chyba pri odosielaní" -#: picard/ui/mainwindow.py:264 +#: picard/ui/mainwindow.py:300 msgid "" "You need to configure your AcoustID API key before you can submit " "fingerprints." msgstr "Pre odosielaním odtlačkov je treba aby ste nastavili váš AcoustID API kľúč." -#: picard/ui/mainwindow.py:269 +#: picard/ui/mainwindow.py:305 msgid "&Options..." msgstr "&Možnosti" -#: picard/ui/mainwindow.py:273 +#: picard/ui/mainwindow.py:309 msgid "&Cut" msgstr "&Vystrihnúť" -#: picard/ui/mainwindow.py:278 +#: picard/ui/mainwindow.py:314 msgid "&Paste" msgstr "&Vložiť" -#: picard/ui/mainwindow.py:283 +#: picard/ui/mainwindow.py:319 msgid "&Help..." msgstr "&Pomocník..." -#: picard/ui/mainwindow.py:288 +#: picard/ui/mainwindow.py:323 msgid "&About..." msgstr "&O..." -#: picard/ui/mainwindow.py:292 +#: picard/ui/mainwindow.py:327 msgid "&Donate..." msgstr "&Prispieť" -#: picard/ui/mainwindow.py:295 +#: picard/ui/mainwindow.py:330 msgid "&Report a Bug..." msgstr "&Nahlásiť chybu" -#: picard/ui/mainwindow.py:298 +#: picard/ui/mainwindow.py:333 msgid "&Support Forum..." msgstr "&Fórum s podporou" -#: picard/ui/mainwindow.py:301 +#: picard/ui/mainwindow.py:336 msgid "&Add Files..." msgstr "&Pridať Súbory" -#: picard/ui/mainwindow.py:302 +#: picard/ui/mainwindow.py:337 msgid "Add files to the tagger" msgstr "Pridať Súbory do spojenia" -#: picard/ui/mainwindow.py:307 +#: picard/ui/mainwindow.py:342 msgid "A&dd Folder..." msgstr "&Pridať Priečinok..." -#: picard/ui/mainwindow.py:308 +#: picard/ui/mainwindow.py:343 msgid "Add a folder to the tagger" msgstr "Pridať priečinok do pripojenia" -#: picard/ui/mainwindow.py:310 +#: picard/ui/mainwindow.py:345 msgid "Ctrl+D" msgstr "Ctrl+D" -#: picard/ui/mainwindow.py:313 +#: picard/ui/mainwindow.py:348 msgid "&Save" msgstr "&Ulož" -#: picard/ui/mainwindow.py:314 +#: picard/ui/mainwindow.py:349 msgid "Save selected files" msgstr "Ulož vybrané súbory" -#: picard/ui/mainwindow.py:320 +#: picard/ui/mainwindow.py:355 msgid "S&ubmit" msgstr "&Odoslať" -#: picard/ui/mainwindow.py:321 -msgid "Submit fingerprints" -msgstr "Odoslať odtlačky" +#: picard/ui/mainwindow.py:356 +msgid "Submit acoustic fingerprints" +msgstr "" -#: picard/ui/mainwindow.py:325 +#: picard/ui/mainwindow.py:360 msgid "E&xit" msgstr "&Koniec" -#: picard/ui/mainwindow.py:328 +#: picard/ui/mainwindow.py:363 msgid "Ctrl+Q" msgstr "Ctrl+Q" -#: picard/ui/mainwindow.py:331 +#: picard/ui/mainwindow.py:366 msgid "&Remove" msgstr "&Odstráň" -#: picard/ui/mainwindow.py:332 +#: picard/ui/mainwindow.py:367 msgid "Remove selected files/albums" msgstr "Odstráň vybrané súbory/albumy" -#: picard/ui/mainwindow.py:336 +#: picard/ui/mainwindow.py:371 msgid "Lookup in &Browser" msgstr "Vyhľadať v &prehliadači" -#: picard/ui/mainwindow.py:337 +#: picard/ui/mainwindow.py:372 msgid "Lookup selected item on MusicBrainz website" msgstr "Vyhľadá vybranú položku na stránke MusicBrainz" -#: picard/ui/mainwindow.py:341 +#: picard/ui/mainwindow.py:376 msgid "File &Browser" msgstr "Prechádzať &Súbory" -#: picard/ui/mainwindow.py:345 +#: picard/ui/mainwindow.py:380 msgid "Ctrl+B" msgstr "Ctrl+B" -#: picard/ui/mainwindow.py:348 +#: picard/ui/mainwindow.py:383 msgid "&Cover Art" msgstr "&Obrázok Albumu" -#: picard/ui/mainwindow.py:354 picard/ui/mainwindow.py:539 +#: picard/ui/mainwindow.py:389 picard/ui/mainwindow.py:591 msgid "Search" msgstr "Hľadaj" -#: picard/ui/mainwindow.py:357 -msgid "&CD Lookup..." -msgstr "&Vyhľadávanie CD" +#: picard/ui/mainwindow.py:392 +msgid "Lookup &CD..." +msgstr "" -#: picard/ui/mainwindow.py:358 picard/ui/mainwindow.py:359 -msgid "Lookup CD" -msgstr "Vyhľadávanie CD" +#: picard/ui/mainwindow.py:393 +msgid "Lookup the details of the CD in your drive" +msgstr "" -#: picard/ui/mainwindow.py:361 +#: picard/ui/mainwindow.py:395 msgid "Ctrl+K" msgstr "Ctrl+K" -#: picard/ui/mainwindow.py:364 +#: picard/ui/mainwindow.py:398 msgid "&Scan" msgstr "&Prehľadať" -#: picard/ui/mainwindow.py:367 +#: picard/ui/mainwindow.py:401 msgid "Ctrl+Y" msgstr "Ctrl+Y" -#: picard/ui/mainwindow.py:370 +#: picard/ui/mainwindow.py:404 msgid "Cl&uster" msgstr "Kl&aster" -#: picard/ui/mainwindow.py:373 +#: picard/ui/mainwindow.py:407 msgid "Ctrl+U" msgstr "Ctrl+U" -#: picard/ui/mainwindow.py:376 +#: picard/ui/mainwindow.py:410 msgid "&Lookup" msgstr "&Vyhľadať" -#: picard/ui/mainwindow.py:377 picard/ui/mainwindow.py:378 -msgid "Lookup metadata" -msgstr "Vyhľadať metadata" +#: picard/ui/mainwindow.py:411 +msgid "Lookup selected items in MusicBrainz" +msgstr "" -#: picard/ui/mainwindow.py:381 +#: picard/ui/mainwindow.py:416 msgid "Ctrl+L" msgstr "Ctrl+L" -#: picard/ui/mainwindow.py:384 +#: picard/ui/mainwindow.py:419 msgid "&Info..." msgstr "&Informácie" -#: picard/ui/mainwindow.py:387 +#: picard/ui/mainwindow.py:422 msgid "Ctrl+I" msgstr "Ctrl+I" -#: picard/ui/mainwindow.py:390 +#: picard/ui/mainwindow.py:425 msgid "&Refresh" msgstr "&Obnov" -#: picard/ui/mainwindow.py:391 +#: picard/ui/mainwindow.py:426 msgid "Ctrl+R" msgstr "Ctrl+R" -#: picard/ui/mainwindow.py:394 +#: picard/ui/mainwindow.py:429 msgid "&Rename Files" msgstr "&Premenovať Súbory" -#: picard/ui/mainwindow.py:399 +#: picard/ui/mainwindow.py:434 msgid "&Move Files" msgstr "&Premiestniť súbory" -#: picard/ui/mainwindow.py:404 +#: picard/ui/mainwindow.py:439 msgid "Save &Tags" msgstr "Uložiť &Tagy" -#: picard/ui/mainwindow.py:409 +#: picard/ui/mainwindow.py:444 msgid "Tags From &File Names..." msgstr "Tagy z &Nazov Súboru..." -#: picard/ui/mainwindow.py:412 -msgid "View &Log..." -msgstr "Prehliadať &Log" - -#: picard/ui/mainwindow.py:415 -msgid "View Status &History..." +#: picard/ui/mainwindow.py:447 +msgid "&Open My Collections in Browser" msgstr "" -#: picard/ui/mainwindow.py:422 -msgid "&Open..." -msgstr "&Otvoriť…" +#: picard/ui/mainwindow.py:451 +msgid "View Error/Debug &Log" +msgstr "" -#: picard/ui/mainwindow.py:423 -msgid "Open the file" -msgstr "Otvorí súbor" +#: picard/ui/mainwindow.py:454 +msgid "View Activity &History" +msgstr "" -#: picard/ui/mainwindow.py:426 -msgid "Open &Folder..." -msgstr "Otvoriť &priečinok" +#: picard/ui/mainwindow.py:461 +msgid "&Play file" +msgstr "" -#: picard/ui/mainwindow.py:427 -msgid "Open the containing folder" -msgstr "Otvorí priečinok, v ktorom sa nachádza súbor" +#: picard/ui/mainwindow.py:462 +msgid "Play the file in your default media player" +msgstr "" -#: picard/ui/mainwindow.py:448 +#: picard/ui/mainwindow.py:466 +msgid "Open Containing &Folder" +msgstr "" + +#: picard/ui/mainwindow.py:467 +msgid "Open the containing folder in your file explorer" +msgstr "" + +#: picard/ui/mainwindow.py:492 msgid "&File" msgstr "&Súbor" -#: picard/ui/mainwindow.py:456 +#: picard/ui/mainwindow.py:503 msgid "&Edit" msgstr "&Úpravy" -#: picard/ui/mainwindow.py:462 +#: picard/ui/mainwindow.py:509 msgid "&View" msgstr "&Zobraziť" -#: picard/ui/mainwindow.py:470 +#: picard/ui/mainwindow.py:515 msgid "&Options" msgstr "&Nastavenia" -#: picard/ui/mainwindow.py:476 +#: picard/ui/mainwindow.py:521 msgid "&Tools" msgstr "&Možnosti" -#: picard/ui/mainwindow.py:485 picard/ui/util.py:35 +#: picard/ui/mainwindow.py:532 picard/ui/util.py:35 msgid "&Help" msgstr "&Pomocník" -#: picard/ui/mainwindow.py:505 +#: picard/ui/mainwindow.py:553 msgid "Actions" msgstr "" -#: picard/ui/mainwindow.py:608 +#: picard/ui/mainwindow.py:599 +msgid "Track" +msgstr "Skladba" + +#: picard/ui/mainwindow.py:662 msgid "All Supported Formats" msgstr "Všetky Podporované Formáty" -#: picard/ui/mainwindow.py:705 +#: picard/ui/mainwindow.py:695 +#, python-format +msgid "Adding directory: '%(directory)s' ..." +msgstr "" + +#: picard/ui/mainwindow.py:702 +#, python-format +msgid "Adding multiple directories from '%(directory)s' ..." +msgstr "" + +#: picard/ui/mainwindow.py:767 msgid "Configuration Required" msgstr "Je potrebné nastavenie" -#: picard/ui/mainwindow.py:706 +#: picard/ui/mainwindow.py:768 msgid "" "Audio fingerprinting is not yet configured. Would you like to configure it " "now?" msgstr "Tvorba odtlačkov audia nie je zatiaľ nastavená. Chcete ju nastaviť teraz?" -#: picard/ui/mainwindow.py:784 picard/ui/mainwindow.py:791 +#: picard/ui/mainwindow.py:848 #, python-format -msgid " (Error: %s)" -msgstr " (Chyba: %s)" +msgid "%(filename)s (error: %(error)s)" +msgstr "" + +#: picard/ui/mainwindow.py:854 +#, python-format +msgid "%(filename)s" +msgstr "" + +#: picard/ui/mainwindow.py:864 +#, python-format +msgid "%(filename)s (%(similarity)d%%) (error: %(error)s)" +msgstr "" + +#: picard/ui/mainwindow.py:871 +#, python-format +msgid "%(filename)s (%(similarity)d%%)" +msgstr "" #: picard/ui/metadatabox.py:82 #, python-format @@ -1107,387 +1034,387 @@ msgstr[0] "Použiť pôvodnú hodnotu" msgstr[1] "Použiť pôvodné hodnoty" msgstr[2] "Použiť pôvodné hodnoty" -#: picard/ui/passworddialog.py:37 +#: picard/ui/passworddialog.py:40 #, python-format msgid "" "The server %s requires you to login. Please enter your username and " "password." msgstr "Server %s vyžaduje prihlásenie. Vložte meno a heslo." -#: picard/ui/passworddialog.py:75 +#: picard/ui/passworddialog.py:79 #, python-format msgid "" "The proxy %s requires you to login. Please enter your username and password." msgstr "Proxy server %s vyžaduje prihlásenie. Zadajte vaše používateľské meno a heslo." -#: picard/ui/tagsfromfilenames.py:55 picard/ui/tagsfromfilenames.py:100 +#: picard/ui/tagsfromfilenames.py:56 picard/ui/tagsfromfilenames.py:101 msgid "File Name" msgstr "Meno Súboru" -#: picard/ui/ui_cdlookup.py:66 picard/ui/ui_options_cdlookup.py:55 -#: picard/ui/ui_options_cdlookup_select.py:62 picard/ui/options/cdlookup.py:38 +#: picard/ui/ui_cdlookup.py:53 picard/ui/ui_options_cdlookup.py:42 +#: picard/ui/ui_options_cdlookup_select.py:49 picard/ui/options/cdlookup.py:38 msgid "CD Lookup" msgstr "Vyhľadanie CD" -#: picard/ui/ui_cdlookup.py:67 +#: picard/ui/ui_cdlookup.py:54 msgid "The following releases on MusicBrainz match the CD:" msgstr "Nasledujúce vydanie z MusicBrainz nájdené na CD:" -#: picard/ui/ui_cdlookup.py:68 +#: picard/ui/ui_cdlookup.py:55 msgid "OK" msgstr "OK" -#: picard/ui/ui_cdlookup.py:69 +#: picard/ui/ui_cdlookup.py:56 msgid "Lookup manually" msgstr "" -#: picard/ui/ui_cdlookup.py:70 +#: picard/ui/ui_cdlookup.py:57 msgid "Cancel" msgstr "Zrušiť" -#: picard/ui/ui_edittagdialog.py:101 +#: picard/ui/ui_edittagdialog.py:88 msgid "Edit Tag" msgstr "Upraviť tag" -#: picard/ui/ui_edittagdialog.py:102 +#: picard/ui/ui_edittagdialog.py:89 msgid "Edit value" msgstr "Upraviť hodnotu" -#: picard/ui/ui_edittagdialog.py:103 +#: picard/ui/ui_edittagdialog.py:90 msgid "Add value" msgstr "Pridať hodnotu" -#: picard/ui/ui_edittagdialog.py:104 +#: picard/ui/ui_edittagdialog.py:91 msgid "Remove value" msgstr "Odstrániť hodnotu" -#: picard/ui/ui_infodialog.py:78 +#: picard/ui/ui_infodialog.py:74 msgid "A&rtwork" msgstr "O&brázok" -#: picard/ui/ui_infostatus.py:100 +#: picard/ui/ui_infostatus.py:96 msgid "Form" msgstr "" -#: picard/ui/ui_options.py:51 +#: picard/ui/ui_options.py:38 msgid "Options" msgstr "Možnosti" -#: picard/ui/ui_options_advanced.py:46 +#: picard/ui/ui_options_advanced.py:42 msgid "Advanced options" msgstr "" -#: picard/ui/ui_options_advanced.py:47 +#: picard/ui/ui_options_advanced.py:43 msgid "Ignore file paths matching the following regular expression:" msgstr "" -#: picard/ui/ui_options_cdlookup.py:56 +#: picard/ui/ui_options_cdlookup.py:43 msgid "CD-ROM device to use for lookups:" msgstr "CD-ROM jednotka pre identifikáciu:" -#: picard/ui/ui_options_cdlookup_select.py:63 +#: picard/ui/ui_options_cdlookup_select.py:50 msgid "Default CD-ROM drive to use for lookups:" msgstr "Predvolená CD-ROM jednotka pre identifikáciu:" -#: picard/ui/ui_options_cover.py:145 +#: picard/ui/ui_options_cover.py:131 msgid "Location" msgstr "Umiestnenie" -#: picard/ui/ui_options_cover.py:146 +#: picard/ui/ui_options_cover.py:132 msgid "Embed cover images into tags" msgstr "Vložiť obrázky albumov do tagov" -#: picard/ui/ui_options_cover.py:147 +#: picard/ui/ui_options_cover.py:133 msgid "Only embed a front image" msgstr "" -#: picard/ui/ui_options_cover.py:148 +#: picard/ui/ui_options_cover.py:134 msgid "Save cover images as separate files" msgstr "Uložit obrázky albumov ako samostatné súbory" -#: picard/ui/ui_options_cover.py:149 +#: picard/ui/ui_options_cover.py:135 msgid "Use the following file name for images:" msgstr "Pre obrázky použitý názov súboru:" -#: picard/ui/ui_options_cover.py:150 +#: picard/ui/ui_options_cover.py:136 msgid "Overwrite the file if it already exists" msgstr "Prepísať súbor ak existuje" -#: picard/ui/ui_options_cover.py:151 +#: picard/ui/ui_options_cover.py:137 msgid "Coverart Providers" msgstr "Poskytovatelia prebalov" -#: picard/ui/ui_options_cover.py:152 +#: picard/ui/ui_options_cover.py:138 msgid "Amazon" msgstr "Amazon" -#: picard/ui/ui_options_cover.py:153 picard/ui/ui_options_cover.py:155 +#: picard/ui/ui_options_cover.py:139 picard/ui/ui_options_cover.py:141 msgid "Cover Art Archive" msgstr "Cover Art Archive" -#: picard/ui/ui_options_cover.py:154 +#: picard/ui/ui_options_cover.py:140 msgid "Sites on the whitelist" msgstr "Zoznam povolených stránok" -#: picard/ui/ui_options_cover.py:156 +#: picard/ui/ui_options_cover.py:142 msgid "Only use images of the following size:" msgstr "Použiť iba obrázky veľkosti:" -#: picard/ui/ui_options_cover.py:157 +#: picard/ui/ui_options_cover.py:143 msgid "250 px" msgstr "250 px" -#: picard/ui/ui_options_cover.py:158 +#: picard/ui/ui_options_cover.py:144 msgid "500 px" msgstr "500 px" -#: picard/ui/ui_options_cover.py:159 +#: picard/ui/ui_options_cover.py:145 msgid "Full size" msgstr "Pôvodná veľkosť" -#: picard/ui/ui_options_cover.py:160 +#: picard/ui/ui_options_cover.py:146 msgid "Download only images of the following types:" msgstr "Prevziať iba obrázky typov:" -#: picard/ui/ui_options_cover.py:161 +#: picard/ui/ui_options_cover.py:147 msgid "Download only approved images" msgstr "Prevziať iba schválené obrázky" -#: picard/ui/ui_options_cover.py:162 +#: picard/ui/ui_options_cover.py:148 msgid "" "Use the first image type as the filename. This will not change the filename " "of front images." msgstr "Použiť prvý obrázok na názov súboru. Toto nezmení názov súboru predných súborov." -#: picard/ui/ui_options_fingerprinting.py:83 +#: picard/ui/ui_options_fingerprinting.py:70 msgid "Audio Fingerprinting" msgstr "Tvorba odtlačkov zvuku" -#: picard/ui/ui_options_fingerprinting.py:84 +#: picard/ui/ui_options_fingerprinting.py:71 msgid "Do not use audio fingerprinting" msgstr "Nepoužívať tvorbu odtlačkov zvuku" -#: picard/ui/ui_options_fingerprinting.py:85 +#: picard/ui/ui_options_fingerprinting.py:72 msgid "Use AcoustID" msgstr "Použiť AcoustID" -#: picard/ui/ui_options_fingerprinting.py:86 +#: picard/ui/ui_options_fingerprinting.py:73 msgid "AcoustID Settings" msgstr "Nastavenia AcoustID" -#: picard/ui/ui_options_fingerprinting.py:87 +#: picard/ui/ui_options_fingerprinting.py:74 msgid "Fingerprint calculator:" msgstr "Nástroj pre tvorbu odtlačkov" -#: picard/ui/ui_options_fingerprinting.py:88 -#: picard/ui/ui_options_interface.py:88 picard/ui/ui_options_renaming.py:138 +#: picard/ui/ui_options_fingerprinting.py:75 +#: picard/ui/ui_options_interface.py:75 picard/ui/ui_options_renaming.py:134 msgid "Browse..." msgstr "Nájsť..." -#: picard/ui/ui_options_fingerprinting.py:89 +#: picard/ui/ui_options_fingerprinting.py:76 msgid "Download..." msgstr "Prevziať…" -#: picard/ui/ui_options_fingerprinting.py:90 +#: picard/ui/ui_options_fingerprinting.py:77 msgid "API key:" msgstr "Kľúč API:" -#: picard/ui/ui_options_fingerprinting.py:91 +#: picard/ui/ui_options_fingerprinting.py:78 msgid "Get API key..." msgstr "Získať kľúč API…" -#: picard/ui/ui_options_folksonomy.py:115 picard/ui/options/folksonomy.py:28 +#: picard/ui/ui_options_folksonomy.py:102 picard/ui/options/folksonomy.py:28 msgid "Folksonomy Tags" msgstr "Rovnako znejúce tagy" -#: picard/ui/ui_options_folksonomy.py:117 +#: picard/ui/ui_options_folksonomy.py:104 msgid "Only use my tags" msgstr "Použi iba moje tagy" -#: picard/ui/ui_options_folksonomy.py:120 +#: picard/ui/ui_options_folksonomy.py:107 msgid "Maximum number of tags:" msgstr "Maximálny počet tagov:" -#: picard/ui/ui_options_general.py:92 +#: picard/ui/ui_options_general.py:88 msgid "MusicBrainz Server" msgstr "MusicBrainz Server" -#: picard/ui/ui_options_general.py:93 picard/ui/ui_options_network.py:123 +#: picard/ui/ui_options_general.py:89 picard/ui/ui_options_network.py:110 msgid "Port:" msgstr "port:" -#: picard/ui/ui_options_general.py:94 picard/ui/ui_options_network.py:124 +#: picard/ui/ui_options_general.py:90 picard/ui/ui_options_network.py:111 msgid "Server address:" msgstr "Adresa servera:" -#: picard/ui/ui_options_general.py:95 +#: picard/ui/ui_options_general.py:91 msgid "Account Information" msgstr "Informácie o účte" -#: picard/ui/ui_options_general.py:96 picard/ui/ui_options_network.py:121 -#: picard/ui/ui_passworddialog.py:74 +#: picard/ui/ui_options_general.py:92 picard/ui/ui_options_network.py:108 +#: picard/ui/ui_passworddialog.py:70 msgid "Password:" msgstr "Heslo:" -#: picard/ui/ui_options_general.py:97 picard/ui/ui_options_network.py:122 -#: picard/ui/ui_passworddialog.py:73 +#: picard/ui/ui_options_general.py:93 picard/ui/ui_options_network.py:109 +#: picard/ui/ui_passworddialog.py:69 msgid "Username:" msgstr "Prihlasovacie meno:" -#: picard/ui/ui_options_general.py:98 picard/ui/options/general.py:31 +#: picard/ui/ui_options_general.py:94 picard/ui/options/general.py:31 msgid "General" msgstr "Všeobecné" -#: picard/ui/ui_options_general.py:99 +#: picard/ui/ui_options_general.py:95 msgid "Automatically scan all new files" msgstr "Automaticky prehľadaj všetky nové súbory" -#: picard/ui/ui_options_general.py:100 +#: picard/ui/ui_options_general.py:96 msgid "Ignore MBIDs when loading new files" msgstr "Ignorovať MBID pri načítaní nových súborov" -#: picard/ui/ui_options_interface.py:82 +#: picard/ui/ui_options_interface.py:69 msgid "Miscellaneous" msgstr "Rozne" -#: picard/ui/ui_options_interface.py:83 +#: picard/ui/ui_options_interface.py:70 msgid "Show text labels under icons" msgstr "Zobraziť text pod ikonami" -#: picard/ui/ui_options_interface.py:84 +#: picard/ui/ui_options_interface.py:71 msgid "Allow selection of multiple directories" msgstr "Povol výber viacerých adresárov" -#: picard/ui/ui_options_interface.py:85 +#: picard/ui/ui_options_interface.py:72 msgid "Use advanced query syntax" msgstr "Použi pokročilé otázky syntax" -#: picard/ui/ui_options_interface.py:86 +#: picard/ui/ui_options_interface.py:73 msgid "Show a quit confirmation dialog for unsaved changes" msgstr "" -#: picard/ui/ui_options_interface.py:87 +#: picard/ui/ui_options_interface.py:74 msgid "Begin browsing in the following directory:" msgstr "" -#: picard/ui/ui_options_interface.py:89 +#: picard/ui/ui_options_interface.py:76 msgid "User interface language:" msgstr "Jazyk užívateľa:" -#: picard/ui/ui_options_matching.py:86 +#: picard/ui/ui_options_matching.py:73 msgid "Thresholds" msgstr "Úrovne" -#: picard/ui/ui_options_matching.py:87 +#: picard/ui/ui_options_matching.py:74 msgid "Minimal similarity for matching files to tracks:" msgstr "Minimálna podobnosť k identifikacii skladieb" -#: picard/ui/ui_options_matching.py:91 +#: picard/ui/ui_options_matching.py:78 msgid "Minimal similarity for file lookups:" msgstr "Minimálna podobnosť pre vyhľadávanie v súboroch:" -#: picard/ui/ui_options_matching.py:92 +#: picard/ui/ui_options_matching.py:79 msgid "Minimal similarity for cluster lookups:" msgstr "Minimálna podobnosť pre vyhľadávanie klastrov:" -#: picard/ui/ui_options_metadata.py:114 picard/ui/options/metadata.py:29 +#: picard/ui/ui_options_metadata.py:101 picard/ui/options/metadata.py:29 msgid "Metadata" msgstr "Metadata" -#: picard/ui/ui_options_metadata.py:115 +#: picard/ui/ui_options_metadata.py:102 msgid "Translate artist names to this locale where possible:" msgstr "Preložiť mená umelcov do tohto jazyka, ak je to možné:" -#: picard/ui/ui_options_metadata.py:116 +#: picard/ui/ui_options_metadata.py:103 msgid "Use standardized artist names" msgstr "Použiť štandardizované mená umelcov" -#: picard/ui/ui_options_metadata.py:117 +#: picard/ui/ui_options_metadata.py:104 msgid "Convert Unicode punctuation characters to ASCII" msgstr "Previesť interpunkčné znamienka v Unicode do ASCII" -#: picard/ui/ui_options_metadata.py:118 +#: picard/ui/ui_options_metadata.py:105 msgid "Use release relationships" msgstr "Používať vzťahy medzi vydaniami" -#: picard/ui/ui_options_metadata.py:119 +#: picard/ui/ui_options_metadata.py:106 msgid "Use track relationships" msgstr "Používať vzťahy medzi skladbami" -#: picard/ui/ui_options_metadata.py:120 +#: picard/ui/ui_options_metadata.py:107 msgid "Use folksonomy tags as genre" msgstr "Používať susedské tagy ako žáner" -#: picard/ui/ui_options_metadata.py:121 +#: picard/ui/ui_options_metadata.py:108 msgid "Custom Fields" msgstr "Vlastné polia" -#: picard/ui/ui_options_metadata.py:122 +#: picard/ui/ui_options_metadata.py:109 msgid "Various artists:" msgstr "Rôzny umelci:" -#: picard/ui/ui_options_metadata.py:123 +#: picard/ui/ui_options_metadata.py:110 msgid "Non-album tracks:" msgstr "Skladby mimo albumu:" -#: picard/ui/ui_options_metadata.py:124 picard/ui/ui_options_metadata.py:125 -#: picard/ui/ui_options_renaming.py:147 +#: picard/ui/ui_options_metadata.py:111 picard/ui/ui_options_metadata.py:112 +#: picard/ui/ui_options_renaming.py:143 msgid "Default" msgstr "Štandardné" -#: picard/ui/ui_options_network.py:120 +#: picard/ui/ui_options_network.py:107 msgid "Web Proxy" msgstr "Web Proxy" -#: picard/ui/ui_options_network.py:125 +#: picard/ui/ui_options_network.py:112 msgid "Browser Integration" msgstr "" -#: picard/ui/ui_options_network.py:126 +#: picard/ui/ui_options_network.py:113 msgid "Default listening port:" msgstr "" -#: picard/ui/ui_options_network.py:127 +#: picard/ui/ui_options_network.py:114 msgid "Listen only on localhost" msgstr "" -#: picard/ui/ui_options_plugins.py:131 picard/ui/options/plugins.py:38 +#: picard/ui/ui_options_plugins.py:127 picard/ui/options/plugins.py:38 msgid "Plugins" msgstr "Pluginy" -#: picard/ui/ui_options_plugins.py:132 picard/ui/options/plugins.py:122 +#: picard/ui/ui_options_plugins.py:128 picard/ui/options/plugins.py:122 msgid "Name" msgstr "Nazov" -#: picard/ui/ui_options_plugins.py:133 picard/util/tags.py:39 +#: picard/ui/ui_options_plugins.py:129 msgid "Version" msgstr "Verzia" -#: picard/ui/ui_options_plugins.py:134 picard/ui/options/plugins.py:125 +#: picard/ui/ui_options_plugins.py:130 picard/ui/options/plugins.py:125 msgid "Author" msgstr "Autor" -#: picard/ui/ui_options_plugins.py:135 +#: picard/ui/ui_options_plugins.py:131 msgid "Install plugin..." msgstr "Inštalovať zásuvný modul…" -#: picard/ui/ui_options_plugins.py:136 +#: picard/ui/ui_options_plugins.py:132 msgid "Open plugin folder" msgstr "Otvoriť priečinok zásuvného modulu" -#: picard/ui/ui_options_plugins.py:137 +#: picard/ui/ui_options_plugins.py:133 msgid "Download plugins" msgstr "Prevziať zásuvné moduly" -#: picard/ui/ui_options_plugins.py:138 +#: picard/ui/ui_options_plugins.py:134 msgid "Details" msgstr "Podrobnosti" -#: picard/ui/ui_options_ratings.py:53 +#: picard/ui/ui_options_ratings.py:49 msgid "Enable track ratings" msgstr "Povoľ hodnotenie skladieb" -#: picard/ui/ui_options_ratings.py:54 +#: picard/ui/ui_options_ratings.py:50 msgid "" "Picard saves the ratings together with an e-mail address identifying the " "user who did the rating. That way different ratings for different users can " @@ -1495,207 +1422,167 @@ msgid "" "your ratings." msgstr "Picard ukladá hodnotenia spolu s e-mailovou adresou identifikujúcou používateľa, ktorý zadal hodnotenie. Týmto spôsobom môže byť do súborov uložených viacero hodnotení od viacerých používateľov. Zadajte e-mailovú adresu, ktorú chcete použiť pre vaše hodnotenia." -#: picard/ui/ui_options_ratings.py:55 +#: picard/ui/ui_options_ratings.py:51 msgid "E-mail:" msgstr "E-mail:" -#: picard/ui/ui_options_ratings.py:56 +#: picard/ui/ui_options_ratings.py:52 msgid "Submit ratings to MusicBrainz" msgstr "Odoslať hodnotenia do MusicBrainz" -#: picard/ui/ui_options_releases.py:215 +#: picard/ui/ui_options_releases.py:104 msgid "Preferred release types" msgstr "Uprednostňované typy vydaní" -#: picard/ui/ui_options_releases.py:217 -msgid "Single" -msgstr "Singel" - -#: picard/ui/ui_options_releases.py:218 -msgid "EP" -msgstr "EP" - -#: picard/ui/ui_options_releases.py:219 -msgid "Compilation" -msgstr "Kompilácia" - -#: picard/ui/ui_options_releases.py:220 -msgid "Soundtrack" -msgstr "Zvuková stopa filmu" - -#: picard/ui/ui_options_releases.py:221 -msgid "Spokenword" -msgstr "Hovorené slovo" - -#: picard/ui/ui_options_releases.py:222 -msgid "Interview" -msgstr "Rozhovor" - -#: picard/ui/ui_options_releases.py:223 -msgid "Audiobook" -msgstr "Audiokniha" - -#: picard/ui/ui_options_releases.py:224 -msgid "Live" -msgstr "" - -#: picard/ui/ui_options_releases.py:225 -msgid "Remix" -msgstr "Remix" - -#: picard/ui/ui_options_releases.py:227 -msgid "Reset all" -msgstr "" - -#: picard/ui/ui_options_releases.py:228 +#: picard/ui/ui_options_releases.py:105 msgid "Preferred release countries" msgstr "Uprednostňované krajiny vydaní" -#: picard/ui/ui_options_releases.py:229 picard/ui/ui_options_releases.py:232 +#: picard/ui/ui_options_releases.py:106 picard/ui/ui_options_releases.py:109 msgid ">" msgstr ">" -#: picard/ui/ui_options_releases.py:230 picard/ui/ui_options_releases.py:233 +#: picard/ui/ui_options_releases.py:107 picard/ui/ui_options_releases.py:110 msgid "<" msgstr "<" -#: picard/ui/ui_options_releases.py:231 +#: picard/ui/ui_options_releases.py:108 msgid "Preferred release formats" msgstr "Uprednostňované formáty vydaní" -#: picard/ui/ui_options_renaming.py:134 +#: picard/ui/ui_options_renaming.py:130 msgid "Rename files when saving" msgstr "Premenovať subory pri uložení" -#: picard/ui/ui_options_renaming.py:135 +#: picard/ui/ui_options_renaming.py:131 msgid "Replace non-ASCII characters" msgstr "Nahradiť nie-ASCII znaky" -#: picard/ui/ui_options_renaming.py:136 +#: picard/ui/ui_options_renaming.py:132 msgid "Windows compatibility" msgstr "" -#: picard/ui/ui_options_renaming.py:137 +#: picard/ui/ui_options_renaming.py:133 msgid "Move files to this directory when saving:" msgstr "Premiestniť súbory do tohoto adresára k uloženiu:" -#: picard/ui/ui_options_renaming.py:139 +#: picard/ui/ui_options_renaming.py:135 msgid "Delete empty directories" msgstr "Odstrániť prázdne adresáre" -#: picard/ui/ui_options_renaming.py:140 +#: picard/ui/ui_options_renaming.py:136 msgid "Move additional files:" msgstr "Presunúť dodatočné súbory:" -#: picard/ui/ui_options_renaming.py:141 +#: picard/ui/ui_options_renaming.py:137 msgid "Name files like this" msgstr "Pomenovať súbory takto" -#: picard/ui/ui_options_renaming.py:148 +#: picard/ui/ui_options_renaming.py:144 msgid "Examples" msgstr "Príklady" -#: picard/ui/ui_options_script.py:49 +#: picard/ui/ui_options_script.py:45 msgid "Tagger Script" msgstr "Tagger Skript" -#: picard/ui/ui_options_tags.py:165 +#: picard/ui/ui_options_tags.py:152 msgid "Write tags to files" msgstr "Zapisovať tagy do súborov" -#: picard/ui/ui_options_tags.py:166 +#: picard/ui/ui_options_tags.py:153 msgid "Preserve timestamps of tagged files" msgstr "Ponechať časové značky tagovaných súborov" -#: picard/ui/ui_options_tags.py:167 +#: picard/ui/ui_options_tags.py:154 msgid "Before Tagging" msgstr "" -#: picard/ui/ui_options_tags.py:168 +#: picard/ui/ui_options_tags.py:155 msgid "Clear existing tags" msgstr "Vyčisti jestvujúce tagy" -#: picard/ui/ui_options_tags.py:169 +#: picard/ui/ui_options_tags.py:156 msgid "Remove ID3 tags from FLAC files" msgstr "Odstráň ID3 Tagy z FLAC súborov" -#: picard/ui/ui_options_tags.py:170 +#: picard/ui/ui_options_tags.py:157 msgid "Remove APEv2 tags from MP3 files" msgstr "Odstráň APEv2 Tagy z MP3 súborov" -#: picard/ui/ui_options_tags.py:171 +#: picard/ui/ui_options_tags.py:158 msgid "" "Preserve these tags from being cleared or overwritten with MusicBrainz data:" msgstr "Neodstraňovať a neprepisovať tieto tagy s údajmi z MusicBrainz:" -#: picard/ui/ui_options_tags.py:172 +#: picard/ui/ui_options_tags.py:159 msgid "Tags are separated by commas, and are case-sensitive." msgstr "" -#: picard/ui/ui_options_tags.py:173 +#: picard/ui/ui_options_tags.py:160 msgid "Tag Compatibility" msgstr "" -#: picard/ui/ui_options_tags.py:174 +#: picard/ui/ui_options_tags.py:161 msgid "ID3v2 Version" msgstr "" -#: picard/ui/ui_options_tags.py:175 +#: picard/ui/ui_options_tags.py:162 msgid "2.4" msgstr "2.4" -#: picard/ui/ui_options_tags.py:176 +#: picard/ui/ui_options_tags.py:163 msgid "2.3" msgstr "2.3" -#: picard/ui/ui_options_tags.py:177 +#: picard/ui/ui_options_tags.py:164 msgid "ID3v2 Text Encoding" msgstr "" -#: picard/ui/ui_options_tags.py:178 +#: picard/ui/ui_options_tags.py:165 msgid "UTF-8" msgstr "UTF-8" -#: picard/ui/ui_options_tags.py:179 +#: picard/ui/ui_options_tags.py:166 msgid "UTF-16" msgstr "UTF-16" -#: picard/ui/ui_options_tags.py:180 +#: picard/ui/ui_options_tags.py:167 msgid "ISO-8859-1" msgstr "Copy text \t ISO-8859-1" -#: picard/ui/ui_options_tags.py:181 +#: picard/ui/ui_options_tags.py:168 msgid "Join multiple ID3v2.3 tags with:" msgstr "" -#: picard/ui/ui_options_tags.py:182 +#: picard/ui/ui_options_tags.py:169 msgid "" "

Default is '/' to maintain compatibility with previous" " Picard releases.

New alternatives are ';_' or '_/_' or type your own." "

" msgstr "" -#: picard/ui/ui_options_tags.py:183 +#: picard/ui/ui_options_tags.py:170 msgid "Also include ID3v1 tags in the files" msgstr "Obsahuje ID3v2 tagy v súboroch" -#: picard/ui/ui_passworddialog.py:72 +#: picard/ui/ui_passworddialog.py:68 msgid "Authentication required" msgstr "Potrebné overenie" -#: picard/ui/ui_passworddialog.py:75 +#: picard/ui/ui_passworddialog.py:71 msgid "Save username and password" msgstr "Ulož meno a heslo" -#: picard/ui/ui_tagsfromfilenames.py:54 +#: picard/ui/ui_tagsfromfilenames.py:50 msgid "Convert File Names to Tags" msgstr "Konvertuj názvy súborov do Tagov" -#: picard/ui/ui_tagsfromfilenames.py:55 +#: picard/ui/ui_tagsfromfilenames.py:51 msgid "Replace underscores with spaces" msgstr "Nahradiť podtržník medzerami" -#: picard/ui/ui_tagsfromfilenames.py:56 +#: picard/ui/ui_tagsfromfilenames.py:52 msgid "&Preview" msgstr "&Ukážka" @@ -1751,7 +1638,11 @@ msgstr "Rozšírené" msgid "Regex Error" msgstr "" -#: picard/ui/options/cover.py:63 +#: picard/ui/options/cover.py:44 +msgid "title" +msgstr "" + +#: picard/ui/options/cover.py:68 msgid "Cover Art" msgstr "Obrázok Albumu" @@ -1767,11 +1658,11 @@ msgstr "Uživateľské nastavenie" msgid "System default" msgstr "Jazyk systému" -#: picard/ui/options/interface.py:96 +#: picard/ui/options/interface.py:98 msgid "Language changed" msgstr "Zmena jazyka" -#: picard/ui/options/interface.py:96 +#: picard/ui/options/interface.py:99 msgid "" "You have changed the interface language. You have to restart Picard in order" " for the change to take effect." @@ -1793,31 +1684,35 @@ msgstr "Súbor" msgid "Ratings" msgstr "Hodnotenie" -#: picard/ui/options/releases.py:33 +#: picard/ui/options/releases.py:87 msgid "Preferred Releases" msgstr "Uprednostňované vydania" +#: picard/ui/options/releases.py:121 +msgid "Reset all" +msgstr "" + #: picard/ui/options/renaming.py:37 msgid "File Naming" msgstr "" -#: picard/ui/options/renaming.py:184 +#: picard/ui/options/renaming.py:187 msgid "Error" msgstr "Chyba" -#: picard/ui/options/renaming.py:184 +#: picard/ui/options/renaming.py:187 msgid "The location to move files to must not be empty." msgstr "Umiestenie presunu souborov nesmie byť prázdne." -#: picard/ui/options/renaming.py:194 +#: picard/ui/options/renaming.py:197 msgid "The file naming format must not be empty." msgstr "Súbor pomenovaného formátu nesmie byť prázdny" -#: picard/ui/options/scripting.py:63 +#: picard/ui/options/scripting.py:99 msgid "Scripting" msgstr "Skriptovanie" -#: picard/ui/options/scripting.py:95 +#: picard/ui/options/scripting.py:131 msgid "Script Error" msgstr "Chyba skriptu" @@ -1937,199 +1832,199 @@ msgstr "ASIN" msgid "Grouping" msgstr "Skupina" -#: picard/util/tags.py:40 +#: picard/util/tags.py:39 msgid "ISRC" msgstr "ISRC" -#: picard/util/tags.py:41 +#: picard/util/tags.py:40 msgid "Mood" msgstr "spǒsob" -#: picard/util/tags.py:42 +#: picard/util/tags.py:41 msgid "BPM" msgstr "BPM" -#: picard/util/tags.py:43 +#: picard/util/tags.py:42 msgid "Copyright" msgstr "Copyright" -#: picard/util/tags.py:44 +#: picard/util/tags.py:43 msgid "License" msgstr "Licencia" -#: picard/util/tags.py:45 +#: picard/util/tags.py:44 msgid "Composer" msgstr "Skladateľ" -#: picard/util/tags.py:46 +#: picard/util/tags.py:45 msgid "Writer" msgstr "" -#: picard/util/tags.py:47 +#: picard/util/tags.py:46 msgid "Conductor" msgstr "Dirigent" -#: picard/util/tags.py:48 +#: picard/util/tags.py:47 msgid "Lyricist" msgstr "Textár" -#: picard/util/tags.py:49 +#: picard/util/tags.py:48 msgid "Arranger" msgstr "Aranžér" -#: picard/util/tags.py:50 +#: picard/util/tags.py:49 msgid "Producer" msgstr "Producent" -#: picard/util/tags.py:51 +#: picard/util/tags.py:50 msgid "Engineer" msgstr "Zvukár" -#: picard/util/tags.py:52 +#: picard/util/tags.py:51 msgid "Subtitle" msgstr "Titullky" -#: picard/util/tags.py:53 +#: picard/util/tags.py:52 msgid "Disc Subtitle" msgstr "Podtitul disku" -#: picard/util/tags.py:54 +#: picard/util/tags.py:53 msgid "Remixer" msgstr "Remix" -#: picard/util/tags.py:55 +#: picard/util/tags.py:54 msgid "MusicBrainz Recording Id" msgstr "" -#: picard/util/tags.py:56 +#: picard/util/tags.py:55 msgid "MusicBrainz Track Id" msgstr "" -#: picard/util/tags.py:57 +#: picard/util/tags.py:56 msgid "MusicBrainz Release Id" msgstr "MusicBrainz Id vydania" -#: picard/util/tags.py:58 +#: picard/util/tags.py:57 msgid "MusicBrainz Artist Id" msgstr "MusicBrainz Id umelca" -#: picard/util/tags.py:59 +#: picard/util/tags.py:58 msgid "MusicBrainz Release Artist Id" msgstr "MusicBrainz Id vydania umelca" -#: picard/util/tags.py:60 +#: picard/util/tags.py:59 msgid "MusicBrainz Work Id" msgstr "" -#: picard/util/tags.py:61 +#: picard/util/tags.py:60 msgid "MusicBrainz Release Group Id" msgstr "" -#: picard/util/tags.py:62 +#: picard/util/tags.py:61 msgid "MusicBrainz Disc Id" msgstr "MusicBrainz Disc Id" -#: picard/util/tags.py:63 -msgid "MusicBrainz Sort Name" -msgstr "MusicBrainz Zoradenie" - -#: picard/util/tags.py:64 +#: picard/util/tags.py:62 msgid "MusicIP PUID" msgstr "MusicIP PUID" -#: picard/util/tags.py:65 +#: picard/util/tags.py:63 msgid "MusicIP Fingerprint" msgstr "Nálepka MusicIP" -#: picard/util/tags.py:66 +#: picard/util/tags.py:64 msgid "AcoustID" msgstr "AcoustID" -#: picard/util/tags.py:67 +#: picard/util/tags.py:65 msgid "AcoustID Fingerprint" msgstr "" -#: picard/util/tags.py:68 +#: picard/util/tags.py:66 msgid "Disc Id" msgstr "Disk ID" -#: picard/util/tags.py:69 -msgid "Website" -msgstr "Webová stránka" +#: picard/util/tags.py:67 +msgid "Artist Website" +msgstr "" -#: picard/util/tags.py:70 +#: picard/util/tags.py:68 msgid "Compilation (iTunes)" msgstr "" -#: picard/util/tags.py:71 +#: picard/util/tags.py:69 msgid "Comment" msgstr "Komentár" -#: picard/util/tags.py:72 +#: picard/util/tags.py:70 msgid "Genre" msgstr "Žáner" -#: picard/util/tags.py:73 +#: picard/util/tags.py:71 msgid "Encoded By" msgstr "Kodované" -#: picard/util/tags.py:74 +#: picard/util/tags.py:72 +msgid "Encoder Settings" +msgstr "" + +#: picard/util/tags.py:73 msgid "Performer" msgstr "Interpret" -#: picard/util/tags.py:75 +#: picard/util/tags.py:74 msgid "Release Type" msgstr "Typ vydania" -#: picard/util/tags.py:76 +#: picard/util/tags.py:75 msgid "Release Status" msgstr "Stav vydania" -#: picard/util/tags.py:77 +#: picard/util/tags.py:76 msgid "Release Country" msgstr "Krajina vydania" -#: picard/util/tags.py:78 +#: picard/util/tags.py:77 msgid "Record Label" msgstr "Nahrávacia spoločnosť" -#: picard/util/tags.py:80 +#: picard/util/tags.py:79 msgid "Catalog Number" msgstr "Číslo Katalógu" -#: picard/util/tags.py:82 +#: picard/util/tags.py:80 msgid "DJ-Mixer" msgstr "DJ-mixer" -#: picard/util/tags.py:83 +#: picard/util/tags.py:81 msgid "Media" msgstr "Médium" -#: picard/util/tags.py:84 +#: picard/util/tags.py:82 msgid "Lyrics" msgstr "Text Piesne" -#: picard/util/tags.py:85 +#: picard/util/tags.py:83 msgid "Mixer" msgstr "Mixer" -#: picard/util/tags.py:86 +#: picard/util/tags.py:84 msgid "Language" msgstr "Jazyk" -#: picard/util/tags.py:87 +#: picard/util/tags.py:85 msgid "Script" msgstr "Skript" -#: picard/util/tags.py:89 +#: picard/util/tags.py:87 msgid "Rating" msgstr "Hodnotenie" -#: picard/util/tags.py:90 +#: picard/util/tags.py:88 msgid "Artists" msgstr "" -#: picard/util/tags.py:91 +#: picard/util/tags.py:89 msgid "Work" msgstr "" diff --git a/po/sl.po b/po/sl.po index 851b4416f..213568359 100644 --- a/po/sl.po +++ b/po/sl.po @@ -9,8 +9,8 @@ msgid "" msgstr "" "Project-Id-Version: MusicBrainz\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2014-03-20 11:12+0100\n" -"PO-Revision-Date: 2014-03-21 08:44+0000\n" +"POT-Creation-Date: 2014-05-03 17:28+0200\n" +"PO-Revision-Date: 2014-05-04 08:44+0000\n" "Last-Translator: nikki\n" "Language-Team: Slovenian (http://www.transifex.com/projects/p/musicbrainz/language/sl/)\n" "MIME-Version: 1.0\n" @@ -20,6 +20,10 @@ msgstr "" "Language: sl\n" "Plural-Forms: nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n%100==4 ? 2 : 3);\n" +#: contrib/plugins/albumartist_website.py:3 +msgid "Album Artist Website" +msgstr "" + #: contrib/plugins/no_release.py:50 msgid "Enable plugin for all releases by default" msgstr "" @@ -32,63 +36,55 @@ msgstr "" msgid "Remove specific release information..." msgstr "" -#: contrib/plugins/open_in_gui.py:32 -msgid "Open Error" +#: contrib/plugins/standardise_performers.py:3 +msgid "Standardise Performers" msgstr "" -#: contrib/plugins/open_in_gui.py:32 -#, python-format -msgid "" -"Error while opening file:\n" -"\n" -"%s" -msgstr "" - -#: contrib/plugins/lastfm/ui_options_lastfm.py:117 +#: contrib/plugins/lastfm/ui_options_lastfm.py:99 msgid "Last.fm" msgstr "" -#: contrib/plugins/lastfm/ui_options_lastfm.py:118 +#: contrib/plugins/lastfm/ui_options_lastfm.py:100 msgid "Use track tags" msgstr "" -#: contrib/plugins/lastfm/ui_options_lastfm.py:119 +#: contrib/plugins/lastfm/ui_options_lastfm.py:101 msgid "Use artist tags" msgstr "" -#: contrib/plugins/lastfm/ui_options_lastfm.py:120 +#: contrib/plugins/lastfm/ui_options_lastfm.py:102 #: picard/ui/options/tags.py:30 msgid "Tags" msgstr "Oznake" -#: contrib/plugins/lastfm/ui_options_lastfm.py:121 -#: picard/ui/ui_options_folksonomy.py:116 +#: contrib/plugins/lastfm/ui_options_lastfm.py:103 +#: picard/ui/ui_options_folksonomy.py:103 msgid "Ignore tags:" msgstr "Ignoriraj oznake:" -#: contrib/plugins/lastfm/ui_options_lastfm.py:122 -#: picard/ui/ui_options_folksonomy.py:121 +#: contrib/plugins/lastfm/ui_options_lastfm.py:104 +#: picard/ui/ui_options_folksonomy.py:108 msgid "Join multiple tags with:" msgstr "Združi večdelne oznake z:" -#: contrib/plugins/lastfm/ui_options_lastfm.py:123 -#: picard/ui/ui_options_folksonomy.py:122 +#: contrib/plugins/lastfm/ui_options_lastfm.py:105 +#: picard/ui/ui_options_folksonomy.py:109 msgid " / " msgstr " / " -#: contrib/plugins/lastfm/ui_options_lastfm.py:124 -#: picard/ui/ui_options_folksonomy.py:123 +#: contrib/plugins/lastfm/ui_options_lastfm.py:106 +#: picard/ui/ui_options_folksonomy.py:110 msgid ", " msgstr ", " -#: contrib/plugins/lastfm/ui_options_lastfm.py:125 -#: picard/ui/ui_options_folksonomy.py:118 +#: contrib/plugins/lastfm/ui_options_lastfm.py:107 +#: picard/ui/ui_options_folksonomy.py:105 msgid "Minimal tag usage:" msgstr "Minimalna raba oznak:" -#: contrib/plugins/lastfm/ui_options_lastfm.py:126 -#: picard/ui/ui_options_folksonomy.py:119 picard/ui/ui_options_matching.py:88 -#: picard/ui/ui_options_matching.py:89 picard/ui/ui_options_matching.py:90 +#: contrib/plugins/lastfm/ui_options_lastfm.py:108 +#: picard/ui/ui_options_folksonomy.py:106 picard/ui/ui_options_matching.py:75 +#: picard/ui/ui_options_matching.py:76 picard/ui/ui_options_matching.py:77 msgid " %" msgstr " %" @@ -96,93 +92,152 @@ msgstr " %" msgid "Calculate replay &gain..." msgstr "" -#: contrib/plugins/replaygain/__init__.py:66 +#: contrib/plugins/replaygain/__init__.py:67 #, python-format -msgid "Calculating replay gain for \"%s\"..." +msgid "Calculating replay gain for \"%(filename)s\"..." msgstr "" -#: contrib/plugins/replaygain/__init__.py:71 +#: contrib/plugins/replaygain/__init__.py:75 #, python-format -msgid "Replay gain for \"%s\" successfully calculated." +msgid "Replay gain for \"%(filename)s\" successfully calculated." msgstr "" -#: contrib/plugins/replaygain/__init__.py:73 +#: contrib/plugins/replaygain/__init__.py:80 #, python-format -msgid "Could not calculate replay gain for \"%s\"." +msgid "Could not calculate replay gain for \"%(filename)s\"." msgstr "" -#: contrib/plugins/replaygain/__init__.py:76 +#: contrib/plugins/replaygain/__init__.py:85 msgid "Calculate album &gain..." msgstr "" -#: contrib/plugins/replaygain/__init__.py:103 -#: contrib/plugins/replaygain/__init__.py:111 +#: contrib/plugins/replaygain/__init__.py:113 +#: contrib/plugins/replaygain/__init__.py:124 #, python-format -msgid "Calculating album gain for \"%s\"..." +msgid "Calculating album gain for \"%(album)s\"..." msgstr "" -#: contrib/plugins/replaygain/__init__.py:119 +#: contrib/plugins/replaygain/__init__.py:135 #, python-format -msgid "Album gain for \"%s\" successfully calculated." +msgid "Album gain for \"%(album)s\" successfully calculated." msgstr "" -#: contrib/plugins/replaygain/__init__.py:121 +#: contrib/plugins/replaygain/__init__.py:140 #, python-format -msgid "Could not calculate album gain for \"%s\"." +msgid "Could not calculate album gain for \"%(album)s\"." msgstr "" -#: picard/acoustid.py:102 -#, python-format -msgid "AcoustID lookup network error for '%s'!" +#: contrib/plugins/replaygain/ui_options_replaygain.py:59 +msgid "Replay Gain" msgstr "" -#: picard/acoustid.py:117 -#, python-format -msgid "AcoustID lookup failed for '%s'!" +#: contrib/plugins/replaygain/ui_options_replaygain.py:60 +msgid "Path to VorbisGain:" msgstr "" -#: picard/acoustid.py:128 -#, python-format -msgid "Acoustid lookup returned no result for file '%s'" +#: contrib/plugins/replaygain/ui_options_replaygain.py:61 +msgid "Path to MP3Gain:" msgstr "" -#: picard/acoustid.py:132 -#, python-format -msgid "Looking up the fingerprint for file %s..." -msgstr "Iskanje prstnega odtisa za datoteko %s ..." - -#: picard/acoustidmanager.py:78 -msgid "Submitting AcoustIDs..." -msgstr "Pošiljam AcousticID-je ..." - -#: picard/acoustidmanager.py:83 -#, python-format -msgid "AcoustID submission failed with error '%s'" +#: contrib/plugins/replaygain/ui_options_replaygain.py:62 +msgid "Path to metaflac:" msgstr "" -#: picard/acoustidmanager.py:85 +#: contrib/plugins/replaygain/ui_options_replaygain.py:63 +msgid "Path to wvgain:" +msgstr "" + +#: contrib/plugins/viewvariables/__init__.py:42 +#, python-format +msgid "File: %s" +msgstr "" + +#: contrib/plugins/viewvariables/__init__.py:47 +#, python-format +msgid "Track: %s %s " +msgstr "" + +#: contrib/plugins/viewvariables/__init__.py:49 +msgid "Variables" +msgstr "" + +#: contrib/plugins/viewvariables/__init__.py:69 +msgid "File variables" +msgstr "" + +#: contrib/plugins/viewvariables/__init__.py:74 +msgid "Hidden variables" +msgstr "" + +#: contrib/plugins/viewvariables/__init__.py:79 +msgid "Tag variables" +msgstr "" + +#: contrib/plugins/viewvariables/ui_variables_dialog.py:73 +msgid "Variable" +msgstr "" + +#: contrib/plugins/viewvariables/ui_variables_dialog.py:75 +msgid "Value" +msgstr "" + +#: picard/acoustid.py:109 +#, python-format +msgid "AcoustID lookup network error for '%(filename)s'!" +msgstr "" + +#: picard/acoustid.py:133 +#, python-format +msgid "AcoustID lookup failed for '%(filename)s'!" +msgstr "" + +#: picard/acoustid.py:155 +#, python-format +msgid "AcoustID lookup returned no result for file '%(filename)s'" +msgstr "" + +#: picard/acoustid.py:166 +#, python-format +msgid "Looking up the fingerprint for file '%(filename)s' ..." +msgstr "" + +#: picard/acoustidmanager.py:80 +msgid "Submitting AcoustIDs ..." +msgstr "" + +#: picard/acoustidmanager.py:94 +#, python-format +msgid "AcoustID submission failed with error '%(error)s'" +msgstr "" + +#: picard/acoustidmanager.py:102 msgid "AcoustIDs successfully submitted." msgstr "" -#: picard/album.py:64 picard/cluster.py:234 +#: picard/album.py:65 picard/cluster.py:255 msgid "Unmatched Files" msgstr "Neujemajoče se datoteke" -#: picard/album.py:187 +#: picard/album.py:188 #, python-format msgid "[could not load album %s]" msgstr "[ni mogoče naložiti albuma %s]" -#: picard/album.py:272 +#: picard/album.py:277 #, python-format -msgid "Album %s loaded" +msgid "Album %(id)s loaded: %(artist)s - %(album)s" msgstr "" -#: picard/album.py:288 +#: picard/album.py:294 +#, python-format +msgid "Loading album %(id)s ..." +msgstr "" + +#: picard/album.py:303 msgid "[loading album information]" msgstr "[nalaganje informacij o albumu]" -#: picard/album.py:463 +#: picard/album.py:478 #, python-format msgid "; %i image" msgid_plural "; %i images" @@ -191,331 +246,159 @@ msgstr[1] "" msgstr[2] "" msgstr[3] "" -#: picard/cluster.py:150 picard/cluster.py:159 +#: picard/cluster.py:155 picard/cluster.py:168 #, python-format -msgid "No matching releases for cluster %s" -msgstr "Nobena izdaja se ne ujema s skupkom %s" - -#: picard/cluster.py:161 -#, python-format -msgid "Cluster %s identified!" -msgstr "Skupek %s identificiran!" - -#: picard/cluster.py:168 -#, python-format -msgid "Looking up the metadata for cluster %s..." -msgstr "Iskanje metapodatkov za skupek %s ..." - -#: picard/collection.py:60 -#, python-format -msgid "Added %i release to collection \"%s\"" -msgid_plural "Added %i releases to collection \"%s\"" -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" -msgstr[3] "" - -#: picard/collection.py:72 -#, python-format -msgid "Removed %i release from collection \"%s\"" -msgid_plural "Removed %i releases from collection \"%s\"" -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" -msgstr[3] "" - -#: picard/collection.py:81 -#, python-format -msgid "Error loading collections: %s" +msgid "No matching releases for cluster %(album)s" msgstr "" -#: picard/config_upgrade.py:57 picard/config_upgrade.py:70 +#: picard/cluster.py:174 +#, python-format +msgid "Cluster %(album)s identified!" +msgstr "" + +#: picard/cluster.py:185 +#, python-format +msgid "Looking up the metadata for cluster %(album)s..." +msgstr "" + +#: picard/collection.py:64 +#, python-format +msgid "Added %(count)i release to collection \"%(name)s\"" +msgid_plural "Added %(count)i releases to collection \"%(name)s\"" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + +#: picard/collection.py:86 +#, python-format +msgid "Removed %(count)i release from collection \"%(name)s\"" +msgid_plural "Removed %(count)i releases from collection \"%(name)s\"" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + +#: picard/collection.py:100 +#, python-format +msgid "Error loading collections: %(error)s" +msgstr "" + +#: picard/config_upgrade.py:58 picard/config_upgrade.py:71 msgid "Various Artists file naming scheme removal" msgstr "" -#: picard/config_upgrade.py:58 +#: picard/config_upgrade.py:59 msgid "" "The separate file naming scheme for various artists albums has been removed in this version of Picard.\n" "Your file naming scheme has automatically been merged with that of single artist albums." msgstr "" -#: picard/config_upgrade.py:71 +#: picard/config_upgrade.py:72 msgid "" "The separate file naming scheme for various artists albums has been removed in this version of Picard.\n" "You currently do not use this option, but have a separate file naming scheme defined.\n" "Do you want to remove it or merge it with your file naming scheme for single artist albums?" msgstr "" -#: picard/config_upgrade.py:77 +#: picard/config_upgrade.py:78 msgid "Merge" msgstr "Združi" -#: picard/config_upgrade.py:77 picard/ui/metadatabox.py:254 +#: picard/config_upgrade.py:78 picard/ui/metadatabox.py:254 msgid "Remove" msgstr "Odstrani" -#: picard/const.py:67 -msgid "CD" -msgstr "CD" - -#: picard/const.py:68 -msgid "CD-R" -msgstr "CD-R" - -#: picard/const.py:69 -msgid "HDCD" -msgstr "HDCD" - -#: picard/const.py:70 -msgid "8cm CD" -msgstr "8 cm CD" - -#: picard/const.py:71 -msgid "Vinyl" -msgstr "Vinilna plošča" - -#: picard/const.py:72 -msgid "7\" Vinyl" -msgstr "7\" vinilska plošča" - -#: picard/const.py:73 -msgid "10\" Vinyl" -msgstr "10\" vinilska plošča" - -#: picard/const.py:74 -msgid "12\" Vinyl" -msgstr "12\" vinilska plošča" - -#: picard/const.py:75 -msgid "Digital Media" -msgstr "Digitalni nosilec" - -#: picard/const.py:76 -msgid "USB Flash Drive" -msgstr "USB-ključ" - -#: picard/const.py:77 -msgid "slotMusic" -msgstr "" - -#: picard/const.py:78 -msgid "Cassette" -msgstr "Kaseta" - -#: picard/const.py:79 -msgid "DVD" -msgstr "DVD" - -#: picard/const.py:80 -msgid "DVD-Audio" -msgstr "avdio DVD" - -#: picard/const.py:81 -msgid "DVD-Video" -msgstr "video DVD" - -#: picard/const.py:82 -msgid "SACD" -msgstr "SACD" - -#: picard/const.py:83 -msgid "DualDisc" -msgstr "" - -#: picard/const.py:84 -msgid "MiniDisc" -msgstr "MiniDisk" - -#: picard/const.py:85 -msgid "Blu-ray" -msgstr "Blu-ray" - -#: picard/const.py:86 -msgid "HD-DVD" -msgstr "HD-DVD" - -#: picard/const.py:87 -msgid "Videotape" -msgstr "" - -#: picard/const.py:88 -msgid "VHS" -msgstr "VHS" - -#: picard/const.py:89 -msgid "Betamax" -msgstr "Betamax" - #: picard/const.py:90 -msgid "VCD" -msgstr "VCD" - -#: picard/const.py:91 -msgid "SVCD" -msgstr "SVCD" - -#: picard/const.py:92 -msgid "UMD" -msgstr "UMD" - -#: picard/const.py:93 picard/coverartarchive.py:33 -#: picard/ui/ui_options_releases.py:226 -msgid "Other" -msgstr "Drugo" - -#: picard/const.py:94 -msgid "LaserDisc" -msgstr "LaserDisk" - -#: picard/const.py:95 -msgid "Cartridge" -msgstr "" - -#: picard/const.py:96 -msgid "Reel-to-reel" -msgstr "" - -#: picard/const.py:97 -msgid "DAT" -msgstr "DAT" - -#: picard/const.py:98 -msgid "Wax Cylinder" -msgstr "Voščeni valj" - -#: picard/const.py:99 -msgid "Piano Roll" -msgstr "Klavirski zvitek" - -#: picard/const.py:100 -msgid "DCC" -msgstr "DCC" - -#: picard/const.py:115 msgid "Danish" msgstr "" -#: picard/const.py:116 +#: picard/const.py:91 msgid "German" msgstr "nemščina" -#: picard/const.py:118 +#: picard/const.py:93 msgid "English" msgstr "angleščina" -#: picard/const.py:119 +#: picard/const.py:94 msgid "English (Canada)" msgstr "angleščina (Kanada)" -#: picard/const.py:120 +#: picard/const.py:95 msgid "English (UK)" msgstr "angleščina (Združeno kraljestvo)" -#: picard/const.py:122 +#: picard/const.py:97 msgid "Spanish" msgstr "španščina" -#: picard/const.py:123 +#: picard/const.py:98 msgid "Estonian" msgstr "estonščina" -#: picard/const.py:125 +#: picard/const.py:100 msgid "Finnish" msgstr "finščina" -#: picard/const.py:127 +#: picard/const.py:102 msgid "French" msgstr "francoščina" -#: picard/const.py:136 +#: picard/const.py:111 msgid "Italian" msgstr "italijanščina" -#: picard/const.py:143 +#: picard/const.py:118 msgid "Dutch" msgstr "nizozemščina" -#: picard/const.py:145 +#: picard/const.py:120 msgid "Polish" msgstr "poljščina" -#: picard/const.py:147 +#: picard/const.py:122 msgid "Brazilian Portuguese" msgstr "brazilska portugalščina" -#: picard/const.py:154 +#: picard/const.py:129 msgid "Swedish" msgstr "švedščina" -#: picard/coverart.py:84 +#: picard/coverart.py:85 #, python-format -msgid "Coverart %s downloaded" +msgid "Cover art of type '%(type)s' downloaded for %(albumid)s from %(host)s" msgstr "" -#: picard/coverart.py:240 +#: picard/coverart.py:256 #, python-format -msgid "Downloading http://%s:%i%s" -msgstr "" - -#: picard/coverartarchive.py:24 -msgid "Front" -msgstr "" - -#: picard/coverartarchive.py:25 -msgid "Back" -msgstr "" - -#: picard/coverartarchive.py:26 -msgid "Booklet" -msgstr "" - -#: picard/coverartarchive.py:27 -msgid "Medium" -msgstr "" - -#: picard/coverartarchive.py:28 -msgid "Tray" -msgstr "" - -#: picard/coverartarchive.py:29 -msgid "Obi" +msgid "" +"Downloading cover art of type '%(type)s' for %(albumid)s from %(host)s .." msgstr "" #: picard/coverartarchive.py:30 -msgid "Spine" -msgstr "" - -#: picard/coverartarchive.py:31 picard/ui/mainwindow.py:546 -msgid "Track" -msgstr "Skladba" - -#: picard/coverartarchive.py:32 -msgid "Sticker" -msgstr "" - -#: picard/coverartarchive.py:34 msgid "Unknown" msgstr "" -#: picard/file.py:536 +#: picard/file.py:494 #, python-format -msgid "No matching tracks for file %s" -msgstr "Ni ujemajočih se sledi za datoteko %s" +msgid "No matching tracks for file '%(filename)s'" +msgstr "" -#: picard/file.py:548 +#: picard/file.py:510 #, python-format -msgid "No matching tracks above the threshold for file %s" -msgstr "Ni ujemajočih se sledi nad pragom za datoteko %s" +msgid "No matching tracks above the threshold for file '%(filename)s'" +msgstr "" -#: picard/file.py:551 +#: picard/file.py:517 #, python-format -msgid "File %s identified!" -msgstr "Datoteka %s identificirana!" +msgid "File '%(filename)s' identified!" +msgstr "" -#: picard/file.py:567 +#: picard/file.py:537 #, python-format -msgid "Looking up the metadata for file %s..." -msgstr "Iskanje metapodatkov za datoteko %s ..." +msgid "Looking up the metadata for file %(filename)s ..." +msgstr "" #: picard/releasegroup.py:53 msgid "Tracks" @@ -525,11 +408,11 @@ msgstr "" msgid "Year" msgstr "" -#: picard/releasegroup.py:55 picard/ui/cdlookup.py:34 +#: picard/releasegroup.py:55 picard/ui/cdlookup.py:35 msgid "Country" msgstr "Država" -#: picard/releasegroup.py:56 picard/util/tags.py:81 +#: picard/releasegroup.py:56 msgid "Format" msgstr "Format" @@ -549,16 +432,25 @@ msgstr "" msgid "[no release info]" msgstr "[ni podatkov o izdaji]" -#: picard/tagger.py:316 +#: picard/tagger.py:370 #, python-format -msgid "Loading directory %s" +msgid "Adding %(count)d file from '%(directory)s' ..." +msgid_plural "Adding %(count)d files from '%(directory)s' ..." +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + +#: picard/tagger.py:512 +#, python-format +msgid "Removing album %(id)s: %(artist)s - %(album)s" msgstr "" -#: picard/tagger.py:452 +#: picard/tagger.py:528 msgid "CD Lookup Error" msgstr "Napaka pri pregledu CD-ja" -#: picard/tagger.py:453 +#: picard/tagger.py:529 #, python-format msgid "" "Error while reading CD:\n" @@ -566,37 +458,36 @@ msgid "" "%s" msgstr "Napaka med branjem CD-ja:\n\n%s" -#: picard/ui/cdlookup.py:34 picard/ui/mainwindow.py:544 -#: picard/ui/ui_options_releases.py:216 picard/util/tags.py:21 +#: picard/ui/cdlookup.py:35 picard/ui/mainwindow.py:597 picard/util/tags.py:21 msgid "Album" msgstr "Album" -#: picard/ui/cdlookup.py:34 picard/ui/itemviews.py:96 -#: picard/ui/mainwindow.py:545 picard/util/tags.py:22 +#: picard/ui/cdlookup.py:35 picard/ui/itemviews.py:96 +#: picard/ui/mainwindow.py:598 picard/util/tags.py:22 msgid "Artist" msgstr "Izvajalec" -#: picard/ui/cdlookup.py:34 picard/util/tags.py:24 +#: picard/ui/cdlookup.py:35 picard/util/tags.py:24 msgid "Date" msgstr "Datum" -#: picard/ui/cdlookup.py:35 +#: picard/ui/cdlookup.py:36 msgid "Labels" msgstr "" -#: picard/ui/cdlookup.py:35 +#: picard/ui/cdlookup.py:36 msgid "Catalog #s" msgstr "" -#: picard/ui/cdlookup.py:35 picard/util/tags.py:79 +#: picard/ui/cdlookup.py:36 picard/util/tags.py:78 msgid "Barcode" msgstr "Barkoda" -#: picard/ui/collectionmenu.py:31 +#: picard/ui/collectionmenu.py:42 msgid "Refresh List" msgstr "" -#: picard/ui/collectionmenu.py:92 +#: picard/ui/collectionmenu.py:86 #, python-format msgid "%s (%i release)" msgid_plural "%s (%i releases)" @@ -605,7 +496,7 @@ msgstr[1] "" msgstr[2] "" msgstr[3] "" -#: picard/ui/coverartbox.py:142 +#: picard/ui/coverartbox.py:141 msgid "View release on MusicBrainz" msgstr "" @@ -621,59 +512,59 @@ msgstr "Prikaži &skrite datoteke" msgid "&Set as starting directory" msgstr "" -#: picard/ui/infodialog.py:36 picard/ui/infodialog.py:75 +#: picard/ui/infodialog.py:37 picard/ui/infodialog.py:80 msgid "Info" msgstr "" -#: picard/ui/infodialog.py:80 +#: picard/ui/infodialog.py:85 msgid "Filename:" msgstr "Ime datoteke:" -#: picard/ui/infodialog.py:82 +#: picard/ui/infodialog.py:87 msgid "Format:" msgstr "Oblika:" -#: picard/ui/infodialog.py:86 +#: picard/ui/infodialog.py:91 msgid "Size:" msgstr "Velikost:" -#: picard/ui/infodialog.py:90 +#: picard/ui/infodialog.py:95 msgid "Length:" msgstr "Dolžina:" -#: picard/ui/infodialog.py:92 +#: picard/ui/infodialog.py:97 msgid "Bitrate:" msgstr "Bitna hitrost:" -#: picard/ui/infodialog.py:94 +#: picard/ui/infodialog.py:99 msgid "Sample rate:" msgstr "Vzorčna hitrost:" -#: picard/ui/infodialog.py:96 +#: picard/ui/infodialog.py:101 msgid "Bits per sample:" msgstr "Bitov na vzorec:" -#: picard/ui/infodialog.py:100 +#: picard/ui/infodialog.py:105 msgid "Mono" msgstr "Mono" -#: picard/ui/infodialog.py:102 +#: picard/ui/infodialog.py:107 msgid "Stereo" msgstr "Stereo" -#: picard/ui/infodialog.py:105 +#: picard/ui/infodialog.py:110 msgid "Channels:" msgstr "Kanali:" -#: picard/ui/infodialog.py:116 +#: picard/ui/infodialog.py:121 msgid "Album Info" msgstr "" -#: picard/ui/infodialog.py:124 +#: picard/ui/infodialog.py:129 msgid "&Errors" msgstr "" -#: picard/ui/infodialog.py:134 picard/ui/ui_infodialog.py:77 +#: picard/ui/infodialog.py:139 picard/ui/ui_infodialog.py:73 msgid "&Info" msgstr "&Info" @@ -697,7 +588,7 @@ msgstr "" msgid "Title" msgstr "Naslov" -#: picard/ui/itemviews.py:95 picard/util/tags.py:88 +#: picard/ui/itemviews.py:95 picard/util/tags.py:86 msgid "Length" msgstr "Dolžina" @@ -722,8 +613,8 @@ msgid "Collections" msgstr "" #: picard/ui/itemviews.py:365 -msgid "&Plugins" -msgstr "&Vtičniki" +msgid "P&lugins" +msgstr "" #: picard/ui/itemviews.py:541 msgid "file view" @@ -745,12 +636,16 @@ msgstr "" msgid "Contains albums and matched files" msgstr "" -#: picard/ui/logview.py:91 +#: picard/ui/logview.py:109 msgid "Log" msgstr "Sistemski dnevnik" -#: picard/ui/logview.py:99 -msgid "Status History" +#: picard/ui/logview.py:113 +msgid "Debug mode" +msgstr "" + +#: picard/ui/logview.py:134 +msgid "Activity History" msgstr "" #: picard/ui/mainwindow.py:74 @@ -786,276 +681,309 @@ msgstr "" #: picard/ui/mainwindow.py:220 msgid "" -"Picard listens on a port to integrate with your browser and downloads " -"release information when you click the \"Tagger\" buttons on the MusicBrainz" -" website" +"Picard listens on this port to integrate with your browser. When you " +"\"Search\" or \"Open in Browser\" from Picard, clicking the \"Tagger\" " +"button on the web page loads the release into Picard." msgstr "" -#: picard/ui/mainwindow.py:240 +#: picard/ui/mainwindow.py:243 #, python-format msgid " Listening on port %(port)d " msgstr "" -#: picard/ui/mainwindow.py:263 +#: picard/ui/mainwindow.py:299 msgid "Submission Error" msgstr "Napaka pri pošiljanju" -#: picard/ui/mainwindow.py:264 +#: picard/ui/mainwindow.py:300 msgid "" "You need to configure your AcoustID API key before you can submit " "fingerprints." msgstr "" -#: picard/ui/mainwindow.py:269 +#: picard/ui/mainwindow.py:305 msgid "&Options..." msgstr "&Nastavitve..." -#: picard/ui/mainwindow.py:273 +#: picard/ui/mainwindow.py:309 msgid "&Cut" msgstr "&Izreži" -#: picard/ui/mainwindow.py:278 +#: picard/ui/mainwindow.py:314 msgid "&Paste" msgstr "&Prilepi" -#: picard/ui/mainwindow.py:283 +#: picard/ui/mainwindow.py:319 msgid "&Help..." msgstr "&Pomoč ..." -#: picard/ui/mainwindow.py:288 +#: picard/ui/mainwindow.py:323 msgid "&About..." msgstr "&O programu ..." -#: picard/ui/mainwindow.py:292 +#: picard/ui/mainwindow.py:327 msgid "&Donate..." msgstr "&Prispevaj ..." -#: picard/ui/mainwindow.py:295 +#: picard/ui/mainwindow.py:330 msgid "&Report a Bug..." msgstr "Pošlji po&ročilo o napaki" -#: picard/ui/mainwindow.py:298 +#: picard/ui/mainwindow.py:333 msgid "&Support Forum..." msgstr "Podporni &forum" -#: picard/ui/mainwindow.py:301 +#: picard/ui/mainwindow.py:336 msgid "&Add Files..." msgstr "&Dodaj datoteke ..." -#: picard/ui/mainwindow.py:302 +#: picard/ui/mainwindow.py:337 msgid "Add files to the tagger" msgstr "Dodaj datoteke označevalniku" -#: picard/ui/mainwindow.py:307 +#: picard/ui/mainwindow.py:342 msgid "A&dd Folder..." msgstr "D&odaj mapo ..." -#: picard/ui/mainwindow.py:308 +#: picard/ui/mainwindow.py:343 msgid "Add a folder to the tagger" msgstr "Dodaj mapo označevalniku" -#: picard/ui/mainwindow.py:310 +#: picard/ui/mainwindow.py:345 msgid "Ctrl+D" msgstr "Ctrl+D" -#: picard/ui/mainwindow.py:313 +#: picard/ui/mainwindow.py:348 msgid "&Save" msgstr "&Shrani" -#: picard/ui/mainwindow.py:314 +#: picard/ui/mainwindow.py:349 msgid "Save selected files" msgstr "Shrani izbrane datoteke" -#: picard/ui/mainwindow.py:320 +#: picard/ui/mainwindow.py:355 msgid "S&ubmit" msgstr "Pošlji" -#: picard/ui/mainwindow.py:321 -msgid "Submit fingerprints" +#: picard/ui/mainwindow.py:356 +msgid "Submit acoustic fingerprints" msgstr "" -#: picard/ui/mainwindow.py:325 +#: picard/ui/mainwindow.py:360 msgid "E&xit" msgstr "I&zhod" -#: picard/ui/mainwindow.py:328 +#: picard/ui/mainwindow.py:363 msgid "Ctrl+Q" msgstr "Ctrl+Q" -#: picard/ui/mainwindow.py:331 +#: picard/ui/mainwindow.py:366 msgid "&Remove" msgstr "Odst&rani" -#: picard/ui/mainwindow.py:332 +#: picard/ui/mainwindow.py:367 msgid "Remove selected files/albums" msgstr "Odstrani izbrane datoteke oz. albume" -#: picard/ui/mainwindow.py:336 +#: picard/ui/mainwindow.py:371 msgid "Lookup in &Browser" msgstr "Poglej v brskalniku" -#: picard/ui/mainwindow.py:337 +#: picard/ui/mainwindow.py:372 msgid "Lookup selected item on MusicBrainz website" msgstr "" -#: picard/ui/mainwindow.py:341 +#: picard/ui/mainwindow.py:376 msgid "File &Browser" msgstr "&Brskalnik datotek" -#: picard/ui/mainwindow.py:345 +#: picard/ui/mainwindow.py:380 msgid "Ctrl+B" msgstr "Ctrl+B" -#: picard/ui/mainwindow.py:348 +#: picard/ui/mainwindow.py:383 msgid "&Cover Art" msgstr "Naslovni&ca" -#: picard/ui/mainwindow.py:354 picard/ui/mainwindow.py:539 +#: picard/ui/mainwindow.py:389 picard/ui/mainwindow.py:591 msgid "Search" msgstr "Išči" -#: picard/ui/mainwindow.py:357 -msgid "&CD Lookup..." -msgstr "Pregled &CD-ja ..." +#: picard/ui/mainwindow.py:392 +msgid "Lookup &CD..." +msgstr "" -#: picard/ui/mainwindow.py:358 picard/ui/mainwindow.py:359 -msgid "Lookup CD" -msgstr "Preglej CD" +#: picard/ui/mainwindow.py:393 +msgid "Lookup the details of the CD in your drive" +msgstr "" -#: picard/ui/mainwindow.py:361 +#: picard/ui/mainwindow.py:395 msgid "Ctrl+K" msgstr "Ctrl+K" -#: picard/ui/mainwindow.py:364 +#: picard/ui/mainwindow.py:398 msgid "&Scan" msgstr "&Skeniraj" -#: picard/ui/mainwindow.py:367 +#: picard/ui/mainwindow.py:401 msgid "Ctrl+Y" msgstr "Ctrl+Y" -#: picard/ui/mainwindow.py:370 +#: picard/ui/mainwindow.py:404 msgid "Cl&uster" msgstr "Zdr&uži v skupke" -#: picard/ui/mainwindow.py:373 +#: picard/ui/mainwindow.py:407 msgid "Ctrl+U" msgstr "Ctrl+U" -#: picard/ui/mainwindow.py:376 +#: picard/ui/mainwindow.py:410 msgid "&Lookup" msgstr "&Pregled" -#: picard/ui/mainwindow.py:377 picard/ui/mainwindow.py:378 -msgid "Lookup metadata" -msgstr "Preglej metapodatke" +#: picard/ui/mainwindow.py:411 +msgid "Lookup selected items in MusicBrainz" +msgstr "" -#: picard/ui/mainwindow.py:381 +#: picard/ui/mainwindow.py:416 msgid "Ctrl+L" msgstr "Ctrl+L" -#: picard/ui/mainwindow.py:384 +#: picard/ui/mainwindow.py:419 msgid "&Info..." msgstr "" -#: picard/ui/mainwindow.py:387 +#: picard/ui/mainwindow.py:422 msgid "Ctrl+I" msgstr "Ctrl+I" -#: picard/ui/mainwindow.py:390 +#: picard/ui/mainwindow.py:425 msgid "&Refresh" msgstr "&Osveži" -#: picard/ui/mainwindow.py:391 +#: picard/ui/mainwindow.py:426 msgid "Ctrl+R" msgstr "Ctrl+R" -#: picard/ui/mainwindow.py:394 +#: picard/ui/mainwindow.py:429 msgid "&Rename Files" msgstr "P&reimenuj datoteke" -#: picard/ui/mainwindow.py:399 +#: picard/ui/mainwindow.py:434 msgid "&Move Files" msgstr "Pre&makni datoteke" -#: picard/ui/mainwindow.py:404 +#: picard/ui/mainwindow.py:439 msgid "Save &Tags" msgstr "Shrani &oznake" -#: picard/ui/mainwindow.py:409 +#: picard/ui/mainwindow.py:444 msgid "Tags From &File Names..." msgstr "&Oznake iz imen datotek" -#: picard/ui/mainwindow.py:412 -msgid "View &Log..." -msgstr "Pokaži dnevnik" - -#: picard/ui/mainwindow.py:415 -msgid "View Status &History..." +#: picard/ui/mainwindow.py:447 +msgid "&Open My Collections in Browser" msgstr "" -#: picard/ui/mainwindow.py:422 -msgid "&Open..." -msgstr "&Odpri ..." - -#: picard/ui/mainwindow.py:423 -msgid "Open the file" -msgstr "Odpri datoteko" - -#: picard/ui/mainwindow.py:426 -msgid "Open &Folder..." -msgstr "Odpri &mapo ..." - -#: picard/ui/mainwindow.py:427 -msgid "Open the containing folder" +#: picard/ui/mainwindow.py:451 +msgid "View Error/Debug &Log" msgstr "" -#: picard/ui/mainwindow.py:448 +#: picard/ui/mainwindow.py:454 +msgid "View Activity &History" +msgstr "" + +#: picard/ui/mainwindow.py:461 +msgid "&Play file" +msgstr "" + +#: picard/ui/mainwindow.py:462 +msgid "Play the file in your default media player" +msgstr "" + +#: picard/ui/mainwindow.py:466 +msgid "Open Containing &Folder" +msgstr "" + +#: picard/ui/mainwindow.py:467 +msgid "Open the containing folder in your file explorer" +msgstr "" + +#: picard/ui/mainwindow.py:492 msgid "&File" msgstr "&Datoteka" -#: picard/ui/mainwindow.py:456 +#: picard/ui/mainwindow.py:503 msgid "&Edit" msgstr "&Urejanje" -#: picard/ui/mainwindow.py:462 +#: picard/ui/mainwindow.py:509 msgid "&View" msgstr "&Pogled" -#: picard/ui/mainwindow.py:470 +#: picard/ui/mainwindow.py:515 msgid "&Options" msgstr "&Nastavitve" -#: picard/ui/mainwindow.py:476 +#: picard/ui/mainwindow.py:521 msgid "&Tools" msgstr "&Orodja" -#: picard/ui/mainwindow.py:485 picard/ui/util.py:35 +#: picard/ui/mainwindow.py:532 picard/ui/util.py:35 msgid "&Help" msgstr "&Pomoč" -#: picard/ui/mainwindow.py:505 +#: picard/ui/mainwindow.py:553 msgid "Actions" msgstr "" -#: picard/ui/mainwindow.py:608 +#: picard/ui/mainwindow.py:599 +msgid "Track" +msgstr "Skladba" + +#: picard/ui/mainwindow.py:662 msgid "All Supported Formats" msgstr "Vse podprte oblike" -#: picard/ui/mainwindow.py:705 +#: picard/ui/mainwindow.py:695 +#, python-format +msgid "Adding directory: '%(directory)s' ..." +msgstr "" + +#: picard/ui/mainwindow.py:702 +#, python-format +msgid "Adding multiple directories from '%(directory)s' ..." +msgstr "" + +#: picard/ui/mainwindow.py:767 msgid "Configuration Required" msgstr "" -#: picard/ui/mainwindow.py:706 +#: picard/ui/mainwindow.py:768 msgid "" "Audio fingerprinting is not yet configured. Would you like to configure it " "now?" msgstr "" -#: picard/ui/mainwindow.py:784 picard/ui/mainwindow.py:791 +#: picard/ui/mainwindow.py:848 #, python-format -msgid " (Error: %s)" -msgstr " (Napaka: %s)" +msgid "%(filename)s (error: %(error)s)" +msgstr "" + +#: picard/ui/mainwindow.py:854 +#, python-format +msgid "%(filename)s" +msgstr "" + +#: picard/ui/mainwindow.py:864 +#, python-format +msgid "%(filename)s (%(similarity)d%%) (error: %(error)s)" +msgstr "" + +#: picard/ui/mainwindow.py:871 +#, python-format +msgid "%(filename)s (%(similarity)d%%)" +msgstr "" #: picard/ui/metadatabox.py:82 #, python-format @@ -1115,387 +1043,387 @@ msgstr[1] "" msgstr[2] "" msgstr[3] "Uporabi izvirno vrednost" -#: picard/ui/passworddialog.py:37 +#: picard/ui/passworddialog.py:40 #, python-format msgid "" "The server %s requires you to login. Please enter your username and " "password." msgstr "Strežnik %s zahteva, da se prijavite. Prosim, vnesite vaše uporabniško ime in geslo." -#: picard/ui/passworddialog.py:75 +#: picard/ui/passworddialog.py:79 #, python-format msgid "" "The proxy %s requires you to login. Please enter your username and password." msgstr "" -#: picard/ui/tagsfromfilenames.py:55 picard/ui/tagsfromfilenames.py:100 +#: picard/ui/tagsfromfilenames.py:56 picard/ui/tagsfromfilenames.py:101 msgid "File Name" msgstr "Ime datoteke" -#: picard/ui/ui_cdlookup.py:66 picard/ui/ui_options_cdlookup.py:55 -#: picard/ui/ui_options_cdlookup_select.py:62 picard/ui/options/cdlookup.py:38 +#: picard/ui/ui_cdlookup.py:53 picard/ui/ui_options_cdlookup.py:42 +#: picard/ui/ui_options_cdlookup_select.py:49 picard/ui/options/cdlookup.py:38 msgid "CD Lookup" msgstr "Pregled CD-ja" -#: picard/ui/ui_cdlookup.py:67 +#: picard/ui/ui_cdlookup.py:54 msgid "The following releases on MusicBrainz match the CD:" msgstr "Naslednje izdaje na MusicBrainzu se ujemajo s CD-jem:" -#: picard/ui/ui_cdlookup.py:68 +#: picard/ui/ui_cdlookup.py:55 msgid "OK" msgstr "V redu" -#: picard/ui/ui_cdlookup.py:69 +#: picard/ui/ui_cdlookup.py:56 msgid "Lookup manually" msgstr "" -#: picard/ui/ui_cdlookup.py:70 +#: picard/ui/ui_cdlookup.py:57 msgid "Cancel" msgstr "Prekliči" -#: picard/ui/ui_edittagdialog.py:101 +#: picard/ui/ui_edittagdialog.py:88 msgid "Edit Tag" msgstr "" -#: picard/ui/ui_edittagdialog.py:102 +#: picard/ui/ui_edittagdialog.py:89 msgid "Edit value" msgstr "" -#: picard/ui/ui_edittagdialog.py:103 +#: picard/ui/ui_edittagdialog.py:90 msgid "Add value" msgstr "" -#: picard/ui/ui_edittagdialog.py:104 +#: picard/ui/ui_edittagdialog.py:91 msgid "Remove value" msgstr "" -#: picard/ui/ui_infodialog.py:78 +#: picard/ui/ui_infodialog.py:74 msgid "A&rtwork" msgstr "P&latnica" -#: picard/ui/ui_infostatus.py:100 +#: picard/ui/ui_infostatus.py:96 msgid "Form" msgstr "" -#: picard/ui/ui_options.py:51 +#: picard/ui/ui_options.py:38 msgid "Options" msgstr "Možnosti" -#: picard/ui/ui_options_advanced.py:46 +#: picard/ui/ui_options_advanced.py:42 msgid "Advanced options" msgstr "" -#: picard/ui/ui_options_advanced.py:47 +#: picard/ui/ui_options_advanced.py:43 msgid "Ignore file paths matching the following regular expression:" msgstr "" -#: picard/ui/ui_options_cdlookup.py:56 +#: picard/ui/ui_options_cdlookup.py:43 msgid "CD-ROM device to use for lookups:" msgstr "CD-ROM naprava, ki se bo uporabljala za pregled:" -#: picard/ui/ui_options_cdlookup_select.py:63 +#: picard/ui/ui_options_cdlookup_select.py:50 msgid "Default CD-ROM drive to use for lookups:" msgstr "Privzeti CD-ROM pogon, ki se bo uporabljal za pregled:" -#: picard/ui/ui_options_cover.py:145 +#: picard/ui/ui_options_cover.py:131 msgid "Location" msgstr "Mesto" -#: picard/ui/ui_options_cover.py:146 +#: picard/ui/ui_options_cover.py:132 msgid "Embed cover images into tags" msgstr "Vključi slike naslovnic v oznake" -#: picard/ui/ui_options_cover.py:147 +#: picard/ui/ui_options_cover.py:133 msgid "Only embed a front image" msgstr "" -#: picard/ui/ui_options_cover.py:148 +#: picard/ui/ui_options_cover.py:134 msgid "Save cover images as separate files" msgstr "Shrani slike naslovnic kot ločene datoteke" -#: picard/ui/ui_options_cover.py:149 +#: picard/ui/ui_options_cover.py:135 msgid "Use the following file name for images:" msgstr "" -#: picard/ui/ui_options_cover.py:150 +#: picard/ui/ui_options_cover.py:136 msgid "Overwrite the file if it already exists" msgstr "Prepiši datoteko, če že obstaja" -#: picard/ui/ui_options_cover.py:151 +#: picard/ui/ui_options_cover.py:137 msgid "Coverart Providers" msgstr "" -#: picard/ui/ui_options_cover.py:152 +#: picard/ui/ui_options_cover.py:138 msgid "Amazon" msgstr "" -#: picard/ui/ui_options_cover.py:153 picard/ui/ui_options_cover.py:155 +#: picard/ui/ui_options_cover.py:139 picard/ui/ui_options_cover.py:141 msgid "Cover Art Archive" msgstr "" -#: picard/ui/ui_options_cover.py:154 +#: picard/ui/ui_options_cover.py:140 msgid "Sites on the whitelist" msgstr "" -#: picard/ui/ui_options_cover.py:156 +#: picard/ui/ui_options_cover.py:142 msgid "Only use images of the following size:" msgstr "" -#: picard/ui/ui_options_cover.py:157 +#: picard/ui/ui_options_cover.py:143 msgid "250 px" msgstr "" -#: picard/ui/ui_options_cover.py:158 +#: picard/ui/ui_options_cover.py:144 msgid "500 px" msgstr "" -#: picard/ui/ui_options_cover.py:159 +#: picard/ui/ui_options_cover.py:145 msgid "Full size" msgstr "" -#: picard/ui/ui_options_cover.py:160 +#: picard/ui/ui_options_cover.py:146 msgid "Download only images of the following types:" msgstr "" -#: picard/ui/ui_options_cover.py:161 +#: picard/ui/ui_options_cover.py:147 msgid "Download only approved images" msgstr "" -#: picard/ui/ui_options_cover.py:162 +#: picard/ui/ui_options_cover.py:148 msgid "" "Use the first image type as the filename. This will not change the filename " "of front images." msgstr "" -#: picard/ui/ui_options_fingerprinting.py:83 +#: picard/ui/ui_options_fingerprinting.py:70 msgid "Audio Fingerprinting" msgstr "" -#: picard/ui/ui_options_fingerprinting.py:84 +#: picard/ui/ui_options_fingerprinting.py:71 msgid "Do not use audio fingerprinting" msgstr "" -#: picard/ui/ui_options_fingerprinting.py:85 +#: picard/ui/ui_options_fingerprinting.py:72 msgid "Use AcoustID" msgstr "Uporabi AcoustID" -#: picard/ui/ui_options_fingerprinting.py:86 +#: picard/ui/ui_options_fingerprinting.py:73 msgid "AcoustID Settings" msgstr "" -#: picard/ui/ui_options_fingerprinting.py:87 +#: picard/ui/ui_options_fingerprinting.py:74 msgid "Fingerprint calculator:" msgstr "" -#: picard/ui/ui_options_fingerprinting.py:88 -#: picard/ui/ui_options_interface.py:88 picard/ui/ui_options_renaming.py:138 +#: picard/ui/ui_options_fingerprinting.py:75 +#: picard/ui/ui_options_interface.py:75 picard/ui/ui_options_renaming.py:134 msgid "Browse..." msgstr "Prebrskaj ..." -#: picard/ui/ui_options_fingerprinting.py:89 +#: picard/ui/ui_options_fingerprinting.py:76 msgid "Download..." msgstr "" -#: picard/ui/ui_options_fingerprinting.py:90 +#: picard/ui/ui_options_fingerprinting.py:77 msgid "API key:" msgstr "API ključ:" -#: picard/ui/ui_options_fingerprinting.py:91 +#: picard/ui/ui_options_fingerprinting.py:78 msgid "Get API key..." msgstr "Pridobi API ključ ..." -#: picard/ui/ui_options_folksonomy.py:115 picard/ui/options/folksonomy.py:28 +#: picard/ui/ui_options_folksonomy.py:102 picard/ui/options/folksonomy.py:28 msgid "Folksonomy Tags" msgstr "Folksonomske oznake" -#: picard/ui/ui_options_folksonomy.py:117 +#: picard/ui/ui_options_folksonomy.py:104 msgid "Only use my tags" msgstr "Uporabi samo moje oznake" -#: picard/ui/ui_options_folksonomy.py:120 +#: picard/ui/ui_options_folksonomy.py:107 msgid "Maximum number of tags:" msgstr "Maksimalno število oznak:" -#: picard/ui/ui_options_general.py:92 +#: picard/ui/ui_options_general.py:88 msgid "MusicBrainz Server" msgstr "MusicBrainz strežnik" -#: picard/ui/ui_options_general.py:93 picard/ui/ui_options_network.py:123 +#: picard/ui/ui_options_general.py:89 picard/ui/ui_options_network.py:110 msgid "Port:" msgstr "Vrata:" -#: picard/ui/ui_options_general.py:94 picard/ui/ui_options_network.py:124 +#: picard/ui/ui_options_general.py:90 picard/ui/ui_options_network.py:111 msgid "Server address:" msgstr "Naslov strežnika:" -#: picard/ui/ui_options_general.py:95 +#: picard/ui/ui_options_general.py:91 msgid "Account Information" msgstr "Informacije o računu" -#: picard/ui/ui_options_general.py:96 picard/ui/ui_options_network.py:121 -#: picard/ui/ui_passworddialog.py:74 +#: picard/ui/ui_options_general.py:92 picard/ui/ui_options_network.py:108 +#: picard/ui/ui_passworddialog.py:70 msgid "Password:" msgstr "Geslo:" -#: picard/ui/ui_options_general.py:97 picard/ui/ui_options_network.py:122 -#: picard/ui/ui_passworddialog.py:73 +#: picard/ui/ui_options_general.py:93 picard/ui/ui_options_network.py:109 +#: picard/ui/ui_passworddialog.py:69 msgid "Username:" msgstr "Uporabniško ime:" -#: picard/ui/ui_options_general.py:98 picard/ui/options/general.py:31 +#: picard/ui/ui_options_general.py:94 picard/ui/options/general.py:31 msgid "General" msgstr "Splošno" -#: picard/ui/ui_options_general.py:99 +#: picard/ui/ui_options_general.py:95 msgid "Automatically scan all new files" msgstr "Samodejno skeniraj vse nove datoteke" -#: picard/ui/ui_options_general.py:100 +#: picard/ui/ui_options_general.py:96 msgid "Ignore MBIDs when loading new files" msgstr "" -#: picard/ui/ui_options_interface.py:82 +#: picard/ui/ui_options_interface.py:69 msgid "Miscellaneous" msgstr "Razno" -#: picard/ui/ui_options_interface.py:83 +#: picard/ui/ui_options_interface.py:70 msgid "Show text labels under icons" msgstr "Pokaži označbe pod ikonami na orodni vrstici" -#: picard/ui/ui_options_interface.py:84 +#: picard/ui/ui_options_interface.py:71 msgid "Allow selection of multiple directories" msgstr "Dovoli izbiro večdelnih imenikov" -#: picard/ui/ui_options_interface.py:85 +#: picard/ui/ui_options_interface.py:72 msgid "Use advanced query syntax" msgstr "Uporabi napredno sintakso za poizvedbo" -#: picard/ui/ui_options_interface.py:86 +#: picard/ui/ui_options_interface.py:73 msgid "Show a quit confirmation dialog for unsaved changes" msgstr "" -#: picard/ui/ui_options_interface.py:87 +#: picard/ui/ui_options_interface.py:74 msgid "Begin browsing in the following directory:" msgstr "" -#: picard/ui/ui_options_interface.py:89 +#: picard/ui/ui_options_interface.py:76 msgid "User interface language:" msgstr "Jezik uporabniškega vmesnika:" -#: picard/ui/ui_options_matching.py:86 +#: picard/ui/ui_options_matching.py:73 msgid "Thresholds" msgstr "Pragovi" -#: picard/ui/ui_options_matching.py:87 +#: picard/ui/ui_options_matching.py:74 msgid "Minimal similarity for matching files to tracks:" msgstr "Minimalna podobnost za ujemanje datotek s skladbami:" -#: picard/ui/ui_options_matching.py:91 +#: picard/ui/ui_options_matching.py:78 msgid "Minimal similarity for file lookups:" msgstr "Minimalna podobnost za pregled datotek:" -#: picard/ui/ui_options_matching.py:92 +#: picard/ui/ui_options_matching.py:79 msgid "Minimal similarity for cluster lookups:" msgstr "Minimalna podobnost za pregled skupkov:" -#: picard/ui/ui_options_metadata.py:114 picard/ui/options/metadata.py:29 +#: picard/ui/ui_options_metadata.py:101 picard/ui/options/metadata.py:29 msgid "Metadata" msgstr "Metapodatki" -#: picard/ui/ui_options_metadata.py:115 +#: picard/ui/ui_options_metadata.py:102 msgid "Translate artist names to this locale where possible:" msgstr "Kjer je mogoče, prevedi imena izvajalcev v ta lokalni jezik:" -#: picard/ui/ui_options_metadata.py:116 +#: picard/ui/ui_options_metadata.py:103 msgid "Use standardized artist names" msgstr "Uporabi standardizirana imena izvajalcev" -#: picard/ui/ui_options_metadata.py:117 +#: picard/ui/ui_options_metadata.py:104 msgid "Convert Unicode punctuation characters to ASCII" msgstr "Pretvori Unicode punktuacijske znake v ASCII" -#: picard/ui/ui_options_metadata.py:118 +#: picard/ui/ui_options_metadata.py:105 msgid "Use release relationships" msgstr "Uporabi relacije izdaj" -#: picard/ui/ui_options_metadata.py:119 +#: picard/ui/ui_options_metadata.py:106 msgid "Use track relationships" msgstr "Uporabi relacije sled" -#: picard/ui/ui_options_metadata.py:120 +#: picard/ui/ui_options_metadata.py:107 msgid "Use folksonomy tags as genre" msgstr "Uporabi folksonoske oznake kot žanr" -#: picard/ui/ui_options_metadata.py:121 +#: picard/ui/ui_options_metadata.py:108 msgid "Custom Fields" msgstr "Poljubna polja" -#: picard/ui/ui_options_metadata.py:122 +#: picard/ui/ui_options_metadata.py:109 msgid "Various artists:" msgstr "Različni izvajalci:" -#: picard/ui/ui_options_metadata.py:123 +#: picard/ui/ui_options_metadata.py:110 msgid "Non-album tracks:" msgstr "Skladbe brez albuma:" -#: picard/ui/ui_options_metadata.py:124 picard/ui/ui_options_metadata.py:125 -#: picard/ui/ui_options_renaming.py:147 +#: picard/ui/ui_options_metadata.py:111 picard/ui/ui_options_metadata.py:112 +#: picard/ui/ui_options_renaming.py:143 msgid "Default" msgstr "Privzeto" -#: picard/ui/ui_options_network.py:120 +#: picard/ui/ui_options_network.py:107 msgid "Web Proxy" msgstr "Spletni proksi" -#: picard/ui/ui_options_network.py:125 +#: picard/ui/ui_options_network.py:112 msgid "Browser Integration" msgstr "" -#: picard/ui/ui_options_network.py:126 +#: picard/ui/ui_options_network.py:113 msgid "Default listening port:" msgstr "" -#: picard/ui/ui_options_network.py:127 +#: picard/ui/ui_options_network.py:114 msgid "Listen only on localhost" msgstr "" -#: picard/ui/ui_options_plugins.py:131 picard/ui/options/plugins.py:38 +#: picard/ui/ui_options_plugins.py:127 picard/ui/options/plugins.py:38 msgid "Plugins" msgstr "Vtičniki" -#: picard/ui/ui_options_plugins.py:132 picard/ui/options/plugins.py:122 +#: picard/ui/ui_options_plugins.py:128 picard/ui/options/plugins.py:122 msgid "Name" msgstr "Ime" -#: picard/ui/ui_options_plugins.py:133 picard/util/tags.py:39 +#: picard/ui/ui_options_plugins.py:129 msgid "Version" msgstr "Različica" -#: picard/ui/ui_options_plugins.py:134 picard/ui/options/plugins.py:125 +#: picard/ui/ui_options_plugins.py:130 picard/ui/options/plugins.py:125 msgid "Author" msgstr "Avtor" -#: picard/ui/ui_options_plugins.py:135 +#: picard/ui/ui_options_plugins.py:131 msgid "Install plugin..." msgstr "Namesti vtičnik ..." -#: picard/ui/ui_options_plugins.py:136 +#: picard/ui/ui_options_plugins.py:132 msgid "Open plugin folder" msgstr "Odpri mapo z vtičniki" -#: picard/ui/ui_options_plugins.py:137 +#: picard/ui/ui_options_plugins.py:133 msgid "Download plugins" msgstr "" -#: picard/ui/ui_options_plugins.py:138 +#: picard/ui/ui_options_plugins.py:134 msgid "Details" msgstr "Podrobnosti" -#: picard/ui/ui_options_ratings.py:53 +#: picard/ui/ui_options_ratings.py:49 msgid "Enable track ratings" msgstr "Omogoči oceno skladb" -#: picard/ui/ui_options_ratings.py:54 +#: picard/ui/ui_options_ratings.py:50 msgid "" "Picard saves the ratings together with an e-mail address identifying the " "user who did the rating. That way different ratings for different users can " @@ -1503,207 +1431,167 @@ msgid "" "your ratings." msgstr "" -#: picard/ui/ui_options_ratings.py:55 +#: picard/ui/ui_options_ratings.py:51 msgid "E-mail:" msgstr "E-pošta:" -#: picard/ui/ui_options_ratings.py:56 +#: picard/ui/ui_options_ratings.py:52 msgid "Submit ratings to MusicBrainz" msgstr "" -#: picard/ui/ui_options_releases.py:215 +#: picard/ui/ui_options_releases.py:104 msgid "Preferred release types" msgstr "" -#: picard/ui/ui_options_releases.py:217 -msgid "Single" -msgstr "" - -#: picard/ui/ui_options_releases.py:218 -msgid "EP" -msgstr "EP" - -#: picard/ui/ui_options_releases.py:219 -msgid "Compilation" -msgstr "Kompilacija" - -#: picard/ui/ui_options_releases.py:220 -msgid "Soundtrack" -msgstr "" - -#: picard/ui/ui_options_releases.py:221 -msgid "Spokenword" -msgstr "" - -#: picard/ui/ui_options_releases.py:222 -msgid "Interview" -msgstr "" - -#: picard/ui/ui_options_releases.py:223 -msgid "Audiobook" -msgstr "" - -#: picard/ui/ui_options_releases.py:224 -msgid "Live" -msgstr "" - -#: picard/ui/ui_options_releases.py:225 -msgid "Remix" -msgstr "Remix" - -#: picard/ui/ui_options_releases.py:227 -msgid "Reset all" -msgstr "" - -#: picard/ui/ui_options_releases.py:228 +#: picard/ui/ui_options_releases.py:105 msgid "Preferred release countries" msgstr "" -#: picard/ui/ui_options_releases.py:229 picard/ui/ui_options_releases.py:232 +#: picard/ui/ui_options_releases.py:106 picard/ui/ui_options_releases.py:109 msgid ">" msgstr ">" -#: picard/ui/ui_options_releases.py:230 picard/ui/ui_options_releases.py:233 +#: picard/ui/ui_options_releases.py:107 picard/ui/ui_options_releases.py:110 msgid "<" msgstr "<" -#: picard/ui/ui_options_releases.py:231 +#: picard/ui/ui_options_releases.py:108 msgid "Preferred release formats" msgstr "" -#: picard/ui/ui_options_renaming.py:134 +#: picard/ui/ui_options_renaming.py:130 msgid "Rename files when saving" msgstr "Preimenuj datoteke med shranjevanjem" -#: picard/ui/ui_options_renaming.py:135 +#: picard/ui/ui_options_renaming.py:131 msgid "Replace non-ASCII characters" msgstr "Zamenjaj ne-ASCII oznake" -#: picard/ui/ui_options_renaming.py:136 +#: picard/ui/ui_options_renaming.py:132 msgid "Windows compatibility" msgstr "" -#: picard/ui/ui_options_renaming.py:137 +#: picard/ui/ui_options_renaming.py:133 msgid "Move files to this directory when saving:" msgstr "" -#: picard/ui/ui_options_renaming.py:139 +#: picard/ui/ui_options_renaming.py:135 msgid "Delete empty directories" msgstr "Izbriši prazne imenike" -#: picard/ui/ui_options_renaming.py:140 +#: picard/ui/ui_options_renaming.py:136 msgid "Move additional files:" msgstr "Premakni dodatne datoteke:" -#: picard/ui/ui_options_renaming.py:141 +#: picard/ui/ui_options_renaming.py:137 msgid "Name files like this" msgstr "" -#: picard/ui/ui_options_renaming.py:148 +#: picard/ui/ui_options_renaming.py:144 msgid "Examples" msgstr "Primeri" -#: picard/ui/ui_options_script.py:49 +#: picard/ui/ui_options_script.py:45 msgid "Tagger Script" msgstr "Skripta označevalnika" -#: picard/ui/ui_options_tags.py:165 +#: picard/ui/ui_options_tags.py:152 msgid "Write tags to files" msgstr "" -#: picard/ui/ui_options_tags.py:166 +#: picard/ui/ui_options_tags.py:153 msgid "Preserve timestamps of tagged files" msgstr "" -#: picard/ui/ui_options_tags.py:167 +#: picard/ui/ui_options_tags.py:154 msgid "Before Tagging" msgstr "" -#: picard/ui/ui_options_tags.py:168 +#: picard/ui/ui_options_tags.py:155 msgid "Clear existing tags" msgstr "" -#: picard/ui/ui_options_tags.py:169 +#: picard/ui/ui_options_tags.py:156 msgid "Remove ID3 tags from FLAC files" msgstr "Odstrani ID3 oznake iz FLAC datotek" -#: picard/ui/ui_options_tags.py:170 +#: picard/ui/ui_options_tags.py:157 msgid "Remove APEv2 tags from MP3 files" msgstr "Odstrani APEv2 oznake iz MP3 datotek" -#: picard/ui/ui_options_tags.py:171 +#: picard/ui/ui_options_tags.py:158 msgid "" "Preserve these tags from being cleared or overwritten with MusicBrainz data:" msgstr "" -#: picard/ui/ui_options_tags.py:172 +#: picard/ui/ui_options_tags.py:159 msgid "Tags are separated by commas, and are case-sensitive." msgstr "" -#: picard/ui/ui_options_tags.py:173 +#: picard/ui/ui_options_tags.py:160 msgid "Tag Compatibility" msgstr "" -#: picard/ui/ui_options_tags.py:174 +#: picard/ui/ui_options_tags.py:161 msgid "ID3v2 Version" msgstr "" -#: picard/ui/ui_options_tags.py:175 +#: picard/ui/ui_options_tags.py:162 msgid "2.4" msgstr "2.4" -#: picard/ui/ui_options_tags.py:176 +#: picard/ui/ui_options_tags.py:163 msgid "2.3" msgstr "2.3" -#: picard/ui/ui_options_tags.py:177 +#: picard/ui/ui_options_tags.py:164 msgid "ID3v2 Text Encoding" msgstr "" -#: picard/ui/ui_options_tags.py:178 +#: picard/ui/ui_options_tags.py:165 msgid "UTF-8" msgstr "UTF-8" -#: picard/ui/ui_options_tags.py:179 +#: picard/ui/ui_options_tags.py:166 msgid "UTF-16" msgstr "UTF-16" -#: picard/ui/ui_options_tags.py:180 +#: picard/ui/ui_options_tags.py:167 msgid "ISO-8859-1" msgstr "ISO-8859-1" -#: picard/ui/ui_options_tags.py:181 +#: picard/ui/ui_options_tags.py:168 msgid "Join multiple ID3v2.3 tags with:" msgstr "" -#: picard/ui/ui_options_tags.py:182 +#: picard/ui/ui_options_tags.py:169 msgid "" "

Default is '/' to maintain compatibility with previous" " Picard releases.

New alternatives are ';_' or '_/_' or type your own." "

" msgstr "" -#: picard/ui/ui_options_tags.py:183 +#: picard/ui/ui_options_tags.py:170 msgid "Also include ID3v1 tags in the files" msgstr "" -#: picard/ui/ui_passworddialog.py:72 +#: picard/ui/ui_passworddialog.py:68 msgid "Authentication required" msgstr "Zahtevana je overitev" -#: picard/ui/ui_passworddialog.py:75 +#: picard/ui/ui_passworddialog.py:71 msgid "Save username and password" msgstr "Shrani uporabniško ime in geslo" -#: picard/ui/ui_tagsfromfilenames.py:54 +#: picard/ui/ui_tagsfromfilenames.py:50 msgid "Convert File Names to Tags" msgstr "Pretvori imena datotek v oznake" -#: picard/ui/ui_tagsfromfilenames.py:55 +#: picard/ui/ui_tagsfromfilenames.py:51 msgid "Replace underscores with spaces" msgstr "Zamenjaj podčrtaje s presledkom" -#: picard/ui/ui_tagsfromfilenames.py:56 +#: picard/ui/ui_tagsfromfilenames.py:52 msgid "&Preview" msgstr "&Predogled" @@ -1759,7 +1647,11 @@ msgstr "Napredno" msgid "Regex Error" msgstr "" -#: picard/ui/options/cover.py:63 +#: picard/ui/options/cover.py:44 +msgid "title" +msgstr "" + +#: picard/ui/options/cover.py:68 msgid "Cover Art" msgstr "Naslovnica" @@ -1775,11 +1667,11 @@ msgstr "Uporabniški vmesnik" msgid "System default" msgstr "Sistemsko privzeto" -#: picard/ui/options/interface.py:96 +#: picard/ui/options/interface.py:98 msgid "Language changed" msgstr "Jezik zamenjan" -#: picard/ui/options/interface.py:96 +#: picard/ui/options/interface.py:99 msgid "" "You have changed the interface language. You have to restart Picard in order" " for the change to take effect." @@ -1801,31 +1693,35 @@ msgstr "Datoteka" msgid "Ratings" msgstr "" -#: picard/ui/options/releases.py:33 +#: picard/ui/options/releases.py:87 msgid "Preferred Releases" msgstr "" +#: picard/ui/options/releases.py:121 +msgid "Reset all" +msgstr "" + #: picard/ui/options/renaming.py:37 msgid "File Naming" msgstr "" -#: picard/ui/options/renaming.py:184 +#: picard/ui/options/renaming.py:187 msgid "Error" msgstr "Napaka" -#: picard/ui/options/renaming.py:184 +#: picard/ui/options/renaming.py:187 msgid "The location to move files to must not be empty." msgstr "Mesto za premik datotek ne sme biti prazno." -#: picard/ui/options/renaming.py:194 +#: picard/ui/options/renaming.py:197 msgid "The file naming format must not be empty." msgstr "Oblika imena datoteke ne sme biti prazna." -#: picard/ui/options/scripting.py:63 +#: picard/ui/options/scripting.py:99 msgid "Scripting" msgstr "" -#: picard/ui/options/scripting.py:95 +#: picard/ui/options/scripting.py:131 msgid "Script Error" msgstr "Napaka skripte" @@ -1945,199 +1841,199 @@ msgstr "ASIN" msgid "Grouping" msgstr "Združevanje" -#: picard/util/tags.py:40 +#: picard/util/tags.py:39 msgid "ISRC" msgstr "ISRC" -#: picard/util/tags.py:41 +#: picard/util/tags.py:40 msgid "Mood" msgstr "Počutje" -#: picard/util/tags.py:42 +#: picard/util/tags.py:41 msgid "BPM" msgstr "BPM" -#: picard/util/tags.py:43 +#: picard/util/tags.py:42 msgid "Copyright" msgstr "Avtorske pravice" -#: picard/util/tags.py:44 +#: picard/util/tags.py:43 msgid "License" msgstr "Licenca" -#: picard/util/tags.py:45 +#: picard/util/tags.py:44 msgid "Composer" msgstr "Skladatelj" -#: picard/util/tags.py:46 +#: picard/util/tags.py:45 msgid "Writer" msgstr "" -#: picard/util/tags.py:47 +#: picard/util/tags.py:46 msgid "Conductor" msgstr "Dirigent" -#: picard/util/tags.py:48 +#: picard/util/tags.py:47 msgid "Lyricist" msgstr "Pisec besedila" -#: picard/util/tags.py:49 +#: picard/util/tags.py:48 msgid "Arranger" msgstr "Aranžer" -#: picard/util/tags.py:50 +#: picard/util/tags.py:49 msgid "Producer" msgstr "Producent" -#: picard/util/tags.py:51 +#: picard/util/tags.py:50 msgid "Engineer" msgstr "&Odpri ..." -#: picard/util/tags.py:52 +#: picard/util/tags.py:51 msgid "Subtitle" msgstr "Podnaslov" -#: picard/util/tags.py:53 +#: picard/util/tags.py:52 msgid "Disc Subtitle" msgstr "Podnaslov diska" -#: picard/util/tags.py:54 +#: picard/util/tags.py:53 msgid "Remixer" msgstr "Remikser" -#: picard/util/tags.py:55 +#: picard/util/tags.py:54 msgid "MusicBrainz Recording Id" msgstr "" -#: picard/util/tags.py:56 +#: picard/util/tags.py:55 msgid "MusicBrainz Track Id" msgstr "" -#: picard/util/tags.py:57 +#: picard/util/tags.py:56 msgid "MusicBrainz Release Id" msgstr "MusicBrainz ID izdaje" -#: picard/util/tags.py:58 +#: picard/util/tags.py:57 msgid "MusicBrainz Artist Id" msgstr "MusicBrainz ID izvajalca" -#: picard/util/tags.py:59 +#: picard/util/tags.py:58 msgid "MusicBrainz Release Artist Id" msgstr "MusicBrainz ID izvajalca izdaje" -#: picard/util/tags.py:60 +#: picard/util/tags.py:59 msgid "MusicBrainz Work Id" msgstr "" -#: picard/util/tags.py:61 +#: picard/util/tags.py:60 msgid "MusicBrainz Release Group Id" msgstr "" -#: picard/util/tags.py:62 +#: picard/util/tags.py:61 msgid "MusicBrainz Disc Id" msgstr "MusicBrainz ID diska" -#: picard/util/tags.py:63 -msgid "MusicBrainz Sort Name" -msgstr "" - -#: picard/util/tags.py:64 +#: picard/util/tags.py:62 msgid "MusicIP PUID" msgstr "MusicIP PUID" -#: picard/util/tags.py:65 +#: picard/util/tags.py:63 msgid "MusicIP Fingerprint" msgstr "MusicIP prstni odtis" -#: picard/util/tags.py:66 +#: picard/util/tags.py:64 msgid "AcoustID" msgstr "AcoustID" -#: picard/util/tags.py:67 +#: picard/util/tags.py:65 msgid "AcoustID Fingerprint" msgstr "" -#: picard/util/tags.py:68 +#: picard/util/tags.py:66 msgid "Disc Id" msgstr "ID diska" -#: picard/util/tags.py:69 -msgid "Website" -msgstr "spletna stran" +#: picard/util/tags.py:67 +msgid "Artist Website" +msgstr "" -#: picard/util/tags.py:70 +#: picard/util/tags.py:68 msgid "Compilation (iTunes)" msgstr "" -#: picard/util/tags.py:71 +#: picard/util/tags.py:69 msgid "Comment" msgstr "Komentar" -#: picard/util/tags.py:72 +#: picard/util/tags.py:70 msgid "Genre" msgstr "Žanr" -#: picard/util/tags.py:73 +#: picard/util/tags.py:71 msgid "Encoded By" msgstr "Zakodiral" -#: picard/util/tags.py:74 +#: picard/util/tags.py:72 +msgid "Encoder Settings" +msgstr "" + +#: picard/util/tags.py:73 msgid "Performer" msgstr "Izvajalec" -#: picard/util/tags.py:75 +#: picard/util/tags.py:74 msgid "Release Type" msgstr "Tip izdaje" -#: picard/util/tags.py:76 +#: picard/util/tags.py:75 msgid "Release Status" msgstr "Status izdaje" -#: picard/util/tags.py:77 +#: picard/util/tags.py:76 msgid "Release Country" msgstr "Država izdaje" -#: picard/util/tags.py:78 +#: picard/util/tags.py:77 msgid "Record Label" msgstr "Založba" -#: picard/util/tags.py:80 +#: picard/util/tags.py:79 msgid "Catalog Number" msgstr "Kataložna številka" -#: picard/util/tags.py:82 +#: picard/util/tags.py:80 msgid "DJ-Mixer" msgstr "" -#: picard/util/tags.py:83 +#: picard/util/tags.py:81 msgid "Media" msgstr "Nosilec" -#: picard/util/tags.py:84 +#: picard/util/tags.py:82 msgid "Lyrics" msgstr "Besedila skladbe" -#: picard/util/tags.py:85 +#: picard/util/tags.py:83 msgid "Mixer" msgstr "Mikser" -#: picard/util/tags.py:86 +#: picard/util/tags.py:84 msgid "Language" msgstr "Jezik" -#: picard/util/tags.py:87 +#: picard/util/tags.py:85 msgid "Script" msgstr "" -#: picard/util/tags.py:89 +#: picard/util/tags.py:87 msgid "Rating" msgstr "" -#: picard/util/tags.py:90 +#: picard/util/tags.py:88 msgid "Artists" msgstr "" -#: picard/util/tags.py:91 +#: picard/util/tags.py:89 msgid "Work" msgstr "" diff --git a/po/sv.po b/po/sv.po index 7327bacc7..23cd43359 100644 --- a/po/sv.po +++ b/po/sv.po @@ -12,8 +12,8 @@ msgid "" msgstr "" "Project-Id-Version: MusicBrainz\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2014-03-20 11:12+0100\n" -"PO-Revision-Date: 2014-03-21 08:44+0000\n" +"POT-Creation-Date: 2014-05-03 17:28+0200\n" +"PO-Revision-Date: 2014-05-04 08:44+0000\n" "Last-Translator: nikki\n" "Language-Team: Swedish (http://www.transifex.com/projects/p/musicbrainz/language/sv/)\n" "MIME-Version: 1.0\n" @@ -23,6 +23,10 @@ msgstr "" "Language: sv\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" +#: contrib/plugins/albumartist_website.py:3 +msgid "Album Artist Website" +msgstr "" + #: contrib/plugins/no_release.py:50 msgid "Enable plugin for all releases by default" msgstr "" @@ -35,63 +39,55 @@ msgstr "" msgid "Remove specific release information..." msgstr "" -#: contrib/plugins/open_in_gui.py:32 -msgid "Open Error" -msgstr "Öppningsfel" - -#: contrib/plugins/open_in_gui.py:32 -#, python-format -msgid "" -"Error while opening file:\n" -"\n" -"%s" +#: contrib/plugins/standardise_performers.py:3 +msgid "Standardise Performers" msgstr "" -#: contrib/plugins/lastfm/ui_options_lastfm.py:117 +#: contrib/plugins/lastfm/ui_options_lastfm.py:99 msgid "Last.fm" msgstr "Last.fm" -#: contrib/plugins/lastfm/ui_options_lastfm.py:118 +#: contrib/plugins/lastfm/ui_options_lastfm.py:100 msgid "Use track tags" msgstr "" -#: contrib/plugins/lastfm/ui_options_lastfm.py:119 +#: contrib/plugins/lastfm/ui_options_lastfm.py:101 msgid "Use artist tags" msgstr "" -#: contrib/plugins/lastfm/ui_options_lastfm.py:120 +#: contrib/plugins/lastfm/ui_options_lastfm.py:102 #: picard/ui/options/tags.py:30 msgid "Tags" msgstr "Taggar" -#: contrib/plugins/lastfm/ui_options_lastfm.py:121 -#: picard/ui/ui_options_folksonomy.py:116 +#: contrib/plugins/lastfm/ui_options_lastfm.py:103 +#: picard/ui/ui_options_folksonomy.py:103 msgid "Ignore tags:" msgstr "Ignorera taggar:" -#: contrib/plugins/lastfm/ui_options_lastfm.py:122 -#: picard/ui/ui_options_folksonomy.py:121 +#: contrib/plugins/lastfm/ui_options_lastfm.py:104 +#: picard/ui/ui_options_folksonomy.py:108 msgid "Join multiple tags with:" msgstr "Sammanfoga taggar med:" -#: contrib/plugins/lastfm/ui_options_lastfm.py:123 -#: picard/ui/ui_options_folksonomy.py:122 +#: contrib/plugins/lastfm/ui_options_lastfm.py:105 +#: picard/ui/ui_options_folksonomy.py:109 msgid " / " msgstr " / " -#: contrib/plugins/lastfm/ui_options_lastfm.py:124 -#: picard/ui/ui_options_folksonomy.py:123 +#: contrib/plugins/lastfm/ui_options_lastfm.py:106 +#: picard/ui/ui_options_folksonomy.py:110 msgid ", " msgstr ", " -#: contrib/plugins/lastfm/ui_options_lastfm.py:125 -#: picard/ui/ui_options_folksonomy.py:118 +#: contrib/plugins/lastfm/ui_options_lastfm.py:107 +#: picard/ui/ui_options_folksonomy.py:105 msgid "Minimal tag usage:" msgstr "Minimal tagganvändning:" -#: contrib/plugins/lastfm/ui_options_lastfm.py:126 -#: picard/ui/ui_options_folksonomy.py:119 picard/ui/ui_options_matching.py:88 -#: picard/ui/ui_options_matching.py:89 picard/ui/ui_options_matching.py:90 +#: contrib/plugins/lastfm/ui_options_lastfm.py:108 +#: picard/ui/ui_options_folksonomy.py:106 picard/ui/ui_options_matching.py:75 +#: picard/ui/ui_options_matching.py:76 picard/ui/ui_options_matching.py:77 msgid " %" msgstr " %" @@ -99,420 +95,307 @@ msgstr " %" msgid "Calculate replay &gain..." msgstr "" -#: contrib/plugins/replaygain/__init__.py:66 +#: contrib/plugins/replaygain/__init__.py:67 #, python-format -msgid "Calculating replay gain for \"%s\"..." +msgid "Calculating replay gain for \"%(filename)s\"..." msgstr "" -#: contrib/plugins/replaygain/__init__.py:71 +#: contrib/plugins/replaygain/__init__.py:75 #, python-format -msgid "Replay gain for \"%s\" successfully calculated." +msgid "Replay gain for \"%(filename)s\" successfully calculated." msgstr "" -#: contrib/plugins/replaygain/__init__.py:73 +#: contrib/plugins/replaygain/__init__.py:80 #, python-format -msgid "Could not calculate replay gain for \"%s\"." +msgid "Could not calculate replay gain for \"%(filename)s\"." msgstr "" -#: contrib/plugins/replaygain/__init__.py:76 +#: contrib/plugins/replaygain/__init__.py:85 msgid "Calculate album &gain..." msgstr "" -#: contrib/plugins/replaygain/__init__.py:103 -#: contrib/plugins/replaygain/__init__.py:111 +#: contrib/plugins/replaygain/__init__.py:113 +#: contrib/plugins/replaygain/__init__.py:124 #, python-format -msgid "Calculating album gain for \"%s\"..." +msgid "Calculating album gain for \"%(album)s\"..." msgstr "" -#: contrib/plugins/replaygain/__init__.py:119 +#: contrib/plugins/replaygain/__init__.py:135 #, python-format -msgid "Album gain for \"%s\" successfully calculated." +msgid "Album gain for \"%(album)s\" successfully calculated." msgstr "" -#: contrib/plugins/replaygain/__init__.py:121 +#: contrib/plugins/replaygain/__init__.py:140 #, python-format -msgid "Could not calculate album gain for \"%s\"." +msgid "Could not calculate album gain for \"%(album)s\"." msgstr "" -#: picard/acoustid.py:102 -#, python-format -msgid "AcoustID lookup network error for '%s'!" +#: contrib/plugins/replaygain/ui_options_replaygain.py:59 +msgid "Replay Gain" msgstr "" -#: picard/acoustid.py:117 -#, python-format -msgid "AcoustID lookup failed for '%s'!" +#: contrib/plugins/replaygain/ui_options_replaygain.py:60 +msgid "Path to VorbisGain:" msgstr "" -#: picard/acoustid.py:128 -#, python-format -msgid "Acoustid lookup returned no result for file '%s'" +#: contrib/plugins/replaygain/ui_options_replaygain.py:61 +msgid "Path to MP3Gain:" msgstr "" -#: picard/acoustid.py:132 -#, python-format -msgid "Looking up the fingerprint for file %s..." -msgstr "Slår upp fingeravtrycket för fil %s..." - -#: picard/acoustidmanager.py:78 -msgid "Submitting AcoustIDs..." -msgstr "Skickar in AcoustIDn..." - -#: picard/acoustidmanager.py:83 -#, python-format -msgid "AcoustID submission failed with error '%s'" +#: contrib/plugins/replaygain/ui_options_replaygain.py:62 +msgid "Path to metaflac:" msgstr "" -#: picard/acoustidmanager.py:85 +#: contrib/plugins/replaygain/ui_options_replaygain.py:63 +msgid "Path to wvgain:" +msgstr "" + +#: contrib/plugins/viewvariables/__init__.py:42 +#, python-format +msgid "File: %s" +msgstr "" + +#: contrib/plugins/viewvariables/__init__.py:47 +#, python-format +msgid "Track: %s %s " +msgstr "" + +#: contrib/plugins/viewvariables/__init__.py:49 +msgid "Variables" +msgstr "" + +#: contrib/plugins/viewvariables/__init__.py:69 +msgid "File variables" +msgstr "" + +#: contrib/plugins/viewvariables/__init__.py:74 +msgid "Hidden variables" +msgstr "" + +#: contrib/plugins/viewvariables/__init__.py:79 +msgid "Tag variables" +msgstr "" + +#: contrib/plugins/viewvariables/ui_variables_dialog.py:73 +msgid "Variable" +msgstr "" + +#: contrib/plugins/viewvariables/ui_variables_dialog.py:75 +msgid "Value" +msgstr "" + +#: picard/acoustid.py:109 +#, python-format +msgid "AcoustID lookup network error for '%(filename)s'!" +msgstr "" + +#: picard/acoustid.py:133 +#, python-format +msgid "AcoustID lookup failed for '%(filename)s'!" +msgstr "" + +#: picard/acoustid.py:155 +#, python-format +msgid "AcoustID lookup returned no result for file '%(filename)s'" +msgstr "" + +#: picard/acoustid.py:166 +#, python-format +msgid "Looking up the fingerprint for file '%(filename)s' ..." +msgstr "" + +#: picard/acoustidmanager.py:80 +msgid "Submitting AcoustIDs ..." +msgstr "" + +#: picard/acoustidmanager.py:94 +#, python-format +msgid "AcoustID submission failed with error '%(error)s'" +msgstr "" + +#: picard/acoustidmanager.py:102 msgid "AcoustIDs successfully submitted." msgstr "" -#: picard/album.py:64 picard/cluster.py:234 +#: picard/album.py:65 picard/cluster.py:255 msgid "Unmatched Files" msgstr "Omatchade filer" -#: picard/album.py:187 +#: picard/album.py:188 #, python-format msgid "[could not load album %s]" msgstr "[kunde inte ladda album %s]" -#: picard/album.py:272 +#: picard/album.py:277 #, python-format -msgid "Album %s loaded" -msgstr "Album %s laddat" +msgid "Album %(id)s loaded: %(artist)s - %(album)s" +msgstr "" -#: picard/album.py:288 +#: picard/album.py:294 +#, python-format +msgid "Loading album %(id)s ..." +msgstr "" + +#: picard/album.py:303 msgid "[loading album information]" msgstr "[hämtar albuminformation]" -#: picard/album.py:463 +#: picard/album.py:478 #, python-format msgid "; %i image" msgid_plural "; %i images" msgstr[0] "" msgstr[1] "" -#: picard/cluster.py:150 picard/cluster.py:159 +#: picard/cluster.py:155 picard/cluster.py:168 #, python-format -msgid "No matching releases for cluster %s" -msgstr "Inga matchande utgåvor för kluster %s" - -#: picard/cluster.py:161 -#, python-format -msgid "Cluster %s identified!" -msgstr "Kluster %s identifierat!" - -#: picard/cluster.py:168 -#, python-format -msgid "Looking up the metadata for cluster %s..." -msgstr "Slår upp metadata för kluster %s..." - -#: picard/collection.py:60 -#, python-format -msgid "Added %i release to collection \"%s\"" -msgid_plural "Added %i releases to collection \"%s\"" -msgstr[0] "" -msgstr[1] "" - -#: picard/collection.py:72 -#, python-format -msgid "Removed %i release from collection \"%s\"" -msgid_plural "Removed %i releases from collection \"%s\"" -msgstr[0] "" -msgstr[1] "" - -#: picard/collection.py:81 -#, python-format -msgid "Error loading collections: %s" +msgid "No matching releases for cluster %(album)s" msgstr "" -#: picard/config_upgrade.py:57 picard/config_upgrade.py:70 +#: picard/cluster.py:174 +#, python-format +msgid "Cluster %(album)s identified!" +msgstr "" + +#: picard/cluster.py:185 +#, python-format +msgid "Looking up the metadata for cluster %(album)s..." +msgstr "" + +#: picard/collection.py:64 +#, python-format +msgid "Added %(count)i release to collection \"%(name)s\"" +msgid_plural "Added %(count)i releases to collection \"%(name)s\"" +msgstr[0] "" +msgstr[1] "" + +#: picard/collection.py:86 +#, python-format +msgid "Removed %(count)i release from collection \"%(name)s\"" +msgid_plural "Removed %(count)i releases from collection \"%(name)s\"" +msgstr[0] "" +msgstr[1] "" + +#: picard/collection.py:100 +#, python-format +msgid "Error loading collections: %(error)s" +msgstr "" + +#: picard/config_upgrade.py:58 picard/config_upgrade.py:71 msgid "Various Artists file naming scheme removal" msgstr "" -#: picard/config_upgrade.py:58 +#: picard/config_upgrade.py:59 msgid "" "The separate file naming scheme for various artists albums has been removed in this version of Picard.\n" "Your file naming scheme has automatically been merged with that of single artist albums." msgstr "" -#: picard/config_upgrade.py:71 +#: picard/config_upgrade.py:72 msgid "" "The separate file naming scheme for various artists albums has been removed in this version of Picard.\n" "You currently do not use this option, but have a separate file naming scheme defined.\n" "Do you want to remove it or merge it with your file naming scheme for single artist albums?" msgstr "" -#: picard/config_upgrade.py:77 +#: picard/config_upgrade.py:78 msgid "Merge" msgstr "Sammanfoga" -#: picard/config_upgrade.py:77 picard/ui/metadatabox.py:254 +#: picard/config_upgrade.py:78 picard/ui/metadatabox.py:254 msgid "Remove" msgstr "Radera" -#: picard/const.py:67 -msgid "CD" -msgstr "CD" - -#: picard/const.py:68 -msgid "CD-R" -msgstr "CD-R" - -#: picard/const.py:69 -msgid "HDCD" -msgstr "HDCD" - -#: picard/const.py:70 -msgid "8cm CD" -msgstr "8cm CD" - -#: picard/const.py:71 -msgid "Vinyl" -msgstr "Vinyl" - -#: picard/const.py:72 -msgid "7\" Vinyl" -msgstr "7\" Vinyl" - -#: picard/const.py:73 -msgid "10\" Vinyl" -msgstr "10\" Vinyl" - -#: picard/const.py:74 -msgid "12\" Vinyl" -msgstr "12\" Vinyl" - -#: picard/const.py:75 -msgid "Digital Media" -msgstr "Digitalt media" - -#: picard/const.py:76 -msgid "USB Flash Drive" -msgstr "USB-minne" - -#: picard/const.py:77 -msgid "slotMusic" -msgstr "slotMusic" - -#: picard/const.py:78 -msgid "Cassette" -msgstr "Kassett" - -#: picard/const.py:79 -msgid "DVD" -msgstr "DVD" - -#: picard/const.py:80 -msgid "DVD-Audio" -msgstr "DVD-Audio" - -#: picard/const.py:81 -msgid "DVD-Video" -msgstr "DVD-Video" - -#: picard/const.py:82 -msgid "SACD" -msgstr "SACD" - -#: picard/const.py:83 -msgid "DualDisc" -msgstr "DualDisc" - -#: picard/const.py:84 -msgid "MiniDisc" -msgstr "MiniDisc" - -#: picard/const.py:85 -msgid "Blu-ray" -msgstr "Blu-ray" - -#: picard/const.py:86 -msgid "HD-DVD" -msgstr "HD-DVD" - -#: picard/const.py:87 -msgid "Videotape" -msgstr "Videoband" - -#: picard/const.py:88 -msgid "VHS" -msgstr "VHS" - -#: picard/const.py:89 -msgid "Betamax" -msgstr "Betamax" - #: picard/const.py:90 -msgid "VCD" -msgstr "VCD" - -#: picard/const.py:91 -msgid "SVCD" -msgstr "SVCD" - -#: picard/const.py:92 -msgid "UMD" -msgstr "UMD" - -#: picard/const.py:93 picard/coverartarchive.py:33 -#: picard/ui/ui_options_releases.py:226 -msgid "Other" -msgstr "Övriga" - -#: picard/const.py:94 -msgid "LaserDisc" -msgstr "LaserDisc" - -#: picard/const.py:95 -msgid "Cartridge" -msgstr "Alternativ" - -#: picard/const.py:96 -msgid "Reel-to-reel" -msgstr "Rullband" - -#: picard/const.py:97 -msgid "DAT" -msgstr "DAT" - -#: picard/const.py:98 -msgid "Wax Cylinder" -msgstr "Vaxcylinder" - -#: picard/const.py:99 -msgid "Piano Roll" -msgstr "Pianorulle" - -#: picard/const.py:100 -msgid "DCC" -msgstr "DCC" - -#: picard/const.py:115 msgid "Danish" msgstr "Danska" -#: picard/const.py:116 +#: picard/const.py:91 msgid "German" msgstr "Tyska" -#: picard/const.py:118 +#: picard/const.py:93 msgid "English" msgstr "Engelska" -#: picard/const.py:119 +#: picard/const.py:94 msgid "English (Canada)" msgstr "Engelska (Kanada)" -#: picard/const.py:120 +#: picard/const.py:95 msgid "English (UK)" msgstr "Engelska (UK)" -#: picard/const.py:122 +#: picard/const.py:97 msgid "Spanish" msgstr "Spanska" -#: picard/const.py:123 +#: picard/const.py:98 msgid "Estonian" msgstr "Estniska" -#: picard/const.py:125 +#: picard/const.py:100 msgid "Finnish" msgstr "Finska" -#: picard/const.py:127 +#: picard/const.py:102 msgid "French" msgstr "Franska" -#: picard/const.py:136 +#: picard/const.py:111 msgid "Italian" msgstr "Italienska" -#: picard/const.py:143 +#: picard/const.py:118 msgid "Dutch" msgstr "Nederländska" -#: picard/const.py:145 +#: picard/const.py:120 msgid "Polish" msgstr "Polska" -#: picard/const.py:147 +#: picard/const.py:122 msgid "Brazilian Portuguese" msgstr "Brasiliansk portugisiska" -#: picard/const.py:154 +#: picard/const.py:129 msgid "Swedish" msgstr "Svenska" -#: picard/coverart.py:84 +#: picard/coverart.py:85 #, python-format -msgid "Coverart %s downloaded" -msgstr "Omslagsgrafik %s nerladdad" +msgid "Cover art of type '%(type)s' downloaded for %(albumid)s from %(host)s" +msgstr "" -#: picard/coverart.py:240 +#: picard/coverart.py:256 #, python-format -msgid "Downloading http://%s:%i%s" -msgstr "Laddar ner http://%s:%i%s" - -#: picard/coverartarchive.py:24 -msgid "Front" -msgstr "Framsida" - -#: picard/coverartarchive.py:25 -msgid "Back" -msgstr "Baksida" - -#: picard/coverartarchive.py:26 -msgid "Booklet" -msgstr "Häfte" - -#: picard/coverartarchive.py:27 -msgid "Medium" -msgstr "Media" - -#: picard/coverartarchive.py:28 -msgid "Tray" -msgstr "Fack" - -#: picard/coverartarchive.py:29 -msgid "Obi" -msgstr "Obi" +msgid "" +"Downloading cover art of type '%(type)s' for %(albumid)s from %(host)s .." +msgstr "" #: picard/coverartarchive.py:30 -msgid "Spine" -msgstr "Rygg" - -#: picard/coverartarchive.py:31 picard/ui/mainwindow.py:546 -msgid "Track" -msgstr "Spår" - -#: picard/coverartarchive.py:32 -msgid "Sticker" -msgstr "Klistermärke" - -#: picard/coverartarchive.py:34 msgid "Unknown" msgstr "Okänd" -#: picard/file.py:536 +#: picard/file.py:494 #, python-format -msgid "No matching tracks for file %s" -msgstr "Inga matchande spår för fil %s" +msgid "No matching tracks for file '%(filename)s'" +msgstr "" -#: picard/file.py:548 +#: picard/file.py:510 #, python-format -msgid "No matching tracks above the threshold for file %s" -msgstr "Filen %s matchar inga spår över tröskelvärdet" +msgid "No matching tracks above the threshold for file '%(filename)s'" +msgstr "" -#: picard/file.py:551 +#: picard/file.py:517 #, python-format -msgid "File %s identified!" -msgstr "Fil %s identifierad!" +msgid "File '%(filename)s' identified!" +msgstr "" -#: picard/file.py:567 +#: picard/file.py:537 #, python-format -msgid "Looking up the metadata for file %s..." -msgstr "Slår upp metadata för fil %s..." +msgid "Looking up the metadata for file %(filename)s ..." +msgstr "" #: picard/releasegroup.py:53 msgid "Tracks" @@ -522,11 +405,11 @@ msgstr "" msgid "Year" msgstr "" -#: picard/releasegroup.py:55 picard/ui/cdlookup.py:34 +#: picard/releasegroup.py:55 picard/ui/cdlookup.py:35 msgid "Country" msgstr "Land" -#: picard/releasegroup.py:56 picard/util/tags.py:81 +#: picard/releasegroup.py:56 msgid "Format" msgstr "Format" @@ -546,16 +429,23 @@ msgstr "[ingen streckkod]" msgid "[no release info]" msgstr "[ingen information om utgåva]" -#: picard/tagger.py:316 +#: picard/tagger.py:370 #, python-format -msgid "Loading directory %s" -msgstr "Laddar katalog %s" +msgid "Adding %(count)d file from '%(directory)s' ..." +msgid_plural "Adding %(count)d files from '%(directory)s' ..." +msgstr[0] "" +msgstr[1] "" -#: picard/tagger.py:452 +#: picard/tagger.py:512 +#, python-format +msgid "Removing album %(id)s: %(artist)s - %(album)s" +msgstr "" + +#: picard/tagger.py:528 msgid "CD Lookup Error" msgstr "Fel vid uppslagning av cd" -#: picard/tagger.py:453 +#: picard/tagger.py:529 #, python-format msgid "" "Error while reading CD:\n" @@ -563,44 +453,43 @@ msgid "" "%s" msgstr "Fel vid läsning av cd:\n\n%s" -#: picard/ui/cdlookup.py:34 picard/ui/mainwindow.py:544 -#: picard/ui/ui_options_releases.py:216 picard/util/tags.py:21 +#: picard/ui/cdlookup.py:35 picard/ui/mainwindow.py:597 picard/util/tags.py:21 msgid "Album" msgstr "Album" -#: picard/ui/cdlookup.py:34 picard/ui/itemviews.py:96 -#: picard/ui/mainwindow.py:545 picard/util/tags.py:22 +#: picard/ui/cdlookup.py:35 picard/ui/itemviews.py:96 +#: picard/ui/mainwindow.py:598 picard/util/tags.py:22 msgid "Artist" msgstr "Artist" -#: picard/ui/cdlookup.py:34 picard/util/tags.py:24 +#: picard/ui/cdlookup.py:35 picard/util/tags.py:24 msgid "Date" msgstr "Datum" -#: picard/ui/cdlookup.py:35 +#: picard/ui/cdlookup.py:36 msgid "Labels" msgstr "Etiketter" -#: picard/ui/cdlookup.py:35 +#: picard/ui/cdlookup.py:36 msgid "Catalog #s" msgstr "Katalog #s" -#: picard/ui/cdlookup.py:35 picard/util/tags.py:79 +#: picard/ui/cdlookup.py:36 picard/util/tags.py:78 msgid "Barcode" msgstr "Streckkod" -#: picard/ui/collectionmenu.py:31 +#: picard/ui/collectionmenu.py:42 msgid "Refresh List" msgstr "Uppdatera lista" -#: picard/ui/collectionmenu.py:92 +#: picard/ui/collectionmenu.py:86 #, python-format msgid "%s (%i release)" msgid_plural "%s (%i releases)" msgstr[0] "" msgstr[1] "" -#: picard/ui/coverartbox.py:142 +#: picard/ui/coverartbox.py:141 msgid "View release on MusicBrainz" msgstr "Visa utgåva på MusicBrainz" @@ -616,59 +505,59 @@ msgstr "Visa dolda &filer" msgid "&Set as starting directory" msgstr "&Sätt som startkatalog" -#: picard/ui/infodialog.py:36 picard/ui/infodialog.py:75 +#: picard/ui/infodialog.py:37 picard/ui/infodialog.py:80 msgid "Info" msgstr "Info" -#: picard/ui/infodialog.py:80 +#: picard/ui/infodialog.py:85 msgid "Filename:" msgstr "Filnamn:" -#: picard/ui/infodialog.py:82 +#: picard/ui/infodialog.py:87 msgid "Format:" msgstr "Format:" -#: picard/ui/infodialog.py:86 +#: picard/ui/infodialog.py:91 msgid "Size:" msgstr "Storlek:" -#: picard/ui/infodialog.py:90 +#: picard/ui/infodialog.py:95 msgid "Length:" msgstr "Längd:" -#: picard/ui/infodialog.py:92 +#: picard/ui/infodialog.py:97 msgid "Bitrate:" msgstr "Bitfrekvens:" -#: picard/ui/infodialog.py:94 +#: picard/ui/infodialog.py:99 msgid "Sample rate:" msgstr "Samplingsfrekvens:" -#: picard/ui/infodialog.py:96 +#: picard/ui/infodialog.py:101 msgid "Bits per sample:" msgstr "Bitar per sampling:" -#: picard/ui/infodialog.py:100 +#: picard/ui/infodialog.py:105 msgid "Mono" msgstr "Mono" -#: picard/ui/infodialog.py:102 +#: picard/ui/infodialog.py:107 msgid "Stereo" msgstr "Stereo" -#: picard/ui/infodialog.py:105 +#: picard/ui/infodialog.py:110 msgid "Channels:" msgstr "Kanaler:" -#: picard/ui/infodialog.py:116 +#: picard/ui/infodialog.py:121 msgid "Album Info" msgstr "Albuminfo" -#: picard/ui/infodialog.py:124 +#: picard/ui/infodialog.py:129 msgid "&Errors" msgstr "&Fel" -#: picard/ui/infodialog.py:134 picard/ui/ui_infodialog.py:77 +#: picard/ui/infodialog.py:139 picard/ui/ui_infodialog.py:73 msgid "&Info" msgstr "&Information" @@ -692,7 +581,7 @@ msgstr "" msgid "Title" msgstr "Titel" -#: picard/ui/itemviews.py:95 picard/util/tags.py:88 +#: picard/ui/itemviews.py:95 picard/util/tags.py:86 msgid "Length" msgstr "Längd" @@ -717,8 +606,8 @@ msgid "Collections" msgstr "Samlingar" #: picard/ui/itemviews.py:365 -msgid "&Plugins" -msgstr "&Insticksmoduler" +msgid "P&lugins" +msgstr "" #: picard/ui/itemviews.py:541 msgid "file view" @@ -740,13 +629,17 @@ msgstr "albumvy" msgid "Contains albums and matched files" msgstr "" -#: picard/ui/logview.py:91 +#: picard/ui/logview.py:109 msgid "Log" msgstr "Logg" -#: picard/ui/logview.py:99 -msgid "Status History" -msgstr "Statushistorik" +#: picard/ui/logview.py:113 +msgid "Debug mode" +msgstr "" + +#: picard/ui/logview.py:134 +msgid "Activity History" +msgstr "" #: picard/ui/mainwindow.py:74 msgid "MusicBrainz Picard" @@ -779,276 +672,309 @@ msgstr "Klar" #: picard/ui/mainwindow.py:220 msgid "" -"Picard listens on a port to integrate with your browser and downloads " -"release information when you click the \"Tagger\" buttons on the MusicBrainz" -" website" +"Picard listens on this port to integrate with your browser. When you " +"\"Search\" or \"Open in Browser\" from Picard, clicking the \"Tagger\" " +"button on the web page loads the release into Picard." msgstr "" -#: picard/ui/mainwindow.py:240 +#: picard/ui/mainwindow.py:243 #, python-format msgid " Listening on port %(port)d " msgstr "Lyssnar på port %(port)d" -#: picard/ui/mainwindow.py:263 +#: picard/ui/mainwindow.py:299 msgid "Submission Error" msgstr "Fel vid inrapportering" -#: picard/ui/mainwindow.py:264 +#: picard/ui/mainwindow.py:300 msgid "" "You need to configure your AcoustID API key before you can submit " "fingerprints." msgstr "Du behöver konfigurera din AcoustID API-nyckel innan du kan skicka in fingeravtryck." -#: picard/ui/mainwindow.py:269 +#: picard/ui/mainwindow.py:305 msgid "&Options..." msgstr "&Alternativ..." -#: picard/ui/mainwindow.py:273 +#: picard/ui/mainwindow.py:309 msgid "&Cut" msgstr "Klipp &ut" -#: picard/ui/mainwindow.py:278 +#: picard/ui/mainwindow.py:314 msgid "&Paste" msgstr "Klistra &in" -#: picard/ui/mainwindow.py:283 +#: picard/ui/mainwindow.py:319 msgid "&Help..." msgstr "&Hjälp..." -#: picard/ui/mainwindow.py:288 +#: picard/ui/mainwindow.py:323 msgid "&About..." msgstr "&Om..." -#: picard/ui/mainwindow.py:292 +#: picard/ui/mainwindow.py:327 msgid "&Donate..." msgstr "&Donera..." -#: picard/ui/mainwindow.py:295 +#: picard/ui/mainwindow.py:330 msgid "&Report a Bug..." msgstr "&Rapportera en bugg..." -#: picard/ui/mainwindow.py:298 +#: picard/ui/mainwindow.py:333 msgid "&Support Forum..." msgstr "&Supportforum..." -#: picard/ui/mainwindow.py:301 +#: picard/ui/mainwindow.py:336 msgid "&Add Files..." msgstr "Lägg till &filer..." -#: picard/ui/mainwindow.py:302 +#: picard/ui/mainwindow.py:337 msgid "Add files to the tagger" msgstr "Lägg till filer i musiktaggaren" -#: picard/ui/mainwindow.py:307 +#: picard/ui/mainwindow.py:342 msgid "A&dd Folder..." msgstr "Lägg till &mapp..." -#: picard/ui/mainwindow.py:308 +#: picard/ui/mainwindow.py:343 msgid "Add a folder to the tagger" msgstr "Lägg till en mapp i musiktaggaren" -#: picard/ui/mainwindow.py:310 +#: picard/ui/mainwindow.py:345 msgid "Ctrl+D" msgstr "Ctrl+D" -#: picard/ui/mainwindow.py:313 +#: picard/ui/mainwindow.py:348 msgid "&Save" msgstr "&Spara" -#: picard/ui/mainwindow.py:314 +#: picard/ui/mainwindow.py:349 msgid "Save selected files" msgstr "Spara markerade filer" -#: picard/ui/mainwindow.py:320 +#: picard/ui/mainwindow.py:355 msgid "S&ubmit" msgstr "Skicka in" -#: picard/ui/mainwindow.py:321 -msgid "Submit fingerprints" -msgstr "Skicka in fingeravtryck" +#: picard/ui/mainwindow.py:356 +msgid "Submit acoustic fingerprints" +msgstr "" -#: picard/ui/mainwindow.py:325 +#: picard/ui/mainwindow.py:360 msgid "E&xit" msgstr "&Avsluta" -#: picard/ui/mainwindow.py:328 +#: picard/ui/mainwindow.py:363 msgid "Ctrl+Q" msgstr "Ctrl+Q" -#: picard/ui/mainwindow.py:331 +#: picard/ui/mainwindow.py:366 msgid "&Remove" msgstr "&Ta bort" -#: picard/ui/mainwindow.py:332 +#: picard/ui/mainwindow.py:367 msgid "Remove selected files/albums" msgstr "Ta bort markerade filer/album" -#: picard/ui/mainwindow.py:336 +#: picard/ui/mainwindow.py:371 msgid "Lookup in &Browser" msgstr "Slå upp i webbläsare" -#: picard/ui/mainwindow.py:337 +#: picard/ui/mainwindow.py:372 msgid "Lookup selected item on MusicBrainz website" msgstr "Leta up det markerade objektet på MusicBrainz sida" -#: picard/ui/mainwindow.py:341 +#: picard/ui/mainwindow.py:376 msgid "File &Browser" msgstr "Fil&bläddrare" -#: picard/ui/mainwindow.py:345 +#: picard/ui/mainwindow.py:380 msgid "Ctrl+B" msgstr "Ctrl+B" -#: picard/ui/mainwindow.py:348 +#: picard/ui/mainwindow.py:383 msgid "&Cover Art" msgstr "&Omslagsgrafik" -#: picard/ui/mainwindow.py:354 picard/ui/mainwindow.py:539 +#: picard/ui/mainwindow.py:389 picard/ui/mainwindow.py:591 msgid "Search" msgstr "Sök" -#: picard/ui/mainwindow.py:357 -msgid "&CD Lookup..." -msgstr "&CD-uppslagning" +#: picard/ui/mainwindow.py:392 +msgid "Lookup &CD..." +msgstr "" -#: picard/ui/mainwindow.py:358 picard/ui/mainwindow.py:359 -msgid "Lookup CD" -msgstr "Slå upp cd" +#: picard/ui/mainwindow.py:393 +msgid "Lookup the details of the CD in your drive" +msgstr "" -#: picard/ui/mainwindow.py:361 +#: picard/ui/mainwindow.py:395 msgid "Ctrl+K" msgstr "Ctrl+K" -#: picard/ui/mainwindow.py:364 +#: picard/ui/mainwindow.py:398 msgid "&Scan" msgstr "Lä&s in" -#: picard/ui/mainwindow.py:367 +#: picard/ui/mainwindow.py:401 msgid "Ctrl+Y" msgstr "Ctrl+Y" -#: picard/ui/mainwindow.py:370 +#: picard/ui/mainwindow.py:404 msgid "Cl&uster" msgstr "Kl&uster" -#: picard/ui/mainwindow.py:373 +#: picard/ui/mainwindow.py:407 msgid "Ctrl+U" msgstr "Ctrl+U" -#: picard/ui/mainwindow.py:376 +#: picard/ui/mainwindow.py:410 msgid "&Lookup" msgstr "S&lå upp" -#: picard/ui/mainwindow.py:377 picard/ui/mainwindow.py:378 -msgid "Lookup metadata" -msgstr "Slå upp metadata" +#: picard/ui/mainwindow.py:411 +msgid "Lookup selected items in MusicBrainz" +msgstr "" -#: picard/ui/mainwindow.py:381 +#: picard/ui/mainwindow.py:416 msgid "Ctrl+L" msgstr "Ctrl+L" -#: picard/ui/mainwindow.py:384 +#: picard/ui/mainwindow.py:419 msgid "&Info..." msgstr "&Information" -#: picard/ui/mainwindow.py:387 +#: picard/ui/mainwindow.py:422 msgid "Ctrl+I" msgstr "Ctrl+I" -#: picard/ui/mainwindow.py:390 +#: picard/ui/mainwindow.py:425 msgid "&Refresh" msgstr "&Uppdatera" -#: picard/ui/mainwindow.py:391 +#: picard/ui/mainwindow.py:426 msgid "Ctrl+R" msgstr "Ctrl+R" -#: picard/ui/mainwindow.py:394 +#: picard/ui/mainwindow.py:429 msgid "&Rename Files" msgstr "&Byt namn på filer" -#: picard/ui/mainwindow.py:399 +#: picard/ui/mainwindow.py:434 msgid "&Move Files" msgstr "&Flytta filer" -#: picard/ui/mainwindow.py:404 +#: picard/ui/mainwindow.py:439 msgid "Save &Tags" msgstr "Spara &taggar" -#: picard/ui/mainwindow.py:409 +#: picard/ui/mainwindow.py:444 msgid "Tags From &File Names..." msgstr "Taggar från &filnamn..." -#: picard/ui/mainwindow.py:412 -msgid "View &Log..." -msgstr "Visa &logg..." +#: picard/ui/mainwindow.py:447 +msgid "&Open My Collections in Browser" +msgstr "" -#: picard/ui/mainwindow.py:415 -msgid "View Status &History..." -msgstr "Se status&historik" +#: picard/ui/mainwindow.py:451 +msgid "View Error/Debug &Log" +msgstr "" -#: picard/ui/mainwindow.py:422 -msgid "&Open..." -msgstr "&Öppna..." +#: picard/ui/mainwindow.py:454 +msgid "View Activity &History" +msgstr "" -#: picard/ui/mainwindow.py:423 -msgid "Open the file" -msgstr "Öppna filen" +#: picard/ui/mainwindow.py:461 +msgid "&Play file" +msgstr "" -#: picard/ui/mainwindow.py:426 -msgid "Open &Folder..." -msgstr "Öppna &katalog..." +#: picard/ui/mainwindow.py:462 +msgid "Play the file in your default media player" +msgstr "" -#: picard/ui/mainwindow.py:427 -msgid "Open the containing folder" -msgstr "Öppna innehållsmappen" +#: picard/ui/mainwindow.py:466 +msgid "Open Containing &Folder" +msgstr "" -#: picard/ui/mainwindow.py:448 +#: picard/ui/mainwindow.py:467 +msgid "Open the containing folder in your file explorer" +msgstr "" + +#: picard/ui/mainwindow.py:492 msgid "&File" msgstr "&Arkiv" -#: picard/ui/mainwindow.py:456 +#: picard/ui/mainwindow.py:503 msgid "&Edit" msgstr "&Redigera" -#: picard/ui/mainwindow.py:462 +#: picard/ui/mainwindow.py:509 msgid "&View" msgstr "&Visa" -#: picard/ui/mainwindow.py:470 +#: picard/ui/mainwindow.py:515 msgid "&Options" msgstr "A<ernativ" -#: picard/ui/mainwindow.py:476 +#: picard/ui/mainwindow.py:521 msgid "&Tools" msgstr "Ver&ktyg" -#: picard/ui/mainwindow.py:485 picard/ui/util.py:35 +#: picard/ui/mainwindow.py:532 picard/ui/util.py:35 msgid "&Help" msgstr "&Hjälp" -#: picard/ui/mainwindow.py:505 +#: picard/ui/mainwindow.py:553 msgid "Actions" msgstr "" -#: picard/ui/mainwindow.py:608 +#: picard/ui/mainwindow.py:599 +msgid "Track" +msgstr "Spår" + +#: picard/ui/mainwindow.py:662 msgid "All Supported Formats" msgstr "Alla format som stöds" -#: picard/ui/mainwindow.py:705 +#: picard/ui/mainwindow.py:695 +#, python-format +msgid "Adding directory: '%(directory)s' ..." +msgstr "" + +#: picard/ui/mainwindow.py:702 +#, python-format +msgid "Adding multiple directories from '%(directory)s' ..." +msgstr "" + +#: picard/ui/mainwindow.py:767 msgid "Configuration Required" msgstr "Konfigurering krävs" -#: picard/ui/mainwindow.py:706 +#: picard/ui/mainwindow.py:768 msgid "" "Audio fingerprinting is not yet configured. Would you like to configure it " "now?" msgstr "Inställningar för audiofingeravtryck är ännu inte gjorda. Vill du ställa in det nu?" -#: picard/ui/mainwindow.py:784 picard/ui/mainwindow.py:791 +#: picard/ui/mainwindow.py:848 #, python-format -msgid " (Error: %s)" -msgstr " (Fel: %s)" +msgid "%(filename)s (error: %(error)s)" +msgstr "" + +#: picard/ui/mainwindow.py:854 +#, python-format +msgid "%(filename)s" +msgstr "" + +#: picard/ui/mainwindow.py:864 +#, python-format +msgid "%(filename)s (%(similarity)d%%) (error: %(error)s)" +msgstr "" + +#: picard/ui/mainwindow.py:871 +#, python-format +msgid "%(filename)s (%(similarity)d%%)" +msgstr "" #: picard/ui/metadatabox.py:82 #, python-format @@ -1102,387 +1028,387 @@ msgid_plural "Use Original Values" msgstr[0] "" msgstr[1] "Använd ursprungligt värde" -#: picard/ui/passworddialog.py:37 +#: picard/ui/passworddialog.py:40 #, python-format msgid "" "The server %s requires you to login. Please enter your username and " "password." msgstr "Servern %s kräver att du loggar in. Ange användarnamn och lösenord." -#: picard/ui/passworddialog.py:75 +#: picard/ui/passworddialog.py:79 #, python-format msgid "" "The proxy %s requires you to login. Please enter your username and password." msgstr "Proxyn %s kräver att du loggar in. Ange användarnamn och lösenord." -#: picard/ui/tagsfromfilenames.py:55 picard/ui/tagsfromfilenames.py:100 +#: picard/ui/tagsfromfilenames.py:56 picard/ui/tagsfromfilenames.py:101 msgid "File Name" msgstr "Filnamn" -#: picard/ui/ui_cdlookup.py:66 picard/ui/ui_options_cdlookup.py:55 -#: picard/ui/ui_options_cdlookup_select.py:62 picard/ui/options/cdlookup.py:38 +#: picard/ui/ui_cdlookup.py:53 picard/ui/ui_options_cdlookup.py:42 +#: picard/ui/ui_options_cdlookup_select.py:49 picard/ui/options/cdlookup.py:38 msgid "CD Lookup" msgstr "CD-uppslagning" -#: picard/ui/ui_cdlookup.py:67 +#: picard/ui/ui_cdlookup.py:54 msgid "The following releases on MusicBrainz match the CD:" msgstr "Följande utgåvor på MusicBrainz matchar cd:n:" -#: picard/ui/ui_cdlookup.py:68 +#: picard/ui/ui_cdlookup.py:55 msgid "OK" msgstr "Ok" -#: picard/ui/ui_cdlookup.py:69 +#: picard/ui/ui_cdlookup.py:56 msgid "Lookup manually" msgstr "Slå upp manuellt " -#: picard/ui/ui_cdlookup.py:70 +#: picard/ui/ui_cdlookup.py:57 msgid "Cancel" msgstr "Avbryt" -#: picard/ui/ui_edittagdialog.py:101 +#: picard/ui/ui_edittagdialog.py:88 msgid "Edit Tag" msgstr "Ändra tagg" -#: picard/ui/ui_edittagdialog.py:102 +#: picard/ui/ui_edittagdialog.py:89 msgid "Edit value" msgstr "Ändra värde" -#: picard/ui/ui_edittagdialog.py:103 +#: picard/ui/ui_edittagdialog.py:90 msgid "Add value" msgstr "Lägg till värde" -#: picard/ui/ui_edittagdialog.py:104 +#: picard/ui/ui_edittagdialog.py:91 msgid "Remove value" msgstr "Ta bort värde" -#: picard/ui/ui_infodialog.py:78 +#: picard/ui/ui_infodialog.py:74 msgid "A&rtwork" msgstr "&Grafik" -#: picard/ui/ui_infostatus.py:100 +#: picard/ui/ui_infostatus.py:96 msgid "Form" msgstr "Formulär" -#: picard/ui/ui_options.py:51 +#: picard/ui/ui_options.py:38 msgid "Options" msgstr "Alternativ" -#: picard/ui/ui_options_advanced.py:46 +#: picard/ui/ui_options_advanced.py:42 msgid "Advanced options" msgstr "" -#: picard/ui/ui_options_advanced.py:47 +#: picard/ui/ui_options_advanced.py:43 msgid "Ignore file paths matching the following regular expression:" msgstr "" -#: picard/ui/ui_options_cdlookup.py:56 +#: picard/ui/ui_options_cdlookup.py:43 msgid "CD-ROM device to use for lookups:" msgstr "Cd-romenhet för uppslagningar:" -#: picard/ui/ui_options_cdlookup_select.py:63 +#: picard/ui/ui_options_cdlookup_select.py:50 msgid "Default CD-ROM drive to use for lookups:" msgstr "Standardenhet för uppslagning av cd:" -#: picard/ui/ui_options_cover.py:145 +#: picard/ui/ui_options_cover.py:131 msgid "Location" msgstr "Plats" -#: picard/ui/ui_options_cover.py:146 +#: picard/ui/ui_options_cover.py:132 msgid "Embed cover images into tags" msgstr "Bädda in omslagsbilder i taggar" -#: picard/ui/ui_options_cover.py:147 +#: picard/ui/ui_options_cover.py:133 msgid "Only embed a front image" msgstr "" -#: picard/ui/ui_options_cover.py:148 +#: picard/ui/ui_options_cover.py:134 msgid "Save cover images as separate files" msgstr "Spara omslagsbilder som separata filer" -#: picard/ui/ui_options_cover.py:149 +#: picard/ui/ui_options_cover.py:135 msgid "Use the following file name for images:" msgstr "Använd detta filnamn för bilder:" -#: picard/ui/ui_options_cover.py:150 +#: picard/ui/ui_options_cover.py:136 msgid "Overwrite the file if it already exists" msgstr "Skriv över filen om den redan existerar" -#: picard/ui/ui_options_cover.py:151 +#: picard/ui/ui_options_cover.py:137 msgid "Coverart Providers" msgstr "" -#: picard/ui/ui_options_cover.py:152 +#: picard/ui/ui_options_cover.py:138 msgid "Amazon" msgstr "Amazon" -#: picard/ui/ui_options_cover.py:153 picard/ui/ui_options_cover.py:155 +#: picard/ui/ui_options_cover.py:139 picard/ui/ui_options_cover.py:141 msgid "Cover Art Archive" msgstr "Cover Art Archive" -#: picard/ui/ui_options_cover.py:154 +#: picard/ui/ui_options_cover.py:140 msgid "Sites on the whitelist" msgstr "Webbplatser på vitlistan" -#: picard/ui/ui_options_cover.py:156 +#: picard/ui/ui_options_cover.py:142 msgid "Only use images of the following size:" msgstr "Använd endast bilder i följande storlek:" -#: picard/ui/ui_options_cover.py:157 +#: picard/ui/ui_options_cover.py:143 msgid "250 px" msgstr "250 px" -#: picard/ui/ui_options_cover.py:158 +#: picard/ui/ui_options_cover.py:144 msgid "500 px" msgstr "500 px" -#: picard/ui/ui_options_cover.py:159 +#: picard/ui/ui_options_cover.py:145 msgid "Full size" msgstr "Full storlek" -#: picard/ui/ui_options_cover.py:160 +#: picard/ui/ui_options_cover.py:146 msgid "Download only images of the following types:" msgstr "" -#: picard/ui/ui_options_cover.py:161 +#: picard/ui/ui_options_cover.py:147 msgid "Download only approved images" msgstr "" -#: picard/ui/ui_options_cover.py:162 +#: picard/ui/ui_options_cover.py:148 msgid "" "Use the first image type as the filename. This will not change the filename " "of front images." msgstr "" -#: picard/ui/ui_options_fingerprinting.py:83 +#: picard/ui/ui_options_fingerprinting.py:70 msgid "Audio Fingerprinting" msgstr "Akustiskt fingeravtryck" -#: picard/ui/ui_options_fingerprinting.py:84 +#: picard/ui/ui_options_fingerprinting.py:71 msgid "Do not use audio fingerprinting" msgstr "Använd inte akustiska fingeravtryck" -#: picard/ui/ui_options_fingerprinting.py:85 +#: picard/ui/ui_options_fingerprinting.py:72 msgid "Use AcoustID" msgstr "Använd AcoustID" -#: picard/ui/ui_options_fingerprinting.py:86 +#: picard/ui/ui_options_fingerprinting.py:73 msgid "AcoustID Settings" msgstr "Inställningar för AcoustID" -#: picard/ui/ui_options_fingerprinting.py:87 +#: picard/ui/ui_options_fingerprinting.py:74 msgid "Fingerprint calculator:" msgstr "Fingeravtrycksberäkning:" -#: picard/ui/ui_options_fingerprinting.py:88 -#: picard/ui/ui_options_interface.py:88 picard/ui/ui_options_renaming.py:138 +#: picard/ui/ui_options_fingerprinting.py:75 +#: picard/ui/ui_options_interface.py:75 picard/ui/ui_options_renaming.py:134 msgid "Browse..." msgstr "Bläddra..." -#: picard/ui/ui_options_fingerprinting.py:89 +#: picard/ui/ui_options_fingerprinting.py:76 msgid "Download..." msgstr "Ladda ner..." -#: picard/ui/ui_options_fingerprinting.py:90 +#: picard/ui/ui_options_fingerprinting.py:77 msgid "API key:" msgstr "API-nyckel:" -#: picard/ui/ui_options_fingerprinting.py:91 +#: picard/ui/ui_options_fingerprinting.py:78 msgid "Get API key..." msgstr "Hämta API-nyckel...Aktivera spårgradering" -#: picard/ui/ui_options_folksonomy.py:115 picard/ui/options/folksonomy.py:28 +#: picard/ui/ui_options_folksonomy.py:102 picard/ui/options/folksonomy.py:28 msgid "Folksonomy Tags" msgstr "Folksonimitaggar" -#: picard/ui/ui_options_folksonomy.py:117 +#: picard/ui/ui_options_folksonomy.py:104 msgid "Only use my tags" msgstr "Använd endast mina taggar" -#: picard/ui/ui_options_folksonomy.py:120 +#: picard/ui/ui_options_folksonomy.py:107 msgid "Maximum number of tags:" msgstr "Max antal taggar" -#: picard/ui/ui_options_general.py:92 +#: picard/ui/ui_options_general.py:88 msgid "MusicBrainz Server" msgstr "MusicBrainz-server" -#: picard/ui/ui_options_general.py:93 picard/ui/ui_options_network.py:123 +#: picard/ui/ui_options_general.py:89 picard/ui/ui_options_network.py:110 msgid "Port:" msgstr "Port:" -#: picard/ui/ui_options_general.py:94 picard/ui/ui_options_network.py:124 +#: picard/ui/ui_options_general.py:90 picard/ui/ui_options_network.py:111 msgid "Server address:" msgstr "Serveradress:" -#: picard/ui/ui_options_general.py:95 +#: picard/ui/ui_options_general.py:91 msgid "Account Information" msgstr "Kontoinformation" -#: picard/ui/ui_options_general.py:96 picard/ui/ui_options_network.py:121 -#: picard/ui/ui_passworddialog.py:74 +#: picard/ui/ui_options_general.py:92 picard/ui/ui_options_network.py:108 +#: picard/ui/ui_passworddialog.py:70 msgid "Password:" msgstr "Lösenord:" -#: picard/ui/ui_options_general.py:97 picard/ui/ui_options_network.py:122 -#: picard/ui/ui_passworddialog.py:73 +#: picard/ui/ui_options_general.py:93 picard/ui/ui_options_network.py:109 +#: picard/ui/ui_passworddialog.py:69 msgid "Username:" msgstr "Användarnamn:" -#: picard/ui/ui_options_general.py:98 picard/ui/options/general.py:31 +#: picard/ui/ui_options_general.py:94 picard/ui/options/general.py:31 msgid "General" msgstr "Allmänt" -#: picard/ui/ui_options_general.py:99 +#: picard/ui/ui_options_general.py:95 msgid "Automatically scan all new files" msgstr "Läs automatiskt in alla nya filer" -#: picard/ui/ui_options_general.py:100 +#: picard/ui/ui_options_general.py:96 msgid "Ignore MBIDs when loading new files" msgstr "Ignorera MBIDn vid laddning av nya filer" -#: picard/ui/ui_options_interface.py:82 +#: picard/ui/ui_options_interface.py:69 msgid "Miscellaneous" msgstr "Blandat" -#: picard/ui/ui_options_interface.py:83 +#: picard/ui/ui_options_interface.py:70 msgid "Show text labels under icons" msgstr "Visa textetiketter under ikoner" -#: picard/ui/ui_options_interface.py:84 +#: picard/ui/ui_options_interface.py:71 msgid "Allow selection of multiple directories" msgstr "Tillåt markering av flera kataloger" -#: picard/ui/ui_options_interface.py:85 +#: picard/ui/ui_options_interface.py:72 msgid "Use advanced query syntax" msgstr "Använd avancerad frågesyntax" -#: picard/ui/ui_options_interface.py:86 +#: picard/ui/ui_options_interface.py:73 msgid "Show a quit confirmation dialog for unsaved changes" msgstr "" -#: picard/ui/ui_options_interface.py:87 +#: picard/ui/ui_options_interface.py:74 msgid "Begin browsing in the following directory:" msgstr "" -#: picard/ui/ui_options_interface.py:89 +#: picard/ui/ui_options_interface.py:76 msgid "User interface language:" msgstr "Språk för användargränssnitt:" -#: picard/ui/ui_options_matching.py:86 +#: picard/ui/ui_options_matching.py:73 msgid "Thresholds" msgstr "Tröskelvärden" -#: picard/ui/ui_options_matching.py:87 +#: picard/ui/ui_options_matching.py:74 msgid "Minimal similarity for matching files to tracks:" msgstr "Minsta överensstämmelse för matchning av filer till spår:" -#: picard/ui/ui_options_matching.py:91 +#: picard/ui/ui_options_matching.py:78 msgid "Minimal similarity for file lookups:" msgstr "Minsta överensstämmelse för uppslagning av fil:" -#: picard/ui/ui_options_matching.py:92 +#: picard/ui/ui_options_matching.py:79 msgid "Minimal similarity for cluster lookups:" msgstr "Minsta överensstämmelse för uppslagning av kluster:" -#: picard/ui/ui_options_metadata.py:114 picard/ui/options/metadata.py:29 +#: picard/ui/ui_options_metadata.py:101 picard/ui/options/metadata.py:29 msgid "Metadata" msgstr "Metadata" -#: picard/ui/ui_options_metadata.py:115 +#: picard/ui/ui_options_metadata.py:102 msgid "Translate artist names to this locale where possible:" msgstr "Översätt om möjligt artistnamn till lokalt språk:" -#: picard/ui/ui_options_metadata.py:116 +#: picard/ui/ui_options_metadata.py:103 msgid "Use standardized artist names" msgstr "Använd standardiserade artistnamn" -#: picard/ui/ui_options_metadata.py:117 +#: picard/ui/ui_options_metadata.py:104 msgid "Convert Unicode punctuation characters to ASCII" msgstr "Konvertera interpunktionstecken från Unicode till ASCII" -#: picard/ui/ui_options_metadata.py:118 +#: picard/ui/ui_options_metadata.py:105 msgid "Use release relationships" msgstr "Använd samband mellan utgåvor" -#: picard/ui/ui_options_metadata.py:119 +#: picard/ui/ui_options_metadata.py:106 msgid "Use track relationships" msgstr "Använd samband mellan spår" -#: picard/ui/ui_options_metadata.py:120 +#: picard/ui/ui_options_metadata.py:107 msgid "Use folksonomy tags as genre" msgstr "Använd folksonomitaggar som genre" -#: picard/ui/ui_options_metadata.py:121 +#: picard/ui/ui_options_metadata.py:108 msgid "Custom Fields" msgstr "Anpassade fält" -#: picard/ui/ui_options_metadata.py:122 +#: picard/ui/ui_options_metadata.py:109 msgid "Various artists:" msgstr "Diverse artister:" -#: picard/ui/ui_options_metadata.py:123 +#: picard/ui/ui_options_metadata.py:110 msgid "Non-album tracks:" msgstr "Spår utan album:" -#: picard/ui/ui_options_metadata.py:124 picard/ui/ui_options_metadata.py:125 -#: picard/ui/ui_options_renaming.py:147 +#: picard/ui/ui_options_metadata.py:111 picard/ui/ui_options_metadata.py:112 +#: picard/ui/ui_options_renaming.py:143 msgid "Default" msgstr "Standard" -#: picard/ui/ui_options_network.py:120 +#: picard/ui/ui_options_network.py:107 msgid "Web Proxy" msgstr "Webbproxy" -#: picard/ui/ui_options_network.py:125 +#: picard/ui/ui_options_network.py:112 msgid "Browser Integration" msgstr "Webbläsarintegrering" -#: picard/ui/ui_options_network.py:126 +#: picard/ui/ui_options_network.py:113 msgid "Default listening port:" msgstr "" -#: picard/ui/ui_options_network.py:127 +#: picard/ui/ui_options_network.py:114 msgid "Listen only on localhost" msgstr "" -#: picard/ui/ui_options_plugins.py:131 picard/ui/options/plugins.py:38 +#: picard/ui/ui_options_plugins.py:127 picard/ui/options/plugins.py:38 msgid "Plugins" msgstr "Insticksmoduler" -#: picard/ui/ui_options_plugins.py:132 picard/ui/options/plugins.py:122 +#: picard/ui/ui_options_plugins.py:128 picard/ui/options/plugins.py:122 msgid "Name" msgstr "Namn" -#: picard/ui/ui_options_plugins.py:133 picard/util/tags.py:39 +#: picard/ui/ui_options_plugins.py:129 msgid "Version" msgstr "Version" -#: picard/ui/ui_options_plugins.py:134 picard/ui/options/plugins.py:125 +#: picard/ui/ui_options_plugins.py:130 picard/ui/options/plugins.py:125 msgid "Author" msgstr "Upphovsman" -#: picard/ui/ui_options_plugins.py:135 +#: picard/ui/ui_options_plugins.py:131 msgid "Install plugin..." msgstr "Installera insticksmodul..." -#: picard/ui/ui_options_plugins.py:136 +#: picard/ui/ui_options_plugins.py:132 msgid "Open plugin folder" msgstr "Öppna instickskatalogen" -#: picard/ui/ui_options_plugins.py:137 +#: picard/ui/ui_options_plugins.py:133 msgid "Download plugins" msgstr "Ladda ner insticksmoduler" -#: picard/ui/ui_options_plugins.py:138 +#: picard/ui/ui_options_plugins.py:134 msgid "Details" msgstr "Detaljer" -#: picard/ui/ui_options_ratings.py:53 +#: picard/ui/ui_options_ratings.py:49 msgid "Enable track ratings" msgstr "" -#: picard/ui/ui_options_ratings.py:54 +#: picard/ui/ui_options_ratings.py:50 msgid "" "Picard saves the ratings together with an e-mail address identifying the " "user who did the rating. That way different ratings for different users can " @@ -1490,207 +1416,167 @@ msgid "" "your ratings." msgstr "Picard sparar betyg tillsammans med en epostadress som identiferar den användare som gav betygen. På detta sätt kan filerna innehålla olika betyg av olika användare. Ange den emailadress du vill spara tillsammans med dina betyg." -#: picard/ui/ui_options_ratings.py:55 +#: picard/ui/ui_options_ratings.py:51 msgid "E-mail:" msgstr "E-post:" -#: picard/ui/ui_options_ratings.py:56 +#: picard/ui/ui_options_ratings.py:52 msgid "Submit ratings to MusicBrainz" msgstr "Skicka betyg till MusicBrainz" -#: picard/ui/ui_options_releases.py:215 +#: picard/ui/ui_options_releases.py:104 msgid "Preferred release types" msgstr "Föredragna releasetyper" -#: picard/ui/ui_options_releases.py:217 -msgid "Single" -msgstr "Singel" - -#: picard/ui/ui_options_releases.py:218 -msgid "EP" -msgstr "EP" - -#: picard/ui/ui_options_releases.py:219 -msgid "Compilation" -msgstr "Samling" - -#: picard/ui/ui_options_releases.py:220 -msgid "Soundtrack" -msgstr "Soundtrack" - -#: picard/ui/ui_options_releases.py:221 -msgid "Spokenword" -msgstr "Spokenword" - -#: picard/ui/ui_options_releases.py:222 -msgid "Interview" -msgstr "Intervju" - -#: picard/ui/ui_options_releases.py:223 -msgid "Audiobook" -msgstr "Ljudbok" - -#: picard/ui/ui_options_releases.py:224 -msgid "Live" -msgstr "Live" - -#: picard/ui/ui_options_releases.py:225 -msgid "Remix" -msgstr "Remix" - -#: picard/ui/ui_options_releases.py:227 -msgid "Reset all" -msgstr "Återställ allt" - -#: picard/ui/ui_options_releases.py:228 +#: picard/ui/ui_options_releases.py:105 msgid "Preferred release countries" msgstr "Föredragna releaseländer" -#: picard/ui/ui_options_releases.py:229 picard/ui/ui_options_releases.py:232 +#: picard/ui/ui_options_releases.py:106 picard/ui/ui_options_releases.py:109 msgid ">" msgstr ">" -#: picard/ui/ui_options_releases.py:230 picard/ui/ui_options_releases.py:233 +#: picard/ui/ui_options_releases.py:107 picard/ui/ui_options_releases.py:110 msgid "<" msgstr "<" -#: picard/ui/ui_options_releases.py:231 +#: picard/ui/ui_options_releases.py:108 msgid "Preferred release formats" msgstr "Föredragna releaseformat" -#: picard/ui/ui_options_renaming.py:134 +#: picard/ui/ui_options_renaming.py:130 msgid "Rename files when saving" msgstr "Byt namn på filer vid sparande" -#: picard/ui/ui_options_renaming.py:135 +#: picard/ui/ui_options_renaming.py:131 msgid "Replace non-ASCII characters" msgstr "Ersätt tecken som inte är ASCII" -#: picard/ui/ui_options_renaming.py:136 +#: picard/ui/ui_options_renaming.py:132 msgid "Windows compatibility" msgstr "Windowskompabilitet" -#: picard/ui/ui_options_renaming.py:137 +#: picard/ui/ui_options_renaming.py:133 msgid "Move files to this directory when saving:" msgstr "Flytta filer till denna katalog vid sparning:" -#: picard/ui/ui_options_renaming.py:139 +#: picard/ui/ui_options_renaming.py:135 msgid "Delete empty directories" msgstr "Ta bort tomma kataloger" -#: picard/ui/ui_options_renaming.py:140 +#: picard/ui/ui_options_renaming.py:136 msgid "Move additional files:" msgstr "Flytta ytterligare filer:" -#: picard/ui/ui_options_renaming.py:141 +#: picard/ui/ui_options_renaming.py:137 msgid "Name files like this" msgstr "Namnge filer så här" -#: picard/ui/ui_options_renaming.py:148 +#: picard/ui/ui_options_renaming.py:144 msgid "Examples" msgstr "Exempel" -#: picard/ui/ui_options_script.py:49 +#: picard/ui/ui_options_script.py:45 msgid "Tagger Script" msgstr "Skript för taggning" -#: picard/ui/ui_options_tags.py:165 +#: picard/ui/ui_options_tags.py:152 msgid "Write tags to files" msgstr "Skriv taggar till filer" -#: picard/ui/ui_options_tags.py:166 +#: picard/ui/ui_options_tags.py:153 msgid "Preserve timestamps of tagged files" msgstr "" -#: picard/ui/ui_options_tags.py:167 +#: picard/ui/ui_options_tags.py:154 msgid "Before Tagging" msgstr "" -#: picard/ui/ui_options_tags.py:168 +#: picard/ui/ui_options_tags.py:155 msgid "Clear existing tags" msgstr "Töm befintliga taggar" -#: picard/ui/ui_options_tags.py:169 +#: picard/ui/ui_options_tags.py:156 msgid "Remove ID3 tags from FLAC files" msgstr "Ta bort ID3-taggar från FLAC-filer" -#: picard/ui/ui_options_tags.py:170 +#: picard/ui/ui_options_tags.py:157 msgid "Remove APEv2 tags from MP3 files" msgstr "Ta bort APEv2-taggar från MP3-filer" -#: picard/ui/ui_options_tags.py:171 +#: picard/ui/ui_options_tags.py:158 msgid "" "Preserve these tags from being cleared or overwritten with MusicBrainz data:" msgstr "" -#: picard/ui/ui_options_tags.py:172 +#: picard/ui/ui_options_tags.py:159 msgid "Tags are separated by commas, and are case-sensitive." msgstr "" -#: picard/ui/ui_options_tags.py:173 +#: picard/ui/ui_options_tags.py:160 msgid "Tag Compatibility" msgstr "" -#: picard/ui/ui_options_tags.py:174 +#: picard/ui/ui_options_tags.py:161 msgid "ID3v2 Version" msgstr "" -#: picard/ui/ui_options_tags.py:175 +#: picard/ui/ui_options_tags.py:162 msgid "2.4" msgstr "2.4" -#: picard/ui/ui_options_tags.py:176 +#: picard/ui/ui_options_tags.py:163 msgid "2.3" msgstr "2.3" -#: picard/ui/ui_options_tags.py:177 +#: picard/ui/ui_options_tags.py:164 msgid "ID3v2 Text Encoding" msgstr "" -#: picard/ui/ui_options_tags.py:178 +#: picard/ui/ui_options_tags.py:165 msgid "UTF-8" msgstr "UTF-8" -#: picard/ui/ui_options_tags.py:179 +#: picard/ui/ui_options_tags.py:166 msgid "UTF-16" msgstr "UTF-16" -#: picard/ui/ui_options_tags.py:180 +#: picard/ui/ui_options_tags.py:167 msgid "ISO-8859-1" msgstr "ISO-8859-1" -#: picard/ui/ui_options_tags.py:181 +#: picard/ui/ui_options_tags.py:168 msgid "Join multiple ID3v2.3 tags with:" msgstr "" -#: picard/ui/ui_options_tags.py:182 +#: picard/ui/ui_options_tags.py:169 msgid "" "

Default is '/' to maintain compatibility with previous" " Picard releases.

New alternatives are ';_' or '_/_' or type your own." "

" msgstr "" -#: picard/ui/ui_options_tags.py:183 +#: picard/ui/ui_options_tags.py:170 msgid "Also include ID3v1 tags in the files" msgstr "Inkludera även ID3v1-taggar i filerna" -#: picard/ui/ui_passworddialog.py:72 +#: picard/ui/ui_passworddialog.py:68 msgid "Authentication required" msgstr "Autentisering krävs" -#: picard/ui/ui_passworddialog.py:75 +#: picard/ui/ui_passworddialog.py:71 msgid "Save username and password" msgstr "Spara användarnamn och lösenord" -#: picard/ui/ui_tagsfromfilenames.py:54 +#: picard/ui/ui_tagsfromfilenames.py:50 msgid "Convert File Names to Tags" msgstr "Konvertera filnamn till taggar" -#: picard/ui/ui_tagsfromfilenames.py:55 +#: picard/ui/ui_tagsfromfilenames.py:51 msgid "Replace underscores with spaces" msgstr "Ersätt understreck med mellanslag" -#: picard/ui/ui_tagsfromfilenames.py:56 +#: picard/ui/ui_tagsfromfilenames.py:52 msgid "&Preview" msgstr "&Förhandsgranska" @@ -1746,7 +1632,11 @@ msgstr "Avancerat" msgid "Regex Error" msgstr "" -#: picard/ui/options/cover.py:63 +#: picard/ui/options/cover.py:44 +msgid "title" +msgstr "" + +#: picard/ui/options/cover.py:68 msgid "Cover Art" msgstr "Omslagsgrafik" @@ -1762,11 +1652,11 @@ msgstr "Användargränssnitt" msgid "System default" msgstr "Systemets standard" -#: picard/ui/options/interface.py:96 +#: picard/ui/options/interface.py:98 msgid "Language changed" msgstr "Språket har ändrats" -#: picard/ui/options/interface.py:96 +#: picard/ui/options/interface.py:99 msgid "" "You have changed the interface language. You have to restart Picard in order" " for the change to take effect." @@ -1788,31 +1678,35 @@ msgstr "Fil" msgid "Ratings" msgstr "Betyg" -#: picard/ui/options/releases.py:33 +#: picard/ui/options/releases.py:87 msgid "Preferred Releases" msgstr "Föredragna releaser" +#: picard/ui/options/releases.py:121 +msgid "Reset all" +msgstr "Återställ allt" + #: picard/ui/options/renaming.py:37 msgid "File Naming" msgstr "" -#: picard/ui/options/renaming.py:184 +#: picard/ui/options/renaming.py:187 msgid "Error" msgstr "Fel" -#: picard/ui/options/renaming.py:184 +#: picard/ui/options/renaming.py:187 msgid "The location to move files to must not be empty." msgstr "" -#: picard/ui/options/renaming.py:194 +#: picard/ui/options/renaming.py:197 msgid "The file naming format must not be empty." msgstr "Filnamnsformatet får inte vara tomt." -#: picard/ui/options/scripting.py:63 +#: picard/ui/options/scripting.py:99 msgid "Scripting" msgstr "Skriptning" -#: picard/ui/options/scripting.py:95 +#: picard/ui/options/scripting.py:131 msgid "Script Error" msgstr "Skriptfel" @@ -1932,199 +1826,199 @@ msgstr "ASIN" msgid "Grouping" msgstr "Gruppering" -#: picard/util/tags.py:40 +#: picard/util/tags.py:39 msgid "ISRC" msgstr "ISRC" -#: picard/util/tags.py:41 +#: picard/util/tags.py:40 msgid "Mood" msgstr "Stämning" -#: picard/util/tags.py:42 +#: picard/util/tags.py:41 msgid "BPM" msgstr "BPM" -#: picard/util/tags.py:43 +#: picard/util/tags.py:42 msgid "Copyright" msgstr "Upphovsrätt" -#: picard/util/tags.py:44 +#: picard/util/tags.py:43 msgid "License" msgstr "Licens" -#: picard/util/tags.py:45 +#: picard/util/tags.py:44 msgid "Composer" msgstr "Kompositör" -#: picard/util/tags.py:46 +#: picard/util/tags.py:45 msgid "Writer" msgstr "" -#: picard/util/tags.py:47 +#: picard/util/tags.py:46 msgid "Conductor" msgstr "Dirigent" -#: picard/util/tags.py:48 +#: picard/util/tags.py:47 msgid "Lyricist" msgstr "Textförfattare" -#: picard/util/tags.py:49 +#: picard/util/tags.py:48 msgid "Arranger" msgstr "Arrangör" -#: picard/util/tags.py:50 +#: picard/util/tags.py:49 msgid "Producer" msgstr "Producent" -#: picard/util/tags.py:51 +#: picard/util/tags.py:50 msgid "Engineer" msgstr "Ljudtekniker" -#: picard/util/tags.py:52 +#: picard/util/tags.py:51 msgid "Subtitle" msgstr "Undertitel" -#: picard/util/tags.py:53 +#: picard/util/tags.py:52 msgid "Disc Subtitle" msgstr "Använd avancerad frågesyntax" -#: picard/util/tags.py:54 +#: picard/util/tags.py:53 msgid "Remixer" msgstr "Remixer" -#: picard/util/tags.py:55 +#: picard/util/tags.py:54 msgid "MusicBrainz Recording Id" msgstr "MusicBrainz inspelnings-id" -#: picard/util/tags.py:56 +#: picard/util/tags.py:55 msgid "MusicBrainz Track Id" msgstr "" -#: picard/util/tags.py:57 +#: picard/util/tags.py:56 msgid "MusicBrainz Release Id" msgstr "MusicBrainz utgåve-id" -#: picard/util/tags.py:58 +#: picard/util/tags.py:57 msgid "MusicBrainz Artist Id" msgstr "MusicBrainz artist-id" -#: picard/util/tags.py:59 +#: picard/util/tags.py:58 msgid "MusicBrainz Release Artist Id" msgstr "MusicBrainz utgivningsartist-id" -#: picard/util/tags.py:60 +#: picard/util/tags.py:59 msgid "MusicBrainz Work Id" msgstr "" -#: picard/util/tags.py:61 +#: picard/util/tags.py:60 msgid "MusicBrainz Release Group Id" msgstr "" -#: picard/util/tags.py:62 +#: picard/util/tags.py:61 msgid "MusicBrainz Disc Id" msgstr "" -#: picard/util/tags.py:63 -msgid "MusicBrainz Sort Name" -msgstr "" - -#: picard/util/tags.py:64 +#: picard/util/tags.py:62 msgid "MusicIP PUID" msgstr "MusicIP PUID" -#: picard/util/tags.py:65 +#: picard/util/tags.py:63 msgid "MusicIP Fingerprint" msgstr "MusicIP-fingeravtryck" -#: picard/util/tags.py:66 +#: picard/util/tags.py:64 msgid "AcoustID" msgstr "AcoustID" -#: picard/util/tags.py:67 +#: picard/util/tags.py:65 msgid "AcoustID Fingerprint" msgstr "AcoustID-fingeravtryck" -#: picard/util/tags.py:68 +#: picard/util/tags.py:66 msgid "Disc Id" msgstr "Diskid" -#: picard/util/tags.py:69 -msgid "Website" -msgstr "Webbplats" +#: picard/util/tags.py:67 +msgid "Artist Website" +msgstr "" -#: picard/util/tags.py:70 +#: picard/util/tags.py:68 msgid "Compilation (iTunes)" msgstr "Samling (iTunes)" -#: picard/util/tags.py:71 +#: picard/util/tags.py:69 msgid "Comment" msgstr "Kommentar" -#: picard/util/tags.py:72 +#: picard/util/tags.py:70 msgid "Genre" msgstr "Genre" -#: picard/util/tags.py:73 +#: picard/util/tags.py:71 msgid "Encoded By" msgstr "Kodad av" -#: picard/util/tags.py:74 +#: picard/util/tags.py:72 +msgid "Encoder Settings" +msgstr "" + +#: picard/util/tags.py:73 msgid "Performer" msgstr "Uppträdande" -#: picard/util/tags.py:75 +#: picard/util/tags.py:74 msgid "Release Type" msgstr "Utgivningstyp" -#: picard/util/tags.py:76 +#: picard/util/tags.py:75 msgid "Release Status" msgstr "Utgivningsstatus" -#: picard/util/tags.py:77 +#: picard/util/tags.py:76 msgid "Release Country" msgstr "Utgivningsland" -#: picard/util/tags.py:78 +#: picard/util/tags.py:77 msgid "Record Label" msgstr "Skivbolag" -#: picard/util/tags.py:80 +#: picard/util/tags.py:79 msgid "Catalog Number" msgstr "Katalognummer" -#: picard/util/tags.py:82 +#: picard/util/tags.py:80 msgid "DJ-Mixer" msgstr "DJ-mixer" -#: picard/util/tags.py:83 +#: picard/util/tags.py:81 msgid "Media" msgstr "Media" -#: picard/util/tags.py:84 +#: picard/util/tags.py:82 msgid "Lyrics" msgstr "Låttext" -#: picard/util/tags.py:85 +#: picard/util/tags.py:83 msgid "Mixer" msgstr "Mixer" -#: picard/util/tags.py:86 +#: picard/util/tags.py:84 msgid "Language" msgstr "Språk" -#: picard/util/tags.py:87 +#: picard/util/tags.py:85 msgid "Script" msgstr "Skript" -#: picard/util/tags.py:89 +#: picard/util/tags.py:87 msgid "Rating" msgstr "Betyg" -#: picard/util/tags.py:90 +#: picard/util/tags.py:88 msgid "Artists" msgstr "" -#: picard/util/tags.py:91 +#: picard/util/tags.py:89 msgid "Work" msgstr "" diff --git a/po/te.po b/po/te.po index 5ca289076..ef9dc2155 100644 --- a/po/te.po +++ b/po/te.po @@ -9,8 +9,8 @@ msgid "" msgstr "" "Project-Id-Version: MusicBrainz\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2014-03-20 11:12+0100\n" -"PO-Revision-Date: 2014-03-21 08:44+0000\n" +"POT-Creation-Date: 2014-05-03 17:28+0200\n" +"PO-Revision-Date: 2014-05-04 08:44+0000\n" "Last-Translator: nikki\n" "Language-Team: Telugu (http://www.transifex.com/projects/p/musicbrainz/language/te/)\n" "MIME-Version: 1.0\n" @@ -20,6 +20,10 @@ msgstr "" "Language: te\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" +#: contrib/plugins/albumartist_website.py:3 +msgid "Album Artist Website" +msgstr "" + #: contrib/plugins/no_release.py:50 msgid "Enable plugin for all releases by default" msgstr "" @@ -32,63 +36,55 @@ msgstr "" msgid "Remove specific release information..." msgstr "" -#: contrib/plugins/open_in_gui.py:32 -msgid "Open Error" +#: contrib/plugins/standardise_performers.py:3 +msgid "Standardise Performers" msgstr "" -#: contrib/plugins/open_in_gui.py:32 -#, python-format -msgid "" -"Error while opening file:\n" -"\n" -"%s" -msgstr "" - -#: contrib/plugins/lastfm/ui_options_lastfm.py:117 +#: contrib/plugins/lastfm/ui_options_lastfm.py:99 msgid "Last.fm" msgstr "" -#: contrib/plugins/lastfm/ui_options_lastfm.py:118 +#: contrib/plugins/lastfm/ui_options_lastfm.py:100 msgid "Use track tags" msgstr "" -#: contrib/plugins/lastfm/ui_options_lastfm.py:119 +#: contrib/plugins/lastfm/ui_options_lastfm.py:101 msgid "Use artist tags" msgstr "" -#: contrib/plugins/lastfm/ui_options_lastfm.py:120 +#: contrib/plugins/lastfm/ui_options_lastfm.py:102 #: picard/ui/options/tags.py:30 msgid "Tags" msgstr "" -#: contrib/plugins/lastfm/ui_options_lastfm.py:121 -#: picard/ui/ui_options_folksonomy.py:116 +#: contrib/plugins/lastfm/ui_options_lastfm.py:103 +#: picard/ui/ui_options_folksonomy.py:103 msgid "Ignore tags:" msgstr "" -#: contrib/plugins/lastfm/ui_options_lastfm.py:122 -#: picard/ui/ui_options_folksonomy.py:121 +#: contrib/plugins/lastfm/ui_options_lastfm.py:104 +#: picard/ui/ui_options_folksonomy.py:108 msgid "Join multiple tags with:" msgstr "" -#: contrib/plugins/lastfm/ui_options_lastfm.py:123 -#: picard/ui/ui_options_folksonomy.py:122 +#: contrib/plugins/lastfm/ui_options_lastfm.py:105 +#: picard/ui/ui_options_folksonomy.py:109 msgid " / " msgstr "" -#: contrib/plugins/lastfm/ui_options_lastfm.py:124 -#: picard/ui/ui_options_folksonomy.py:123 +#: contrib/plugins/lastfm/ui_options_lastfm.py:106 +#: picard/ui/ui_options_folksonomy.py:110 msgid ", " msgstr "" -#: contrib/plugins/lastfm/ui_options_lastfm.py:125 -#: picard/ui/ui_options_folksonomy.py:118 +#: contrib/plugins/lastfm/ui_options_lastfm.py:107 +#: picard/ui/ui_options_folksonomy.py:105 msgid "Minimal tag usage:" msgstr "" -#: contrib/plugins/lastfm/ui_options_lastfm.py:126 -#: picard/ui/ui_options_folksonomy.py:119 picard/ui/ui_options_matching.py:88 -#: picard/ui/ui_options_matching.py:89 picard/ui/ui_options_matching.py:90 +#: contrib/plugins/lastfm/ui_options_lastfm.py:108 +#: picard/ui/ui_options_folksonomy.py:106 picard/ui/ui_options_matching.py:75 +#: picard/ui/ui_options_matching.py:76 picard/ui/ui_options_matching.py:77 msgid " %" msgstr "" @@ -96,419 +92,306 @@ msgstr "" msgid "Calculate replay &gain..." msgstr "" -#: contrib/plugins/replaygain/__init__.py:66 +#: contrib/plugins/replaygain/__init__.py:67 #, python-format -msgid "Calculating replay gain for \"%s\"..." +msgid "Calculating replay gain for \"%(filename)s\"..." msgstr "" -#: contrib/plugins/replaygain/__init__.py:71 +#: contrib/plugins/replaygain/__init__.py:75 #, python-format -msgid "Replay gain for \"%s\" successfully calculated." +msgid "Replay gain for \"%(filename)s\" successfully calculated." msgstr "" -#: contrib/plugins/replaygain/__init__.py:73 +#: contrib/plugins/replaygain/__init__.py:80 #, python-format -msgid "Could not calculate replay gain for \"%s\"." +msgid "Could not calculate replay gain for \"%(filename)s\"." msgstr "" -#: contrib/plugins/replaygain/__init__.py:76 +#: contrib/plugins/replaygain/__init__.py:85 msgid "Calculate album &gain..." msgstr "" -#: contrib/plugins/replaygain/__init__.py:103 -#: contrib/plugins/replaygain/__init__.py:111 +#: contrib/plugins/replaygain/__init__.py:113 +#: contrib/plugins/replaygain/__init__.py:124 #, python-format -msgid "Calculating album gain for \"%s\"..." +msgid "Calculating album gain for \"%(album)s\"..." msgstr "" -#: contrib/plugins/replaygain/__init__.py:119 +#: contrib/plugins/replaygain/__init__.py:135 #, python-format -msgid "Album gain for \"%s\" successfully calculated." +msgid "Album gain for \"%(album)s\" successfully calculated." msgstr "" -#: contrib/plugins/replaygain/__init__.py:121 +#: contrib/plugins/replaygain/__init__.py:140 #, python-format -msgid "Could not calculate album gain for \"%s\"." +msgid "Could not calculate album gain for \"%(album)s\"." msgstr "" -#: picard/acoustid.py:102 +#: contrib/plugins/replaygain/ui_options_replaygain.py:59 +msgid "Replay Gain" +msgstr "" + +#: contrib/plugins/replaygain/ui_options_replaygain.py:60 +msgid "Path to VorbisGain:" +msgstr "" + +#: contrib/plugins/replaygain/ui_options_replaygain.py:61 +msgid "Path to MP3Gain:" +msgstr "" + +#: contrib/plugins/replaygain/ui_options_replaygain.py:62 +msgid "Path to metaflac:" +msgstr "" + +#: contrib/plugins/replaygain/ui_options_replaygain.py:63 +msgid "Path to wvgain:" +msgstr "" + +#: contrib/plugins/viewvariables/__init__.py:42 #, python-format -msgid "AcoustID lookup network error for '%s'!" +msgid "File: %s" msgstr "" -#: picard/acoustid.py:117 +#: contrib/plugins/viewvariables/__init__.py:47 #, python-format -msgid "AcoustID lookup failed for '%s'!" +msgid "Track: %s %s " msgstr "" -#: picard/acoustid.py:128 +#: contrib/plugins/viewvariables/__init__.py:49 +msgid "Variables" +msgstr "" + +#: contrib/plugins/viewvariables/__init__.py:69 +msgid "File variables" +msgstr "" + +#: contrib/plugins/viewvariables/__init__.py:74 +msgid "Hidden variables" +msgstr "" + +#: contrib/plugins/viewvariables/__init__.py:79 +msgid "Tag variables" +msgstr "" + +#: contrib/plugins/viewvariables/ui_variables_dialog.py:73 +msgid "Variable" +msgstr "" + +#: contrib/plugins/viewvariables/ui_variables_dialog.py:75 +msgid "Value" +msgstr "" + +#: picard/acoustid.py:109 #, python-format -msgid "Acoustid lookup returned no result for file '%s'" +msgid "AcoustID lookup network error for '%(filename)s'!" msgstr "" -#: picard/acoustid.py:132 +#: picard/acoustid.py:133 #, python-format -msgid "Looking up the fingerprint for file %s..." +msgid "AcoustID lookup failed for '%(filename)s'!" msgstr "" -#: picard/acoustidmanager.py:78 -msgid "Submitting AcoustIDs..." -msgstr "" - -#: picard/acoustidmanager.py:83 +#: picard/acoustid.py:155 #, python-format -msgid "AcoustID submission failed with error '%s'" +msgid "AcoustID lookup returned no result for file '%(filename)s'" msgstr "" -#: picard/acoustidmanager.py:85 +#: picard/acoustid.py:166 +#, python-format +msgid "Looking up the fingerprint for file '%(filename)s' ..." +msgstr "" + +#: picard/acoustidmanager.py:80 +msgid "Submitting AcoustIDs ..." +msgstr "" + +#: picard/acoustidmanager.py:94 +#, python-format +msgid "AcoustID submission failed with error '%(error)s'" +msgstr "" + +#: picard/acoustidmanager.py:102 msgid "AcoustIDs successfully submitted." msgstr "" -#: picard/album.py:64 picard/cluster.py:234 +#: picard/album.py:65 picard/cluster.py:255 msgid "Unmatched Files" msgstr "పొంతన లేని దస్త్రాలు" -#: picard/album.py:187 +#: picard/album.py:188 #, python-format msgid "[could not load album %s]" msgstr "" -#: picard/album.py:272 +#: picard/album.py:277 #, python-format -msgid "Album %s loaded" +msgid "Album %(id)s loaded: %(artist)s - %(album)s" msgstr "" -#: picard/album.py:288 +#: picard/album.py:294 +#, python-format +msgid "Loading album %(id)s ..." +msgstr "" + +#: picard/album.py:303 msgid "[loading album information]" msgstr "" -#: picard/album.py:463 +#: picard/album.py:478 #, python-format msgid "; %i image" msgid_plural "; %i images" msgstr[0] "" msgstr[1] "" -#: picard/cluster.py:150 picard/cluster.py:159 +#: picard/cluster.py:155 picard/cluster.py:168 #, python-format -msgid "No matching releases for cluster %s" +msgid "No matching releases for cluster %(album)s" msgstr "" -#: picard/cluster.py:161 +#: picard/cluster.py:174 #, python-format -msgid "Cluster %s identified!" +msgid "Cluster %(album)s identified!" msgstr "" -#: picard/cluster.py:168 +#: picard/cluster.py:185 #, python-format -msgid "Looking up the metadata for cluster %s..." +msgid "Looking up the metadata for cluster %(album)s..." msgstr "" -#: picard/collection.py:60 +#: picard/collection.py:64 #, python-format -msgid "Added %i release to collection \"%s\"" -msgid_plural "Added %i releases to collection \"%s\"" +msgid "Added %(count)i release to collection \"%(name)s\"" +msgid_plural "Added %(count)i releases to collection \"%(name)s\"" msgstr[0] "" msgstr[1] "" -#: picard/collection.py:72 +#: picard/collection.py:86 #, python-format -msgid "Removed %i release from collection \"%s\"" -msgid_plural "Removed %i releases from collection \"%s\"" +msgid "Removed %(count)i release from collection \"%(name)s\"" +msgid_plural "Removed %(count)i releases from collection \"%(name)s\"" msgstr[0] "" msgstr[1] "" -#: picard/collection.py:81 +#: picard/collection.py:100 #, python-format -msgid "Error loading collections: %s" +msgid "Error loading collections: %(error)s" msgstr "" -#: picard/config_upgrade.py:57 picard/config_upgrade.py:70 +#: picard/config_upgrade.py:58 picard/config_upgrade.py:71 msgid "Various Artists file naming scheme removal" msgstr "" -#: picard/config_upgrade.py:58 +#: picard/config_upgrade.py:59 msgid "" "The separate file naming scheme for various artists albums has been removed in this version of Picard.\n" "Your file naming scheme has automatically been merged with that of single artist albums." msgstr "" -#: picard/config_upgrade.py:71 +#: picard/config_upgrade.py:72 msgid "" "The separate file naming scheme for various artists albums has been removed in this version of Picard.\n" "You currently do not use this option, but have a separate file naming scheme defined.\n" "Do you want to remove it or merge it with your file naming scheme for single artist albums?" msgstr "" -#: picard/config_upgrade.py:77 +#: picard/config_upgrade.py:78 msgid "Merge" msgstr "" -#: picard/config_upgrade.py:77 picard/ui/metadatabox.py:254 +#: picard/config_upgrade.py:78 picard/ui/metadatabox.py:254 msgid "Remove" msgstr "తీసివేయి" -#: picard/const.py:67 -msgid "CD" -msgstr "" - -#: picard/const.py:68 -msgid "CD-R" -msgstr "" - -#: picard/const.py:69 -msgid "HDCD" -msgstr "" - -#: picard/const.py:70 -msgid "8cm CD" -msgstr "" - -#: picard/const.py:71 -msgid "Vinyl" -msgstr "" - -#: picard/const.py:72 -msgid "7\" Vinyl" -msgstr "" - -#: picard/const.py:73 -msgid "10\" Vinyl" -msgstr "" - -#: picard/const.py:74 -msgid "12\" Vinyl" -msgstr "" - -#: picard/const.py:75 -msgid "Digital Media" -msgstr "" - -#: picard/const.py:76 -msgid "USB Flash Drive" -msgstr "" - -#: picard/const.py:77 -msgid "slotMusic" -msgstr "" - -#: picard/const.py:78 -msgid "Cassette" -msgstr "కాసెట్" - -#: picard/const.py:79 -msgid "DVD" -msgstr "" - -#: picard/const.py:80 -msgid "DVD-Audio" -msgstr "" - -#: picard/const.py:81 -msgid "DVD-Video" -msgstr "" - -#: picard/const.py:82 -msgid "SACD" -msgstr "" - -#: picard/const.py:83 -msgid "DualDisc" -msgstr "" - -#: picard/const.py:84 -msgid "MiniDisc" -msgstr "" - -#: picard/const.py:85 -msgid "Blu-ray" -msgstr "" - -#: picard/const.py:86 -msgid "HD-DVD" -msgstr "" - -#: picard/const.py:87 -msgid "Videotape" -msgstr "" - -#: picard/const.py:88 -msgid "VHS" -msgstr "" - -#: picard/const.py:89 -msgid "Betamax" -msgstr "" - #: picard/const.py:90 -msgid "VCD" -msgstr "" - -#: picard/const.py:91 -msgid "SVCD" -msgstr "" - -#: picard/const.py:92 -msgid "UMD" -msgstr "" - -#: picard/const.py:93 picard/coverartarchive.py:33 -#: picard/ui/ui_options_releases.py:226 -msgid "Other" -msgstr "" - -#: picard/const.py:94 -msgid "LaserDisc" -msgstr "" - -#: picard/const.py:95 -msgid "Cartridge" -msgstr "" - -#: picard/const.py:96 -msgid "Reel-to-reel" -msgstr "" - -#: picard/const.py:97 -msgid "DAT" -msgstr "" - -#: picard/const.py:98 -msgid "Wax Cylinder" -msgstr "" - -#: picard/const.py:99 -msgid "Piano Roll" -msgstr "" - -#: picard/const.py:100 -msgid "DCC" -msgstr "" - -#: picard/const.py:115 msgid "Danish" msgstr "" -#: picard/const.py:116 +#: picard/const.py:91 msgid "German" msgstr "జర్మన్" -#: picard/const.py:118 +#: picard/const.py:93 msgid "English" msgstr "ఆంగ్లం" -#: picard/const.py:119 +#: picard/const.py:94 msgid "English (Canada)" msgstr "ఆంగ్లం (కెనడా)" -#: picard/const.py:120 +#: picard/const.py:95 msgid "English (UK)" msgstr "ఆంగ్లం(బ్రిటిష్)" -#: picard/const.py:122 +#: picard/const.py:97 msgid "Spanish" msgstr "స్పానిష్" -#: picard/const.py:123 +#: picard/const.py:98 msgid "Estonian" msgstr "" -#: picard/const.py:125 +#: picard/const.py:100 msgid "Finnish" msgstr "" -#: picard/const.py:127 +#: picard/const.py:102 msgid "French" msgstr "ఫ్రెంచ్" -#: picard/const.py:136 +#: picard/const.py:111 msgid "Italian" msgstr "ఇటాలియన్" -#: picard/const.py:143 +#: picard/const.py:118 msgid "Dutch" msgstr "డచ్" -#: picard/const.py:145 +#: picard/const.py:120 msgid "Polish" msgstr "పోలిష్" -#: picard/const.py:147 +#: picard/const.py:122 msgid "Brazilian Portuguese" msgstr "" -#: picard/const.py:154 +#: picard/const.py:129 msgid "Swedish" msgstr "స్వీడిష్" -#: picard/coverart.py:84 +#: picard/coverart.py:85 #, python-format -msgid "Coverart %s downloaded" +msgid "Cover art of type '%(type)s' downloaded for %(albumid)s from %(host)s" msgstr "" -#: picard/coverart.py:240 +#: picard/coverart.py:256 #, python-format -msgid "Downloading http://%s:%i%s" -msgstr "" - -#: picard/coverartarchive.py:24 -msgid "Front" -msgstr "" - -#: picard/coverartarchive.py:25 -msgid "Back" -msgstr "" - -#: picard/coverartarchive.py:26 -msgid "Booklet" -msgstr "" - -#: picard/coverartarchive.py:27 -msgid "Medium" -msgstr "" - -#: picard/coverartarchive.py:28 -msgid "Tray" -msgstr "" - -#: picard/coverartarchive.py:29 -msgid "Obi" +msgid "" +"Downloading cover art of type '%(type)s' for %(albumid)s from %(host)s .." msgstr "" #: picard/coverartarchive.py:30 -msgid "Spine" -msgstr "" - -#: picard/coverartarchive.py:31 picard/ui/mainwindow.py:546 -msgid "Track" -msgstr "" - -#: picard/coverartarchive.py:32 -msgid "Sticker" -msgstr "" - -#: picard/coverartarchive.py:34 msgid "Unknown" msgstr "" -#: picard/file.py:536 +#: picard/file.py:494 #, python-format -msgid "No matching tracks for file %s" +msgid "No matching tracks for file '%(filename)s'" msgstr "" -#: picard/file.py:548 +#: picard/file.py:510 #, python-format -msgid "No matching tracks above the threshold for file %s" +msgid "No matching tracks above the threshold for file '%(filename)s'" msgstr "" -#: picard/file.py:551 +#: picard/file.py:517 #, python-format -msgid "File %s identified!" -msgstr "దస్త్రం %s గుర్తించబడింది!" +msgid "File '%(filename)s' identified!" +msgstr "" -#: picard/file.py:567 +#: picard/file.py:537 #, python-format -msgid "Looking up the metadata for file %s..." +msgid "Looking up the metadata for file %(filename)s ..." msgstr "" #: picard/releasegroup.py:53 @@ -519,11 +402,11 @@ msgstr "" msgid "Year" msgstr "" -#: picard/releasegroup.py:55 picard/ui/cdlookup.py:34 +#: picard/releasegroup.py:55 picard/ui/cdlookup.py:35 msgid "Country" msgstr "దేశం" -#: picard/releasegroup.py:56 picard/util/tags.py:81 +#: picard/releasegroup.py:56 msgid "Format" msgstr "" @@ -543,16 +426,23 @@ msgstr "" msgid "[no release info]" msgstr "[విదుదల సమాచారం లేదు]" -#: picard/tagger.py:316 +#: picard/tagger.py:370 #, python-format -msgid "Loading directory %s" +msgid "Adding %(count)d file from '%(directory)s' ..." +msgid_plural "Adding %(count)d files from '%(directory)s' ..." +msgstr[0] "" +msgstr[1] "" + +#: picard/tagger.py:512 +#, python-format +msgid "Removing album %(id)s: %(artist)s - %(album)s" msgstr "" -#: picard/tagger.py:452 +#: picard/tagger.py:528 msgid "CD Lookup Error" msgstr "" -#: picard/tagger.py:453 +#: picard/tagger.py:529 #, python-format msgid "" "Error while reading CD:\n" @@ -560,44 +450,43 @@ msgid "" "%s" msgstr "" -#: picard/ui/cdlookup.py:34 picard/ui/mainwindow.py:544 -#: picard/ui/ui_options_releases.py:216 picard/util/tags.py:21 +#: picard/ui/cdlookup.py:35 picard/ui/mainwindow.py:597 picard/util/tags.py:21 msgid "Album" msgstr "" -#: picard/ui/cdlookup.py:34 picard/ui/itemviews.py:96 -#: picard/ui/mainwindow.py:545 picard/util/tags.py:22 +#: picard/ui/cdlookup.py:35 picard/ui/itemviews.py:96 +#: picard/ui/mainwindow.py:598 picard/util/tags.py:22 msgid "Artist" msgstr "" -#: picard/ui/cdlookup.py:34 picard/util/tags.py:24 +#: picard/ui/cdlookup.py:35 picard/util/tags.py:24 msgid "Date" msgstr "తేదీ" -#: picard/ui/cdlookup.py:35 +#: picard/ui/cdlookup.py:36 msgid "Labels" msgstr "" -#: picard/ui/cdlookup.py:35 +#: picard/ui/cdlookup.py:36 msgid "Catalog #s" msgstr "" -#: picard/ui/cdlookup.py:35 picard/util/tags.py:79 +#: picard/ui/cdlookup.py:36 picard/util/tags.py:78 msgid "Barcode" msgstr "" -#: picard/ui/collectionmenu.py:31 +#: picard/ui/collectionmenu.py:42 msgid "Refresh List" msgstr "" -#: picard/ui/collectionmenu.py:92 +#: picard/ui/collectionmenu.py:86 #, python-format msgid "%s (%i release)" msgid_plural "%s (%i releases)" msgstr[0] "" msgstr[1] "" -#: picard/ui/coverartbox.py:142 +#: picard/ui/coverartbox.py:141 msgid "View release on MusicBrainz" msgstr "" @@ -613,59 +502,59 @@ msgstr "" msgid "&Set as starting directory" msgstr "" -#: picard/ui/infodialog.py:36 picard/ui/infodialog.py:75 +#: picard/ui/infodialog.py:37 picard/ui/infodialog.py:80 msgid "Info" msgstr "" -#: picard/ui/infodialog.py:80 +#: picard/ui/infodialog.py:85 msgid "Filename:" msgstr "" -#: picard/ui/infodialog.py:82 +#: picard/ui/infodialog.py:87 msgid "Format:" msgstr "" -#: picard/ui/infodialog.py:86 +#: picard/ui/infodialog.py:91 msgid "Size:" msgstr "పరిమాణం:" -#: picard/ui/infodialog.py:90 +#: picard/ui/infodialog.py:95 msgid "Length:" msgstr "నిడివి:" -#: picard/ui/infodialog.py:92 +#: picard/ui/infodialog.py:97 msgid "Bitrate:" msgstr "" -#: picard/ui/infodialog.py:94 +#: picard/ui/infodialog.py:99 msgid "Sample rate:" msgstr "" -#: picard/ui/infodialog.py:96 +#: picard/ui/infodialog.py:101 msgid "Bits per sample:" msgstr "" -#: picard/ui/infodialog.py:100 +#: picard/ui/infodialog.py:105 msgid "Mono" msgstr "" -#: picard/ui/infodialog.py:102 +#: picard/ui/infodialog.py:107 msgid "Stereo" msgstr "" -#: picard/ui/infodialog.py:105 +#: picard/ui/infodialog.py:110 msgid "Channels:" msgstr "" -#: picard/ui/infodialog.py:116 +#: picard/ui/infodialog.py:121 msgid "Album Info" msgstr "" -#: picard/ui/infodialog.py:124 +#: picard/ui/infodialog.py:129 msgid "&Errors" msgstr "" -#: picard/ui/infodialog.py:134 picard/ui/ui_infodialog.py:77 +#: picard/ui/infodialog.py:139 picard/ui/ui_infodialog.py:73 msgid "&Info" msgstr "" @@ -689,7 +578,7 @@ msgstr "" msgid "Title" msgstr "శీర్షిక" -#: picard/ui/itemviews.py:95 picard/util/tags.py:88 +#: picard/ui/itemviews.py:95 picard/util/tags.py:86 msgid "Length" msgstr "నిడివి" @@ -714,7 +603,7 @@ msgid "Collections" msgstr "" #: picard/ui/itemviews.py:365 -msgid "&Plugins" +msgid "P&lugins" msgstr "" #: picard/ui/itemviews.py:541 @@ -737,12 +626,16 @@ msgstr "" msgid "Contains albums and matched files" msgstr "" -#: picard/ui/logview.py:91 +#: picard/ui/logview.py:109 msgid "Log" msgstr "" -#: picard/ui/logview.py:99 -msgid "Status History" +#: picard/ui/logview.py:113 +msgid "Debug mode" +msgstr "" + +#: picard/ui/logview.py:134 +msgid "Activity History" msgstr "" #: picard/ui/mainwindow.py:74 @@ -776,275 +669,308 @@ msgstr "" #: picard/ui/mainwindow.py:220 msgid "" -"Picard listens on a port to integrate with your browser and downloads " -"release information when you click the \"Tagger\" buttons on the MusicBrainz" -" website" +"Picard listens on this port to integrate with your browser. When you " +"\"Search\" or \"Open in Browser\" from Picard, clicking the \"Tagger\" " +"button on the web page loads the release into Picard." msgstr "" -#: picard/ui/mainwindow.py:240 +#: picard/ui/mainwindow.py:243 #, python-format msgid " Listening on port %(port)d " msgstr "" -#: picard/ui/mainwindow.py:263 +#: picard/ui/mainwindow.py:299 msgid "Submission Error" msgstr "సమర్పణలో లోపం" -#: picard/ui/mainwindow.py:264 +#: picard/ui/mainwindow.py:300 msgid "" "You need to configure your AcoustID API key before you can submit " "fingerprints." msgstr "" -#: picard/ui/mainwindow.py:269 +#: picard/ui/mainwindow.py:305 msgid "&Options..." msgstr "" -#: picard/ui/mainwindow.py:273 +#: picard/ui/mainwindow.py:309 msgid "&Cut" msgstr "" -#: picard/ui/mainwindow.py:278 +#: picard/ui/mainwindow.py:314 msgid "&Paste" msgstr "" -#: picard/ui/mainwindow.py:283 +#: picard/ui/mainwindow.py:319 msgid "&Help..." msgstr "" -#: picard/ui/mainwindow.py:288 +#: picard/ui/mainwindow.py:323 msgid "&About..." msgstr "" -#: picard/ui/mainwindow.py:292 +#: picard/ui/mainwindow.py:327 msgid "&Donate..." msgstr "" -#: picard/ui/mainwindow.py:295 +#: picard/ui/mainwindow.py:330 msgid "&Report a Bug..." msgstr "" -#: picard/ui/mainwindow.py:298 +#: picard/ui/mainwindow.py:333 msgid "&Support Forum..." msgstr "" -#: picard/ui/mainwindow.py:301 +#: picard/ui/mainwindow.py:336 msgid "&Add Files..." msgstr "" -#: picard/ui/mainwindow.py:302 +#: picard/ui/mainwindow.py:337 msgid "Add files to the tagger" msgstr "" -#: picard/ui/mainwindow.py:307 +#: picard/ui/mainwindow.py:342 msgid "A&dd Folder..." msgstr "" -#: picard/ui/mainwindow.py:308 +#: picard/ui/mainwindow.py:343 msgid "Add a folder to the tagger" msgstr "" -#: picard/ui/mainwindow.py:310 +#: picard/ui/mainwindow.py:345 msgid "Ctrl+D" msgstr "" -#: picard/ui/mainwindow.py:313 +#: picard/ui/mainwindow.py:348 msgid "&Save" msgstr "" -#: picard/ui/mainwindow.py:314 +#: picard/ui/mainwindow.py:349 msgid "Save selected files" msgstr "" -#: picard/ui/mainwindow.py:320 +#: picard/ui/mainwindow.py:355 msgid "S&ubmit" msgstr "" -#: picard/ui/mainwindow.py:321 -msgid "Submit fingerprints" +#: picard/ui/mainwindow.py:356 +msgid "Submit acoustic fingerprints" msgstr "" -#: picard/ui/mainwindow.py:325 +#: picard/ui/mainwindow.py:360 msgid "E&xit" msgstr "" -#: picard/ui/mainwindow.py:328 +#: picard/ui/mainwindow.py:363 msgid "Ctrl+Q" msgstr "" -#: picard/ui/mainwindow.py:331 +#: picard/ui/mainwindow.py:366 msgid "&Remove" msgstr "" -#: picard/ui/mainwindow.py:332 +#: picard/ui/mainwindow.py:367 msgid "Remove selected files/albums" msgstr "" -#: picard/ui/mainwindow.py:336 +#: picard/ui/mainwindow.py:371 msgid "Lookup in &Browser" msgstr "" -#: picard/ui/mainwindow.py:337 +#: picard/ui/mainwindow.py:372 msgid "Lookup selected item on MusicBrainz website" msgstr "" -#: picard/ui/mainwindow.py:341 +#: picard/ui/mainwindow.py:376 msgid "File &Browser" msgstr "" -#: picard/ui/mainwindow.py:345 +#: picard/ui/mainwindow.py:380 msgid "Ctrl+B" msgstr "" -#: picard/ui/mainwindow.py:348 +#: picard/ui/mainwindow.py:383 msgid "&Cover Art" msgstr "" -#: picard/ui/mainwindow.py:354 picard/ui/mainwindow.py:539 +#: picard/ui/mainwindow.py:389 picard/ui/mainwindow.py:591 msgid "Search" msgstr "వెతుకు" -#: picard/ui/mainwindow.py:357 -msgid "&CD Lookup..." +#: picard/ui/mainwindow.py:392 +msgid "Lookup &CD..." msgstr "" -#: picard/ui/mainwindow.py:358 picard/ui/mainwindow.py:359 -msgid "Lookup CD" +#: picard/ui/mainwindow.py:393 +msgid "Lookup the details of the CD in your drive" msgstr "" -#: picard/ui/mainwindow.py:361 +#: picard/ui/mainwindow.py:395 msgid "Ctrl+K" msgstr "" -#: picard/ui/mainwindow.py:364 +#: picard/ui/mainwindow.py:398 msgid "&Scan" msgstr "" -#: picard/ui/mainwindow.py:367 +#: picard/ui/mainwindow.py:401 msgid "Ctrl+Y" msgstr "" -#: picard/ui/mainwindow.py:370 +#: picard/ui/mainwindow.py:404 msgid "Cl&uster" msgstr "" -#: picard/ui/mainwindow.py:373 +#: picard/ui/mainwindow.py:407 msgid "Ctrl+U" msgstr "" -#: picard/ui/mainwindow.py:376 +#: picard/ui/mainwindow.py:410 msgid "&Lookup" msgstr "" -#: picard/ui/mainwindow.py:377 picard/ui/mainwindow.py:378 -msgid "Lookup metadata" +#: picard/ui/mainwindow.py:411 +msgid "Lookup selected items in MusicBrainz" msgstr "" -#: picard/ui/mainwindow.py:381 +#: picard/ui/mainwindow.py:416 msgid "Ctrl+L" msgstr "" -#: picard/ui/mainwindow.py:384 +#: picard/ui/mainwindow.py:419 msgid "&Info..." msgstr "" -#: picard/ui/mainwindow.py:387 +#: picard/ui/mainwindow.py:422 msgid "Ctrl+I" msgstr "" -#: picard/ui/mainwindow.py:390 +#: picard/ui/mainwindow.py:425 msgid "&Refresh" msgstr "" -#: picard/ui/mainwindow.py:391 +#: picard/ui/mainwindow.py:426 msgid "Ctrl+R" msgstr "" -#: picard/ui/mainwindow.py:394 +#: picard/ui/mainwindow.py:429 msgid "&Rename Files" msgstr "" -#: picard/ui/mainwindow.py:399 +#: picard/ui/mainwindow.py:434 msgid "&Move Files" msgstr "" -#: picard/ui/mainwindow.py:404 +#: picard/ui/mainwindow.py:439 msgid "Save &Tags" msgstr "" -#: picard/ui/mainwindow.py:409 +#: picard/ui/mainwindow.py:444 msgid "Tags From &File Names..." msgstr "" -#: picard/ui/mainwindow.py:412 -msgid "View &Log..." +#: picard/ui/mainwindow.py:447 +msgid "&Open My Collections in Browser" msgstr "" -#: picard/ui/mainwindow.py:415 -msgid "View Status &History..." +#: picard/ui/mainwindow.py:451 +msgid "View Error/Debug &Log" msgstr "" -#: picard/ui/mainwindow.py:422 -msgid "&Open..." +#: picard/ui/mainwindow.py:454 +msgid "View Activity &History" msgstr "" -#: picard/ui/mainwindow.py:423 -msgid "Open the file" -msgstr "" - -#: picard/ui/mainwindow.py:426 -msgid "Open &Folder..." -msgstr "" - -#: picard/ui/mainwindow.py:427 -msgid "Open the containing folder" -msgstr "" - -#: picard/ui/mainwindow.py:448 -msgid "&File" -msgstr "" - -#: picard/ui/mainwindow.py:456 -msgid "&Edit" +#: picard/ui/mainwindow.py:461 +msgid "&Play file" msgstr "" #: picard/ui/mainwindow.py:462 +msgid "Play the file in your default media player" +msgstr "" + +#: picard/ui/mainwindow.py:466 +msgid "Open Containing &Folder" +msgstr "" + +#: picard/ui/mainwindow.py:467 +msgid "Open the containing folder in your file explorer" +msgstr "" + +#: picard/ui/mainwindow.py:492 +msgid "&File" +msgstr "" + +#: picard/ui/mainwindow.py:503 +msgid "&Edit" +msgstr "" + +#: picard/ui/mainwindow.py:509 msgid "&View" msgstr "" -#: picard/ui/mainwindow.py:470 +#: picard/ui/mainwindow.py:515 msgid "&Options" msgstr "" -#: picard/ui/mainwindow.py:476 +#: picard/ui/mainwindow.py:521 msgid "&Tools" msgstr "" -#: picard/ui/mainwindow.py:485 picard/ui/util.py:35 +#: picard/ui/mainwindow.py:532 picard/ui/util.py:35 msgid "&Help" msgstr "" -#: picard/ui/mainwindow.py:505 +#: picard/ui/mainwindow.py:553 msgid "Actions" msgstr "" -#: picard/ui/mainwindow.py:608 +#: picard/ui/mainwindow.py:599 +msgid "Track" +msgstr "" + +#: picard/ui/mainwindow.py:662 msgid "All Supported Formats" msgstr "" -#: picard/ui/mainwindow.py:705 +#: picard/ui/mainwindow.py:695 +#, python-format +msgid "Adding directory: '%(directory)s' ..." +msgstr "" + +#: picard/ui/mainwindow.py:702 +#, python-format +msgid "Adding multiple directories from '%(directory)s' ..." +msgstr "" + +#: picard/ui/mainwindow.py:767 msgid "Configuration Required" msgstr "" -#: picard/ui/mainwindow.py:706 +#: picard/ui/mainwindow.py:768 msgid "" "Audio fingerprinting is not yet configured. Would you like to configure it " "now?" msgstr "" -#: picard/ui/mainwindow.py:784 picard/ui/mainwindow.py:791 +#: picard/ui/mainwindow.py:848 #, python-format -msgid " (Error: %s)" +msgid "%(filename)s (error: %(error)s)" +msgstr "" + +#: picard/ui/mainwindow.py:854 +#, python-format +msgid "%(filename)s" +msgstr "" + +#: picard/ui/mainwindow.py:864 +#, python-format +msgid "%(filename)s (%(similarity)d%%) (error: %(error)s)" +msgstr "" + +#: picard/ui/mainwindow.py:871 +#, python-format +msgid "%(filename)s (%(similarity)d%%)" msgstr "" #: picard/ui/metadatabox.py:82 @@ -1099,387 +1025,387 @@ msgid_plural "Use Original Values" msgstr[0] "" msgstr[1] "" -#: picard/ui/passworddialog.py:37 +#: picard/ui/passworddialog.py:40 #, python-format msgid "" "The server %s requires you to login. Please enter your username and " "password." msgstr "" -#: picard/ui/passworddialog.py:75 +#: picard/ui/passworddialog.py:79 #, python-format msgid "" "The proxy %s requires you to login. Please enter your username and password." msgstr "" -#: picard/ui/tagsfromfilenames.py:55 picard/ui/tagsfromfilenames.py:100 +#: picard/ui/tagsfromfilenames.py:56 picard/ui/tagsfromfilenames.py:101 msgid "File Name" msgstr "" -#: picard/ui/ui_cdlookup.py:66 picard/ui/ui_options_cdlookup.py:55 -#: picard/ui/ui_options_cdlookup_select.py:62 picard/ui/options/cdlookup.py:38 +#: picard/ui/ui_cdlookup.py:53 picard/ui/ui_options_cdlookup.py:42 +#: picard/ui/ui_options_cdlookup_select.py:49 picard/ui/options/cdlookup.py:38 msgid "CD Lookup" msgstr "" -#: picard/ui/ui_cdlookup.py:67 +#: picard/ui/ui_cdlookup.py:54 msgid "The following releases on MusicBrainz match the CD:" msgstr "" -#: picard/ui/ui_cdlookup.py:68 +#: picard/ui/ui_cdlookup.py:55 msgid "OK" msgstr "సరే" -#: picard/ui/ui_cdlookup.py:69 +#: picard/ui/ui_cdlookup.py:56 msgid "Lookup manually" msgstr "" -#: picard/ui/ui_cdlookup.py:70 +#: picard/ui/ui_cdlookup.py:57 msgid "Cancel" msgstr "రద్దుచేయి" -#: picard/ui/ui_edittagdialog.py:101 +#: picard/ui/ui_edittagdialog.py:88 msgid "Edit Tag" msgstr "" -#: picard/ui/ui_edittagdialog.py:102 +#: picard/ui/ui_edittagdialog.py:89 msgid "Edit value" msgstr "" -#: picard/ui/ui_edittagdialog.py:103 +#: picard/ui/ui_edittagdialog.py:90 msgid "Add value" msgstr "" -#: picard/ui/ui_edittagdialog.py:104 +#: picard/ui/ui_edittagdialog.py:91 msgid "Remove value" msgstr "" -#: picard/ui/ui_infodialog.py:78 +#: picard/ui/ui_infodialog.py:74 msgid "A&rtwork" msgstr "" -#: picard/ui/ui_infostatus.py:100 +#: picard/ui/ui_infostatus.py:96 msgid "Form" msgstr "" -#: picard/ui/ui_options.py:51 +#: picard/ui/ui_options.py:38 msgid "Options" msgstr "ఎంపికలు" -#: picard/ui/ui_options_advanced.py:46 +#: picard/ui/ui_options_advanced.py:42 msgid "Advanced options" msgstr "" -#: picard/ui/ui_options_advanced.py:47 +#: picard/ui/ui_options_advanced.py:43 msgid "Ignore file paths matching the following regular expression:" msgstr "" -#: picard/ui/ui_options_cdlookup.py:56 +#: picard/ui/ui_options_cdlookup.py:43 msgid "CD-ROM device to use for lookups:" msgstr "" -#: picard/ui/ui_options_cdlookup_select.py:63 +#: picard/ui/ui_options_cdlookup_select.py:50 msgid "Default CD-ROM drive to use for lookups:" msgstr "" -#: picard/ui/ui_options_cover.py:145 +#: picard/ui/ui_options_cover.py:131 msgid "Location" msgstr "" -#: picard/ui/ui_options_cover.py:146 +#: picard/ui/ui_options_cover.py:132 msgid "Embed cover images into tags" msgstr "" -#: picard/ui/ui_options_cover.py:147 +#: picard/ui/ui_options_cover.py:133 msgid "Only embed a front image" msgstr "" -#: picard/ui/ui_options_cover.py:148 +#: picard/ui/ui_options_cover.py:134 msgid "Save cover images as separate files" msgstr "" -#: picard/ui/ui_options_cover.py:149 +#: picard/ui/ui_options_cover.py:135 msgid "Use the following file name for images:" msgstr "" -#: picard/ui/ui_options_cover.py:150 +#: picard/ui/ui_options_cover.py:136 msgid "Overwrite the file if it already exists" msgstr "" -#: picard/ui/ui_options_cover.py:151 +#: picard/ui/ui_options_cover.py:137 msgid "Coverart Providers" msgstr "" -#: picard/ui/ui_options_cover.py:152 +#: picard/ui/ui_options_cover.py:138 msgid "Amazon" msgstr "" -#: picard/ui/ui_options_cover.py:153 picard/ui/ui_options_cover.py:155 +#: picard/ui/ui_options_cover.py:139 picard/ui/ui_options_cover.py:141 msgid "Cover Art Archive" msgstr "" -#: picard/ui/ui_options_cover.py:154 +#: picard/ui/ui_options_cover.py:140 msgid "Sites on the whitelist" msgstr "" -#: picard/ui/ui_options_cover.py:156 +#: picard/ui/ui_options_cover.py:142 msgid "Only use images of the following size:" msgstr "" -#: picard/ui/ui_options_cover.py:157 +#: picard/ui/ui_options_cover.py:143 msgid "250 px" msgstr "" -#: picard/ui/ui_options_cover.py:158 +#: picard/ui/ui_options_cover.py:144 msgid "500 px" msgstr "" -#: picard/ui/ui_options_cover.py:159 +#: picard/ui/ui_options_cover.py:145 msgid "Full size" msgstr "" -#: picard/ui/ui_options_cover.py:160 +#: picard/ui/ui_options_cover.py:146 msgid "Download only images of the following types:" msgstr "" -#: picard/ui/ui_options_cover.py:161 +#: picard/ui/ui_options_cover.py:147 msgid "Download only approved images" msgstr "" -#: picard/ui/ui_options_cover.py:162 +#: picard/ui/ui_options_cover.py:148 msgid "" "Use the first image type as the filename. This will not change the filename " "of front images." msgstr "" -#: picard/ui/ui_options_fingerprinting.py:83 +#: picard/ui/ui_options_fingerprinting.py:70 msgid "Audio Fingerprinting" msgstr "" -#: picard/ui/ui_options_fingerprinting.py:84 +#: picard/ui/ui_options_fingerprinting.py:71 msgid "Do not use audio fingerprinting" msgstr "" -#: picard/ui/ui_options_fingerprinting.py:85 +#: picard/ui/ui_options_fingerprinting.py:72 msgid "Use AcoustID" msgstr "" -#: picard/ui/ui_options_fingerprinting.py:86 +#: picard/ui/ui_options_fingerprinting.py:73 msgid "AcoustID Settings" msgstr "" -#: picard/ui/ui_options_fingerprinting.py:87 +#: picard/ui/ui_options_fingerprinting.py:74 msgid "Fingerprint calculator:" msgstr "" -#: picard/ui/ui_options_fingerprinting.py:88 -#: picard/ui/ui_options_interface.py:88 picard/ui/ui_options_renaming.py:138 +#: picard/ui/ui_options_fingerprinting.py:75 +#: picard/ui/ui_options_interface.py:75 picard/ui/ui_options_renaming.py:134 msgid "Browse..." msgstr "" -#: picard/ui/ui_options_fingerprinting.py:89 +#: picard/ui/ui_options_fingerprinting.py:76 msgid "Download..." msgstr "" -#: picard/ui/ui_options_fingerprinting.py:90 +#: picard/ui/ui_options_fingerprinting.py:77 msgid "API key:" msgstr "" -#: picard/ui/ui_options_fingerprinting.py:91 +#: picard/ui/ui_options_fingerprinting.py:78 msgid "Get API key..." msgstr "" -#: picard/ui/ui_options_folksonomy.py:115 picard/ui/options/folksonomy.py:28 +#: picard/ui/ui_options_folksonomy.py:102 picard/ui/options/folksonomy.py:28 msgid "Folksonomy Tags" msgstr "" -#: picard/ui/ui_options_folksonomy.py:117 +#: picard/ui/ui_options_folksonomy.py:104 msgid "Only use my tags" msgstr "" -#: picard/ui/ui_options_folksonomy.py:120 +#: picard/ui/ui_options_folksonomy.py:107 msgid "Maximum number of tags:" msgstr "" -#: picard/ui/ui_options_general.py:92 +#: picard/ui/ui_options_general.py:88 msgid "MusicBrainz Server" msgstr "" -#: picard/ui/ui_options_general.py:93 picard/ui/ui_options_network.py:123 +#: picard/ui/ui_options_general.py:89 picard/ui/ui_options_network.py:110 msgid "Port:" msgstr "" -#: picard/ui/ui_options_general.py:94 picard/ui/ui_options_network.py:124 +#: picard/ui/ui_options_general.py:90 picard/ui/ui_options_network.py:111 msgid "Server address:" msgstr "" -#: picard/ui/ui_options_general.py:95 +#: picard/ui/ui_options_general.py:91 msgid "Account Information" msgstr "ఖాతా సమాచారం" -#: picard/ui/ui_options_general.py:96 picard/ui/ui_options_network.py:121 -#: picard/ui/ui_passworddialog.py:74 +#: picard/ui/ui_options_general.py:92 picard/ui/ui_options_network.py:108 +#: picard/ui/ui_passworddialog.py:70 msgid "Password:" msgstr "సంకేతపదం:" -#: picard/ui/ui_options_general.py:97 picard/ui/ui_options_network.py:122 -#: picard/ui/ui_passworddialog.py:73 +#: picard/ui/ui_options_general.py:93 picard/ui/ui_options_network.py:109 +#: picard/ui/ui_passworddialog.py:69 msgid "Username:" msgstr "వాడుకరి పేరు:" -#: picard/ui/ui_options_general.py:98 picard/ui/options/general.py:31 +#: picard/ui/ui_options_general.py:94 picard/ui/options/general.py:31 msgid "General" msgstr "సాధారణ" -#: picard/ui/ui_options_general.py:99 +#: picard/ui/ui_options_general.py:95 msgid "Automatically scan all new files" msgstr "" -#: picard/ui/ui_options_general.py:100 +#: picard/ui/ui_options_general.py:96 msgid "Ignore MBIDs when loading new files" msgstr "" -#: picard/ui/ui_options_interface.py:82 +#: picard/ui/ui_options_interface.py:69 msgid "Miscellaneous" msgstr "" -#: picard/ui/ui_options_interface.py:83 +#: picard/ui/ui_options_interface.py:70 msgid "Show text labels under icons" msgstr "" -#: picard/ui/ui_options_interface.py:84 +#: picard/ui/ui_options_interface.py:71 msgid "Allow selection of multiple directories" msgstr "" -#: picard/ui/ui_options_interface.py:85 +#: picard/ui/ui_options_interface.py:72 msgid "Use advanced query syntax" msgstr "" -#: picard/ui/ui_options_interface.py:86 +#: picard/ui/ui_options_interface.py:73 msgid "Show a quit confirmation dialog for unsaved changes" msgstr "" -#: picard/ui/ui_options_interface.py:87 +#: picard/ui/ui_options_interface.py:74 msgid "Begin browsing in the following directory:" msgstr "" -#: picard/ui/ui_options_interface.py:89 +#: picard/ui/ui_options_interface.py:76 msgid "User interface language:" msgstr "" -#: picard/ui/ui_options_matching.py:86 +#: picard/ui/ui_options_matching.py:73 msgid "Thresholds" msgstr "" -#: picard/ui/ui_options_matching.py:87 +#: picard/ui/ui_options_matching.py:74 msgid "Minimal similarity for matching files to tracks:" msgstr "" -#: picard/ui/ui_options_matching.py:91 +#: picard/ui/ui_options_matching.py:78 msgid "Minimal similarity for file lookups:" msgstr "" -#: picard/ui/ui_options_matching.py:92 +#: picard/ui/ui_options_matching.py:79 msgid "Minimal similarity for cluster lookups:" msgstr "" -#: picard/ui/ui_options_metadata.py:114 picard/ui/options/metadata.py:29 +#: picard/ui/ui_options_metadata.py:101 picard/ui/options/metadata.py:29 msgid "Metadata" msgstr "" -#: picard/ui/ui_options_metadata.py:115 +#: picard/ui/ui_options_metadata.py:102 msgid "Translate artist names to this locale where possible:" msgstr "" -#: picard/ui/ui_options_metadata.py:116 +#: picard/ui/ui_options_metadata.py:103 msgid "Use standardized artist names" msgstr "" -#: picard/ui/ui_options_metadata.py:117 +#: picard/ui/ui_options_metadata.py:104 msgid "Convert Unicode punctuation characters to ASCII" msgstr "" -#: picard/ui/ui_options_metadata.py:118 +#: picard/ui/ui_options_metadata.py:105 msgid "Use release relationships" msgstr "" -#: picard/ui/ui_options_metadata.py:119 +#: picard/ui/ui_options_metadata.py:106 msgid "Use track relationships" msgstr "" -#: picard/ui/ui_options_metadata.py:120 +#: picard/ui/ui_options_metadata.py:107 msgid "Use folksonomy tags as genre" msgstr "" -#: picard/ui/ui_options_metadata.py:121 +#: picard/ui/ui_options_metadata.py:108 msgid "Custom Fields" msgstr "" -#: picard/ui/ui_options_metadata.py:122 +#: picard/ui/ui_options_metadata.py:109 msgid "Various artists:" msgstr "" -#: picard/ui/ui_options_metadata.py:123 +#: picard/ui/ui_options_metadata.py:110 msgid "Non-album tracks:" msgstr "" -#: picard/ui/ui_options_metadata.py:124 picard/ui/ui_options_metadata.py:125 -#: picard/ui/ui_options_renaming.py:147 +#: picard/ui/ui_options_metadata.py:111 picard/ui/ui_options_metadata.py:112 +#: picard/ui/ui_options_renaming.py:143 msgid "Default" msgstr "అప్రమేయం" -#: picard/ui/ui_options_network.py:120 +#: picard/ui/ui_options_network.py:107 msgid "Web Proxy" msgstr "" -#: picard/ui/ui_options_network.py:125 +#: picard/ui/ui_options_network.py:112 msgid "Browser Integration" msgstr "" -#: picard/ui/ui_options_network.py:126 +#: picard/ui/ui_options_network.py:113 msgid "Default listening port:" msgstr "" -#: picard/ui/ui_options_network.py:127 +#: picard/ui/ui_options_network.py:114 msgid "Listen only on localhost" msgstr "" -#: picard/ui/ui_options_plugins.py:131 picard/ui/options/plugins.py:38 +#: picard/ui/ui_options_plugins.py:127 picard/ui/options/plugins.py:38 msgid "Plugins" msgstr "" -#: picard/ui/ui_options_plugins.py:132 picard/ui/options/plugins.py:122 +#: picard/ui/ui_options_plugins.py:128 picard/ui/options/plugins.py:122 msgid "Name" msgstr "పేరు" -#: picard/ui/ui_options_plugins.py:133 picard/util/tags.py:39 +#: picard/ui/ui_options_plugins.py:129 msgid "Version" msgstr "" -#: picard/ui/ui_options_plugins.py:134 picard/ui/options/plugins.py:125 +#: picard/ui/ui_options_plugins.py:130 picard/ui/options/plugins.py:125 msgid "Author" msgstr "" -#: picard/ui/ui_options_plugins.py:135 +#: picard/ui/ui_options_plugins.py:131 msgid "Install plugin..." msgstr "" -#: picard/ui/ui_options_plugins.py:136 +#: picard/ui/ui_options_plugins.py:132 msgid "Open plugin folder" msgstr "" -#: picard/ui/ui_options_plugins.py:137 +#: picard/ui/ui_options_plugins.py:133 msgid "Download plugins" msgstr "" -#: picard/ui/ui_options_plugins.py:138 +#: picard/ui/ui_options_plugins.py:134 msgid "Details" msgstr "వివరాలు" -#: picard/ui/ui_options_ratings.py:53 +#: picard/ui/ui_options_ratings.py:49 msgid "Enable track ratings" msgstr "" -#: picard/ui/ui_options_ratings.py:54 +#: picard/ui/ui_options_ratings.py:50 msgid "" "Picard saves the ratings together with an e-mail address identifying the " "user who did the rating. That way different ratings for different users can " @@ -1487,207 +1413,167 @@ msgid "" "your ratings." msgstr "" -#: picard/ui/ui_options_ratings.py:55 +#: picard/ui/ui_options_ratings.py:51 msgid "E-mail:" msgstr "" -#: picard/ui/ui_options_ratings.py:56 +#: picard/ui/ui_options_ratings.py:52 msgid "Submit ratings to MusicBrainz" msgstr "" -#: picard/ui/ui_options_releases.py:215 +#: picard/ui/ui_options_releases.py:104 msgid "Preferred release types" msgstr "" -#: picard/ui/ui_options_releases.py:217 -msgid "Single" -msgstr "" - -#: picard/ui/ui_options_releases.py:218 -msgid "EP" -msgstr "" - -#: picard/ui/ui_options_releases.py:219 -msgid "Compilation" -msgstr "" - -#: picard/ui/ui_options_releases.py:220 -msgid "Soundtrack" -msgstr "" - -#: picard/ui/ui_options_releases.py:221 -msgid "Spokenword" -msgstr "" - -#: picard/ui/ui_options_releases.py:222 -msgid "Interview" -msgstr "" - -#: picard/ui/ui_options_releases.py:223 -msgid "Audiobook" -msgstr "" - -#: picard/ui/ui_options_releases.py:224 -msgid "Live" -msgstr "" - -#: picard/ui/ui_options_releases.py:225 -msgid "Remix" -msgstr "" - -#: picard/ui/ui_options_releases.py:227 -msgid "Reset all" -msgstr "" - -#: picard/ui/ui_options_releases.py:228 +#: picard/ui/ui_options_releases.py:105 msgid "Preferred release countries" msgstr "" -#: picard/ui/ui_options_releases.py:229 picard/ui/ui_options_releases.py:232 +#: picard/ui/ui_options_releases.py:106 picard/ui/ui_options_releases.py:109 msgid ">" msgstr "" -#: picard/ui/ui_options_releases.py:230 picard/ui/ui_options_releases.py:233 +#: picard/ui/ui_options_releases.py:107 picard/ui/ui_options_releases.py:110 msgid "<" msgstr "" -#: picard/ui/ui_options_releases.py:231 +#: picard/ui/ui_options_releases.py:108 msgid "Preferred release formats" msgstr "" -#: picard/ui/ui_options_renaming.py:134 +#: picard/ui/ui_options_renaming.py:130 msgid "Rename files when saving" msgstr "" -#: picard/ui/ui_options_renaming.py:135 +#: picard/ui/ui_options_renaming.py:131 msgid "Replace non-ASCII characters" msgstr "" -#: picard/ui/ui_options_renaming.py:136 +#: picard/ui/ui_options_renaming.py:132 msgid "Windows compatibility" msgstr "" -#: picard/ui/ui_options_renaming.py:137 +#: picard/ui/ui_options_renaming.py:133 msgid "Move files to this directory when saving:" msgstr "" -#: picard/ui/ui_options_renaming.py:139 +#: picard/ui/ui_options_renaming.py:135 msgid "Delete empty directories" msgstr "" -#: picard/ui/ui_options_renaming.py:140 +#: picard/ui/ui_options_renaming.py:136 msgid "Move additional files:" msgstr "" -#: picard/ui/ui_options_renaming.py:141 +#: picard/ui/ui_options_renaming.py:137 msgid "Name files like this" msgstr "" -#: picard/ui/ui_options_renaming.py:148 +#: picard/ui/ui_options_renaming.py:144 msgid "Examples" msgstr "" -#: picard/ui/ui_options_script.py:49 +#: picard/ui/ui_options_script.py:45 msgid "Tagger Script" msgstr "" -#: picard/ui/ui_options_tags.py:165 +#: picard/ui/ui_options_tags.py:152 msgid "Write tags to files" msgstr "" -#: picard/ui/ui_options_tags.py:166 +#: picard/ui/ui_options_tags.py:153 msgid "Preserve timestamps of tagged files" msgstr "" -#: picard/ui/ui_options_tags.py:167 +#: picard/ui/ui_options_tags.py:154 msgid "Before Tagging" msgstr "" -#: picard/ui/ui_options_tags.py:168 +#: picard/ui/ui_options_tags.py:155 msgid "Clear existing tags" msgstr "" -#: picard/ui/ui_options_tags.py:169 +#: picard/ui/ui_options_tags.py:156 msgid "Remove ID3 tags from FLAC files" msgstr "" -#: picard/ui/ui_options_tags.py:170 +#: picard/ui/ui_options_tags.py:157 msgid "Remove APEv2 tags from MP3 files" msgstr "" -#: picard/ui/ui_options_tags.py:171 +#: picard/ui/ui_options_tags.py:158 msgid "" "Preserve these tags from being cleared or overwritten with MusicBrainz data:" msgstr "" -#: picard/ui/ui_options_tags.py:172 +#: picard/ui/ui_options_tags.py:159 msgid "Tags are separated by commas, and are case-sensitive." msgstr "" -#: picard/ui/ui_options_tags.py:173 +#: picard/ui/ui_options_tags.py:160 msgid "Tag Compatibility" msgstr "" -#: picard/ui/ui_options_tags.py:174 +#: picard/ui/ui_options_tags.py:161 msgid "ID3v2 Version" msgstr "" -#: picard/ui/ui_options_tags.py:175 +#: picard/ui/ui_options_tags.py:162 msgid "2.4" msgstr "" -#: picard/ui/ui_options_tags.py:176 +#: picard/ui/ui_options_tags.py:163 msgid "2.3" msgstr "" -#: picard/ui/ui_options_tags.py:177 +#: picard/ui/ui_options_tags.py:164 msgid "ID3v2 Text Encoding" msgstr "" -#: picard/ui/ui_options_tags.py:178 +#: picard/ui/ui_options_tags.py:165 msgid "UTF-8" msgstr "" -#: picard/ui/ui_options_tags.py:179 +#: picard/ui/ui_options_tags.py:166 msgid "UTF-16" msgstr "" -#: picard/ui/ui_options_tags.py:180 +#: picard/ui/ui_options_tags.py:167 msgid "ISO-8859-1" msgstr "" -#: picard/ui/ui_options_tags.py:181 +#: picard/ui/ui_options_tags.py:168 msgid "Join multiple ID3v2.3 tags with:" msgstr "" -#: picard/ui/ui_options_tags.py:182 +#: picard/ui/ui_options_tags.py:169 msgid "" "

Default is '/' to maintain compatibility with previous" " Picard releases.

New alternatives are ';_' or '_/_' or type your own." "

" msgstr "" -#: picard/ui/ui_options_tags.py:183 +#: picard/ui/ui_options_tags.py:170 msgid "Also include ID3v1 tags in the files" msgstr "" -#: picard/ui/ui_passworddialog.py:72 +#: picard/ui/ui_passworddialog.py:68 msgid "Authentication required" msgstr "" -#: picard/ui/ui_passworddialog.py:75 +#: picard/ui/ui_passworddialog.py:71 msgid "Save username and password" msgstr "" -#: picard/ui/ui_tagsfromfilenames.py:54 +#: picard/ui/ui_tagsfromfilenames.py:50 msgid "Convert File Names to Tags" msgstr "" -#: picard/ui/ui_tagsfromfilenames.py:55 +#: picard/ui/ui_tagsfromfilenames.py:51 msgid "Replace underscores with spaces" msgstr "" -#: picard/ui/ui_tagsfromfilenames.py:56 +#: picard/ui/ui_tagsfromfilenames.py:52 msgid "&Preview" msgstr "" @@ -1743,7 +1629,11 @@ msgstr "" msgid "Regex Error" msgstr "" -#: picard/ui/options/cover.py:63 +#: picard/ui/options/cover.py:44 +msgid "title" +msgstr "" + +#: picard/ui/options/cover.py:68 msgid "Cover Art" msgstr "" @@ -1759,11 +1649,11 @@ msgstr "" msgid "System default" msgstr "" -#: picard/ui/options/interface.py:96 +#: picard/ui/options/interface.py:98 msgid "Language changed" msgstr "" -#: picard/ui/options/interface.py:96 +#: picard/ui/options/interface.py:99 msgid "" "You have changed the interface language. You have to restart Picard in order" " for the change to take effect." @@ -1785,31 +1675,35 @@ msgstr "" msgid "Ratings" msgstr "" -#: picard/ui/options/releases.py:33 +#: picard/ui/options/releases.py:87 msgid "Preferred Releases" msgstr "" +#: picard/ui/options/releases.py:121 +msgid "Reset all" +msgstr "" + #: picard/ui/options/renaming.py:37 msgid "File Naming" msgstr "" -#: picard/ui/options/renaming.py:184 +#: picard/ui/options/renaming.py:187 msgid "Error" msgstr "" -#: picard/ui/options/renaming.py:184 +#: picard/ui/options/renaming.py:187 msgid "The location to move files to must not be empty." msgstr "" -#: picard/ui/options/renaming.py:194 +#: picard/ui/options/renaming.py:197 msgid "The file naming format must not be empty." msgstr "" -#: picard/ui/options/scripting.py:63 +#: picard/ui/options/scripting.py:99 msgid "Scripting" msgstr "" -#: picard/ui/options/scripting.py:95 +#: picard/ui/options/scripting.py:131 msgid "Script Error" msgstr "" @@ -1929,199 +1823,199 @@ msgstr "" msgid "Grouping" msgstr "" -#: picard/util/tags.py:40 +#: picard/util/tags.py:39 msgid "ISRC" msgstr "" -#: picard/util/tags.py:41 +#: picard/util/tags.py:40 msgid "Mood" msgstr "" -#: picard/util/tags.py:42 +#: picard/util/tags.py:41 msgid "BPM" msgstr "" -#: picard/util/tags.py:43 +#: picard/util/tags.py:42 msgid "Copyright" msgstr "" -#: picard/util/tags.py:44 +#: picard/util/tags.py:43 msgid "License" msgstr "" -#: picard/util/tags.py:45 +#: picard/util/tags.py:44 msgid "Composer" msgstr "" -#: picard/util/tags.py:46 +#: picard/util/tags.py:45 msgid "Writer" msgstr "" -#: picard/util/tags.py:47 +#: picard/util/tags.py:46 msgid "Conductor" msgstr "" -#: picard/util/tags.py:48 +#: picard/util/tags.py:47 msgid "Lyricist" msgstr "" -#: picard/util/tags.py:49 +#: picard/util/tags.py:48 msgid "Arranger" msgstr "" -#: picard/util/tags.py:50 +#: picard/util/tags.py:49 msgid "Producer" msgstr "" -#: picard/util/tags.py:51 +#: picard/util/tags.py:50 msgid "Engineer" msgstr "" -#: picard/util/tags.py:52 +#: picard/util/tags.py:51 msgid "Subtitle" msgstr "" -#: picard/util/tags.py:53 +#: picard/util/tags.py:52 msgid "Disc Subtitle" msgstr "" -#: picard/util/tags.py:54 +#: picard/util/tags.py:53 msgid "Remixer" msgstr "" -#: picard/util/tags.py:55 +#: picard/util/tags.py:54 msgid "MusicBrainz Recording Id" msgstr "" -#: picard/util/tags.py:56 +#: picard/util/tags.py:55 msgid "MusicBrainz Track Id" msgstr "" -#: picard/util/tags.py:57 +#: picard/util/tags.py:56 msgid "MusicBrainz Release Id" msgstr "" -#: picard/util/tags.py:58 +#: picard/util/tags.py:57 msgid "MusicBrainz Artist Id" msgstr "" -#: picard/util/tags.py:59 +#: picard/util/tags.py:58 msgid "MusicBrainz Release Artist Id" msgstr "" -#: picard/util/tags.py:60 +#: picard/util/tags.py:59 msgid "MusicBrainz Work Id" msgstr "" -#: picard/util/tags.py:61 +#: picard/util/tags.py:60 msgid "MusicBrainz Release Group Id" msgstr "" -#: picard/util/tags.py:62 +#: picard/util/tags.py:61 msgid "MusicBrainz Disc Id" msgstr "" -#: picard/util/tags.py:63 -msgid "MusicBrainz Sort Name" -msgstr "" - -#: picard/util/tags.py:64 +#: picard/util/tags.py:62 msgid "MusicIP PUID" msgstr "" -#: picard/util/tags.py:65 +#: picard/util/tags.py:63 msgid "MusicIP Fingerprint" msgstr "" -#: picard/util/tags.py:66 +#: picard/util/tags.py:64 msgid "AcoustID" msgstr "" -#: picard/util/tags.py:67 +#: picard/util/tags.py:65 msgid "AcoustID Fingerprint" msgstr "" -#: picard/util/tags.py:68 +#: picard/util/tags.py:66 msgid "Disc Id" msgstr "" -#: picard/util/tags.py:69 -msgid "Website" +#: picard/util/tags.py:67 +msgid "Artist Website" msgstr "" -#: picard/util/tags.py:70 +#: picard/util/tags.py:68 msgid "Compilation (iTunes)" msgstr "" -#: picard/util/tags.py:71 +#: picard/util/tags.py:69 msgid "Comment" msgstr "" -#: picard/util/tags.py:72 +#: picard/util/tags.py:70 msgid "Genre" msgstr "" -#: picard/util/tags.py:73 +#: picard/util/tags.py:71 msgid "Encoded By" msgstr "" -#: picard/util/tags.py:74 +#: picard/util/tags.py:72 +msgid "Encoder Settings" +msgstr "" + +#: picard/util/tags.py:73 msgid "Performer" msgstr "" -#: picard/util/tags.py:75 +#: picard/util/tags.py:74 msgid "Release Type" msgstr "" -#: picard/util/tags.py:76 +#: picard/util/tags.py:75 msgid "Release Status" msgstr "విడుదల స్థితి" -#: picard/util/tags.py:77 +#: picard/util/tags.py:76 msgid "Release Country" msgstr "విడుదల దేశం" -#: picard/util/tags.py:78 +#: picard/util/tags.py:77 msgid "Record Label" msgstr "" -#: picard/util/tags.py:80 +#: picard/util/tags.py:79 msgid "Catalog Number" msgstr "" -#: picard/util/tags.py:82 +#: picard/util/tags.py:80 msgid "DJ-Mixer" msgstr "" -#: picard/util/tags.py:83 +#: picard/util/tags.py:81 msgid "Media" msgstr "" -#: picard/util/tags.py:84 +#: picard/util/tags.py:82 msgid "Lyrics" msgstr "" -#: picard/util/tags.py:85 +#: picard/util/tags.py:83 msgid "Mixer" msgstr "" -#: picard/util/tags.py:86 +#: picard/util/tags.py:84 msgid "Language" msgstr "భాష" -#: picard/util/tags.py:87 +#: picard/util/tags.py:85 msgid "Script" msgstr "" -#: picard/util/tags.py:89 +#: picard/util/tags.py:87 msgid "Rating" msgstr "" -#: picard/util/tags.py:90 +#: picard/util/tags.py:88 msgid "Artists" msgstr "" -#: picard/util/tags.py:91 +#: picard/util/tags.py:89 msgid "Work" msgstr "" diff --git a/po/tr.po b/po/tr.po index 2f2138f01..4c67bf215 100644 --- a/po/tr.po +++ b/po/tr.po @@ -10,8 +10,8 @@ msgid "" msgstr "" "Project-Id-Version: MusicBrainz\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2014-03-20 11:12+0100\n" -"PO-Revision-Date: 2014-03-21 08:44+0000\n" +"POT-Creation-Date: 2014-05-03 17:28+0200\n" +"PO-Revision-Date: 2014-05-04 08:44+0000\n" "Last-Translator: nikki\n" "Language-Team: Turkish (http://www.transifex.com/projects/p/musicbrainz/language/tr/)\n" "MIME-Version: 1.0\n" @@ -21,6 +21,10 @@ msgstr "" "Language: tr\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n" +#: contrib/plugins/albumartist_website.py:3 +msgid "Album Artist Website" +msgstr "" + #: contrib/plugins/no_release.py:50 msgid "Enable plugin for all releases by default" msgstr "" @@ -33,63 +37,55 @@ msgstr "" msgid "Remove specific release information..." msgstr "" -#: contrib/plugins/open_in_gui.py:32 -msgid "Open Error" +#: contrib/plugins/standardise_performers.py:3 +msgid "Standardise Performers" msgstr "" -#: contrib/plugins/open_in_gui.py:32 -#, python-format -msgid "" -"Error while opening file:\n" -"\n" -"%s" -msgstr "" - -#: contrib/plugins/lastfm/ui_options_lastfm.py:117 +#: contrib/plugins/lastfm/ui_options_lastfm.py:99 msgid "Last.fm" msgstr "" -#: contrib/plugins/lastfm/ui_options_lastfm.py:118 +#: contrib/plugins/lastfm/ui_options_lastfm.py:100 msgid "Use track tags" msgstr "" -#: contrib/plugins/lastfm/ui_options_lastfm.py:119 +#: contrib/plugins/lastfm/ui_options_lastfm.py:101 msgid "Use artist tags" msgstr "" -#: contrib/plugins/lastfm/ui_options_lastfm.py:120 +#: contrib/plugins/lastfm/ui_options_lastfm.py:102 #: picard/ui/options/tags.py:30 msgid "Tags" msgstr "Etiketler" -#: contrib/plugins/lastfm/ui_options_lastfm.py:121 -#: picard/ui/ui_options_folksonomy.py:116 +#: contrib/plugins/lastfm/ui_options_lastfm.py:103 +#: picard/ui/ui_options_folksonomy.py:103 msgid "Ignore tags:" msgstr "Yoksayılacak etiketler:" -#: contrib/plugins/lastfm/ui_options_lastfm.py:122 -#: picard/ui/ui_options_folksonomy.py:121 +#: contrib/plugins/lastfm/ui_options_lastfm.py:104 +#: picard/ui/ui_options_folksonomy.py:108 msgid "Join multiple tags with:" msgstr "Çoklu etiketleri birleştirmek için kullanılacak karakter:" -#: contrib/plugins/lastfm/ui_options_lastfm.py:123 -#: picard/ui/ui_options_folksonomy.py:122 +#: contrib/plugins/lastfm/ui_options_lastfm.py:105 +#: picard/ui/ui_options_folksonomy.py:109 msgid " / " msgstr " / " -#: contrib/plugins/lastfm/ui_options_lastfm.py:124 -#: picard/ui/ui_options_folksonomy.py:123 +#: contrib/plugins/lastfm/ui_options_lastfm.py:106 +#: picard/ui/ui_options_folksonomy.py:110 msgid ", " msgstr ", " -#: contrib/plugins/lastfm/ui_options_lastfm.py:125 -#: picard/ui/ui_options_folksonomy.py:118 +#: contrib/plugins/lastfm/ui_options_lastfm.py:107 +#: picard/ui/ui_options_folksonomy.py:105 msgid "Minimal tag usage:" msgstr "Minimum etiket kullanımı:" -#: contrib/plugins/lastfm/ui_options_lastfm.py:126 -#: picard/ui/ui_options_folksonomy.py:119 picard/ui/ui_options_matching.py:88 -#: picard/ui/ui_options_matching.py:89 picard/ui/ui_options_matching.py:90 +#: contrib/plugins/lastfm/ui_options_lastfm.py:108 +#: picard/ui/ui_options_folksonomy.py:106 picard/ui/ui_options_matching.py:75 +#: picard/ui/ui_options_matching.py:76 picard/ui/ui_options_matching.py:77 msgid " %" msgstr " %" @@ -97,420 +93,307 @@ msgstr " %" msgid "Calculate replay &gain..." msgstr "" -#: contrib/plugins/replaygain/__init__.py:66 +#: contrib/plugins/replaygain/__init__.py:67 #, python-format -msgid "Calculating replay gain for \"%s\"..." +msgid "Calculating replay gain for \"%(filename)s\"..." msgstr "" -#: contrib/plugins/replaygain/__init__.py:71 +#: contrib/plugins/replaygain/__init__.py:75 #, python-format -msgid "Replay gain for \"%s\" successfully calculated." +msgid "Replay gain for \"%(filename)s\" successfully calculated." msgstr "" -#: contrib/plugins/replaygain/__init__.py:73 +#: contrib/plugins/replaygain/__init__.py:80 #, python-format -msgid "Could not calculate replay gain for \"%s\"." +msgid "Could not calculate replay gain for \"%(filename)s\"." msgstr "" -#: contrib/plugins/replaygain/__init__.py:76 +#: contrib/plugins/replaygain/__init__.py:85 msgid "Calculate album &gain..." msgstr "" -#: contrib/plugins/replaygain/__init__.py:103 -#: contrib/plugins/replaygain/__init__.py:111 +#: contrib/plugins/replaygain/__init__.py:113 +#: contrib/plugins/replaygain/__init__.py:124 #, python-format -msgid "Calculating album gain for \"%s\"..." +msgid "Calculating album gain for \"%(album)s\"..." msgstr "" -#: contrib/plugins/replaygain/__init__.py:119 +#: contrib/plugins/replaygain/__init__.py:135 #, python-format -msgid "Album gain for \"%s\" successfully calculated." +msgid "Album gain for \"%(album)s\" successfully calculated." msgstr "" -#: contrib/plugins/replaygain/__init__.py:121 +#: contrib/plugins/replaygain/__init__.py:140 #, python-format -msgid "Could not calculate album gain for \"%s\"." +msgid "Could not calculate album gain for \"%(album)s\"." msgstr "" -#: picard/acoustid.py:102 -#, python-format -msgid "AcoustID lookup network error for '%s'!" +#: contrib/plugins/replaygain/ui_options_replaygain.py:59 +msgid "Replay Gain" msgstr "" -#: picard/acoustid.py:117 -#, python-format -msgid "AcoustID lookup failed for '%s'!" +#: contrib/plugins/replaygain/ui_options_replaygain.py:60 +msgid "Path to VorbisGain:" msgstr "" -#: picard/acoustid.py:128 -#, python-format -msgid "Acoustid lookup returned no result for file '%s'" +#: contrib/plugins/replaygain/ui_options_replaygain.py:61 +msgid "Path to MP3Gain:" msgstr "" -#: picard/acoustid.py:132 -#, python-format -msgid "Looking up the fingerprint for file %s..." -msgstr "Dosya için parmakizi aranıyor...: %s" - -#: picard/acoustidmanager.py:78 -msgid "Submitting AcoustIDs..." -msgstr "AcoustIDleri gönderiyor..." - -#: picard/acoustidmanager.py:83 -#, python-format -msgid "AcoustID submission failed with error '%s'" +#: contrib/plugins/replaygain/ui_options_replaygain.py:62 +msgid "Path to metaflac:" msgstr "" -#: picard/acoustidmanager.py:85 +#: contrib/plugins/replaygain/ui_options_replaygain.py:63 +msgid "Path to wvgain:" +msgstr "" + +#: contrib/plugins/viewvariables/__init__.py:42 +#, python-format +msgid "File: %s" +msgstr "" + +#: contrib/plugins/viewvariables/__init__.py:47 +#, python-format +msgid "Track: %s %s " +msgstr "" + +#: contrib/plugins/viewvariables/__init__.py:49 +msgid "Variables" +msgstr "" + +#: contrib/plugins/viewvariables/__init__.py:69 +msgid "File variables" +msgstr "" + +#: contrib/plugins/viewvariables/__init__.py:74 +msgid "Hidden variables" +msgstr "" + +#: contrib/plugins/viewvariables/__init__.py:79 +msgid "Tag variables" +msgstr "" + +#: contrib/plugins/viewvariables/ui_variables_dialog.py:73 +msgid "Variable" +msgstr "" + +#: contrib/plugins/viewvariables/ui_variables_dialog.py:75 +msgid "Value" +msgstr "" + +#: picard/acoustid.py:109 +#, python-format +msgid "AcoustID lookup network error for '%(filename)s'!" +msgstr "" + +#: picard/acoustid.py:133 +#, python-format +msgid "AcoustID lookup failed for '%(filename)s'!" +msgstr "" + +#: picard/acoustid.py:155 +#, python-format +msgid "AcoustID lookup returned no result for file '%(filename)s'" +msgstr "" + +#: picard/acoustid.py:166 +#, python-format +msgid "Looking up the fingerprint for file '%(filename)s' ..." +msgstr "" + +#: picard/acoustidmanager.py:80 +msgid "Submitting AcoustIDs ..." +msgstr "" + +#: picard/acoustidmanager.py:94 +#, python-format +msgid "AcoustID submission failed with error '%(error)s'" +msgstr "" + +#: picard/acoustidmanager.py:102 msgid "AcoustIDs successfully submitted." msgstr "" -#: picard/album.py:64 picard/cluster.py:234 +#: picard/album.py:65 picard/cluster.py:255 msgid "Unmatched Files" msgstr "Eşlenmeyen Dosyalar" -#: picard/album.py:187 +#: picard/album.py:188 #, python-format msgid "[could not load album %s]" msgstr "[albüm bilgisi yüklenemedi: %s]" -#: picard/album.py:272 +#: picard/album.py:277 #, python-format -msgid "Album %s loaded" +msgid "Album %(id)s loaded: %(artist)s - %(album)s" msgstr "" -#: picard/album.py:288 +#: picard/album.py:294 +#, python-format +msgid "Loading album %(id)s ..." +msgstr "" + +#: picard/album.py:303 msgid "[loading album information]" msgstr "[albüm bilgisi yükleniyor]" -#: picard/album.py:463 +#: picard/album.py:478 #, python-format msgid "; %i image" msgid_plural "; %i images" msgstr[0] "" msgstr[1] "" -#: picard/cluster.py:150 picard/cluster.py:159 +#: picard/cluster.py:155 picard/cluster.py:168 #, python-format -msgid "No matching releases for cluster %s" -msgstr "%s kümesi ile eşlenebilen bir albüm sürümü bulunamadı" - -#: picard/cluster.py:161 -#, python-format -msgid "Cluster %s identified!" -msgstr "%s kümesi tanımlandı!" - -#: picard/cluster.py:168 -#, python-format -msgid "Looking up the metadata for cluster %s..." -msgstr "%s kümesi için metadata aranıyor..." - -#: picard/collection.py:60 -#, python-format -msgid "Added %i release to collection \"%s\"" -msgid_plural "Added %i releases to collection \"%s\"" -msgstr[0] "" -msgstr[1] "" - -#: picard/collection.py:72 -#, python-format -msgid "Removed %i release from collection \"%s\"" -msgid_plural "Removed %i releases from collection \"%s\"" -msgstr[0] "" -msgstr[1] "" - -#: picard/collection.py:81 -#, python-format -msgid "Error loading collections: %s" +msgid "No matching releases for cluster %(album)s" msgstr "" -#: picard/config_upgrade.py:57 picard/config_upgrade.py:70 +#: picard/cluster.py:174 +#, python-format +msgid "Cluster %(album)s identified!" +msgstr "" + +#: picard/cluster.py:185 +#, python-format +msgid "Looking up the metadata for cluster %(album)s..." +msgstr "" + +#: picard/collection.py:64 +#, python-format +msgid "Added %(count)i release to collection \"%(name)s\"" +msgid_plural "Added %(count)i releases to collection \"%(name)s\"" +msgstr[0] "" +msgstr[1] "" + +#: picard/collection.py:86 +#, python-format +msgid "Removed %(count)i release from collection \"%(name)s\"" +msgid_plural "Removed %(count)i releases from collection \"%(name)s\"" +msgstr[0] "" +msgstr[1] "" + +#: picard/collection.py:100 +#, python-format +msgid "Error loading collections: %(error)s" +msgstr "" + +#: picard/config_upgrade.py:58 picard/config_upgrade.py:71 msgid "Various Artists file naming scheme removal" msgstr "" -#: picard/config_upgrade.py:58 +#: picard/config_upgrade.py:59 msgid "" "The separate file naming scheme for various artists albums has been removed in this version of Picard.\n" "Your file naming scheme has automatically been merged with that of single artist albums." msgstr "" -#: picard/config_upgrade.py:71 +#: picard/config_upgrade.py:72 msgid "" "The separate file naming scheme for various artists albums has been removed in this version of Picard.\n" "You currently do not use this option, but have a separate file naming scheme defined.\n" "Do you want to remove it or merge it with your file naming scheme for single artist albums?" msgstr "" -#: picard/config_upgrade.py:77 +#: picard/config_upgrade.py:78 msgid "Merge" msgstr "Birleştir" -#: picard/config_upgrade.py:77 picard/ui/metadatabox.py:254 +#: picard/config_upgrade.py:78 picard/ui/metadatabox.py:254 msgid "Remove" msgstr "Sil" -#: picard/const.py:67 -msgid "CD" -msgstr "CD" - -#: picard/const.py:68 -msgid "CD-R" -msgstr "CD-R" - -#: picard/const.py:69 -msgid "HDCD" -msgstr "HDCD" - -#: picard/const.py:70 -msgid "8cm CD" -msgstr "8cm CD" - -#: picard/const.py:71 -msgid "Vinyl" -msgstr "Plak" - -#: picard/const.py:72 -msgid "7\" Vinyl" -msgstr "7\" Plak" - -#: picard/const.py:73 -msgid "10\" Vinyl" -msgstr "10\" Plak" - -#: picard/const.py:74 -msgid "12\" Vinyl" -msgstr "12\" Plak" - -#: picard/const.py:75 -msgid "Digital Media" -msgstr "Dijital Medya" - -#: picard/const.py:76 -msgid "USB Flash Drive" -msgstr "USB Flash Bellek" - -#: picard/const.py:77 -msgid "slotMusic" -msgstr "slotMusic" - -#: picard/const.py:78 -msgid "Cassette" -msgstr "Kaset" - -#: picard/const.py:79 -msgid "DVD" -msgstr "DVD" - -#: picard/const.py:80 -msgid "DVD-Audio" -msgstr "DVD-Audio" - -#: picard/const.py:81 -msgid "DVD-Video" -msgstr "DVD-Video" - -#: picard/const.py:82 -msgid "SACD" -msgstr "SACD" - -#: picard/const.py:83 -msgid "DualDisc" -msgstr "DualDisk" - -#: picard/const.py:84 -msgid "MiniDisc" -msgstr "MiniDisc" - -#: picard/const.py:85 -msgid "Blu-ray" -msgstr "Blu-ray" - -#: picard/const.py:86 -msgid "HD-DVD" -msgstr "HD-DVD" - -#: picard/const.py:87 -msgid "Videotape" -msgstr "Video kaset" - -#: picard/const.py:88 -msgid "VHS" -msgstr "VHS" - -#: picard/const.py:89 -msgid "Betamax" -msgstr "Betamax" - #: picard/const.py:90 -msgid "VCD" -msgstr "VCD" - -#: picard/const.py:91 -msgid "SVCD" -msgstr "SVCD" - -#: picard/const.py:92 -msgid "UMD" -msgstr "UMD" - -#: picard/const.py:93 picard/coverartarchive.py:33 -#: picard/ui/ui_options_releases.py:226 -msgid "Other" -msgstr "Diğer" - -#: picard/const.py:94 -msgid "LaserDisc" -msgstr "LaserDisc" - -#: picard/const.py:95 -msgid "Cartridge" -msgstr "Kartuş" - -#: picard/const.py:96 -msgid "Reel-to-reel" -msgstr "" - -#: picard/const.py:97 -msgid "DAT" -msgstr "DAT" - -#: picard/const.py:98 -msgid "Wax Cylinder" -msgstr "Fonograf Silindiri" - -#: picard/const.py:99 -msgid "Piano Roll" -msgstr "Piano Roll" - -#: picard/const.py:100 -msgid "DCC" -msgstr "" - -#: picard/const.py:115 msgid "Danish" msgstr "" -#: picard/const.py:116 +#: picard/const.py:91 msgid "German" msgstr "Almanca" -#: picard/const.py:118 +#: picard/const.py:93 msgid "English" msgstr "İngilizce" -#: picard/const.py:119 +#: picard/const.py:94 msgid "English (Canada)" msgstr "İngilizce (Kanada)" -#: picard/const.py:120 +#: picard/const.py:95 msgid "English (UK)" msgstr "İngilizce (İngiliz)" -#: picard/const.py:122 +#: picard/const.py:97 msgid "Spanish" msgstr "İspanyolca" -#: picard/const.py:123 +#: picard/const.py:98 msgid "Estonian" msgstr "Estonya Dili" -#: picard/const.py:125 +#: picard/const.py:100 msgid "Finnish" msgstr "Fince" -#: picard/const.py:127 +#: picard/const.py:102 msgid "French" msgstr "Fransızca" -#: picard/const.py:136 +#: picard/const.py:111 msgid "Italian" msgstr "İtalyanca" -#: picard/const.py:143 +#: picard/const.py:118 msgid "Dutch" msgstr "Hollandaca" -#: picard/const.py:145 +#: picard/const.py:120 msgid "Polish" msgstr "Lehçe" -#: picard/const.py:147 +#: picard/const.py:122 msgid "Brazilian Portuguese" msgstr "Brezilya Portekizcesi" -#: picard/const.py:154 +#: picard/const.py:129 msgid "Swedish" msgstr "İsveççe" -#: picard/coverart.py:84 +#: picard/coverart.py:85 #, python-format -msgid "Coverart %s downloaded" +msgid "Cover art of type '%(type)s' downloaded for %(albumid)s from %(host)s" msgstr "" -#: picard/coverart.py:240 +#: picard/coverart.py:256 #, python-format -msgid "Downloading http://%s:%i%s" -msgstr "" - -#: picard/coverartarchive.py:24 -msgid "Front" -msgstr "Ön" - -#: picard/coverartarchive.py:25 -msgid "Back" -msgstr "Arka" - -#: picard/coverartarchive.py:26 -msgid "Booklet" -msgstr "" - -#: picard/coverartarchive.py:27 -msgid "Medium" -msgstr "" - -#: picard/coverartarchive.py:28 -msgid "Tray" -msgstr "" - -#: picard/coverartarchive.py:29 -msgid "Obi" +msgid "" +"Downloading cover art of type '%(type)s' for %(albumid)s from %(host)s .." msgstr "" #: picard/coverartarchive.py:30 -msgid "Spine" -msgstr "" - -#: picard/coverartarchive.py:31 picard/ui/mainwindow.py:546 -msgid "Track" -msgstr "Parça" - -#: picard/coverartarchive.py:32 -msgid "Sticker" -msgstr "" - -#: picard/coverartarchive.py:34 msgid "Unknown" msgstr "Bilinmeyen" -#: picard/file.py:536 +#: picard/file.py:494 #, python-format -msgid "No matching tracks for file %s" -msgstr "Dosya hiçbir parça ile eşlenemedi: %s" +msgid "No matching tracks for file '%(filename)s'" +msgstr "" -#: picard/file.py:548 +#: picard/file.py:510 #, python-format -msgid "No matching tracks above the threshold for file %s" -msgstr "Dosya verilen sınır üzerinde hiçbir parça ile eşlenemedi: %s" +msgid "No matching tracks above the threshold for file '%(filename)s'" +msgstr "" -#: picard/file.py:551 +#: picard/file.py:517 #, python-format -msgid "File %s identified!" -msgstr "Dosya tanımlandı!: %s" +msgid "File '%(filename)s' identified!" +msgstr "" -#: picard/file.py:567 +#: picard/file.py:537 #, python-format -msgid "Looking up the metadata for file %s..." -msgstr "Dosya için metadata aranıyor...: %s" +msgid "Looking up the metadata for file %(filename)s ..." +msgstr "" #: picard/releasegroup.py:53 msgid "Tracks" @@ -520,11 +403,11 @@ msgstr "" msgid "Year" msgstr "" -#: picard/releasegroup.py:55 picard/ui/cdlookup.py:34 +#: picard/releasegroup.py:55 picard/ui/cdlookup.py:35 msgid "Country" msgstr "Ülke" -#: picard/releasegroup.py:56 picard/util/tags.py:81 +#: picard/releasegroup.py:56 msgid "Format" msgstr "Biçim" @@ -544,16 +427,23 @@ msgstr "" msgid "[no release info]" msgstr "" -#: picard/tagger.py:316 +#: picard/tagger.py:370 #, python-format -msgid "Loading directory %s" +msgid "Adding %(count)d file from '%(directory)s' ..." +msgid_plural "Adding %(count)d files from '%(directory)s' ..." +msgstr[0] "" +msgstr[1] "" + +#: picard/tagger.py:512 +#, python-format +msgid "Removing album %(id)s: %(artist)s - %(album)s" msgstr "" -#: picard/tagger.py:452 +#: picard/tagger.py:528 msgid "CD Lookup Error" msgstr "CD Arama Hatası" -#: picard/tagger.py:453 +#: picard/tagger.py:529 #, python-format msgid "" "Error while reading CD:\n" @@ -561,44 +451,43 @@ msgid "" "%s" msgstr "CD okunurken hata oluştu:\n\n%s" -#: picard/ui/cdlookup.py:34 picard/ui/mainwindow.py:544 -#: picard/ui/ui_options_releases.py:216 picard/util/tags.py:21 +#: picard/ui/cdlookup.py:35 picard/ui/mainwindow.py:597 picard/util/tags.py:21 msgid "Album" msgstr "Albüm" -#: picard/ui/cdlookup.py:34 picard/ui/itemviews.py:96 -#: picard/ui/mainwindow.py:545 picard/util/tags.py:22 +#: picard/ui/cdlookup.py:35 picard/ui/itemviews.py:96 +#: picard/ui/mainwindow.py:598 picard/util/tags.py:22 msgid "Artist" msgstr "Sanatçı" -#: picard/ui/cdlookup.py:34 picard/util/tags.py:24 +#: picard/ui/cdlookup.py:35 picard/util/tags.py:24 msgid "Date" msgstr "Tarih" -#: picard/ui/cdlookup.py:35 +#: picard/ui/cdlookup.py:36 msgid "Labels" msgstr "" -#: picard/ui/cdlookup.py:35 +#: picard/ui/cdlookup.py:36 msgid "Catalog #s" msgstr "" -#: picard/ui/cdlookup.py:35 picard/util/tags.py:79 +#: picard/ui/cdlookup.py:36 picard/util/tags.py:78 msgid "Barcode" msgstr "Barkod" -#: picard/ui/collectionmenu.py:31 +#: picard/ui/collectionmenu.py:42 msgid "Refresh List" msgstr "Listeyi yenile" -#: picard/ui/collectionmenu.py:92 +#: picard/ui/collectionmenu.py:86 #, python-format msgid "%s (%i release)" msgid_plural "%s (%i releases)" msgstr[0] "" msgstr[1] "" -#: picard/ui/coverartbox.py:142 +#: picard/ui/coverartbox.py:141 msgid "View release on MusicBrainz" msgstr "" @@ -614,59 +503,59 @@ msgstr "&Gizli Dosyaları Göster" msgid "&Set as starting directory" msgstr "" -#: picard/ui/infodialog.py:36 picard/ui/infodialog.py:75 +#: picard/ui/infodialog.py:37 picard/ui/infodialog.py:80 msgid "Info" msgstr "" -#: picard/ui/infodialog.py:80 +#: picard/ui/infodialog.py:85 msgid "Filename:" msgstr "Dosya adı:" -#: picard/ui/infodialog.py:82 +#: picard/ui/infodialog.py:87 msgid "Format:" msgstr "Biçim:" -#: picard/ui/infodialog.py:86 +#: picard/ui/infodialog.py:91 msgid "Size:" msgstr "Boyut:" -#: picard/ui/infodialog.py:90 +#: picard/ui/infodialog.py:95 msgid "Length:" msgstr "Süre:" -#: picard/ui/infodialog.py:92 +#: picard/ui/infodialog.py:97 msgid "Bitrate:" msgstr "Bit oranı:" -#: picard/ui/infodialog.py:94 +#: picard/ui/infodialog.py:99 msgid "Sample rate:" msgstr "Örnek oranı:" -#: picard/ui/infodialog.py:96 +#: picard/ui/infodialog.py:101 msgid "Bits per sample:" msgstr "Örnek başına bit sayısı:" -#: picard/ui/infodialog.py:100 +#: picard/ui/infodialog.py:105 msgid "Mono" msgstr "Mono" -#: picard/ui/infodialog.py:102 +#: picard/ui/infodialog.py:107 msgid "Stereo" msgstr "Stereo" -#: picard/ui/infodialog.py:105 +#: picard/ui/infodialog.py:110 msgid "Channels:" msgstr "Kanallar:" -#: picard/ui/infodialog.py:116 +#: picard/ui/infodialog.py:121 msgid "Album Info" msgstr "" -#: picard/ui/infodialog.py:124 +#: picard/ui/infodialog.py:129 msgid "&Errors" msgstr "" -#: picard/ui/infodialog.py:134 picard/ui/ui_infodialog.py:77 +#: picard/ui/infodialog.py:139 picard/ui/ui_infodialog.py:73 msgid "&Info" msgstr "&Bilgi" @@ -690,7 +579,7 @@ msgstr "Bekleyen istekler" msgid "Title" msgstr "Parça Adı" -#: picard/ui/itemviews.py:95 picard/util/tags.py:88 +#: picard/ui/itemviews.py:95 picard/util/tags.py:86 msgid "Length" msgstr "Süre" @@ -715,8 +604,8 @@ msgid "Collections" msgstr "" #: picard/ui/itemviews.py:365 -msgid "&Plugins" -msgstr "&Eklentiler" +msgid "P&lugins" +msgstr "" #: picard/ui/itemviews.py:541 msgid "file view" @@ -738,12 +627,16 @@ msgstr "" msgid "Contains albums and matched files" msgstr "" -#: picard/ui/logview.py:91 +#: picard/ui/logview.py:109 msgid "Log" msgstr "Günlük" -#: picard/ui/logview.py:99 -msgid "Status History" +#: picard/ui/logview.py:113 +msgid "Debug mode" +msgstr "" + +#: picard/ui/logview.py:134 +msgid "Activity History" msgstr "" #: picard/ui/mainwindow.py:74 @@ -777,276 +670,309 @@ msgstr "Hazır" #: picard/ui/mainwindow.py:220 msgid "" -"Picard listens on a port to integrate with your browser and downloads " -"release information when you click the \"Tagger\" buttons on the MusicBrainz" -" website" +"Picard listens on this port to integrate with your browser. When you " +"\"Search\" or \"Open in Browser\" from Picard, clicking the \"Tagger\" " +"button on the web page loads the release into Picard." msgstr "" -#: picard/ui/mainwindow.py:240 +#: picard/ui/mainwindow.py:243 #, python-format msgid " Listening on port %(port)d " msgstr "" -#: picard/ui/mainwindow.py:263 +#: picard/ui/mainwindow.py:299 msgid "Submission Error" msgstr "Gönderim Hatası" -#: picard/ui/mainwindow.py:264 +#: picard/ui/mainwindow.py:300 msgid "" "You need to configure your AcoustID API key before you can submit " "fingerprints." msgstr "" -#: picard/ui/mainwindow.py:269 +#: picard/ui/mainwindow.py:305 msgid "&Options..." msgstr "&Seçenekler" -#: picard/ui/mainwindow.py:273 +#: picard/ui/mainwindow.py:309 msgid "&Cut" msgstr "&Kes" -#: picard/ui/mainwindow.py:278 +#: picard/ui/mainwindow.py:314 msgid "&Paste" msgstr "&Yapıştır" -#: picard/ui/mainwindow.py:283 +#: picard/ui/mainwindow.py:319 msgid "&Help..." msgstr "&Yardım..." -#: picard/ui/mainwindow.py:288 +#: picard/ui/mainwindow.py:323 msgid "&About..." msgstr "&Hakkında..." -#: picard/ui/mainwindow.py:292 +#: picard/ui/mainwindow.py:327 msgid "&Donate..." msgstr "&Bağış..." -#: picard/ui/mainwindow.py:295 +#: picard/ui/mainwindow.py:330 msgid "&Report a Bug..." msgstr "&Hata Bildir..." -#: picard/ui/mainwindow.py:298 +#: picard/ui/mainwindow.py:333 msgid "&Support Forum..." msgstr "&Destek Forumu..." -#: picard/ui/mainwindow.py:301 +#: picard/ui/mainwindow.py:336 msgid "&Add Files..." msgstr "&Dosya Ekle..." -#: picard/ui/mainwindow.py:302 +#: picard/ui/mainwindow.py:337 msgid "Add files to the tagger" msgstr "Etiketleyiciye dosya ekle" -#: picard/ui/mainwindow.py:307 +#: picard/ui/mainwindow.py:342 msgid "A&dd Folder..." msgstr "&Dizin Ekle..." -#: picard/ui/mainwindow.py:308 +#: picard/ui/mainwindow.py:343 msgid "Add a folder to the tagger" msgstr "Etiketleyiciye dizin ekle" -#: picard/ui/mainwindow.py:310 +#: picard/ui/mainwindow.py:345 msgid "Ctrl+D" msgstr "Ctrl+D" -#: picard/ui/mainwindow.py:313 +#: picard/ui/mainwindow.py:348 msgid "&Save" msgstr "Kayde&t" -#: picard/ui/mainwindow.py:314 +#: picard/ui/mainwindow.py:349 msgid "Save selected files" msgstr "Seçili dosyaları kaydet" -#: picard/ui/mainwindow.py:320 +#: picard/ui/mainwindow.py:355 msgid "S&ubmit" msgstr "" -#: picard/ui/mainwindow.py:321 -msgid "Submit fingerprints" +#: picard/ui/mainwindow.py:356 +msgid "Submit acoustic fingerprints" msgstr "" -#: picard/ui/mainwindow.py:325 +#: picard/ui/mainwindow.py:360 msgid "E&xit" msgstr "&Çıkış" -#: picard/ui/mainwindow.py:328 +#: picard/ui/mainwindow.py:363 msgid "Ctrl+Q" msgstr "Ctrl+Q" -#: picard/ui/mainwindow.py:331 +#: picard/ui/mainwindow.py:366 msgid "&Remove" msgstr "&Sil" -#: picard/ui/mainwindow.py:332 +#: picard/ui/mainwindow.py:367 msgid "Remove selected files/albums" msgstr "Seçili dosyaları/albümleri listeden sil" -#: picard/ui/mainwindow.py:336 +#: picard/ui/mainwindow.py:371 msgid "Lookup in &Browser" msgstr "" -#: picard/ui/mainwindow.py:337 +#: picard/ui/mainwindow.py:372 msgid "Lookup selected item on MusicBrainz website" msgstr "Seçili ögeleri Musicbrainz sitesinde ara" -#: picard/ui/mainwindow.py:341 +#: picard/ui/mainwindow.py:376 msgid "File &Browser" msgstr "Dosya &Gezgini" -#: picard/ui/mainwindow.py:345 +#: picard/ui/mainwindow.py:380 msgid "Ctrl+B" msgstr "Ctrl+B" -#: picard/ui/mainwindow.py:348 +#: picard/ui/mainwindow.py:383 msgid "&Cover Art" msgstr "&Kapak Resmi" -#: picard/ui/mainwindow.py:354 picard/ui/mainwindow.py:539 +#: picard/ui/mainwindow.py:389 picard/ui/mainwindow.py:591 msgid "Search" msgstr "Arama" -#: picard/ui/mainwindow.py:357 -msgid "&CD Lookup..." -msgstr "&CD Arama..." +#: picard/ui/mainwindow.py:392 +msgid "Lookup &CD..." +msgstr "" -#: picard/ui/mainwindow.py:358 picard/ui/mainwindow.py:359 -msgid "Lookup CD" -msgstr "CD Arama" +#: picard/ui/mainwindow.py:393 +msgid "Lookup the details of the CD in your drive" +msgstr "" -#: picard/ui/mainwindow.py:361 +#: picard/ui/mainwindow.py:395 msgid "Ctrl+K" msgstr "Ctrl+K" -#: picard/ui/mainwindow.py:364 +#: picard/ui/mainwindow.py:398 msgid "&Scan" msgstr "&Tara" -#: picard/ui/mainwindow.py:367 +#: picard/ui/mainwindow.py:401 msgid "Ctrl+Y" msgstr "Ctrl+Y" -#: picard/ui/mainwindow.py:370 +#: picard/ui/mainwindow.py:404 msgid "Cl&uster" msgstr "&Kümele" -#: picard/ui/mainwindow.py:373 +#: picard/ui/mainwindow.py:407 msgid "Ctrl+U" msgstr "Ctrl+U" -#: picard/ui/mainwindow.py:376 +#: picard/ui/mainwindow.py:410 msgid "&Lookup" msgstr "&Arama" -#: picard/ui/mainwindow.py:377 picard/ui/mainwindow.py:378 -msgid "Lookup metadata" -msgstr "Metadata arama" +#: picard/ui/mainwindow.py:411 +msgid "Lookup selected items in MusicBrainz" +msgstr "" -#: picard/ui/mainwindow.py:381 +#: picard/ui/mainwindow.py:416 msgid "Ctrl+L" msgstr "Ctrl+L" -#: picard/ui/mainwindow.py:384 +#: picard/ui/mainwindow.py:419 msgid "&Info..." msgstr "" -#: picard/ui/mainwindow.py:387 +#: picard/ui/mainwindow.py:422 msgid "Ctrl+I" msgstr "Ctrl+I" -#: picard/ui/mainwindow.py:390 +#: picard/ui/mainwindow.py:425 msgid "&Refresh" msgstr "&Yenile" -#: picard/ui/mainwindow.py:391 +#: picard/ui/mainwindow.py:426 msgid "Ctrl+R" msgstr "Ctrl+R" -#: picard/ui/mainwindow.py:394 +#: picard/ui/mainwindow.py:429 msgid "&Rename Files" msgstr "Dosyaları &Adlandır" -#: picard/ui/mainwindow.py:399 +#: picard/ui/mainwindow.py:434 msgid "&Move Files" msgstr "Dosyaları &Taşı" -#: picard/ui/mainwindow.py:404 +#: picard/ui/mainwindow.py:439 msgid "Save &Tags" msgstr "&Etiketleri Kaydet" -#: picard/ui/mainwindow.py:409 +#: picard/ui/mainwindow.py:444 msgid "Tags From &File Names..." msgstr "Dosya Adlarından &Etiketlendir..." -#: picard/ui/mainwindow.py:412 -msgid "View &Log..." -msgstr "&Günlüğü Göster..." - -#: picard/ui/mainwindow.py:415 -msgid "View Status &History..." +#: picard/ui/mainwindow.py:447 +msgid "&Open My Collections in Browser" msgstr "" -#: picard/ui/mainwindow.py:422 -msgid "&Open..." +#: picard/ui/mainwindow.py:451 +msgid "View Error/Debug &Log" msgstr "" -#: picard/ui/mainwindow.py:423 -msgid "Open the file" -msgstr "Dosyayı aç" - -#: picard/ui/mainwindow.py:426 -msgid "Open &Folder..." +#: picard/ui/mainwindow.py:454 +msgid "View Activity &History" msgstr "" -#: picard/ui/mainwindow.py:427 -msgid "Open the containing folder" -msgstr "İçeren klasörü aç" +#: picard/ui/mainwindow.py:461 +msgid "&Play file" +msgstr "" -#: picard/ui/mainwindow.py:448 +#: picard/ui/mainwindow.py:462 +msgid "Play the file in your default media player" +msgstr "" + +#: picard/ui/mainwindow.py:466 +msgid "Open Containing &Folder" +msgstr "" + +#: picard/ui/mainwindow.py:467 +msgid "Open the containing folder in your file explorer" +msgstr "" + +#: picard/ui/mainwindow.py:492 msgid "&File" msgstr "&Dosya" -#: picard/ui/mainwindow.py:456 +#: picard/ui/mainwindow.py:503 msgid "&Edit" msgstr "Dü&zenle" -#: picard/ui/mainwindow.py:462 +#: picard/ui/mainwindow.py:509 msgid "&View" msgstr "&Görünüm" -#: picard/ui/mainwindow.py:470 +#: picard/ui/mainwindow.py:515 msgid "&Options" msgstr "&Seçenekler" -#: picard/ui/mainwindow.py:476 +#: picard/ui/mainwindow.py:521 msgid "&Tools" msgstr "&Araçlar" -#: picard/ui/mainwindow.py:485 picard/ui/util.py:35 +#: picard/ui/mainwindow.py:532 picard/ui/util.py:35 msgid "&Help" msgstr "&Yardım" -#: picard/ui/mainwindow.py:505 +#: picard/ui/mainwindow.py:553 msgid "Actions" msgstr "" -#: picard/ui/mainwindow.py:608 +#: picard/ui/mainwindow.py:599 +msgid "Track" +msgstr "Parça" + +#: picard/ui/mainwindow.py:662 msgid "All Supported Formats" msgstr "Desteklenen Tüm Formatlar" -#: picard/ui/mainwindow.py:705 +#: picard/ui/mainwindow.py:695 +#, python-format +msgid "Adding directory: '%(directory)s' ..." +msgstr "" + +#: picard/ui/mainwindow.py:702 +#, python-format +msgid "Adding multiple directories from '%(directory)s' ..." +msgstr "" + +#: picard/ui/mainwindow.py:767 msgid "Configuration Required" msgstr "" -#: picard/ui/mainwindow.py:706 +#: picard/ui/mainwindow.py:768 msgid "" "Audio fingerprinting is not yet configured. Would you like to configure it " "now?" msgstr "" -#: picard/ui/mainwindow.py:784 picard/ui/mainwindow.py:791 +#: picard/ui/mainwindow.py:848 #, python-format -msgid " (Error: %s)" -msgstr " (Hata: %s)" +msgid "%(filename)s (error: %(error)s)" +msgstr "" + +#: picard/ui/mainwindow.py:854 +#, python-format +msgid "%(filename)s" +msgstr "" + +#: picard/ui/mainwindow.py:864 +#, python-format +msgid "%(filename)s (%(similarity)d%%) (error: %(error)s)" +msgstr "" + +#: picard/ui/mainwindow.py:871 +#, python-format +msgid "%(filename)s (%(similarity)d%%)" +msgstr "" #: picard/ui/metadatabox.py:82 #, python-format @@ -1100,387 +1026,387 @@ msgid_plural "Use Original Values" msgstr[0] "" msgstr[1] "" -#: picard/ui/passworddialog.py:37 +#: picard/ui/passworddialog.py:40 #, python-format msgid "" "The server %s requires you to login. Please enter your username and " "password." msgstr "%s sunucusuna giriş yapmanız gerekmekte. Lütfen kullanıcı adınızı ve şifrenizi giriniz." -#: picard/ui/passworddialog.py:75 +#: picard/ui/passworddialog.py:79 #, python-format msgid "" "The proxy %s requires you to login. Please enter your username and password." msgstr "Vekil sunucu %s giriş yapmanızı istemektedir. Lütfen kullanıcı adı ve şifrenizi giriniz." -#: picard/ui/tagsfromfilenames.py:55 picard/ui/tagsfromfilenames.py:100 +#: picard/ui/tagsfromfilenames.py:56 picard/ui/tagsfromfilenames.py:101 msgid "File Name" msgstr "Dosya Adı" -#: picard/ui/ui_cdlookup.py:66 picard/ui/ui_options_cdlookup.py:55 -#: picard/ui/ui_options_cdlookup_select.py:62 picard/ui/options/cdlookup.py:38 +#: picard/ui/ui_cdlookup.py:53 picard/ui/ui_options_cdlookup.py:42 +#: picard/ui/ui_options_cdlookup_select.py:49 picard/ui/options/cdlookup.py:38 msgid "CD Lookup" msgstr "CD Arama" -#: picard/ui/ui_cdlookup.py:67 +#: picard/ui/ui_cdlookup.py:54 msgid "The following releases on MusicBrainz match the CD:" msgstr "Aşağıdaki MusicBrainz sitesindeki sürümler CD ile eşleşti:" -#: picard/ui/ui_cdlookup.py:68 +#: picard/ui/ui_cdlookup.py:55 msgid "OK" msgstr "Tamam" -#: picard/ui/ui_cdlookup.py:69 +#: picard/ui/ui_cdlookup.py:56 msgid "Lookup manually" msgstr "" -#: picard/ui/ui_cdlookup.py:70 +#: picard/ui/ui_cdlookup.py:57 msgid "Cancel" msgstr "İptal" -#: picard/ui/ui_edittagdialog.py:101 +#: picard/ui/ui_edittagdialog.py:88 msgid "Edit Tag" msgstr "Etiketi Düzenle" -#: picard/ui/ui_edittagdialog.py:102 +#: picard/ui/ui_edittagdialog.py:89 msgid "Edit value" msgstr "Değeri düzenle" -#: picard/ui/ui_edittagdialog.py:103 +#: picard/ui/ui_edittagdialog.py:90 msgid "Add value" msgstr "Değer ekle" -#: picard/ui/ui_edittagdialog.py:104 +#: picard/ui/ui_edittagdialog.py:91 msgid "Remove value" msgstr "Değeri sil" -#: picard/ui/ui_infodialog.py:78 +#: picard/ui/ui_infodialog.py:74 msgid "A&rtwork" msgstr "Kapak &Resmi" -#: picard/ui/ui_infostatus.py:100 +#: picard/ui/ui_infostatus.py:96 msgid "Form" msgstr "" -#: picard/ui/ui_options.py:51 +#: picard/ui/ui_options.py:38 msgid "Options" msgstr "Seçenekler" -#: picard/ui/ui_options_advanced.py:46 +#: picard/ui/ui_options_advanced.py:42 msgid "Advanced options" msgstr "" -#: picard/ui/ui_options_advanced.py:47 +#: picard/ui/ui_options_advanced.py:43 msgid "Ignore file paths matching the following regular expression:" msgstr "" -#: picard/ui/ui_options_cdlookup.py:56 +#: picard/ui/ui_options_cdlookup.py:43 msgid "CD-ROM device to use for lookups:" msgstr "Aramalar için kullanılacak CD-ROM cihazı:" -#: picard/ui/ui_options_cdlookup_select.py:63 +#: picard/ui/ui_options_cdlookup_select.py:50 msgid "Default CD-ROM drive to use for lookups:" msgstr "Aramalar için kullanılacak varsayılan CD-ROM cihazı:" -#: picard/ui/ui_options_cover.py:145 +#: picard/ui/ui_options_cover.py:131 msgid "Location" msgstr "Konum" -#: picard/ui/ui_options_cover.py:146 +#: picard/ui/ui_options_cover.py:132 msgid "Embed cover images into tags" msgstr "Kapak resimlerini etiket içine yerleştir" -#: picard/ui/ui_options_cover.py:147 +#: picard/ui/ui_options_cover.py:133 msgid "Only embed a front image" msgstr "" -#: picard/ui/ui_options_cover.py:148 +#: picard/ui/ui_options_cover.py:134 msgid "Save cover images as separate files" msgstr "Kapak resimlerini ayrı dosya olarak kaydet" -#: picard/ui/ui_options_cover.py:149 +#: picard/ui/ui_options_cover.py:135 msgid "Use the following file name for images:" msgstr "" -#: picard/ui/ui_options_cover.py:150 +#: picard/ui/ui_options_cover.py:136 msgid "Overwrite the file if it already exists" msgstr "Varolan dosyaların üzerine yaz" -#: picard/ui/ui_options_cover.py:151 +#: picard/ui/ui_options_cover.py:137 msgid "Coverart Providers" msgstr "" -#: picard/ui/ui_options_cover.py:152 +#: picard/ui/ui_options_cover.py:138 msgid "Amazon" msgstr "" -#: picard/ui/ui_options_cover.py:153 picard/ui/ui_options_cover.py:155 +#: picard/ui/ui_options_cover.py:139 picard/ui/ui_options_cover.py:141 msgid "Cover Art Archive" msgstr "" -#: picard/ui/ui_options_cover.py:154 +#: picard/ui/ui_options_cover.py:140 msgid "Sites on the whitelist" msgstr "" -#: picard/ui/ui_options_cover.py:156 +#: picard/ui/ui_options_cover.py:142 msgid "Only use images of the following size:" msgstr "" -#: picard/ui/ui_options_cover.py:157 +#: picard/ui/ui_options_cover.py:143 msgid "250 px" msgstr "" -#: picard/ui/ui_options_cover.py:158 +#: picard/ui/ui_options_cover.py:144 msgid "500 px" msgstr "" -#: picard/ui/ui_options_cover.py:159 +#: picard/ui/ui_options_cover.py:145 msgid "Full size" msgstr "" -#: picard/ui/ui_options_cover.py:160 +#: picard/ui/ui_options_cover.py:146 msgid "Download only images of the following types:" msgstr "" -#: picard/ui/ui_options_cover.py:161 +#: picard/ui/ui_options_cover.py:147 msgid "Download only approved images" msgstr "" -#: picard/ui/ui_options_cover.py:162 +#: picard/ui/ui_options_cover.py:148 msgid "" "Use the first image type as the filename. This will not change the filename " "of front images." msgstr "" -#: picard/ui/ui_options_fingerprinting.py:83 +#: picard/ui/ui_options_fingerprinting.py:70 msgid "Audio Fingerprinting" msgstr "" -#: picard/ui/ui_options_fingerprinting.py:84 +#: picard/ui/ui_options_fingerprinting.py:71 msgid "Do not use audio fingerprinting" msgstr "" -#: picard/ui/ui_options_fingerprinting.py:85 +#: picard/ui/ui_options_fingerprinting.py:72 msgid "Use AcoustID" msgstr "" -#: picard/ui/ui_options_fingerprinting.py:86 +#: picard/ui/ui_options_fingerprinting.py:73 msgid "AcoustID Settings" msgstr "AcoustID Seçenekleri" -#: picard/ui/ui_options_fingerprinting.py:87 +#: picard/ui/ui_options_fingerprinting.py:74 msgid "Fingerprint calculator:" msgstr "" -#: picard/ui/ui_options_fingerprinting.py:88 -#: picard/ui/ui_options_interface.py:88 picard/ui/ui_options_renaming.py:138 +#: picard/ui/ui_options_fingerprinting.py:75 +#: picard/ui/ui_options_interface.py:75 picard/ui/ui_options_renaming.py:134 msgid "Browse..." msgstr "Gözat..." -#: picard/ui/ui_options_fingerprinting.py:89 +#: picard/ui/ui_options_fingerprinting.py:76 msgid "Download..." msgstr "" -#: picard/ui/ui_options_fingerprinting.py:90 +#: picard/ui/ui_options_fingerprinting.py:77 msgid "API key:" msgstr "" -#: picard/ui/ui_options_fingerprinting.py:91 +#: picard/ui/ui_options_fingerprinting.py:78 msgid "Get API key..." msgstr "" -#: picard/ui/ui_options_folksonomy.py:115 picard/ui/options/folksonomy.py:28 +#: picard/ui/ui_options_folksonomy.py:102 picard/ui/options/folksonomy.py:28 msgid "Folksonomy Tags" msgstr "Folksonomi Etiketleri" -#: picard/ui/ui_options_folksonomy.py:117 +#: picard/ui/ui_options_folksonomy.py:104 msgid "Only use my tags" msgstr "Sadece benim etiketlerimi kullan" -#: picard/ui/ui_options_folksonomy.py:120 +#: picard/ui/ui_options_folksonomy.py:107 msgid "Maximum number of tags:" msgstr "Maksimum etiket sayısı:" -#: picard/ui/ui_options_general.py:92 +#: picard/ui/ui_options_general.py:88 msgid "MusicBrainz Server" msgstr "MusicBrainz Sunucusu" -#: picard/ui/ui_options_general.py:93 picard/ui/ui_options_network.py:123 +#: picard/ui/ui_options_general.py:89 picard/ui/ui_options_network.py:110 msgid "Port:" msgstr "Bağlantı Noktası:" -#: picard/ui/ui_options_general.py:94 picard/ui/ui_options_network.py:124 +#: picard/ui/ui_options_general.py:90 picard/ui/ui_options_network.py:111 msgid "Server address:" msgstr "Sunucu adresi:" -#: picard/ui/ui_options_general.py:95 +#: picard/ui/ui_options_general.py:91 msgid "Account Information" msgstr "Hesap Bilgileri" -#: picard/ui/ui_options_general.py:96 picard/ui/ui_options_network.py:121 -#: picard/ui/ui_passworddialog.py:74 +#: picard/ui/ui_options_general.py:92 picard/ui/ui_options_network.py:108 +#: picard/ui/ui_passworddialog.py:70 msgid "Password:" msgstr "Şifre:" -#: picard/ui/ui_options_general.py:97 picard/ui/ui_options_network.py:122 -#: picard/ui/ui_passworddialog.py:73 +#: picard/ui/ui_options_general.py:93 picard/ui/ui_options_network.py:109 +#: picard/ui/ui_passworddialog.py:69 msgid "Username:" msgstr "Kullanıcı Adı:" -#: picard/ui/ui_options_general.py:98 picard/ui/options/general.py:31 +#: picard/ui/ui_options_general.py:94 picard/ui/options/general.py:31 msgid "General" msgstr "Genel" -#: picard/ui/ui_options_general.py:99 +#: picard/ui/ui_options_general.py:95 msgid "Automatically scan all new files" msgstr "Bütün yeni dosyaları otomatik olarak tara" -#: picard/ui/ui_options_general.py:100 +#: picard/ui/ui_options_general.py:96 msgid "Ignore MBIDs when loading new files" msgstr "" -#: picard/ui/ui_options_interface.py:82 +#: picard/ui/ui_options_interface.py:69 msgid "Miscellaneous" msgstr "Çeşitli" -#: picard/ui/ui_options_interface.py:83 +#: picard/ui/ui_options_interface.py:70 msgid "Show text labels under icons" msgstr "İkonların altında yazı etiketlerini göster" -#: picard/ui/ui_options_interface.py:84 +#: picard/ui/ui_options_interface.py:71 msgid "Allow selection of multiple directories" msgstr "Birden çok dizin seçimine izin ver" -#: picard/ui/ui_options_interface.py:85 +#: picard/ui/ui_options_interface.py:72 msgid "Use advanced query syntax" msgstr "Gelişmiş sorgu biçimini kullan" -#: picard/ui/ui_options_interface.py:86 +#: picard/ui/ui_options_interface.py:73 msgid "Show a quit confirmation dialog for unsaved changes" msgstr "" -#: picard/ui/ui_options_interface.py:87 +#: picard/ui/ui_options_interface.py:74 msgid "Begin browsing in the following directory:" msgstr "" -#: picard/ui/ui_options_interface.py:89 +#: picard/ui/ui_options_interface.py:76 msgid "User interface language:" msgstr "Kullanıcı arayüzü dili:" -#: picard/ui/ui_options_matching.py:86 +#: picard/ui/ui_options_matching.py:73 msgid "Thresholds" msgstr "Sınırlar" -#: picard/ui/ui_options_matching.py:87 +#: picard/ui/ui_options_matching.py:74 msgid "Minimal similarity for matching files to tracks:" msgstr "Dosyaları parçalarla eşlemek için gerekli olan minimum benzerlik:" -#: picard/ui/ui_options_matching.py:91 +#: picard/ui/ui_options_matching.py:78 msgid "Minimal similarity for file lookups:" msgstr "Dosya aramaları için gerekli olan minimum benzerlik" -#: picard/ui/ui_options_matching.py:92 +#: picard/ui/ui_options_matching.py:79 msgid "Minimal similarity for cluster lookups:" msgstr "Küme aramaları için minimum benzerlik:" -#: picard/ui/ui_options_metadata.py:114 picard/ui/options/metadata.py:29 +#: picard/ui/ui_options_metadata.py:101 picard/ui/options/metadata.py:29 msgid "Metadata" msgstr "Metadata" -#: picard/ui/ui_options_metadata.py:115 +#: picard/ui/ui_options_metadata.py:102 msgid "Translate artist names to this locale where possible:" msgstr "Mümkünse sanatçı adlarını şu dile çevir:" -#: picard/ui/ui_options_metadata.py:116 +#: picard/ui/ui_options_metadata.py:103 msgid "Use standardized artist names" msgstr "" -#: picard/ui/ui_options_metadata.py:117 +#: picard/ui/ui_options_metadata.py:104 msgid "Convert Unicode punctuation characters to ASCII" msgstr "" -#: picard/ui/ui_options_metadata.py:118 +#: picard/ui/ui_options_metadata.py:105 msgid "Use release relationships" msgstr "Sürüm ilişkilerini kullan" -#: picard/ui/ui_options_metadata.py:119 +#: picard/ui/ui_options_metadata.py:106 msgid "Use track relationships" msgstr "Parça ilişkilerini kullan" -#: picard/ui/ui_options_metadata.py:120 +#: picard/ui/ui_options_metadata.py:107 msgid "Use folksonomy tags as genre" msgstr "Tarz olarak folksonomi etiketlerini kullan" -#: picard/ui/ui_options_metadata.py:121 +#: picard/ui/ui_options_metadata.py:108 msgid "Custom Fields" msgstr "Özel Alanlar" -#: picard/ui/ui_options_metadata.py:122 +#: picard/ui/ui_options_metadata.py:109 msgid "Various artists:" msgstr "Farklı Sanatçılar" -#: picard/ui/ui_options_metadata.py:123 +#: picard/ui/ui_options_metadata.py:110 msgid "Non-album tracks:" msgstr "Albümsüz parçalar:" -#: picard/ui/ui_options_metadata.py:124 picard/ui/ui_options_metadata.py:125 -#: picard/ui/ui_options_renaming.py:147 +#: picard/ui/ui_options_metadata.py:111 picard/ui/ui_options_metadata.py:112 +#: picard/ui/ui_options_renaming.py:143 msgid "Default" msgstr "Varsayılan" -#: picard/ui/ui_options_network.py:120 +#: picard/ui/ui_options_network.py:107 msgid "Web Proxy" msgstr "Ağ Vekili" -#: picard/ui/ui_options_network.py:125 +#: picard/ui/ui_options_network.py:112 msgid "Browser Integration" msgstr "" -#: picard/ui/ui_options_network.py:126 +#: picard/ui/ui_options_network.py:113 msgid "Default listening port:" msgstr "" -#: picard/ui/ui_options_network.py:127 +#: picard/ui/ui_options_network.py:114 msgid "Listen only on localhost" msgstr "" -#: picard/ui/ui_options_plugins.py:131 picard/ui/options/plugins.py:38 +#: picard/ui/ui_options_plugins.py:127 picard/ui/options/plugins.py:38 msgid "Plugins" msgstr "Eklentiler" -#: picard/ui/ui_options_plugins.py:132 picard/ui/options/plugins.py:122 +#: picard/ui/ui_options_plugins.py:128 picard/ui/options/plugins.py:122 msgid "Name" msgstr "İsim" -#: picard/ui/ui_options_plugins.py:133 picard/util/tags.py:39 +#: picard/ui/ui_options_plugins.py:129 msgid "Version" msgstr "Versiyon" -#: picard/ui/ui_options_plugins.py:134 picard/ui/options/plugins.py:125 +#: picard/ui/ui_options_plugins.py:130 picard/ui/options/plugins.py:125 msgid "Author" msgstr "Yazar" -#: picard/ui/ui_options_plugins.py:135 +#: picard/ui/ui_options_plugins.py:131 msgid "Install plugin..." msgstr "" -#: picard/ui/ui_options_plugins.py:136 +#: picard/ui/ui_options_plugins.py:132 msgid "Open plugin folder" msgstr "Eklenti klasörünü aç" -#: picard/ui/ui_options_plugins.py:137 +#: picard/ui/ui_options_plugins.py:133 msgid "Download plugins" msgstr "Eklentileri indir" -#: picard/ui/ui_options_plugins.py:138 +#: picard/ui/ui_options_plugins.py:134 msgid "Details" msgstr "Detaylar" -#: picard/ui/ui_options_ratings.py:53 +#: picard/ui/ui_options_ratings.py:49 msgid "Enable track ratings" msgstr "Parça derecelendirmelerini aktive et" -#: picard/ui/ui_options_ratings.py:54 +#: picard/ui/ui_options_ratings.py:50 msgid "" "Picard saves the ratings together with an e-mail address identifying the " "user who did the rating. That way different ratings for different users can " @@ -1488,207 +1414,167 @@ msgid "" "your ratings." msgstr "Picard, derecelendirmeleri, bunları sağlayan kullanıcıları belirlermek için e-posta adresleriyle beraber kaydeder. Bu sayede farklı kullanıcılar için farklı derecelendirmeler dosyaların içinde saklanır. Lütfen derecelendirmelerinizi saklamak için kullanmak istediğiniz e-posta adresini belirtin." -#: picard/ui/ui_options_ratings.py:55 +#: picard/ui/ui_options_ratings.py:51 msgid "E-mail:" msgstr "E-posta:" -#: picard/ui/ui_options_ratings.py:56 +#: picard/ui/ui_options_ratings.py:52 msgid "Submit ratings to MusicBrainz" msgstr "Derecelendirmeleri MusicBrainz'e gönder." -#: picard/ui/ui_options_releases.py:215 +#: picard/ui/ui_options_releases.py:104 msgid "Preferred release types" msgstr "Tercih edilen sürüm türü" -#: picard/ui/ui_options_releases.py:217 -msgid "Single" -msgstr "Single" - -#: picard/ui/ui_options_releases.py:218 -msgid "EP" -msgstr "EP" - -#: picard/ui/ui_options_releases.py:219 -msgid "Compilation" -msgstr "Derleme" - -#: picard/ui/ui_options_releases.py:220 -msgid "Soundtrack" -msgstr "Film müziği" - -#: picard/ui/ui_options_releases.py:221 -msgid "Spokenword" -msgstr "" - -#: picard/ui/ui_options_releases.py:222 -msgid "Interview" -msgstr "Görüşme" - -#: picard/ui/ui_options_releases.py:223 -msgid "Audiobook" -msgstr "Sesli Kitap" - -#: picard/ui/ui_options_releases.py:224 -msgid "Live" -msgstr "Canlı" - -#: picard/ui/ui_options_releases.py:225 -msgid "Remix" -msgstr "Remiks" - -#: picard/ui/ui_options_releases.py:227 -msgid "Reset all" -msgstr "Tümünü sıfırla" - -#: picard/ui/ui_options_releases.py:228 +#: picard/ui/ui_options_releases.py:105 msgid "Preferred release countries" msgstr "" -#: picard/ui/ui_options_releases.py:229 picard/ui/ui_options_releases.py:232 +#: picard/ui/ui_options_releases.py:106 picard/ui/ui_options_releases.py:109 msgid ">" msgstr "" -#: picard/ui/ui_options_releases.py:230 picard/ui/ui_options_releases.py:233 +#: picard/ui/ui_options_releases.py:107 picard/ui/ui_options_releases.py:110 msgid "<" msgstr "" -#: picard/ui/ui_options_releases.py:231 +#: picard/ui/ui_options_releases.py:108 msgid "Preferred release formats" msgstr "" -#: picard/ui/ui_options_renaming.py:134 +#: picard/ui/ui_options_renaming.py:130 msgid "Rename files when saving" msgstr "Kaydederken dosyaları adlandır" -#: picard/ui/ui_options_renaming.py:135 +#: picard/ui/ui_options_renaming.py:131 msgid "Replace non-ASCII characters" msgstr "ASCII olmayan karakterleri değiştir" -#: picard/ui/ui_options_renaming.py:136 +#: picard/ui/ui_options_renaming.py:132 msgid "Windows compatibility" msgstr "" -#: picard/ui/ui_options_renaming.py:137 +#: picard/ui/ui_options_renaming.py:133 msgid "Move files to this directory when saving:" msgstr "Kaydederken dosyaları şu klasöre taşı:" -#: picard/ui/ui_options_renaming.py:139 +#: picard/ui/ui_options_renaming.py:135 msgid "Delete empty directories" msgstr "Boş dizinleri sil" -#: picard/ui/ui_options_renaming.py:140 +#: picard/ui/ui_options_renaming.py:136 msgid "Move additional files:" msgstr "Ayrıca taşınacak dosyalar:" -#: picard/ui/ui_options_renaming.py:141 +#: picard/ui/ui_options_renaming.py:137 msgid "Name files like this" msgstr "Dosyaları şu şekilde adlandır" -#: picard/ui/ui_options_renaming.py:148 +#: picard/ui/ui_options_renaming.py:144 msgid "Examples" msgstr "Örnekler" -#: picard/ui/ui_options_script.py:49 +#: picard/ui/ui_options_script.py:45 msgid "Tagger Script" msgstr "Etiketleyici Betiği" -#: picard/ui/ui_options_tags.py:165 +#: picard/ui/ui_options_tags.py:152 msgid "Write tags to files" msgstr "Dosyalara etiketler yaz" -#: picard/ui/ui_options_tags.py:166 +#: picard/ui/ui_options_tags.py:153 msgid "Preserve timestamps of tagged files" msgstr "" -#: picard/ui/ui_options_tags.py:167 +#: picard/ui/ui_options_tags.py:154 msgid "Before Tagging" msgstr "" -#: picard/ui/ui_options_tags.py:168 +#: picard/ui/ui_options_tags.py:155 msgid "Clear existing tags" msgstr "Varolan etiketleri sil" -#: picard/ui/ui_options_tags.py:169 +#: picard/ui/ui_options_tags.py:156 msgid "Remove ID3 tags from FLAC files" msgstr "FLAC dosyalarından ID3 etiketlerini sil" -#: picard/ui/ui_options_tags.py:170 +#: picard/ui/ui_options_tags.py:157 msgid "Remove APEv2 tags from MP3 files" msgstr "MP3 dosyalarından APEv2 etiketlerini sil" -#: picard/ui/ui_options_tags.py:171 +#: picard/ui/ui_options_tags.py:158 msgid "" "Preserve these tags from being cleared or overwritten with MusicBrainz data:" msgstr "" -#: picard/ui/ui_options_tags.py:172 +#: picard/ui/ui_options_tags.py:159 msgid "Tags are separated by commas, and are case-sensitive." msgstr "" -#: picard/ui/ui_options_tags.py:173 +#: picard/ui/ui_options_tags.py:160 msgid "Tag Compatibility" msgstr "" -#: picard/ui/ui_options_tags.py:174 +#: picard/ui/ui_options_tags.py:161 msgid "ID3v2 Version" msgstr "" -#: picard/ui/ui_options_tags.py:175 +#: picard/ui/ui_options_tags.py:162 msgid "2.4" msgstr "2.4" -#: picard/ui/ui_options_tags.py:176 +#: picard/ui/ui_options_tags.py:163 msgid "2.3" msgstr "2.3" -#: picard/ui/ui_options_tags.py:177 +#: picard/ui/ui_options_tags.py:164 msgid "ID3v2 Text Encoding" msgstr "" -#: picard/ui/ui_options_tags.py:178 +#: picard/ui/ui_options_tags.py:165 msgid "UTF-8" msgstr "UTF-8" -#: picard/ui/ui_options_tags.py:179 +#: picard/ui/ui_options_tags.py:166 msgid "UTF-16" msgstr "UTF-16" -#: picard/ui/ui_options_tags.py:180 +#: picard/ui/ui_options_tags.py:167 msgid "ISO-8859-1" msgstr "ISO-8859-1" -#: picard/ui/ui_options_tags.py:181 +#: picard/ui/ui_options_tags.py:168 msgid "Join multiple ID3v2.3 tags with:" msgstr "" -#: picard/ui/ui_options_tags.py:182 +#: picard/ui/ui_options_tags.py:169 msgid "" "

Default is '/' to maintain compatibility with previous" " Picard releases.

New alternatives are ';_' or '_/_' or type your own." "

" msgstr "" -#: picard/ui/ui_options_tags.py:183 +#: picard/ui/ui_options_tags.py:170 msgid "Also include ID3v1 tags in the files" msgstr "Dosyalara ayrıca ID3v1 etiketlerinide yaz" -#: picard/ui/ui_passworddialog.py:72 +#: picard/ui/ui_passworddialog.py:68 msgid "Authentication required" msgstr "Kimlik denetimi gerekli" -#: picard/ui/ui_passworddialog.py:75 +#: picard/ui/ui_passworddialog.py:71 msgid "Save username and password" msgstr "Kullanıcı adı ve şifreyi kaydet" -#: picard/ui/ui_tagsfromfilenames.py:54 +#: picard/ui/ui_tagsfromfilenames.py:50 msgid "Convert File Names to Tags" msgstr "Dosya İsimlerinden Etiketlendir" -#: picard/ui/ui_tagsfromfilenames.py:55 +#: picard/ui/ui_tagsfromfilenames.py:51 msgid "Replace underscores with spaces" msgstr "Altçizgileri boşlukla değiştir" -#: picard/ui/ui_tagsfromfilenames.py:56 +#: picard/ui/ui_tagsfromfilenames.py:52 msgid "&Preview" msgstr "&Önizleme" @@ -1744,7 +1630,11 @@ msgstr "Gelişmiş" msgid "Regex Error" msgstr "" -#: picard/ui/options/cover.py:63 +#: picard/ui/options/cover.py:44 +msgid "title" +msgstr "" + +#: picard/ui/options/cover.py:68 msgid "Cover Art" msgstr "Kapak Resmi" @@ -1760,11 +1650,11 @@ msgstr "Kullanıcı Arayüzü" msgid "System default" msgstr "Sistem varsayılanı" -#: picard/ui/options/interface.py:96 +#: picard/ui/options/interface.py:98 msgid "Language changed" msgstr "Dil değişti" -#: picard/ui/options/interface.py:96 +#: picard/ui/options/interface.py:99 msgid "" "You have changed the interface language. You have to restart Picard in order" " for the change to take effect." @@ -1786,31 +1676,35 @@ msgstr "Dosya" msgid "Ratings" msgstr "Derecelendirmeler" -#: picard/ui/options/releases.py:33 +#: picard/ui/options/releases.py:87 msgid "Preferred Releases" msgstr "" +#: picard/ui/options/releases.py:121 +msgid "Reset all" +msgstr "Tümünü sıfırla" + #: picard/ui/options/renaming.py:37 msgid "File Naming" msgstr "" -#: picard/ui/options/renaming.py:184 +#: picard/ui/options/renaming.py:187 msgid "Error" msgstr "Hata" -#: picard/ui/options/renaming.py:184 +#: picard/ui/options/renaming.py:187 msgid "The location to move files to must not be empty." msgstr "Dosyaların taşınacağı yer boş olmamalı." -#: picard/ui/options/renaming.py:194 +#: picard/ui/options/renaming.py:197 msgid "The file naming format must not be empty." msgstr "Dosya adlandırma biçimi boş olmamalı." -#: picard/ui/options/scripting.py:63 +#: picard/ui/options/scripting.py:99 msgid "Scripting" msgstr "Betikleme" -#: picard/ui/options/scripting.py:95 +#: picard/ui/options/scripting.py:131 msgid "Script Error" msgstr "Betik Hatası" @@ -1930,199 +1824,199 @@ msgstr "ASIN" msgid "Grouping" msgstr "Gruplama" -#: picard/util/tags.py:40 +#: picard/util/tags.py:39 msgid "ISRC" msgstr "ISRC" -#: picard/util/tags.py:41 +#: picard/util/tags.py:40 msgid "Mood" msgstr "Ruh Hâli" -#: picard/util/tags.py:42 +#: picard/util/tags.py:41 msgid "BPM" msgstr "BPM" -#: picard/util/tags.py:43 +#: picard/util/tags.py:42 msgid "Copyright" msgstr "Telif Hakkı" -#: picard/util/tags.py:44 +#: picard/util/tags.py:43 msgid "License" msgstr "" -#: picard/util/tags.py:45 +#: picard/util/tags.py:44 msgid "Composer" msgstr "Besteci" -#: picard/util/tags.py:46 +#: picard/util/tags.py:45 msgid "Writer" msgstr "" -#: picard/util/tags.py:47 +#: picard/util/tags.py:46 msgid "Conductor" msgstr "Orkestra Şefi" -#: picard/util/tags.py:48 +#: picard/util/tags.py:47 msgid "Lyricist" msgstr "Söz Yazarı" -#: picard/util/tags.py:49 +#: picard/util/tags.py:48 msgid "Arranger" msgstr "Düzenleyen" -#: picard/util/tags.py:50 +#: picard/util/tags.py:49 msgid "Producer" msgstr "Yapımcı" -#: picard/util/tags.py:51 +#: picard/util/tags.py:50 msgid "Engineer" msgstr "Mühendis" -#: picard/util/tags.py:52 +#: picard/util/tags.py:51 msgid "Subtitle" msgstr "Altbaşlık" -#: picard/util/tags.py:53 +#: picard/util/tags.py:52 msgid "Disc Subtitle" msgstr "Disk Altbaşlığı" -#: picard/util/tags.py:54 +#: picard/util/tags.py:53 msgid "Remixer" msgstr "Remiks yapan" -#: picard/util/tags.py:55 +#: picard/util/tags.py:54 msgid "MusicBrainz Recording Id" msgstr "" -#: picard/util/tags.py:56 +#: picard/util/tags.py:55 msgid "MusicBrainz Track Id" msgstr "" -#: picard/util/tags.py:57 +#: picard/util/tags.py:56 msgid "MusicBrainz Release Id" msgstr "MusicBrainz Albüm Id" -#: picard/util/tags.py:58 +#: picard/util/tags.py:57 msgid "MusicBrainz Artist Id" msgstr "MusicBrainz Sanatçı Id" -#: picard/util/tags.py:59 +#: picard/util/tags.py:58 msgid "MusicBrainz Release Artist Id" msgstr "MusicBrainz Albüm Sanatçısı Id" -#: picard/util/tags.py:60 +#: picard/util/tags.py:59 msgid "MusicBrainz Work Id" msgstr "" -#: picard/util/tags.py:61 +#: picard/util/tags.py:60 msgid "MusicBrainz Release Group Id" msgstr "" -#: picard/util/tags.py:62 +#: picard/util/tags.py:61 msgid "MusicBrainz Disc Id" msgstr "MusicBrainz Disk Id" -#: picard/util/tags.py:63 -msgid "MusicBrainz Sort Name" -msgstr "MusicBrainz Sıralama İsmi" - -#: picard/util/tags.py:64 +#: picard/util/tags.py:62 msgid "MusicIP PUID" msgstr "MusicIP PUID" -#: picard/util/tags.py:65 +#: picard/util/tags.py:63 msgid "MusicIP Fingerprint" msgstr "MusicIP Parmakizi" -#: picard/util/tags.py:66 +#: picard/util/tags.py:64 msgid "AcoustID" msgstr "AcoustID" -#: picard/util/tags.py:67 +#: picard/util/tags.py:65 msgid "AcoustID Fingerprint" msgstr "" -#: picard/util/tags.py:68 +#: picard/util/tags.py:66 msgid "Disc Id" msgstr "Disk Id" -#: picard/util/tags.py:69 -msgid "Website" -msgstr "Websitesi" +#: picard/util/tags.py:67 +msgid "Artist Website" +msgstr "" -#: picard/util/tags.py:70 +#: picard/util/tags.py:68 msgid "Compilation (iTunes)" msgstr "" -#: picard/util/tags.py:71 +#: picard/util/tags.py:69 msgid "Comment" msgstr "Yorum" -#: picard/util/tags.py:72 +#: picard/util/tags.py:70 msgid "Genre" msgstr "Tarz" -#: picard/util/tags.py:73 +#: picard/util/tags.py:71 msgid "Encoded By" msgstr "Kodlayan" -#: picard/util/tags.py:74 +#: picard/util/tags.py:72 +msgid "Encoder Settings" +msgstr "" + +#: picard/util/tags.py:73 msgid "Performer" msgstr "İcracı" -#: picard/util/tags.py:75 +#: picard/util/tags.py:74 msgid "Release Type" msgstr "Sürüm Tipi" -#: picard/util/tags.py:76 +#: picard/util/tags.py:75 msgid "Release Status" msgstr "Sürüm Durumu" -#: picard/util/tags.py:77 +#: picard/util/tags.py:76 msgid "Release Country" msgstr "Yayımlanan Ülke" -#: picard/util/tags.py:78 +#: picard/util/tags.py:77 msgid "Record Label" msgstr "Plak Şirketi" -#: picard/util/tags.py:80 +#: picard/util/tags.py:79 msgid "Catalog Number" msgstr "Katalog Numarası" -#: picard/util/tags.py:82 +#: picard/util/tags.py:80 msgid "DJ-Mixer" msgstr "DJ-Mikser" -#: picard/util/tags.py:83 +#: picard/util/tags.py:81 msgid "Media" msgstr "Medya" -#: picard/util/tags.py:84 +#: picard/util/tags.py:82 msgid "Lyrics" msgstr "Sözler" -#: picard/util/tags.py:85 +#: picard/util/tags.py:83 msgid "Mixer" msgstr "Mikser" -#: picard/util/tags.py:86 +#: picard/util/tags.py:84 msgid "Language" msgstr "Dil" -#: picard/util/tags.py:87 +#: picard/util/tags.py:85 msgid "Script" msgstr "Alfabe" -#: picard/util/tags.py:89 +#: picard/util/tags.py:87 msgid "Rating" msgstr "" -#: picard/util/tags.py:90 +#: picard/util/tags.py:88 msgid "Artists" msgstr "" -#: picard/util/tags.py:91 +#: picard/util/tags.py:89 msgid "Work" msgstr "" diff --git a/po/uk.po b/po/uk.po index b6ce6acc3..c380635e1 100644 --- a/po/uk.po +++ b/po/uk.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: MusicBrainz\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2014-03-20 11:12+0100\n" -"PO-Revision-Date: 2014-03-21 08:44+0000\n" +"POT-Creation-Date: 2014-05-03 17:28+0200\n" +"PO-Revision-Date: 2014-05-04 08:44+0000\n" "Last-Translator: nikki\n" "Language-Team: Ukrainian (http://www.transifex.com/projects/p/musicbrainz/language/uk/)\n" "MIME-Version: 1.0\n" @@ -19,6 +19,10 @@ msgstr "" "Language: uk\n" "Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" +#: contrib/plugins/albumartist_website.py:3 +msgid "Album Artist Website" +msgstr "" + #: contrib/plugins/no_release.py:50 msgid "Enable plugin for all releases by default" msgstr "" @@ -31,63 +35,55 @@ msgstr "" msgid "Remove specific release information..." msgstr "" -#: contrib/plugins/open_in_gui.py:32 -msgid "Open Error" +#: contrib/plugins/standardise_performers.py:3 +msgid "Standardise Performers" msgstr "" -#: contrib/plugins/open_in_gui.py:32 -#, python-format -msgid "" -"Error while opening file:\n" -"\n" -"%s" -msgstr "" - -#: contrib/plugins/lastfm/ui_options_lastfm.py:117 +#: contrib/plugins/lastfm/ui_options_lastfm.py:99 msgid "Last.fm" msgstr "" -#: contrib/plugins/lastfm/ui_options_lastfm.py:118 +#: contrib/plugins/lastfm/ui_options_lastfm.py:100 msgid "Use track tags" msgstr "" -#: contrib/plugins/lastfm/ui_options_lastfm.py:119 +#: contrib/plugins/lastfm/ui_options_lastfm.py:101 msgid "Use artist tags" msgstr "" -#: contrib/plugins/lastfm/ui_options_lastfm.py:120 +#: contrib/plugins/lastfm/ui_options_lastfm.py:102 #: picard/ui/options/tags.py:30 msgid "Tags" msgstr "Позначки" -#: contrib/plugins/lastfm/ui_options_lastfm.py:121 -#: picard/ui/ui_options_folksonomy.py:116 +#: contrib/plugins/lastfm/ui_options_lastfm.py:103 +#: picard/ui/ui_options_folksonomy.py:103 msgid "Ignore tags:" msgstr "Ігноровані позначки:" -#: contrib/plugins/lastfm/ui_options_lastfm.py:122 -#: picard/ui/ui_options_folksonomy.py:121 +#: contrib/plugins/lastfm/ui_options_lastfm.py:104 +#: picard/ui/ui_options_folksonomy.py:108 msgid "Join multiple tags with:" msgstr "Об’єднати численні позначки за допомогою:" -#: contrib/plugins/lastfm/ui_options_lastfm.py:123 -#: picard/ui/ui_options_folksonomy.py:122 +#: contrib/plugins/lastfm/ui_options_lastfm.py:105 +#: picard/ui/ui_options_folksonomy.py:109 msgid " / " msgstr " / " -#: contrib/plugins/lastfm/ui_options_lastfm.py:124 -#: picard/ui/ui_options_folksonomy.py:123 +#: contrib/plugins/lastfm/ui_options_lastfm.py:106 +#: picard/ui/ui_options_folksonomy.py:110 msgid ", " msgstr ", " -#: contrib/plugins/lastfm/ui_options_lastfm.py:125 -#: picard/ui/ui_options_folksonomy.py:118 +#: contrib/plugins/lastfm/ui_options_lastfm.py:107 +#: picard/ui/ui_options_folksonomy.py:105 msgid "Minimal tag usage:" msgstr "Мінімальне використання позначок:" -#: contrib/plugins/lastfm/ui_options_lastfm.py:126 -#: picard/ui/ui_options_folksonomy.py:119 picard/ui/ui_options_matching.py:88 -#: picard/ui/ui_options_matching.py:89 picard/ui/ui_options_matching.py:90 +#: contrib/plugins/lastfm/ui_options_lastfm.py:108 +#: picard/ui/ui_options_folksonomy.py:106 picard/ui/ui_options_matching.py:75 +#: picard/ui/ui_options_matching.py:76 picard/ui/ui_options_matching.py:77 msgid " %" msgstr " %" @@ -95,93 +91,152 @@ msgstr " %" msgid "Calculate replay &gain..." msgstr "" -#: contrib/plugins/replaygain/__init__.py:66 +#: contrib/plugins/replaygain/__init__.py:67 #, python-format -msgid "Calculating replay gain for \"%s\"..." +msgid "Calculating replay gain for \"%(filename)s\"..." msgstr "" -#: contrib/plugins/replaygain/__init__.py:71 +#: contrib/plugins/replaygain/__init__.py:75 #, python-format -msgid "Replay gain for \"%s\" successfully calculated." +msgid "Replay gain for \"%(filename)s\" successfully calculated." msgstr "" -#: contrib/plugins/replaygain/__init__.py:73 +#: contrib/plugins/replaygain/__init__.py:80 #, python-format -msgid "Could not calculate replay gain for \"%s\"." +msgid "Could not calculate replay gain for \"%(filename)s\"." msgstr "" -#: contrib/plugins/replaygain/__init__.py:76 +#: contrib/plugins/replaygain/__init__.py:85 msgid "Calculate album &gain..." msgstr "" -#: contrib/plugins/replaygain/__init__.py:103 -#: contrib/plugins/replaygain/__init__.py:111 +#: contrib/plugins/replaygain/__init__.py:113 +#: contrib/plugins/replaygain/__init__.py:124 #, python-format -msgid "Calculating album gain for \"%s\"..." +msgid "Calculating album gain for \"%(album)s\"..." msgstr "" -#: contrib/plugins/replaygain/__init__.py:119 +#: contrib/plugins/replaygain/__init__.py:135 #, python-format -msgid "Album gain for \"%s\" successfully calculated." +msgid "Album gain for \"%(album)s\" successfully calculated." msgstr "" -#: contrib/plugins/replaygain/__init__.py:121 +#: contrib/plugins/replaygain/__init__.py:140 #, python-format -msgid "Could not calculate album gain for \"%s\"." +msgid "Could not calculate album gain for \"%(album)s\"." msgstr "" -#: picard/acoustid.py:102 -#, python-format -msgid "AcoustID lookup network error for '%s'!" +#: contrib/plugins/replaygain/ui_options_replaygain.py:59 +msgid "Replay Gain" msgstr "" -#: picard/acoustid.py:117 -#, python-format -msgid "AcoustID lookup failed for '%s'!" +#: contrib/plugins/replaygain/ui_options_replaygain.py:60 +msgid "Path to VorbisGain:" msgstr "" -#: picard/acoustid.py:128 -#, python-format -msgid "Acoustid lookup returned no result for file '%s'" +#: contrib/plugins/replaygain/ui_options_replaygain.py:61 +msgid "Path to MP3Gain:" msgstr "" -#: picard/acoustid.py:132 -#, python-format -msgid "Looking up the fingerprint for file %s..." -msgstr "Пошук відбитка для файла %s…" - -#: picard/acoustidmanager.py:78 -msgid "Submitting AcoustIDs..." +#: contrib/plugins/replaygain/ui_options_replaygain.py:62 +msgid "Path to metaflac:" msgstr "" -#: picard/acoustidmanager.py:83 -#, python-format -msgid "AcoustID submission failed with error '%s'" +#: contrib/plugins/replaygain/ui_options_replaygain.py:63 +msgid "Path to wvgain:" msgstr "" -#: picard/acoustidmanager.py:85 +#: contrib/plugins/viewvariables/__init__.py:42 +#, python-format +msgid "File: %s" +msgstr "" + +#: contrib/plugins/viewvariables/__init__.py:47 +#, python-format +msgid "Track: %s %s " +msgstr "" + +#: contrib/plugins/viewvariables/__init__.py:49 +msgid "Variables" +msgstr "" + +#: contrib/plugins/viewvariables/__init__.py:69 +msgid "File variables" +msgstr "" + +#: contrib/plugins/viewvariables/__init__.py:74 +msgid "Hidden variables" +msgstr "" + +#: contrib/plugins/viewvariables/__init__.py:79 +msgid "Tag variables" +msgstr "" + +#: contrib/plugins/viewvariables/ui_variables_dialog.py:73 +msgid "Variable" +msgstr "" + +#: contrib/plugins/viewvariables/ui_variables_dialog.py:75 +msgid "Value" +msgstr "" + +#: picard/acoustid.py:109 +#, python-format +msgid "AcoustID lookup network error for '%(filename)s'!" +msgstr "" + +#: picard/acoustid.py:133 +#, python-format +msgid "AcoustID lookup failed for '%(filename)s'!" +msgstr "" + +#: picard/acoustid.py:155 +#, python-format +msgid "AcoustID lookup returned no result for file '%(filename)s'" +msgstr "" + +#: picard/acoustid.py:166 +#, python-format +msgid "Looking up the fingerprint for file '%(filename)s' ..." +msgstr "" + +#: picard/acoustidmanager.py:80 +msgid "Submitting AcoustIDs ..." +msgstr "" + +#: picard/acoustidmanager.py:94 +#, python-format +msgid "AcoustID submission failed with error '%(error)s'" +msgstr "" + +#: picard/acoustidmanager.py:102 msgid "AcoustIDs successfully submitted." msgstr "" -#: picard/album.py:64 picard/cluster.py:234 +#: picard/album.py:65 picard/cluster.py:255 msgid "Unmatched Files" msgstr "Неузгоджені файли" -#: picard/album.py:187 +#: picard/album.py:188 #, python-format msgid "[could not load album %s]" msgstr "[не вдалось завантажити альбом %s]" -#: picard/album.py:272 +#: picard/album.py:277 #, python-format -msgid "Album %s loaded" +msgid "Album %(id)s loaded: %(artist)s - %(album)s" msgstr "" -#: picard/album.py:288 +#: picard/album.py:294 +#, python-format +msgid "Loading album %(id)s ..." +msgstr "" + +#: picard/album.py:303 msgid "[loading album information]" msgstr "[завантаження даних альбому]" -#: picard/album.py:463 +#: picard/album.py:478 #, python-format msgid "; %i image" msgid_plural "; %i images" @@ -189,329 +244,157 @@ msgstr[0] "" msgstr[1] "" msgstr[2] "" -#: picard/cluster.py:150 picard/cluster.py:159 +#: picard/cluster.py:155 picard/cluster.py:168 #, python-format -msgid "No matching releases for cluster %s" -msgstr "Немає відповідних випусків для кластера %s" - -#: picard/cluster.py:161 -#, python-format -msgid "Cluster %s identified!" -msgstr "Кластер %s ідентифіковано!" - -#: picard/cluster.py:168 -#, python-format -msgid "Looking up the metadata for cluster %s..." -msgstr "Пошук метаданих для кластера %s…" - -#: picard/collection.py:60 -#, python-format -msgid "Added %i release to collection \"%s\"" -msgid_plural "Added %i releases to collection \"%s\"" -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" - -#: picard/collection.py:72 -#, python-format -msgid "Removed %i release from collection \"%s\"" -msgid_plural "Removed %i releases from collection \"%s\"" -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" - -#: picard/collection.py:81 -#, python-format -msgid "Error loading collections: %s" +msgid "No matching releases for cluster %(album)s" msgstr "" -#: picard/config_upgrade.py:57 picard/config_upgrade.py:70 +#: picard/cluster.py:174 +#, python-format +msgid "Cluster %(album)s identified!" +msgstr "" + +#: picard/cluster.py:185 +#, python-format +msgid "Looking up the metadata for cluster %(album)s..." +msgstr "" + +#: picard/collection.py:64 +#, python-format +msgid "Added %(count)i release to collection \"%(name)s\"" +msgid_plural "Added %(count)i releases to collection \"%(name)s\"" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" + +#: picard/collection.py:86 +#, python-format +msgid "Removed %(count)i release from collection \"%(name)s\"" +msgid_plural "Removed %(count)i releases from collection \"%(name)s\"" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" + +#: picard/collection.py:100 +#, python-format +msgid "Error loading collections: %(error)s" +msgstr "" + +#: picard/config_upgrade.py:58 picard/config_upgrade.py:71 msgid "Various Artists file naming scheme removal" msgstr "" -#: picard/config_upgrade.py:58 +#: picard/config_upgrade.py:59 msgid "" "The separate file naming scheme for various artists albums has been removed in this version of Picard.\n" "Your file naming scheme has automatically been merged with that of single artist albums." msgstr "" -#: picard/config_upgrade.py:71 +#: picard/config_upgrade.py:72 msgid "" "The separate file naming scheme for various artists albums has been removed in this version of Picard.\n" "You currently do not use this option, but have a separate file naming scheme defined.\n" "Do you want to remove it or merge it with your file naming scheme for single artist albums?" msgstr "" -#: picard/config_upgrade.py:77 +#: picard/config_upgrade.py:78 msgid "Merge" msgstr "" -#: picard/config_upgrade.py:77 picard/ui/metadatabox.py:254 +#: picard/config_upgrade.py:78 picard/ui/metadatabox.py:254 msgid "Remove" msgstr "" -#: picard/const.py:67 -msgid "CD" -msgstr "CD" - -#: picard/const.py:68 -msgid "CD-R" -msgstr "" - -#: picard/const.py:69 -msgid "HDCD" -msgstr "" - -#: picard/const.py:70 -msgid "8cm CD" -msgstr "" - -#: picard/const.py:71 -msgid "Vinyl" -msgstr "Вініл" - -#: picard/const.py:72 -msgid "7\" Vinyl" -msgstr "" - -#: picard/const.py:73 -msgid "10\" Vinyl" -msgstr "" - -#: picard/const.py:74 -msgid "12\" Vinyl" -msgstr "" - -#: picard/const.py:75 -msgid "Digital Media" -msgstr "Цифровий носій" - -#: picard/const.py:76 -msgid "USB Flash Drive" -msgstr "" - -#: picard/const.py:77 -msgid "slotMusic" -msgstr "" - -#: picard/const.py:78 -msgid "Cassette" -msgstr "Касета" - -#: picard/const.py:79 -msgid "DVD" -msgstr "DVD" - -#: picard/const.py:80 -msgid "DVD-Audio" -msgstr "" - -#: picard/const.py:81 -msgid "DVD-Video" -msgstr "" - -#: picard/const.py:82 -msgid "SACD" -msgstr "SACD" - -#: picard/const.py:83 -msgid "DualDisc" -msgstr "" - -#: picard/const.py:84 -msgid "MiniDisc" -msgstr "MiniDisc" - -#: picard/const.py:85 -msgid "Blu-ray" -msgstr "" - -#: picard/const.py:86 -msgid "HD-DVD" -msgstr "" - -#: picard/const.py:87 -msgid "Videotape" -msgstr "" - -#: picard/const.py:88 -msgid "VHS" -msgstr "" - -#: picard/const.py:89 -msgid "Betamax" -msgstr "" - #: picard/const.py:90 -msgid "VCD" -msgstr "" - -#: picard/const.py:91 -msgid "SVCD" -msgstr "" - -#: picard/const.py:92 -msgid "UMD" -msgstr "" - -#: picard/const.py:93 picard/coverartarchive.py:33 -#: picard/ui/ui_options_releases.py:226 -msgid "Other" -msgstr "Інше" - -#: picard/const.py:94 -msgid "LaserDisc" -msgstr "LaserDisc" - -#: picard/const.py:95 -msgid "Cartridge" -msgstr "" - -#: picard/const.py:96 -msgid "Reel-to-reel" -msgstr "" - -#: picard/const.py:97 -msgid "DAT" -msgstr "DAT" - -#: picard/const.py:98 -msgid "Wax Cylinder" -msgstr "Восковий циліндр" - -#: picard/const.py:99 -msgid "Piano Roll" -msgstr "Циліндр механічного піаніно" - -#: picard/const.py:100 -msgid "DCC" -msgstr "" - -#: picard/const.py:115 msgid "Danish" msgstr "" -#: picard/const.py:116 +#: picard/const.py:91 msgid "German" msgstr "Німецька" -#: picard/const.py:118 +#: picard/const.py:93 msgid "English" msgstr "Англійська" -#: picard/const.py:119 +#: picard/const.py:94 msgid "English (Canada)" msgstr "Англійська (Канада)" -#: picard/const.py:120 +#: picard/const.py:95 msgid "English (UK)" msgstr "Англійська (Велика Британія)" -#: picard/const.py:122 +#: picard/const.py:97 msgid "Spanish" msgstr "Іспанська" -#: picard/const.py:123 +#: picard/const.py:98 msgid "Estonian" msgstr "Естонська" -#: picard/const.py:125 +#: picard/const.py:100 msgid "Finnish" msgstr "Фінська" -#: picard/const.py:127 +#: picard/const.py:102 msgid "French" msgstr "Французька" -#: picard/const.py:136 +#: picard/const.py:111 msgid "Italian" msgstr "Італійська" -#: picard/const.py:143 +#: picard/const.py:118 msgid "Dutch" msgstr "Голандська" -#: picard/const.py:145 +#: picard/const.py:120 msgid "Polish" msgstr "Польська" -#: picard/const.py:147 +#: picard/const.py:122 msgid "Brazilian Portuguese" msgstr "Бразильська португальська" -#: picard/const.py:154 +#: picard/const.py:129 msgid "Swedish" msgstr "Шведська" -#: picard/coverart.py:84 +#: picard/coverart.py:85 #, python-format -msgid "Coverart %s downloaded" +msgid "Cover art of type '%(type)s' downloaded for %(albumid)s from %(host)s" msgstr "" -#: picard/coverart.py:240 +#: picard/coverart.py:256 #, python-format -msgid "Downloading http://%s:%i%s" -msgstr "" - -#: picard/coverartarchive.py:24 -msgid "Front" -msgstr "" - -#: picard/coverartarchive.py:25 -msgid "Back" -msgstr "" - -#: picard/coverartarchive.py:26 -msgid "Booklet" -msgstr "" - -#: picard/coverartarchive.py:27 -msgid "Medium" -msgstr "" - -#: picard/coverartarchive.py:28 -msgid "Tray" -msgstr "" - -#: picard/coverartarchive.py:29 -msgid "Obi" +msgid "" +"Downloading cover art of type '%(type)s' for %(albumid)s from %(host)s .." msgstr "" #: picard/coverartarchive.py:30 -msgid "Spine" -msgstr "" - -#: picard/coverartarchive.py:31 picard/ui/mainwindow.py:546 -msgid "Track" -msgstr "Доріжка" - -#: picard/coverartarchive.py:32 -msgid "Sticker" -msgstr "" - -#: picard/coverartarchive.py:34 msgid "Unknown" msgstr "" -#: picard/file.py:536 +#: picard/file.py:494 #, python-format -msgid "No matching tracks for file %s" -msgstr "Немає відповідних доріжок для файла %s" +msgid "No matching tracks for file '%(filename)s'" +msgstr "" -#: picard/file.py:548 +#: picard/file.py:510 #, python-format -msgid "No matching tracks above the threshold for file %s" -msgstr "Немає відповідних доріжок з таким початком для файла %s" +msgid "No matching tracks above the threshold for file '%(filename)s'" +msgstr "" -#: picard/file.py:551 +#: picard/file.py:517 #, python-format -msgid "File %s identified!" -msgstr "Файл %s ідентифікований!" +msgid "File '%(filename)s' identified!" +msgstr "" -#: picard/file.py:567 +#: picard/file.py:537 #, python-format -msgid "Looking up the metadata for file %s..." -msgstr "Пошук метаданих для файла %s…" +msgid "Looking up the metadata for file %(filename)s ..." +msgstr "" #: picard/releasegroup.py:53 msgid "Tracks" @@ -521,11 +404,11 @@ msgstr "" msgid "Year" msgstr "" -#: picard/releasegroup.py:55 picard/ui/cdlookup.py:34 +#: picard/releasegroup.py:55 picard/ui/cdlookup.py:35 msgid "Country" msgstr "" -#: picard/releasegroup.py:56 picard/util/tags.py:81 +#: picard/releasegroup.py:56 msgid "Format" msgstr "Формат" @@ -545,16 +428,24 @@ msgstr "" msgid "[no release info]" msgstr "" -#: picard/tagger.py:316 +#: picard/tagger.py:370 #, python-format -msgid "Loading directory %s" +msgid "Adding %(count)d file from '%(directory)s' ..." +msgid_plural "Adding %(count)d files from '%(directory)s' ..." +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" + +#: picard/tagger.py:512 +#, python-format +msgid "Removing album %(id)s: %(artist)s - %(album)s" msgstr "" -#: picard/tagger.py:452 +#: picard/tagger.py:528 msgid "CD Lookup Error" msgstr "Помика пошуку CD" -#: picard/tagger.py:453 +#: picard/tagger.py:529 #, python-format msgid "" "Error while reading CD:\n" @@ -562,37 +453,36 @@ msgid "" "%s" msgstr "Помилка читання CD:\n\n%s" -#: picard/ui/cdlookup.py:34 picard/ui/mainwindow.py:544 -#: picard/ui/ui_options_releases.py:216 picard/util/tags.py:21 +#: picard/ui/cdlookup.py:35 picard/ui/mainwindow.py:597 picard/util/tags.py:21 msgid "Album" msgstr "Альбом" -#: picard/ui/cdlookup.py:34 picard/ui/itemviews.py:96 -#: picard/ui/mainwindow.py:545 picard/util/tags.py:22 +#: picard/ui/cdlookup.py:35 picard/ui/itemviews.py:96 +#: picard/ui/mainwindow.py:598 picard/util/tags.py:22 msgid "Artist" msgstr "Виконавець" -#: picard/ui/cdlookup.py:34 picard/util/tags.py:24 +#: picard/ui/cdlookup.py:35 picard/util/tags.py:24 msgid "Date" msgstr "Дата" -#: picard/ui/cdlookup.py:35 +#: picard/ui/cdlookup.py:36 msgid "Labels" msgstr "" -#: picard/ui/cdlookup.py:35 +#: picard/ui/cdlookup.py:36 msgid "Catalog #s" msgstr "" -#: picard/ui/cdlookup.py:35 picard/util/tags.py:79 +#: picard/ui/cdlookup.py:36 picard/util/tags.py:78 msgid "Barcode" msgstr "Штрих-код" -#: picard/ui/collectionmenu.py:31 +#: picard/ui/collectionmenu.py:42 msgid "Refresh List" msgstr "" -#: picard/ui/collectionmenu.py:92 +#: picard/ui/collectionmenu.py:86 #, python-format msgid "%s (%i release)" msgid_plural "%s (%i releases)" @@ -600,7 +490,7 @@ msgstr[0] "" msgstr[1] "" msgstr[2] "" -#: picard/ui/coverartbox.py:142 +#: picard/ui/coverartbox.py:141 msgid "View release on MusicBrainz" msgstr "" @@ -616,59 +506,59 @@ msgstr "Показувати при&ховані файли" msgid "&Set as starting directory" msgstr "" -#: picard/ui/infodialog.py:36 picard/ui/infodialog.py:75 +#: picard/ui/infodialog.py:37 picard/ui/infodialog.py:80 msgid "Info" msgstr "" -#: picard/ui/infodialog.py:80 +#: picard/ui/infodialog.py:85 msgid "Filename:" msgstr "Назва файла:" -#: picard/ui/infodialog.py:82 +#: picard/ui/infodialog.py:87 msgid "Format:" msgstr "Формат:" -#: picard/ui/infodialog.py:86 +#: picard/ui/infodialog.py:91 msgid "Size:" msgstr "Розмір:" -#: picard/ui/infodialog.py:90 +#: picard/ui/infodialog.py:95 msgid "Length:" msgstr "Тривалість:" -#: picard/ui/infodialog.py:92 +#: picard/ui/infodialog.py:97 msgid "Bitrate:" msgstr "Бітова швидкість:" -#: picard/ui/infodialog.py:94 +#: picard/ui/infodialog.py:99 msgid "Sample rate:" msgstr "Частота вибірки:" -#: picard/ui/infodialog.py:96 +#: picard/ui/infodialog.py:101 msgid "Bits per sample:" msgstr "Бітів на приклад:" -#: picard/ui/infodialog.py:100 +#: picard/ui/infodialog.py:105 msgid "Mono" msgstr "Моно" -#: picard/ui/infodialog.py:102 +#: picard/ui/infodialog.py:107 msgid "Stereo" msgstr "Стерео" -#: picard/ui/infodialog.py:105 +#: picard/ui/infodialog.py:110 msgid "Channels:" msgstr "Канали:" -#: picard/ui/infodialog.py:116 +#: picard/ui/infodialog.py:121 msgid "Album Info" msgstr "" -#: picard/ui/infodialog.py:124 +#: picard/ui/infodialog.py:129 msgid "&Errors" msgstr "" -#: picard/ui/infodialog.py:134 picard/ui/ui_infodialog.py:77 +#: picard/ui/infodialog.py:139 picard/ui/ui_infodialog.py:73 msgid "&Info" msgstr "&Інформація" @@ -692,7 +582,7 @@ msgstr "" msgid "Title" msgstr "Назва" -#: picard/ui/itemviews.py:95 picard/util/tags.py:88 +#: picard/ui/itemviews.py:95 picard/util/tags.py:86 msgid "Length" msgstr "Тривалість" @@ -717,8 +607,8 @@ msgid "Collections" msgstr "" #: picard/ui/itemviews.py:365 -msgid "&Plugins" -msgstr "&Модулі" +msgid "P&lugins" +msgstr "" #: picard/ui/itemviews.py:541 msgid "file view" @@ -740,12 +630,16 @@ msgstr "" msgid "Contains albums and matched files" msgstr "" -#: picard/ui/logview.py:91 +#: picard/ui/logview.py:109 msgid "Log" msgstr "Журнал" -#: picard/ui/logview.py:99 -msgid "Status History" +#: picard/ui/logview.py:113 +msgid "Debug mode" +msgstr "" + +#: picard/ui/logview.py:134 +msgid "Activity History" msgstr "" #: picard/ui/mainwindow.py:74 @@ -780,276 +674,309 @@ msgstr "" #: picard/ui/mainwindow.py:220 msgid "" -"Picard listens on a port to integrate with your browser and downloads " -"release information when you click the \"Tagger\" buttons on the MusicBrainz" -" website" +"Picard listens on this port to integrate with your browser. When you " +"\"Search\" or \"Open in Browser\" from Picard, clicking the \"Tagger\" " +"button on the web page loads the release into Picard." msgstr "" -#: picard/ui/mainwindow.py:240 +#: picard/ui/mainwindow.py:243 #, python-format msgid " Listening on port %(port)d " msgstr "" -#: picard/ui/mainwindow.py:263 +#: picard/ui/mainwindow.py:299 msgid "Submission Error" msgstr "" -#: picard/ui/mainwindow.py:264 +#: picard/ui/mainwindow.py:300 msgid "" "You need to configure your AcoustID API key before you can submit " "fingerprints." msgstr "" -#: picard/ui/mainwindow.py:269 +#: picard/ui/mainwindow.py:305 msgid "&Options..." msgstr "&Параметри..." -#: picard/ui/mainwindow.py:273 +#: picard/ui/mainwindow.py:309 msgid "&Cut" msgstr "&Вирізати" -#: picard/ui/mainwindow.py:278 +#: picard/ui/mainwindow.py:314 msgid "&Paste" msgstr "В&ставити" -#: picard/ui/mainwindow.py:283 +#: picard/ui/mainwindow.py:319 msgid "&Help..." msgstr "&Довідка..." -#: picard/ui/mainwindow.py:288 +#: picard/ui/mainwindow.py:323 msgid "&About..." msgstr "&Про програму..." -#: picard/ui/mainwindow.py:292 +#: picard/ui/mainwindow.py:327 msgid "&Donate..." msgstr "&Пожертва..." -#: picard/ui/mainwindow.py:295 +#: picard/ui/mainwindow.py:330 msgid "&Report a Bug..." msgstr "&Звіт про помилку..." -#: picard/ui/mainwindow.py:298 +#: picard/ui/mainwindow.py:333 msgid "&Support Forum..." msgstr "&Форум підтримки…" -#: picard/ui/mainwindow.py:301 +#: picard/ui/mainwindow.py:336 msgid "&Add Files..." msgstr "&Додати файли..." -#: picard/ui/mainwindow.py:302 +#: picard/ui/mainwindow.py:337 msgid "Add files to the tagger" msgstr "Додати файли до Tagger" -#: picard/ui/mainwindow.py:307 +#: picard/ui/mainwindow.py:342 msgid "A&dd Folder..." msgstr "Д&одати теку..." -#: picard/ui/mainwindow.py:308 +#: picard/ui/mainwindow.py:343 msgid "Add a folder to the tagger" msgstr "Додати теку до Tagger" -#: picard/ui/mainwindow.py:310 +#: picard/ui/mainwindow.py:345 msgid "Ctrl+D" msgstr "Ctrl+D" -#: picard/ui/mainwindow.py:313 +#: picard/ui/mainwindow.py:348 msgid "&Save" msgstr "З&берегти" -#: picard/ui/mainwindow.py:314 +#: picard/ui/mainwindow.py:349 msgid "Save selected files" msgstr "Зберегти вибрані файли" -#: picard/ui/mainwindow.py:320 +#: picard/ui/mainwindow.py:355 msgid "S&ubmit" msgstr "" -#: picard/ui/mainwindow.py:321 -msgid "Submit fingerprints" +#: picard/ui/mainwindow.py:356 +msgid "Submit acoustic fingerprints" msgstr "" -#: picard/ui/mainwindow.py:325 +#: picard/ui/mainwindow.py:360 msgid "E&xit" msgstr "В&ийти" -#: picard/ui/mainwindow.py:328 +#: picard/ui/mainwindow.py:363 msgid "Ctrl+Q" msgstr "Ctrl+Q" -#: picard/ui/mainwindow.py:331 +#: picard/ui/mainwindow.py:366 msgid "&Remove" msgstr "Ви&лучити" -#: picard/ui/mainwindow.py:332 +#: picard/ui/mainwindow.py:367 msgid "Remove selected files/albums" msgstr "Вилучити вибрані файли/альбоми" -#: picard/ui/mainwindow.py:336 +#: picard/ui/mainwindow.py:371 msgid "Lookup in &Browser" msgstr "" -#: picard/ui/mainwindow.py:337 +#: picard/ui/mainwindow.py:372 msgid "Lookup selected item on MusicBrainz website" msgstr "" -#: picard/ui/mainwindow.py:341 +#: picard/ui/mainwindow.py:376 msgid "File &Browser" msgstr "&Перегляд файлів" -#: picard/ui/mainwindow.py:345 +#: picard/ui/mainwindow.py:380 msgid "Ctrl+B" msgstr "Ctrl+B" -#: picard/ui/mainwindow.py:348 +#: picard/ui/mainwindow.py:383 msgid "&Cover Art" msgstr "&Обкладинки" -#: picard/ui/mainwindow.py:354 picard/ui/mainwindow.py:539 +#: picard/ui/mainwindow.py:389 picard/ui/mainwindow.py:591 msgid "Search" msgstr "Пошук" -#: picard/ui/mainwindow.py:357 -msgid "&CD Lookup..." -msgstr "Пошук &CD…" +#: picard/ui/mainwindow.py:392 +msgid "Lookup &CD..." +msgstr "" -#: picard/ui/mainwindow.py:358 picard/ui/mainwindow.py:359 -msgid "Lookup CD" -msgstr "Пошук CD" +#: picard/ui/mainwindow.py:393 +msgid "Lookup the details of the CD in your drive" +msgstr "" -#: picard/ui/mainwindow.py:361 +#: picard/ui/mainwindow.py:395 msgid "Ctrl+K" msgstr "Ctrl+K" -#: picard/ui/mainwindow.py:364 +#: picard/ui/mainwindow.py:398 msgid "&Scan" msgstr "С&канувати" -#: picard/ui/mainwindow.py:367 +#: picard/ui/mainwindow.py:401 msgid "Ctrl+Y" msgstr "Ctrl+Y" -#: picard/ui/mainwindow.py:370 +#: picard/ui/mainwindow.py:404 msgid "Cl&uster" msgstr "&Разбити на кластери" -#: picard/ui/mainwindow.py:373 +#: picard/ui/mainwindow.py:407 msgid "Ctrl+U" msgstr "Ctrl+U" -#: picard/ui/mainwindow.py:376 +#: picard/ui/mainwindow.py:410 msgid "&Lookup" msgstr "&Пошук" -#: picard/ui/mainwindow.py:377 picard/ui/mainwindow.py:378 -msgid "Lookup metadata" -msgstr "Пошук метаданих" +#: picard/ui/mainwindow.py:411 +msgid "Lookup selected items in MusicBrainz" +msgstr "" -#: picard/ui/mainwindow.py:381 +#: picard/ui/mainwindow.py:416 msgid "Ctrl+L" msgstr "Ctrl+L" -#: picard/ui/mainwindow.py:384 +#: picard/ui/mainwindow.py:419 msgid "&Info..." msgstr "" -#: picard/ui/mainwindow.py:387 +#: picard/ui/mainwindow.py:422 msgid "Ctrl+I" msgstr "" -#: picard/ui/mainwindow.py:390 +#: picard/ui/mainwindow.py:425 msgid "&Refresh" msgstr "&Оновити" -#: picard/ui/mainwindow.py:391 +#: picard/ui/mainwindow.py:426 msgid "Ctrl+R" msgstr "" -#: picard/ui/mainwindow.py:394 +#: picard/ui/mainwindow.py:429 msgid "&Rename Files" msgstr "П&ерейменувати файли" -#: picard/ui/mainwindow.py:399 +#: picard/ui/mainwindow.py:434 msgid "&Move Files" msgstr "Пе&ремістити файли" -#: picard/ui/mainwindow.py:404 +#: picard/ui/mainwindow.py:439 msgid "Save &Tags" msgstr "&Зберегти позначки" -#: picard/ui/mainwindow.py:409 +#: picard/ui/mainwindow.py:444 msgid "Tags From &File Names..." msgstr "Позначки з н&азв файлів..." -#: picard/ui/mainwindow.py:412 -msgid "View &Log..." -msgstr "Перегляд &журналу..." - -#: picard/ui/mainwindow.py:415 -msgid "View Status &History..." +#: picard/ui/mainwindow.py:447 +msgid "&Open My Collections in Browser" msgstr "" -#: picard/ui/mainwindow.py:422 -msgid "&Open..." +#: picard/ui/mainwindow.py:451 +msgid "View Error/Debug &Log" msgstr "" -#: picard/ui/mainwindow.py:423 -msgid "Open the file" +#: picard/ui/mainwindow.py:454 +msgid "View Activity &History" msgstr "" -#: picard/ui/mainwindow.py:426 -msgid "Open &Folder..." +#: picard/ui/mainwindow.py:461 +msgid "&Play file" msgstr "" -#: picard/ui/mainwindow.py:427 -msgid "Open the containing folder" +#: picard/ui/mainwindow.py:462 +msgid "Play the file in your default media player" msgstr "" -#: picard/ui/mainwindow.py:448 +#: picard/ui/mainwindow.py:466 +msgid "Open Containing &Folder" +msgstr "" + +#: picard/ui/mainwindow.py:467 +msgid "Open the containing folder in your file explorer" +msgstr "" + +#: picard/ui/mainwindow.py:492 msgid "&File" msgstr "&Файл" -#: picard/ui/mainwindow.py:456 +#: picard/ui/mainwindow.py:503 msgid "&Edit" msgstr "&Правка" -#: picard/ui/mainwindow.py:462 +#: picard/ui/mainwindow.py:509 msgid "&View" msgstr "&Вигляд" -#: picard/ui/mainwindow.py:470 +#: picard/ui/mainwindow.py:515 msgid "&Options" msgstr "&Налаштування" -#: picard/ui/mainwindow.py:476 +#: picard/ui/mainwindow.py:521 msgid "&Tools" msgstr "&Інструменти" -#: picard/ui/mainwindow.py:485 picard/ui/util.py:35 +#: picard/ui/mainwindow.py:532 picard/ui/util.py:35 msgid "&Help" msgstr "&Довідка" -#: picard/ui/mainwindow.py:505 +#: picard/ui/mainwindow.py:553 msgid "Actions" msgstr "" -#: picard/ui/mainwindow.py:608 +#: picard/ui/mainwindow.py:599 +msgid "Track" +msgstr "Доріжка" + +#: picard/ui/mainwindow.py:662 msgid "All Supported Formats" msgstr "Всі підтримувані формати" -#: picard/ui/mainwindow.py:705 +#: picard/ui/mainwindow.py:695 +#, python-format +msgid "Adding directory: '%(directory)s' ..." +msgstr "" + +#: picard/ui/mainwindow.py:702 +#, python-format +msgid "Adding multiple directories from '%(directory)s' ..." +msgstr "" + +#: picard/ui/mainwindow.py:767 msgid "Configuration Required" msgstr "" -#: picard/ui/mainwindow.py:706 +#: picard/ui/mainwindow.py:768 msgid "" "Audio fingerprinting is not yet configured. Would you like to configure it " "now?" msgstr "" -#: picard/ui/mainwindow.py:784 picard/ui/mainwindow.py:791 +#: picard/ui/mainwindow.py:848 #, python-format -msgid " (Error: %s)" -msgstr " (Помилка: %s)" +msgid "%(filename)s (error: %(error)s)" +msgstr "" + +#: picard/ui/mainwindow.py:854 +#, python-format +msgid "%(filename)s" +msgstr "" + +#: picard/ui/mainwindow.py:864 +#, python-format +msgid "%(filename)s (%(similarity)d%%) (error: %(error)s)" +msgstr "" + +#: picard/ui/mainwindow.py:871 +#, python-format +msgid "%(filename)s (%(similarity)d%%)" +msgstr "" #: picard/ui/metadatabox.py:82 #, python-format @@ -1106,387 +1033,387 @@ msgstr[0] "" msgstr[1] "" msgstr[2] "" -#: picard/ui/passworddialog.py:37 +#: picard/ui/passworddialog.py:40 #, python-format msgid "" "The server %s requires you to login. Please enter your username and " "password." msgstr "Сервер %s вимагає авторизації. Введіть ім’я користувача та пароль." -#: picard/ui/passworddialog.py:75 +#: picard/ui/passworddialog.py:79 #, python-format msgid "" "The proxy %s requires you to login. Please enter your username and password." msgstr "" -#: picard/ui/tagsfromfilenames.py:55 picard/ui/tagsfromfilenames.py:100 +#: picard/ui/tagsfromfilenames.py:56 picard/ui/tagsfromfilenames.py:101 msgid "File Name" msgstr "Назва файла" -#: picard/ui/ui_cdlookup.py:66 picard/ui/ui_options_cdlookup.py:55 -#: picard/ui/ui_options_cdlookup_select.py:62 picard/ui/options/cdlookup.py:38 +#: picard/ui/ui_cdlookup.py:53 picard/ui/ui_options_cdlookup.py:42 +#: picard/ui/ui_options_cdlookup_select.py:49 picard/ui/options/cdlookup.py:38 msgid "CD Lookup" msgstr "Пошук CD" -#: picard/ui/ui_cdlookup.py:67 +#: picard/ui/ui_cdlookup.py:54 msgid "The following releases on MusicBrainz match the CD:" msgstr "Такі випуски в базі MusicBrainz відповідають CD:" -#: picard/ui/ui_cdlookup.py:68 +#: picard/ui/ui_cdlookup.py:55 msgid "OK" msgstr "Гаразд" -#: picard/ui/ui_cdlookup.py:69 +#: picard/ui/ui_cdlookup.py:56 msgid "Lookup manually" msgstr "" -#: picard/ui/ui_cdlookup.py:70 +#: picard/ui/ui_cdlookup.py:57 msgid "Cancel" msgstr "Скасувати" -#: picard/ui/ui_edittagdialog.py:101 +#: picard/ui/ui_edittagdialog.py:88 msgid "Edit Tag" msgstr "" -#: picard/ui/ui_edittagdialog.py:102 +#: picard/ui/ui_edittagdialog.py:89 msgid "Edit value" msgstr "" -#: picard/ui/ui_edittagdialog.py:103 +#: picard/ui/ui_edittagdialog.py:90 msgid "Add value" msgstr "" -#: picard/ui/ui_edittagdialog.py:104 +#: picard/ui/ui_edittagdialog.py:91 msgid "Remove value" msgstr "" -#: picard/ui/ui_infodialog.py:78 +#: picard/ui/ui_infodialog.py:74 msgid "A&rtwork" msgstr "&Обкладинка" -#: picard/ui/ui_infostatus.py:100 +#: picard/ui/ui_infostatus.py:96 msgid "Form" msgstr "" -#: picard/ui/ui_options.py:51 +#: picard/ui/ui_options.py:38 msgid "Options" msgstr "" -#: picard/ui/ui_options_advanced.py:46 +#: picard/ui/ui_options_advanced.py:42 msgid "Advanced options" msgstr "" -#: picard/ui/ui_options_advanced.py:47 +#: picard/ui/ui_options_advanced.py:43 msgid "Ignore file paths matching the following regular expression:" msgstr "" -#: picard/ui/ui_options_cdlookup.py:56 +#: picard/ui/ui_options_cdlookup.py:43 msgid "CD-ROM device to use for lookups:" msgstr "Пристрій CD-ROM для пошуків:" -#: picard/ui/ui_options_cdlookup_select.py:63 +#: picard/ui/ui_options_cdlookup_select.py:50 msgid "Default CD-ROM drive to use for lookups:" msgstr "Типовий пристрій CD-ROM для пошуків:" -#: picard/ui/ui_options_cover.py:145 +#: picard/ui/ui_options_cover.py:131 msgid "Location" msgstr "Розташування" -#: picard/ui/ui_options_cover.py:146 +#: picard/ui/ui_options_cover.py:132 msgid "Embed cover images into tags" msgstr "Вкладати зображення обкладинок в позначки" -#: picard/ui/ui_options_cover.py:147 +#: picard/ui/ui_options_cover.py:133 msgid "Only embed a front image" msgstr "" -#: picard/ui/ui_options_cover.py:148 +#: picard/ui/ui_options_cover.py:134 msgid "Save cover images as separate files" msgstr "Зберігати обкладинки як окремі файли" -#: picard/ui/ui_options_cover.py:149 +#: picard/ui/ui_options_cover.py:135 msgid "Use the following file name for images:" msgstr "" -#: picard/ui/ui_options_cover.py:150 +#: picard/ui/ui_options_cover.py:136 msgid "Overwrite the file if it already exists" msgstr "Перезаписати файл, якщо він вже наявний" -#: picard/ui/ui_options_cover.py:151 +#: picard/ui/ui_options_cover.py:137 msgid "Coverart Providers" msgstr "" -#: picard/ui/ui_options_cover.py:152 +#: picard/ui/ui_options_cover.py:138 msgid "Amazon" msgstr "" -#: picard/ui/ui_options_cover.py:153 picard/ui/ui_options_cover.py:155 +#: picard/ui/ui_options_cover.py:139 picard/ui/ui_options_cover.py:141 msgid "Cover Art Archive" msgstr "" -#: picard/ui/ui_options_cover.py:154 +#: picard/ui/ui_options_cover.py:140 msgid "Sites on the whitelist" msgstr "" -#: picard/ui/ui_options_cover.py:156 +#: picard/ui/ui_options_cover.py:142 msgid "Only use images of the following size:" msgstr "" -#: picard/ui/ui_options_cover.py:157 +#: picard/ui/ui_options_cover.py:143 msgid "250 px" msgstr "" -#: picard/ui/ui_options_cover.py:158 +#: picard/ui/ui_options_cover.py:144 msgid "500 px" msgstr "" -#: picard/ui/ui_options_cover.py:159 +#: picard/ui/ui_options_cover.py:145 msgid "Full size" msgstr "" -#: picard/ui/ui_options_cover.py:160 +#: picard/ui/ui_options_cover.py:146 msgid "Download only images of the following types:" msgstr "" -#: picard/ui/ui_options_cover.py:161 +#: picard/ui/ui_options_cover.py:147 msgid "Download only approved images" msgstr "" -#: picard/ui/ui_options_cover.py:162 +#: picard/ui/ui_options_cover.py:148 msgid "" "Use the first image type as the filename. This will not change the filename " "of front images." msgstr "" -#: picard/ui/ui_options_fingerprinting.py:83 +#: picard/ui/ui_options_fingerprinting.py:70 msgid "Audio Fingerprinting" msgstr "" -#: picard/ui/ui_options_fingerprinting.py:84 +#: picard/ui/ui_options_fingerprinting.py:71 msgid "Do not use audio fingerprinting" msgstr "" -#: picard/ui/ui_options_fingerprinting.py:85 +#: picard/ui/ui_options_fingerprinting.py:72 msgid "Use AcoustID" msgstr "" -#: picard/ui/ui_options_fingerprinting.py:86 +#: picard/ui/ui_options_fingerprinting.py:73 msgid "AcoustID Settings" msgstr "" -#: picard/ui/ui_options_fingerprinting.py:87 +#: picard/ui/ui_options_fingerprinting.py:74 msgid "Fingerprint calculator:" msgstr "" -#: picard/ui/ui_options_fingerprinting.py:88 -#: picard/ui/ui_options_interface.py:88 picard/ui/ui_options_renaming.py:138 +#: picard/ui/ui_options_fingerprinting.py:75 +#: picard/ui/ui_options_interface.py:75 picard/ui/ui_options_renaming.py:134 msgid "Browse..." msgstr "Огляд..." -#: picard/ui/ui_options_fingerprinting.py:89 +#: picard/ui/ui_options_fingerprinting.py:76 msgid "Download..." msgstr "" -#: picard/ui/ui_options_fingerprinting.py:90 +#: picard/ui/ui_options_fingerprinting.py:77 msgid "API key:" msgstr "" -#: picard/ui/ui_options_fingerprinting.py:91 +#: picard/ui/ui_options_fingerprinting.py:78 msgid "Get API key..." msgstr "" -#: picard/ui/ui_options_folksonomy.py:115 picard/ui/options/folksonomy.py:28 +#: picard/ui/ui_options_folksonomy.py:102 picard/ui/options/folksonomy.py:28 msgid "Folksonomy Tags" msgstr "Фолкосономічні позначки" -#: picard/ui/ui_options_folksonomy.py:117 +#: picard/ui/ui_options_folksonomy.py:104 msgid "Only use my tags" msgstr "Використовувати лише мої позначки" -#: picard/ui/ui_options_folksonomy.py:120 +#: picard/ui/ui_options_folksonomy.py:107 msgid "Maximum number of tags:" msgstr "Максимальна кількість позначок:" -#: picard/ui/ui_options_general.py:92 +#: picard/ui/ui_options_general.py:88 msgid "MusicBrainz Server" msgstr "Сервер MusicBrainz" -#: picard/ui/ui_options_general.py:93 picard/ui/ui_options_network.py:123 +#: picard/ui/ui_options_general.py:89 picard/ui/ui_options_network.py:110 msgid "Port:" msgstr "Порт:" -#: picard/ui/ui_options_general.py:94 picard/ui/ui_options_network.py:124 +#: picard/ui/ui_options_general.py:90 picard/ui/ui_options_network.py:111 msgid "Server address:" msgstr "Адреса сервера:" -#: picard/ui/ui_options_general.py:95 +#: picard/ui/ui_options_general.py:91 msgid "Account Information" msgstr "Інформація про обліковий запис" -#: picard/ui/ui_options_general.py:96 picard/ui/ui_options_network.py:121 -#: picard/ui/ui_passworddialog.py:74 +#: picard/ui/ui_options_general.py:92 picard/ui/ui_options_network.py:108 +#: picard/ui/ui_passworddialog.py:70 msgid "Password:" msgstr "Пароль:" -#: picard/ui/ui_options_general.py:97 picard/ui/ui_options_network.py:122 -#: picard/ui/ui_passworddialog.py:73 +#: picard/ui/ui_options_general.py:93 picard/ui/ui_options_network.py:109 +#: picard/ui/ui_passworddialog.py:69 msgid "Username:" msgstr "Користувач:" -#: picard/ui/ui_options_general.py:98 picard/ui/options/general.py:31 +#: picard/ui/ui_options_general.py:94 picard/ui/options/general.py:31 msgid "General" msgstr "Загальне" -#: picard/ui/ui_options_general.py:99 +#: picard/ui/ui_options_general.py:95 msgid "Automatically scan all new files" msgstr "Автоматично сканувати всі нові файли" -#: picard/ui/ui_options_general.py:100 +#: picard/ui/ui_options_general.py:96 msgid "Ignore MBIDs when loading new files" msgstr "" -#: picard/ui/ui_options_interface.py:82 +#: picard/ui/ui_options_interface.py:69 msgid "Miscellaneous" msgstr "Різне" -#: picard/ui/ui_options_interface.py:83 +#: picard/ui/ui_options_interface.py:70 msgid "Show text labels under icons" msgstr "Показувати написи під значками" -#: picard/ui/ui_options_interface.py:84 +#: picard/ui/ui_options_interface.py:71 msgid "Allow selection of multiple directories" msgstr "Дозволити вибір кількох каталогів" -#: picard/ui/ui_options_interface.py:85 +#: picard/ui/ui_options_interface.py:72 msgid "Use advanced query syntax" msgstr "Використовувати розширений синтаксис запитів" -#: picard/ui/ui_options_interface.py:86 +#: picard/ui/ui_options_interface.py:73 msgid "Show a quit confirmation dialog for unsaved changes" msgstr "" -#: picard/ui/ui_options_interface.py:87 +#: picard/ui/ui_options_interface.py:74 msgid "Begin browsing in the following directory:" msgstr "" -#: picard/ui/ui_options_interface.py:89 +#: picard/ui/ui_options_interface.py:76 msgid "User interface language:" msgstr "Мова інтерфейсу:" -#: picard/ui/ui_options_matching.py:86 +#: picard/ui/ui_options_matching.py:73 msgid "Thresholds" msgstr "Порогові значення" -#: picard/ui/ui_options_matching.py:87 +#: picard/ui/ui_options_matching.py:74 msgid "Minimal similarity for matching files to tracks:" msgstr "Мінімальна схожість відповідних файлів до доріжок:" -#: picard/ui/ui_options_matching.py:91 +#: picard/ui/ui_options_matching.py:78 msgid "Minimal similarity for file lookups:" msgstr "Мінімальна схожість для пошуків файлів:" -#: picard/ui/ui_options_matching.py:92 +#: picard/ui/ui_options_matching.py:79 msgid "Minimal similarity for cluster lookups:" msgstr "Мінімальна схожість для пошуків кластерів:" -#: picard/ui/ui_options_metadata.py:114 picard/ui/options/metadata.py:29 +#: picard/ui/ui_options_metadata.py:101 picard/ui/options/metadata.py:29 msgid "Metadata" msgstr "Метадані" -#: picard/ui/ui_options_metadata.py:115 +#: picard/ui/ui_options_metadata.py:102 msgid "Translate artist names to this locale where possible:" msgstr "" -#: picard/ui/ui_options_metadata.py:116 +#: picard/ui/ui_options_metadata.py:103 msgid "Use standardized artist names" msgstr "" -#: picard/ui/ui_options_metadata.py:117 +#: picard/ui/ui_options_metadata.py:104 msgid "Convert Unicode punctuation characters to ASCII" msgstr "" -#: picard/ui/ui_options_metadata.py:118 +#: picard/ui/ui_options_metadata.py:105 msgid "Use release relationships" msgstr "Використовувати спорідненість випусків" -#: picard/ui/ui_options_metadata.py:119 +#: picard/ui/ui_options_metadata.py:106 msgid "Use track relationships" msgstr "Використовувати спорідненість доріжок" -#: picard/ui/ui_options_metadata.py:120 +#: picard/ui/ui_options_metadata.py:107 msgid "Use folksonomy tags as genre" msgstr "Використовувати позначки фолксономії як жанр" -#: picard/ui/ui_options_metadata.py:121 +#: picard/ui/ui_options_metadata.py:108 msgid "Custom Fields" msgstr "Нетипові поля" -#: picard/ui/ui_options_metadata.py:122 +#: picard/ui/ui_options_metadata.py:109 msgid "Various artists:" msgstr "Різні виконавці:" -#: picard/ui/ui_options_metadata.py:123 +#: picard/ui/ui_options_metadata.py:110 msgid "Non-album tracks:" msgstr "Доріжки не з альбому:" -#: picard/ui/ui_options_metadata.py:124 picard/ui/ui_options_metadata.py:125 -#: picard/ui/ui_options_renaming.py:147 +#: picard/ui/ui_options_metadata.py:111 picard/ui/ui_options_metadata.py:112 +#: picard/ui/ui_options_renaming.py:143 msgid "Default" msgstr "Типово" -#: picard/ui/ui_options_network.py:120 +#: picard/ui/ui_options_network.py:107 msgid "Web Proxy" msgstr "Проксі" -#: picard/ui/ui_options_network.py:125 +#: picard/ui/ui_options_network.py:112 msgid "Browser Integration" msgstr "" -#: picard/ui/ui_options_network.py:126 +#: picard/ui/ui_options_network.py:113 msgid "Default listening port:" msgstr "" -#: picard/ui/ui_options_network.py:127 +#: picard/ui/ui_options_network.py:114 msgid "Listen only on localhost" msgstr "" -#: picard/ui/ui_options_plugins.py:131 picard/ui/options/plugins.py:38 +#: picard/ui/ui_options_plugins.py:127 picard/ui/options/plugins.py:38 msgid "Plugins" msgstr "Модулі" -#: picard/ui/ui_options_plugins.py:132 picard/ui/options/plugins.py:122 +#: picard/ui/ui_options_plugins.py:128 picard/ui/options/plugins.py:122 msgid "Name" msgstr "Назва" -#: picard/ui/ui_options_plugins.py:133 picard/util/tags.py:39 +#: picard/ui/ui_options_plugins.py:129 msgid "Version" msgstr "Версія" -#: picard/ui/ui_options_plugins.py:134 picard/ui/options/plugins.py:125 +#: picard/ui/ui_options_plugins.py:130 picard/ui/options/plugins.py:125 msgid "Author" msgstr "Автор" -#: picard/ui/ui_options_plugins.py:135 +#: picard/ui/ui_options_plugins.py:131 msgid "Install plugin..." msgstr "" -#: picard/ui/ui_options_plugins.py:136 +#: picard/ui/ui_options_plugins.py:132 msgid "Open plugin folder" msgstr "Відкрити теку модулів" -#: picard/ui/ui_options_plugins.py:137 +#: picard/ui/ui_options_plugins.py:133 msgid "Download plugins" msgstr "Завантажити модулі" -#: picard/ui/ui_options_plugins.py:138 +#: picard/ui/ui_options_plugins.py:134 msgid "Details" msgstr "Подробиці" -#: picard/ui/ui_options_ratings.py:53 +#: picard/ui/ui_options_ratings.py:49 msgid "Enable track ratings" msgstr "Увімкнути оцінку композицій" -#: picard/ui/ui_options_ratings.py:54 +#: picard/ui/ui_options_ratings.py:50 msgid "" "Picard saves the ratings together with an e-mail address identifying the " "user who did the rating. That way different ratings for different users can " @@ -1494,207 +1421,167 @@ msgid "" "your ratings." msgstr "Picard зберігає оцінки разом з адресою ел. пошти користувача, який робив оцінку. Таким чином, різні оцінки різних користувачів можуть бути збережені у файлах. Вкажіть адресу ел. пошти, якщо хочете використовувати функцію збереження своїх оцінок." -#: picard/ui/ui_options_ratings.py:55 +#: picard/ui/ui_options_ratings.py:51 msgid "E-mail:" msgstr "Ел. пошта:" -#: picard/ui/ui_options_ratings.py:56 +#: picard/ui/ui_options_ratings.py:52 msgid "Submit ratings to MusicBrainz" msgstr "Надіслати оцінки до MusicBrainz" -#: picard/ui/ui_options_releases.py:215 +#: picard/ui/ui_options_releases.py:104 msgid "Preferred release types" msgstr "" -#: picard/ui/ui_options_releases.py:217 -msgid "Single" -msgstr "" - -#: picard/ui/ui_options_releases.py:218 -msgid "EP" -msgstr "" - -#: picard/ui/ui_options_releases.py:219 -msgid "Compilation" -msgstr "Збірка" - -#: picard/ui/ui_options_releases.py:220 -msgid "Soundtrack" -msgstr "" - -#: picard/ui/ui_options_releases.py:221 -msgid "Spokenword" -msgstr "" - -#: picard/ui/ui_options_releases.py:222 -msgid "Interview" -msgstr "" - -#: picard/ui/ui_options_releases.py:223 -msgid "Audiobook" -msgstr "" - -#: picard/ui/ui_options_releases.py:224 -msgid "Live" -msgstr "" - -#: picard/ui/ui_options_releases.py:225 -msgid "Remix" -msgstr "" - -#: picard/ui/ui_options_releases.py:227 -msgid "Reset all" -msgstr "" - -#: picard/ui/ui_options_releases.py:228 +#: picard/ui/ui_options_releases.py:105 msgid "Preferred release countries" msgstr "" -#: picard/ui/ui_options_releases.py:229 picard/ui/ui_options_releases.py:232 +#: picard/ui/ui_options_releases.py:106 picard/ui/ui_options_releases.py:109 msgid ">" msgstr "" -#: picard/ui/ui_options_releases.py:230 picard/ui/ui_options_releases.py:233 +#: picard/ui/ui_options_releases.py:107 picard/ui/ui_options_releases.py:110 msgid "<" msgstr "" -#: picard/ui/ui_options_releases.py:231 +#: picard/ui/ui_options_releases.py:108 msgid "Preferred release formats" msgstr "" -#: picard/ui/ui_options_renaming.py:134 +#: picard/ui/ui_options_renaming.py:130 msgid "Rename files when saving" msgstr "Перейменовувати файли під час збереження" -#: picard/ui/ui_options_renaming.py:135 +#: picard/ui/ui_options_renaming.py:131 msgid "Replace non-ASCII characters" msgstr "Замінювати не-ASCII символи" -#: picard/ui/ui_options_renaming.py:136 +#: picard/ui/ui_options_renaming.py:132 msgid "Windows compatibility" msgstr "" -#: picard/ui/ui_options_renaming.py:137 +#: picard/ui/ui_options_renaming.py:133 msgid "Move files to this directory when saving:" msgstr "Переміщати файли до цього каталогу під час збереження:" -#: picard/ui/ui_options_renaming.py:139 +#: picard/ui/ui_options_renaming.py:135 msgid "Delete empty directories" msgstr "Вилучити порожні каталоги" -#: picard/ui/ui_options_renaming.py:140 +#: picard/ui/ui_options_renaming.py:136 msgid "Move additional files:" msgstr "Переміщати додавані файли:" -#: picard/ui/ui_options_renaming.py:141 +#: picard/ui/ui_options_renaming.py:137 msgid "Name files like this" msgstr "Називати файли за шаблоном" -#: picard/ui/ui_options_renaming.py:148 +#: picard/ui/ui_options_renaming.py:144 msgid "Examples" msgstr "Приклади" -#: picard/ui/ui_options_script.py:49 +#: picard/ui/ui_options_script.py:45 msgid "Tagger Script" msgstr "Сценарії позначок" -#: picard/ui/ui_options_tags.py:165 +#: picard/ui/ui_options_tags.py:152 msgid "Write tags to files" msgstr "Записувати позначки у файли" -#: picard/ui/ui_options_tags.py:166 +#: picard/ui/ui_options_tags.py:153 msgid "Preserve timestamps of tagged files" msgstr "" -#: picard/ui/ui_options_tags.py:167 +#: picard/ui/ui_options_tags.py:154 msgid "Before Tagging" msgstr "" -#: picard/ui/ui_options_tags.py:168 +#: picard/ui/ui_options_tags.py:155 msgid "Clear existing tags" msgstr "Очистити наявні позначки" -#: picard/ui/ui_options_tags.py:169 +#: picard/ui/ui_options_tags.py:156 msgid "Remove ID3 tags from FLAC files" msgstr "Вилучити позначки ID3 з файлів FLAC" -#: picard/ui/ui_options_tags.py:170 +#: picard/ui/ui_options_tags.py:157 msgid "Remove APEv2 tags from MP3 files" msgstr "Вилучити позначки APEv2 з файлів MP3" -#: picard/ui/ui_options_tags.py:171 +#: picard/ui/ui_options_tags.py:158 msgid "" "Preserve these tags from being cleared or overwritten with MusicBrainz data:" msgstr "" -#: picard/ui/ui_options_tags.py:172 +#: picard/ui/ui_options_tags.py:159 msgid "Tags are separated by commas, and are case-sensitive." msgstr "" -#: picard/ui/ui_options_tags.py:173 +#: picard/ui/ui_options_tags.py:160 msgid "Tag Compatibility" msgstr "" -#: picard/ui/ui_options_tags.py:174 +#: picard/ui/ui_options_tags.py:161 msgid "ID3v2 Version" msgstr "" -#: picard/ui/ui_options_tags.py:175 +#: picard/ui/ui_options_tags.py:162 msgid "2.4" msgstr "2.4" -#: picard/ui/ui_options_tags.py:176 +#: picard/ui/ui_options_tags.py:163 msgid "2.3" msgstr "2.3" -#: picard/ui/ui_options_tags.py:177 +#: picard/ui/ui_options_tags.py:164 msgid "ID3v2 Text Encoding" msgstr "" -#: picard/ui/ui_options_tags.py:178 +#: picard/ui/ui_options_tags.py:165 msgid "UTF-8" msgstr "UTF-8" -#: picard/ui/ui_options_tags.py:179 +#: picard/ui/ui_options_tags.py:166 msgid "UTF-16" msgstr "UTF-16" -#: picard/ui/ui_options_tags.py:180 +#: picard/ui/ui_options_tags.py:167 msgid "ISO-8859-1" msgstr "ISO-8859-1" -#: picard/ui/ui_options_tags.py:181 +#: picard/ui/ui_options_tags.py:168 msgid "Join multiple ID3v2.3 tags with:" msgstr "" -#: picard/ui/ui_options_tags.py:182 +#: picard/ui/ui_options_tags.py:169 msgid "" "

Default is '/' to maintain compatibility with previous" " Picard releases.

New alternatives are ';_' or '_/_' or type your own." "

" msgstr "" -#: picard/ui/ui_options_tags.py:183 +#: picard/ui/ui_options_tags.py:170 msgid "Also include ID3v1 tags in the files" msgstr "Також охоплювати позначки ID3v1 в цих файлах" -#: picard/ui/ui_passworddialog.py:72 +#: picard/ui/ui_passworddialog.py:68 msgid "Authentication required" msgstr "Потрібна автентифікація" -#: picard/ui/ui_passworddialog.py:75 +#: picard/ui/ui_passworddialog.py:71 msgid "Save username and password" msgstr "Зберегти ім’я користувача та пароль" -#: picard/ui/ui_tagsfromfilenames.py:54 +#: picard/ui/ui_tagsfromfilenames.py:50 msgid "Convert File Names to Tags" msgstr "Перетворювати назви файлів у позначки" -#: picard/ui/ui_tagsfromfilenames.py:55 +#: picard/ui/ui_tagsfromfilenames.py:51 msgid "Replace underscores with spaces" msgstr "Заміняти символи підкреслення пробілами" -#: picard/ui/ui_tagsfromfilenames.py:56 +#: picard/ui/ui_tagsfromfilenames.py:52 msgid "&Preview" msgstr "&Перегляд" @@ -1750,7 +1637,11 @@ msgstr "Додатково" msgid "Regex Error" msgstr "" -#: picard/ui/options/cover.py:63 +#: picard/ui/options/cover.py:44 +msgid "title" +msgstr "" + +#: picard/ui/options/cover.py:68 msgid "Cover Art" msgstr "Обкладинки" @@ -1766,11 +1657,11 @@ msgstr "Інтерфейс користувача" msgid "System default" msgstr "Типова системна" -#: picard/ui/options/interface.py:96 +#: picard/ui/options/interface.py:98 msgid "Language changed" msgstr "Мову змінено" -#: picard/ui/options/interface.py:96 +#: picard/ui/options/interface.py:99 msgid "" "You have changed the interface language. You have to restart Picard in order" " for the change to take effect." @@ -1792,31 +1683,35 @@ msgstr "Файл" msgid "Ratings" msgstr "Оцінки" -#: picard/ui/options/releases.py:33 +#: picard/ui/options/releases.py:87 msgid "Preferred Releases" msgstr "" +#: picard/ui/options/releases.py:121 +msgid "Reset all" +msgstr "" + #: picard/ui/options/renaming.py:37 msgid "File Naming" msgstr "" -#: picard/ui/options/renaming.py:184 +#: picard/ui/options/renaming.py:187 msgid "Error" msgstr "Помилка" -#: picard/ui/options/renaming.py:184 +#: picard/ui/options/renaming.py:187 msgid "The location to move files to must not be empty." msgstr "Місце для переміщення файлів не має бути порожнім." -#: picard/ui/options/renaming.py:194 +#: picard/ui/options/renaming.py:197 msgid "The file naming format must not be empty." msgstr "Формат іменування файлів не може бути порожнім." -#: picard/ui/options/scripting.py:63 +#: picard/ui/options/scripting.py:99 msgid "Scripting" msgstr "Сценарії" -#: picard/ui/options/scripting.py:95 +#: picard/ui/options/scripting.py:131 msgid "Script Error" msgstr "Помилка сценарію" @@ -1936,199 +1831,199 @@ msgstr "ASIN" msgid "Grouping" msgstr "Групування" -#: picard/util/tags.py:40 +#: picard/util/tags.py:39 msgid "ISRC" msgstr "Код ISRC" -#: picard/util/tags.py:41 +#: picard/util/tags.py:40 msgid "Mood" msgstr "Настрій" -#: picard/util/tags.py:42 +#: picard/util/tags.py:41 msgid "BPM" msgstr "Бітів/хв." -#: picard/util/tags.py:43 +#: picard/util/tags.py:42 msgid "Copyright" msgstr "Авторське право" -#: picard/util/tags.py:44 +#: picard/util/tags.py:43 msgid "License" msgstr "" -#: picard/util/tags.py:45 +#: picard/util/tags.py:44 msgid "Composer" msgstr "Композитор" -#: picard/util/tags.py:46 +#: picard/util/tags.py:45 msgid "Writer" msgstr "" -#: picard/util/tags.py:47 +#: picard/util/tags.py:46 msgid "Conductor" msgstr "Диригент" -#: picard/util/tags.py:48 +#: picard/util/tags.py:47 msgid "Lyricist" msgstr "Автор тексту" -#: picard/util/tags.py:49 +#: picard/util/tags.py:48 msgid "Arranger" msgstr "Аранжувальник" -#: picard/util/tags.py:50 +#: picard/util/tags.py:49 msgid "Producer" msgstr "Виробник" -#: picard/util/tags.py:51 +#: picard/util/tags.py:50 msgid "Engineer" msgstr "Звукооператор" -#: picard/util/tags.py:52 +#: picard/util/tags.py:51 msgid "Subtitle" msgstr "Субтитри" -#: picard/util/tags.py:53 +#: picard/util/tags.py:52 msgid "Disc Subtitle" msgstr "Підзаголовок диска" -#: picard/util/tags.py:54 +#: picard/util/tags.py:53 msgid "Remixer" msgstr "Ремікс" -#: picard/util/tags.py:55 +#: picard/util/tags.py:54 msgid "MusicBrainz Recording Id" msgstr "" -#: picard/util/tags.py:56 +#: picard/util/tags.py:55 msgid "MusicBrainz Track Id" msgstr "" -#: picard/util/tags.py:57 +#: picard/util/tags.py:56 msgid "MusicBrainz Release Id" msgstr "MusicBrainz ID випуску" -#: picard/util/tags.py:58 +#: picard/util/tags.py:57 msgid "MusicBrainz Artist Id" msgstr "MusicBrainz ID виконавця" -#: picard/util/tags.py:59 +#: picard/util/tags.py:58 msgid "MusicBrainz Release Artist Id" msgstr "MusicBrainz ID автора випуску" -#: picard/util/tags.py:60 +#: picard/util/tags.py:59 msgid "MusicBrainz Work Id" msgstr "" -#: picard/util/tags.py:61 +#: picard/util/tags.py:60 msgid "MusicBrainz Release Group Id" msgstr "" -#: picard/util/tags.py:62 +#: picard/util/tags.py:61 msgid "MusicBrainz Disc Id" msgstr "MusicBrainz ID диска" -#: picard/util/tags.py:63 -msgid "MusicBrainz Sort Name" -msgstr "Назва в базі MusicBrainz" - -#: picard/util/tags.py:64 +#: picard/util/tags.py:62 msgid "MusicIP PUID" msgstr "MusicIP PUID" -#: picard/util/tags.py:65 +#: picard/util/tags.py:63 msgid "MusicIP Fingerprint" msgstr "MusicIP Fingerprint" -#: picard/util/tags.py:66 +#: picard/util/tags.py:64 msgid "AcoustID" msgstr "" -#: picard/util/tags.py:67 +#: picard/util/tags.py:65 msgid "AcoustID Fingerprint" msgstr "" -#: picard/util/tags.py:68 +#: picard/util/tags.py:66 msgid "Disc Id" msgstr "Ідентифікатор диска" -#: picard/util/tags.py:69 -msgid "Website" -msgstr "Веб-сайт" +#: picard/util/tags.py:67 +msgid "Artist Website" +msgstr "" -#: picard/util/tags.py:70 +#: picard/util/tags.py:68 msgid "Compilation (iTunes)" msgstr "" -#: picard/util/tags.py:71 +#: picard/util/tags.py:69 msgid "Comment" msgstr "Коментар" -#: picard/util/tags.py:72 +#: picard/util/tags.py:70 msgid "Genre" msgstr "Жанр" -#: picard/util/tags.py:73 +#: picard/util/tags.py:71 msgid "Encoded By" msgstr "Закодовано" -#: picard/util/tags.py:74 +#: picard/util/tags.py:72 +msgid "Encoder Settings" +msgstr "" + +#: picard/util/tags.py:73 msgid "Performer" msgstr "Виконавець" -#: picard/util/tags.py:75 +#: picard/util/tags.py:74 msgid "Release Type" msgstr "Тип випуску" -#: picard/util/tags.py:76 +#: picard/util/tags.py:75 msgid "Release Status" msgstr "Статус випуску" -#: picard/util/tags.py:77 +#: picard/util/tags.py:76 msgid "Release Country" msgstr "Країна випуску" -#: picard/util/tags.py:78 +#: picard/util/tags.py:77 msgid "Record Label" msgstr "Лейбл звукозапису" -#: picard/util/tags.py:80 +#: picard/util/tags.py:79 msgid "Catalog Number" msgstr "Номер каталогу" -#: picard/util/tags.py:82 +#: picard/util/tags.py:80 msgid "DJ-Mixer" msgstr "DJ-змішувач" -#: picard/util/tags.py:83 +#: picard/util/tags.py:81 msgid "Media" msgstr "Носій" -#: picard/util/tags.py:84 +#: picard/util/tags.py:82 msgid "Lyrics" msgstr "Тексти пісень" -#: picard/util/tags.py:85 +#: picard/util/tags.py:83 msgid "Mixer" msgstr "Змішувач" -#: picard/util/tags.py:86 +#: picard/util/tags.py:84 msgid "Language" msgstr "Мова" -#: picard/util/tags.py:87 +#: picard/util/tags.py:85 msgid "Script" msgstr "Сценарій" -#: picard/util/tags.py:89 +#: picard/util/tags.py:87 msgid "Rating" msgstr "" -#: picard/util/tags.py:90 +#: picard/util/tags.py:88 msgid "Artists" msgstr "" -#: picard/util/tags.py:91 +#: picard/util/tags.py:89 msgid "Work" msgstr "" diff --git a/po/zh_CN.po b/po/zh_CN.po index f2be91907..377858ca9 100644 --- a/po/zh_CN.po +++ b/po/zh_CN.po @@ -9,8 +9,8 @@ msgid "" msgstr "" "Project-Id-Version: MusicBrainz\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2014-03-20 11:12+0100\n" -"PO-Revision-Date: 2014-03-21 08:44+0000\n" +"POT-Creation-Date: 2014-05-03 17:28+0200\n" +"PO-Revision-Date: 2014-05-04 08:44+0000\n" "Last-Translator: nikki\n" "Language-Team: Chinese (China) (http://www.transifex.com/projects/p/musicbrainz/language/zh_CN/)\n" "MIME-Version: 1.0\n" @@ -20,6 +20,10 @@ msgstr "" "Language: zh_CN\n" "Plural-Forms: nplurals=1; plural=0;\n" +#: contrib/plugins/albumartist_website.py:3 +msgid "Album Artist Website" +msgstr "" + #: contrib/plugins/no_release.py:50 msgid "Enable plugin for all releases by default" msgstr "" @@ -32,63 +36,55 @@ msgstr "" msgid "Remove specific release information..." msgstr "" -#: contrib/plugins/open_in_gui.py:32 -msgid "Open Error" +#: contrib/plugins/standardise_performers.py:3 +msgid "Standardise Performers" msgstr "" -#: contrib/plugins/open_in_gui.py:32 -#, python-format -msgid "" -"Error while opening file:\n" -"\n" -"%s" -msgstr "" - -#: contrib/plugins/lastfm/ui_options_lastfm.py:117 +#: contrib/plugins/lastfm/ui_options_lastfm.py:99 msgid "Last.fm" msgstr "" -#: contrib/plugins/lastfm/ui_options_lastfm.py:118 +#: contrib/plugins/lastfm/ui_options_lastfm.py:100 msgid "Use track tags" msgstr "" -#: contrib/plugins/lastfm/ui_options_lastfm.py:119 +#: contrib/plugins/lastfm/ui_options_lastfm.py:101 msgid "Use artist tags" msgstr "" -#: contrib/plugins/lastfm/ui_options_lastfm.py:120 +#: contrib/plugins/lastfm/ui_options_lastfm.py:102 #: picard/ui/options/tags.py:30 msgid "Tags" msgstr "标签" -#: contrib/plugins/lastfm/ui_options_lastfm.py:121 -#: picard/ui/ui_options_folksonomy.py:116 +#: contrib/plugins/lastfm/ui_options_lastfm.py:103 +#: picard/ui/ui_options_folksonomy.py:103 msgid "Ignore tags:" msgstr "忽略标签:" -#: contrib/plugins/lastfm/ui_options_lastfm.py:122 -#: picard/ui/ui_options_folksonomy.py:121 +#: contrib/plugins/lastfm/ui_options_lastfm.py:104 +#: picard/ui/ui_options_folksonomy.py:108 msgid "Join multiple tags with:" msgstr "" -#: contrib/plugins/lastfm/ui_options_lastfm.py:123 -#: picard/ui/ui_options_folksonomy.py:122 +#: contrib/plugins/lastfm/ui_options_lastfm.py:105 +#: picard/ui/ui_options_folksonomy.py:109 msgid " / " msgstr "" -#: contrib/plugins/lastfm/ui_options_lastfm.py:124 -#: picard/ui/ui_options_folksonomy.py:123 +#: contrib/plugins/lastfm/ui_options_lastfm.py:106 +#: picard/ui/ui_options_folksonomy.py:110 msgid ", " msgstr "" -#: contrib/plugins/lastfm/ui_options_lastfm.py:125 -#: picard/ui/ui_options_folksonomy.py:118 +#: contrib/plugins/lastfm/ui_options_lastfm.py:107 +#: picard/ui/ui_options_folksonomy.py:105 msgid "Minimal tag usage:" msgstr "" -#: contrib/plugins/lastfm/ui_options_lastfm.py:126 -#: picard/ui/ui_options_folksonomy.py:119 picard/ui/ui_options_matching.py:88 -#: picard/ui/ui_options_matching.py:89 picard/ui/ui_options_matching.py:90 +#: contrib/plugins/lastfm/ui_options_lastfm.py:108 +#: picard/ui/ui_options_folksonomy.py:106 picard/ui/ui_options_matching.py:75 +#: picard/ui/ui_options_matching.py:76 picard/ui/ui_options_matching.py:77 msgid " %" msgstr " %" @@ -96,416 +92,303 @@ msgstr " %" msgid "Calculate replay &gain..." msgstr "" -#: contrib/plugins/replaygain/__init__.py:66 +#: contrib/plugins/replaygain/__init__.py:67 #, python-format -msgid "Calculating replay gain for \"%s\"..." +msgid "Calculating replay gain for \"%(filename)s\"..." msgstr "" -#: contrib/plugins/replaygain/__init__.py:71 +#: contrib/plugins/replaygain/__init__.py:75 #, python-format -msgid "Replay gain for \"%s\" successfully calculated." +msgid "Replay gain for \"%(filename)s\" successfully calculated." msgstr "" -#: contrib/plugins/replaygain/__init__.py:73 +#: contrib/plugins/replaygain/__init__.py:80 #, python-format -msgid "Could not calculate replay gain for \"%s\"." +msgid "Could not calculate replay gain for \"%(filename)s\"." msgstr "" -#: contrib/plugins/replaygain/__init__.py:76 +#: contrib/plugins/replaygain/__init__.py:85 msgid "Calculate album &gain..." msgstr "" -#: contrib/plugins/replaygain/__init__.py:103 -#: contrib/plugins/replaygain/__init__.py:111 +#: contrib/plugins/replaygain/__init__.py:113 +#: contrib/plugins/replaygain/__init__.py:124 #, python-format -msgid "Calculating album gain for \"%s\"..." +msgid "Calculating album gain for \"%(album)s\"..." msgstr "" -#: contrib/plugins/replaygain/__init__.py:119 +#: contrib/plugins/replaygain/__init__.py:135 #, python-format -msgid "Album gain for \"%s\" successfully calculated." +msgid "Album gain for \"%(album)s\" successfully calculated." msgstr "" -#: contrib/plugins/replaygain/__init__.py:121 +#: contrib/plugins/replaygain/__init__.py:140 #, python-format -msgid "Could not calculate album gain for \"%s\"." +msgid "Could not calculate album gain for \"%(album)s\"." msgstr "" -#: picard/acoustid.py:102 +#: contrib/plugins/replaygain/ui_options_replaygain.py:59 +msgid "Replay Gain" +msgstr "" + +#: contrib/plugins/replaygain/ui_options_replaygain.py:60 +msgid "Path to VorbisGain:" +msgstr "" + +#: contrib/plugins/replaygain/ui_options_replaygain.py:61 +msgid "Path to MP3Gain:" +msgstr "" + +#: contrib/plugins/replaygain/ui_options_replaygain.py:62 +msgid "Path to metaflac:" +msgstr "" + +#: contrib/plugins/replaygain/ui_options_replaygain.py:63 +msgid "Path to wvgain:" +msgstr "" + +#: contrib/plugins/viewvariables/__init__.py:42 #, python-format -msgid "AcoustID lookup network error for '%s'!" +msgid "File: %s" msgstr "" -#: picard/acoustid.py:117 +#: contrib/plugins/viewvariables/__init__.py:47 #, python-format -msgid "AcoustID lookup failed for '%s'!" +msgid "Track: %s %s " msgstr "" -#: picard/acoustid.py:128 +#: contrib/plugins/viewvariables/__init__.py:49 +msgid "Variables" +msgstr "" + +#: contrib/plugins/viewvariables/__init__.py:69 +msgid "File variables" +msgstr "" + +#: contrib/plugins/viewvariables/__init__.py:74 +msgid "Hidden variables" +msgstr "" + +#: contrib/plugins/viewvariables/__init__.py:79 +msgid "Tag variables" +msgstr "" + +#: contrib/plugins/viewvariables/ui_variables_dialog.py:73 +msgid "Variable" +msgstr "" + +#: contrib/plugins/viewvariables/ui_variables_dialog.py:75 +msgid "Value" +msgstr "" + +#: picard/acoustid.py:109 #, python-format -msgid "Acoustid lookup returned no result for file '%s'" +msgid "AcoustID lookup network error for '%(filename)s'!" msgstr "" -#: picard/acoustid.py:132 +#: picard/acoustid.py:133 #, python-format -msgid "Looking up the fingerprint for file %s..." +msgid "AcoustID lookup failed for '%(filename)s'!" msgstr "" -#: picard/acoustidmanager.py:78 -msgid "Submitting AcoustIDs..." -msgstr "" - -#: picard/acoustidmanager.py:83 +#: picard/acoustid.py:155 #, python-format -msgid "AcoustID submission failed with error '%s'" +msgid "AcoustID lookup returned no result for file '%(filename)s'" msgstr "" -#: picard/acoustidmanager.py:85 +#: picard/acoustid.py:166 +#, python-format +msgid "Looking up the fingerprint for file '%(filename)s' ..." +msgstr "" + +#: picard/acoustidmanager.py:80 +msgid "Submitting AcoustIDs ..." +msgstr "" + +#: picard/acoustidmanager.py:94 +#, python-format +msgid "AcoustID submission failed with error '%(error)s'" +msgstr "" + +#: picard/acoustidmanager.py:102 msgid "AcoustIDs successfully submitted." msgstr "" -#: picard/album.py:64 picard/cluster.py:234 +#: picard/album.py:65 picard/cluster.py:255 msgid "Unmatched Files" msgstr "" -#: picard/album.py:187 +#: picard/album.py:188 #, python-format msgid "[could not load album %s]" msgstr "[无法载入专辑%s]" -#: picard/album.py:272 +#: picard/album.py:277 #, python-format -msgid "Album %s loaded" +msgid "Album %(id)s loaded: %(artist)s - %(album)s" msgstr "" -#: picard/album.py:288 +#: picard/album.py:294 +#, python-format +msgid "Loading album %(id)s ..." +msgstr "" + +#: picard/album.py:303 msgid "[loading album information]" msgstr "[载入专辑信息]" -#: picard/album.py:463 +#: picard/album.py:478 #, python-format msgid "; %i image" msgid_plural "; %i images" msgstr[0] "" -#: picard/cluster.py:150 picard/cluster.py:159 +#: picard/cluster.py:155 picard/cluster.py:168 #, python-format -msgid "No matching releases for cluster %s" +msgid "No matching releases for cluster %(album)s" msgstr "" -#: picard/cluster.py:161 +#: picard/cluster.py:174 #, python-format -msgid "Cluster %s identified!" +msgid "Cluster %(album)s identified!" msgstr "" -#: picard/cluster.py:168 +#: picard/cluster.py:185 #, python-format -msgid "Looking up the metadata for cluster %s..." +msgid "Looking up the metadata for cluster %(album)s..." msgstr "" -#: picard/collection.py:60 +#: picard/collection.py:64 #, python-format -msgid "Added %i release to collection \"%s\"" -msgid_plural "Added %i releases to collection \"%s\"" +msgid "Added %(count)i release to collection \"%(name)s\"" +msgid_plural "Added %(count)i releases to collection \"%(name)s\"" msgstr[0] "" -#: picard/collection.py:72 +#: picard/collection.py:86 #, python-format -msgid "Removed %i release from collection \"%s\"" -msgid_plural "Removed %i releases from collection \"%s\"" +msgid "Removed %(count)i release from collection \"%(name)s\"" +msgid_plural "Removed %(count)i releases from collection \"%(name)s\"" msgstr[0] "" -#: picard/collection.py:81 +#: picard/collection.py:100 #, python-format -msgid "Error loading collections: %s" +msgid "Error loading collections: %(error)s" msgstr "" -#: picard/config_upgrade.py:57 picard/config_upgrade.py:70 +#: picard/config_upgrade.py:58 picard/config_upgrade.py:71 msgid "Various Artists file naming scheme removal" msgstr "" -#: picard/config_upgrade.py:58 +#: picard/config_upgrade.py:59 msgid "" "The separate file naming scheme for various artists albums has been removed in this version of Picard.\n" "Your file naming scheme has automatically been merged with that of single artist albums." msgstr "" -#: picard/config_upgrade.py:71 +#: picard/config_upgrade.py:72 msgid "" "The separate file naming scheme for various artists albums has been removed in this version of Picard.\n" "You currently do not use this option, but have a separate file naming scheme defined.\n" "Do you want to remove it or merge it with your file naming scheme for single artist albums?" msgstr "" -#: picard/config_upgrade.py:77 +#: picard/config_upgrade.py:78 msgid "Merge" msgstr "" -#: picard/config_upgrade.py:77 picard/ui/metadatabox.py:254 +#: picard/config_upgrade.py:78 picard/ui/metadatabox.py:254 msgid "Remove" msgstr "" -#: picard/const.py:67 -msgid "CD" -msgstr "CD" - -#: picard/const.py:68 -msgid "CD-R" -msgstr "" - -#: picard/const.py:69 -msgid "HDCD" -msgstr "" - -#: picard/const.py:70 -msgid "8cm CD" -msgstr "" - -#: picard/const.py:71 -msgid "Vinyl" -msgstr "黑胶唱片" - -#: picard/const.py:72 -msgid "7\" Vinyl" -msgstr "7寸黑胶唱片" - -#: picard/const.py:73 -msgid "10\" Vinyl" -msgstr "10寸黑胶唱片" - -#: picard/const.py:74 -msgid "12\" Vinyl" -msgstr "12寸黑胶唱片" - -#: picard/const.py:75 -msgid "Digital Media" -msgstr "数字媒体" - -#: picard/const.py:76 -msgid "USB Flash Drive" -msgstr "" - -#: picard/const.py:77 -msgid "slotMusic" -msgstr "" - -#: picard/const.py:78 -msgid "Cassette" -msgstr "磁带" - -#: picard/const.py:79 -msgid "DVD" -msgstr "DVD" - -#: picard/const.py:80 -msgid "DVD-Audio" -msgstr "音频DVD" - -#: picard/const.py:81 -msgid "DVD-Video" -msgstr "视频DVD" - -#: picard/const.py:82 -msgid "SACD" -msgstr "SACD" - -#: picard/const.py:83 -msgid "DualDisc" -msgstr "双面CD" - -#: picard/const.py:84 -msgid "MiniDisc" -msgstr "迷你光盘" - -#: picard/const.py:85 -msgid "Blu-ray" -msgstr "蓝光" - -#: picard/const.py:86 -msgid "HD-DVD" -msgstr "" - -#: picard/const.py:87 -msgid "Videotape" -msgstr "" - -#: picard/const.py:88 -msgid "VHS" -msgstr "" - -#: picard/const.py:89 -msgid "Betamax" -msgstr "" - #: picard/const.py:90 -msgid "VCD" -msgstr "" - -#: picard/const.py:91 -msgid "SVCD" -msgstr "" - -#: picard/const.py:92 -msgid "UMD" -msgstr "" - -#: picard/const.py:93 picard/coverartarchive.py:33 -#: picard/ui/ui_options_releases.py:226 -msgid "Other" -msgstr "其它" - -#: picard/const.py:94 -msgid "LaserDisc" -msgstr "光盘" - -#: picard/const.py:95 -msgid "Cartridge" -msgstr "" - -#: picard/const.py:96 -msgid "Reel-to-reel" -msgstr "" - -#: picard/const.py:97 -msgid "DAT" -msgstr "" - -#: picard/const.py:98 -msgid "Wax Cylinder" -msgstr "" - -#: picard/const.py:99 -msgid "Piano Roll" -msgstr "" - -#: picard/const.py:100 -msgid "DCC" -msgstr "" - -#: picard/const.py:115 msgid "Danish" msgstr "" -#: picard/const.py:116 +#: picard/const.py:91 msgid "German" msgstr "德语" -#: picard/const.py:118 +#: picard/const.py:93 msgid "English" msgstr "英国" -#: picard/const.py:119 +#: picard/const.py:94 msgid "English (Canada)" msgstr "英语(加拿大)" -#: picard/const.py:120 +#: picard/const.py:95 msgid "English (UK)" msgstr "英语(英国)" -#: picard/const.py:122 +#: picard/const.py:97 msgid "Spanish" msgstr "西班牙语" -#: picard/const.py:123 +#: picard/const.py:98 msgid "Estonian" msgstr "爱沙尼亚语" -#: picard/const.py:125 +#: picard/const.py:100 msgid "Finnish" msgstr "芬兰语" -#: picard/const.py:127 +#: picard/const.py:102 msgid "French" msgstr "法语" -#: picard/const.py:136 +#: picard/const.py:111 msgid "Italian" msgstr "意大利语" -#: picard/const.py:143 +#: picard/const.py:118 msgid "Dutch" msgstr "荷兰语" -#: picard/const.py:145 +#: picard/const.py:120 msgid "Polish" msgstr "波兰语" -#: picard/const.py:147 +#: picard/const.py:122 msgid "Brazilian Portuguese" msgstr "巴西葡萄牙语" -#: picard/const.py:154 +#: picard/const.py:129 msgid "Swedish" msgstr "瑞典语" -#: picard/coverart.py:84 +#: picard/coverart.py:85 #, python-format -msgid "Coverart %s downloaded" +msgid "Cover art of type '%(type)s' downloaded for %(albumid)s from %(host)s" msgstr "" -#: picard/coverart.py:240 +#: picard/coverart.py:256 #, python-format -msgid "Downloading http://%s:%i%s" -msgstr "" - -#: picard/coverartarchive.py:24 -msgid "Front" -msgstr "" - -#: picard/coverartarchive.py:25 -msgid "Back" -msgstr "" - -#: picard/coverartarchive.py:26 -msgid "Booklet" -msgstr "" - -#: picard/coverartarchive.py:27 -msgid "Medium" -msgstr "" - -#: picard/coverartarchive.py:28 -msgid "Tray" -msgstr "" - -#: picard/coverartarchive.py:29 -msgid "Obi" +msgid "" +"Downloading cover art of type '%(type)s' for %(albumid)s from %(host)s .." msgstr "" #: picard/coverartarchive.py:30 -msgid "Spine" -msgstr "" - -#: picard/coverartarchive.py:31 picard/ui/mainwindow.py:546 -msgid "Track" -msgstr "音轨" - -#: picard/coverartarchive.py:32 -msgid "Sticker" -msgstr "" - -#: picard/coverartarchive.py:34 msgid "Unknown" msgstr "" -#: picard/file.py:536 +#: picard/file.py:494 #, python-format -msgid "No matching tracks for file %s" +msgid "No matching tracks for file '%(filename)s'" msgstr "" -#: picard/file.py:548 +#: picard/file.py:510 #, python-format -msgid "No matching tracks above the threshold for file %s" +msgid "No matching tracks above the threshold for file '%(filename)s'" msgstr "" -#: picard/file.py:551 +#: picard/file.py:517 #, python-format -msgid "File %s identified!" +msgid "File '%(filename)s' identified!" msgstr "" -#: picard/file.py:567 +#: picard/file.py:537 #, python-format -msgid "Looking up the metadata for file %s..." +msgid "Looking up the metadata for file %(filename)s ..." msgstr "" #: picard/releasegroup.py:53 @@ -516,11 +399,11 @@ msgstr "" msgid "Year" msgstr "" -#: picard/releasegroup.py:55 picard/ui/cdlookup.py:34 +#: picard/releasegroup.py:55 picard/ui/cdlookup.py:35 msgid "Country" msgstr "" -#: picard/releasegroup.py:56 picard/util/tags.py:81 +#: picard/releasegroup.py:56 msgid "Format" msgstr "" @@ -540,16 +423,22 @@ msgstr "" msgid "[no release info]" msgstr "" -#: picard/tagger.py:316 +#: picard/tagger.py:370 #, python-format -msgid "Loading directory %s" +msgid "Adding %(count)d file from '%(directory)s' ..." +msgid_plural "Adding %(count)d files from '%(directory)s' ..." +msgstr[0] "" + +#: picard/tagger.py:512 +#, python-format +msgid "Removing album %(id)s: %(artist)s - %(album)s" msgstr "" -#: picard/tagger.py:452 +#: picard/tagger.py:528 msgid "CD Lookup Error" msgstr "" -#: picard/tagger.py:453 +#: picard/tagger.py:529 #, python-format msgid "" "Error while reading CD:\n" @@ -557,43 +446,42 @@ msgid "" "%s" msgstr "" -#: picard/ui/cdlookup.py:34 picard/ui/mainwindow.py:544 -#: picard/ui/ui_options_releases.py:216 picard/util/tags.py:21 +#: picard/ui/cdlookup.py:35 picard/ui/mainwindow.py:597 picard/util/tags.py:21 msgid "Album" msgstr "专辑" -#: picard/ui/cdlookup.py:34 picard/ui/itemviews.py:96 -#: picard/ui/mainwindow.py:545 picard/util/tags.py:22 +#: picard/ui/cdlookup.py:35 picard/ui/itemviews.py:96 +#: picard/ui/mainwindow.py:598 picard/util/tags.py:22 msgid "Artist" msgstr "艺人" -#: picard/ui/cdlookup.py:34 picard/util/tags.py:24 +#: picard/ui/cdlookup.py:35 picard/util/tags.py:24 msgid "Date" msgstr "日期" -#: picard/ui/cdlookup.py:35 +#: picard/ui/cdlookup.py:36 msgid "Labels" msgstr "" -#: picard/ui/cdlookup.py:35 +#: picard/ui/cdlookup.py:36 msgid "Catalog #s" msgstr "" -#: picard/ui/cdlookup.py:35 picard/util/tags.py:79 +#: picard/ui/cdlookup.py:36 picard/util/tags.py:78 msgid "Barcode" msgstr "条形码" -#: picard/ui/collectionmenu.py:31 +#: picard/ui/collectionmenu.py:42 msgid "Refresh List" msgstr "" -#: picard/ui/collectionmenu.py:92 +#: picard/ui/collectionmenu.py:86 #, python-format msgid "%s (%i release)" msgid_plural "%s (%i releases)" msgstr[0] "" -#: picard/ui/coverartbox.py:142 +#: picard/ui/coverartbox.py:141 msgid "View release on MusicBrainz" msgstr "" @@ -609,59 +497,59 @@ msgstr "显示&隐藏文件" msgid "&Set as starting directory" msgstr "" -#: picard/ui/infodialog.py:36 picard/ui/infodialog.py:75 +#: picard/ui/infodialog.py:37 picard/ui/infodialog.py:80 msgid "Info" msgstr "" -#: picard/ui/infodialog.py:80 +#: picard/ui/infodialog.py:85 msgid "Filename:" msgstr "文件名:" -#: picard/ui/infodialog.py:82 +#: picard/ui/infodialog.py:87 msgid "Format:" msgstr "格式:" -#: picard/ui/infodialog.py:86 +#: picard/ui/infodialog.py:91 msgid "Size:" msgstr "" -#: picard/ui/infodialog.py:90 +#: picard/ui/infodialog.py:95 msgid "Length:" msgstr "时长:" -#: picard/ui/infodialog.py:92 +#: picard/ui/infodialog.py:97 msgid "Bitrate:" msgstr "比特率:" -#: picard/ui/infodialog.py:94 +#: picard/ui/infodialog.py:99 msgid "Sample rate:" msgstr "采样率" -#: picard/ui/infodialog.py:96 +#: picard/ui/infodialog.py:101 msgid "Bits per sample:" msgstr "" -#: picard/ui/infodialog.py:100 +#: picard/ui/infodialog.py:105 msgid "Mono" msgstr "单体声" -#: picard/ui/infodialog.py:102 +#: picard/ui/infodialog.py:107 msgid "Stereo" msgstr "立体声" -#: picard/ui/infodialog.py:105 +#: picard/ui/infodialog.py:110 msgid "Channels:" msgstr "声道数:" -#: picard/ui/infodialog.py:116 +#: picard/ui/infodialog.py:121 msgid "Album Info" msgstr "" -#: picard/ui/infodialog.py:124 +#: picard/ui/infodialog.py:129 msgid "&Errors" msgstr "" -#: picard/ui/infodialog.py:134 picard/ui/ui_infodialog.py:77 +#: picard/ui/infodialog.py:139 picard/ui/ui_infodialog.py:73 msgid "&Info" msgstr "信息(&I)" @@ -685,7 +573,7 @@ msgstr "" msgid "Title" msgstr "标题" -#: picard/ui/itemviews.py:95 picard/util/tags.py:88 +#: picard/ui/itemviews.py:95 picard/util/tags.py:86 msgid "Length" msgstr "时长" @@ -710,8 +598,8 @@ msgid "Collections" msgstr "" #: picard/ui/itemviews.py:365 -msgid "&Plugins" -msgstr "插件(&P)" +msgid "P&lugins" +msgstr "" #: picard/ui/itemviews.py:541 msgid "file view" @@ -733,12 +621,16 @@ msgstr "" msgid "Contains albums and matched files" msgstr "" -#: picard/ui/logview.py:91 +#: picard/ui/logview.py:109 msgid "Log" msgstr "" -#: picard/ui/logview.py:99 -msgid "Status History" +#: picard/ui/logview.py:113 +msgid "Debug mode" +msgstr "" + +#: picard/ui/logview.py:134 +msgid "Activity History" msgstr "" #: picard/ui/mainwindow.py:74 @@ -771,276 +663,309 @@ msgstr "" #: picard/ui/mainwindow.py:220 msgid "" -"Picard listens on a port to integrate with your browser and downloads " -"release information when you click the \"Tagger\" buttons on the MusicBrainz" -" website" +"Picard listens on this port to integrate with your browser. When you " +"\"Search\" or \"Open in Browser\" from Picard, clicking the \"Tagger\" " +"button on the web page loads the release into Picard." msgstr "" -#: picard/ui/mainwindow.py:240 +#: picard/ui/mainwindow.py:243 #, python-format msgid " Listening on port %(port)d " msgstr "" -#: picard/ui/mainwindow.py:263 +#: picard/ui/mainwindow.py:299 msgid "Submission Error" msgstr "" -#: picard/ui/mainwindow.py:264 +#: picard/ui/mainwindow.py:300 msgid "" "You need to configure your AcoustID API key before you can submit " "fingerprints." msgstr "" -#: picard/ui/mainwindow.py:269 +#: picard/ui/mainwindow.py:305 msgid "&Options..." msgstr "选项(&O)..." -#: picard/ui/mainwindow.py:273 +#: picard/ui/mainwindow.py:309 msgid "&Cut" msgstr "剪切(&C)" -#: picard/ui/mainwindow.py:278 +#: picard/ui/mainwindow.py:314 msgid "&Paste" msgstr "粘贴(&P)" -#: picard/ui/mainwindow.py:283 +#: picard/ui/mainwindow.py:319 msgid "&Help..." msgstr "帮助(&H)..." -#: picard/ui/mainwindow.py:288 +#: picard/ui/mainwindow.py:323 msgid "&About..." msgstr "关于(&A)..." -#: picard/ui/mainwindow.py:292 +#: picard/ui/mainwindow.py:327 msgid "&Donate..." msgstr "捐赠(&D)..." -#: picard/ui/mainwindow.py:295 +#: picard/ui/mainwindow.py:330 msgid "&Report a Bug..." msgstr "&报告错误" -#: picard/ui/mainwindow.py:298 +#: picard/ui/mainwindow.py:333 msgid "&Support Forum..." msgstr "&支持论坛" -#: picard/ui/mainwindow.py:301 +#: picard/ui/mainwindow.py:336 msgid "&Add Files..." msgstr "添加文件(&A)..." -#: picard/ui/mainwindow.py:302 +#: picard/ui/mainwindow.py:337 msgid "Add files to the tagger" msgstr "在标签下添加文件" -#: picard/ui/mainwindow.py:307 +#: picard/ui/mainwindow.py:342 msgid "A&dd Folder..." msgstr "添加文件夹(&D)..." -#: picard/ui/mainwindow.py:308 +#: picard/ui/mainwindow.py:343 msgid "Add a folder to the tagger" msgstr "在该标签下添加文件夹" -#: picard/ui/mainwindow.py:310 +#: picard/ui/mainwindow.py:345 msgid "Ctrl+D" msgstr "Ctrl+D" -#: picard/ui/mainwindow.py:313 +#: picard/ui/mainwindow.py:348 msgid "&Save" msgstr "&保存" -#: picard/ui/mainwindow.py:314 +#: picard/ui/mainwindow.py:349 msgid "Save selected files" msgstr "保存选中的文件" -#: picard/ui/mainwindow.py:320 +#: picard/ui/mainwindow.py:355 msgid "S&ubmit" msgstr "" -#: picard/ui/mainwindow.py:321 -msgid "Submit fingerprints" +#: picard/ui/mainwindow.py:356 +msgid "Submit acoustic fingerprints" msgstr "" -#: picard/ui/mainwindow.py:325 +#: picard/ui/mainwindow.py:360 msgid "E&xit" msgstr "退出(&X)" -#: picard/ui/mainwindow.py:328 +#: picard/ui/mainwindow.py:363 msgid "Ctrl+Q" msgstr "Ctrl+Q" -#: picard/ui/mainwindow.py:331 +#: picard/ui/mainwindow.py:366 msgid "&Remove" msgstr "删除(&R)" -#: picard/ui/mainwindow.py:332 +#: picard/ui/mainwindow.py:367 msgid "Remove selected files/albums" msgstr "移除选中的文件/专辑" -#: picard/ui/mainwindow.py:336 +#: picard/ui/mainwindow.py:371 msgid "Lookup in &Browser" msgstr "在浏览器中搜索" -#: picard/ui/mainwindow.py:337 +#: picard/ui/mainwindow.py:372 msgid "Lookup selected item on MusicBrainz website" msgstr "在本网站上搜索选中的内容" -#: picard/ui/mainwindow.py:341 +#: picard/ui/mainwindow.py:376 msgid "File &Browser" msgstr "文件浏览器(&B)" -#: picard/ui/mainwindow.py:345 +#: picard/ui/mainwindow.py:380 msgid "Ctrl+B" msgstr "Ctrl+B" -#: picard/ui/mainwindow.py:348 +#: picard/ui/mainwindow.py:383 msgid "&Cover Art" msgstr "封面图像(&A)" -#: picard/ui/mainwindow.py:354 picard/ui/mainwindow.py:539 +#: picard/ui/mainwindow.py:389 picard/ui/mainwindow.py:591 msgid "Search" msgstr "搜索" -#: picard/ui/mainwindow.py:357 -msgid "&CD Lookup..." +#: picard/ui/mainwindow.py:392 +msgid "Lookup &CD..." msgstr "" -#: picard/ui/mainwindow.py:358 picard/ui/mainwindow.py:359 -msgid "Lookup CD" -msgstr "查阅 CD" +#: picard/ui/mainwindow.py:393 +msgid "Lookup the details of the CD in your drive" +msgstr "" -#: picard/ui/mainwindow.py:361 +#: picard/ui/mainwindow.py:395 msgid "Ctrl+K" msgstr "Ctrl+K" -#: picard/ui/mainwindow.py:364 +#: picard/ui/mainwindow.py:398 msgid "&Scan" msgstr "扫描(&S)" -#: picard/ui/mainwindow.py:367 +#: picard/ui/mainwindow.py:401 msgid "Ctrl+Y" msgstr "Ctrl+Y" -#: picard/ui/mainwindow.py:370 +#: picard/ui/mainwindow.py:404 msgid "Cl&uster" msgstr "" -#: picard/ui/mainwindow.py:373 +#: picard/ui/mainwindow.py:407 msgid "Ctrl+U" msgstr "Ctrl+U" -#: picard/ui/mainwindow.py:376 +#: picard/ui/mainwindow.py:410 msgid "&Lookup" msgstr "" -#: picard/ui/mainwindow.py:377 picard/ui/mainwindow.py:378 -msgid "Lookup metadata" +#: picard/ui/mainwindow.py:411 +msgid "Lookup selected items in MusicBrainz" msgstr "" -#: picard/ui/mainwindow.py:381 +#: picard/ui/mainwindow.py:416 msgid "Ctrl+L" msgstr "Ctrl+L" -#: picard/ui/mainwindow.py:384 +#: picard/ui/mainwindow.py:419 msgid "&Info..." msgstr "" -#: picard/ui/mainwindow.py:387 +#: picard/ui/mainwindow.py:422 msgid "Ctrl+I" msgstr "" -#: picard/ui/mainwindow.py:390 +#: picard/ui/mainwindow.py:425 msgid "&Refresh" msgstr "刷新(&R)" -#: picard/ui/mainwindow.py:391 +#: picard/ui/mainwindow.py:426 msgid "Ctrl+R" msgstr "" -#: picard/ui/mainwindow.py:394 +#: picard/ui/mainwindow.py:429 msgid "&Rename Files" msgstr "重命名(&R)" -#: picard/ui/mainwindow.py:399 +#: picard/ui/mainwindow.py:434 msgid "&Move Files" msgstr "" -#: picard/ui/mainwindow.py:404 +#: picard/ui/mainwindow.py:439 msgid "Save &Tags" msgstr "" -#: picard/ui/mainwindow.py:409 +#: picard/ui/mainwindow.py:444 msgid "Tags From &File Names..." msgstr "将文件名转变标签(&F)..." -#: picard/ui/mainwindow.py:412 -msgid "View &Log..." +#: picard/ui/mainwindow.py:447 +msgid "&Open My Collections in Browser" msgstr "" -#: picard/ui/mainwindow.py:415 -msgid "View Status &History..." +#: picard/ui/mainwindow.py:451 +msgid "View Error/Debug &Log" msgstr "" -#: picard/ui/mainwindow.py:422 -msgid "&Open..." +#: picard/ui/mainwindow.py:454 +msgid "View Activity &History" msgstr "" -#: picard/ui/mainwindow.py:423 -msgid "Open the file" +#: picard/ui/mainwindow.py:461 +msgid "&Play file" msgstr "" -#: picard/ui/mainwindow.py:426 -msgid "Open &Folder..." +#: picard/ui/mainwindow.py:462 +msgid "Play the file in your default media player" msgstr "" -#: picard/ui/mainwindow.py:427 -msgid "Open the containing folder" +#: picard/ui/mainwindow.py:466 +msgid "Open Containing &Folder" msgstr "" -#: picard/ui/mainwindow.py:448 +#: picard/ui/mainwindow.py:467 +msgid "Open the containing folder in your file explorer" +msgstr "" + +#: picard/ui/mainwindow.py:492 msgid "&File" msgstr "文件(&F)" -#: picard/ui/mainwindow.py:456 +#: picard/ui/mainwindow.py:503 msgid "&Edit" msgstr "编辑(&E)" -#: picard/ui/mainwindow.py:462 +#: picard/ui/mainwindow.py:509 msgid "&View" msgstr "查看 (&V)" -#: picard/ui/mainwindow.py:470 +#: picard/ui/mainwindow.py:515 msgid "&Options" msgstr "选项(&O)" -#: picard/ui/mainwindow.py:476 +#: picard/ui/mainwindow.py:521 msgid "&Tools" msgstr "工具(&T)" -#: picard/ui/mainwindow.py:485 picard/ui/util.py:35 +#: picard/ui/mainwindow.py:532 picard/ui/util.py:35 msgid "&Help" msgstr "帮助(&H)" -#: picard/ui/mainwindow.py:505 +#: picard/ui/mainwindow.py:553 msgid "Actions" msgstr "" -#: picard/ui/mainwindow.py:608 +#: picard/ui/mainwindow.py:599 +msgid "Track" +msgstr "音轨" + +#: picard/ui/mainwindow.py:662 msgid "All Supported Formats" msgstr "全部支持的格式" -#: picard/ui/mainwindow.py:705 +#: picard/ui/mainwindow.py:695 +#, python-format +msgid "Adding directory: '%(directory)s' ..." +msgstr "" + +#: picard/ui/mainwindow.py:702 +#, python-format +msgid "Adding multiple directories from '%(directory)s' ..." +msgstr "" + +#: picard/ui/mainwindow.py:767 msgid "Configuration Required" msgstr "" -#: picard/ui/mainwindow.py:706 +#: picard/ui/mainwindow.py:768 msgid "" "Audio fingerprinting is not yet configured. Would you like to configure it " "now?" msgstr "" -#: picard/ui/mainwindow.py:784 picard/ui/mainwindow.py:791 +#: picard/ui/mainwindow.py:848 #, python-format -msgid " (Error: %s)" -msgstr " (错误:%s)" +msgid "%(filename)s (error: %(error)s)" +msgstr "" + +#: picard/ui/mainwindow.py:854 +#, python-format +msgid "%(filename)s" +msgstr "" + +#: picard/ui/mainwindow.py:864 +#, python-format +msgid "%(filename)s (%(similarity)d%%) (error: %(error)s)" +msgstr "" + +#: picard/ui/mainwindow.py:871 +#, python-format +msgid "%(filename)s (%(similarity)d%%)" +msgstr "" #: picard/ui/metadatabox.py:82 #, python-format @@ -1091,387 +1016,387 @@ msgid "Use Original Value" msgid_plural "Use Original Values" msgstr[0] "" -#: picard/ui/passworddialog.py:37 +#: picard/ui/passworddialog.py:40 #, python-format msgid "" "The server %s requires you to login. Please enter your username and " "password." msgstr "服务器 %s 需要您登陆。请输入您的用户名和密码。" -#: picard/ui/passworddialog.py:75 +#: picard/ui/passworddialog.py:79 #, python-format msgid "" "The proxy %s requires you to login. Please enter your username and password." msgstr "" -#: picard/ui/tagsfromfilenames.py:55 picard/ui/tagsfromfilenames.py:100 +#: picard/ui/tagsfromfilenames.py:56 picard/ui/tagsfromfilenames.py:101 msgid "File Name" msgstr "文件名" -#: picard/ui/ui_cdlookup.py:66 picard/ui/ui_options_cdlookup.py:55 -#: picard/ui/ui_options_cdlookup_select.py:62 picard/ui/options/cdlookup.py:38 +#: picard/ui/ui_cdlookup.py:53 picard/ui/ui_options_cdlookup.py:42 +#: picard/ui/ui_options_cdlookup_select.py:49 picard/ui/options/cdlookup.py:38 msgid "CD Lookup" msgstr "" -#: picard/ui/ui_cdlookup.py:67 +#: picard/ui/ui_cdlookup.py:54 msgid "The following releases on MusicBrainz match the CD:" msgstr "" -#: picard/ui/ui_cdlookup.py:68 +#: picard/ui/ui_cdlookup.py:55 msgid "OK" msgstr "确定" -#: picard/ui/ui_cdlookup.py:69 +#: picard/ui/ui_cdlookup.py:56 msgid "Lookup manually" msgstr "" -#: picard/ui/ui_cdlookup.py:70 +#: picard/ui/ui_cdlookup.py:57 msgid "Cancel" msgstr "取消" -#: picard/ui/ui_edittagdialog.py:101 +#: picard/ui/ui_edittagdialog.py:88 msgid "Edit Tag" msgstr "" -#: picard/ui/ui_edittagdialog.py:102 +#: picard/ui/ui_edittagdialog.py:89 msgid "Edit value" msgstr "" -#: picard/ui/ui_edittagdialog.py:103 +#: picard/ui/ui_edittagdialog.py:90 msgid "Add value" msgstr "" -#: picard/ui/ui_edittagdialog.py:104 +#: picard/ui/ui_edittagdialog.py:91 msgid "Remove value" msgstr "" -#: picard/ui/ui_infodialog.py:78 +#: picard/ui/ui_infodialog.py:74 msgid "A&rtwork" msgstr "封面图像(&R)" -#: picard/ui/ui_infostatus.py:100 +#: picard/ui/ui_infostatus.py:96 msgid "Form" msgstr "" -#: picard/ui/ui_options.py:51 +#: picard/ui/ui_options.py:38 msgid "Options" msgstr "" -#: picard/ui/ui_options_advanced.py:46 +#: picard/ui/ui_options_advanced.py:42 msgid "Advanced options" msgstr "" -#: picard/ui/ui_options_advanced.py:47 +#: picard/ui/ui_options_advanced.py:43 msgid "Ignore file paths matching the following regular expression:" msgstr "" -#: picard/ui/ui_options_cdlookup.py:56 +#: picard/ui/ui_options_cdlookup.py:43 msgid "CD-ROM device to use for lookups:" msgstr "" -#: picard/ui/ui_options_cdlookup_select.py:63 +#: picard/ui/ui_options_cdlookup_select.py:50 msgid "Default CD-ROM drive to use for lookups:" msgstr "" -#: picard/ui/ui_options_cover.py:145 +#: picard/ui/ui_options_cover.py:131 msgid "Location" msgstr "" -#: picard/ui/ui_options_cover.py:146 +#: picard/ui/ui_options_cover.py:132 msgid "Embed cover images into tags" msgstr "" -#: picard/ui/ui_options_cover.py:147 +#: picard/ui/ui_options_cover.py:133 msgid "Only embed a front image" msgstr "" -#: picard/ui/ui_options_cover.py:148 +#: picard/ui/ui_options_cover.py:134 msgid "Save cover images as separate files" msgstr "" -#: picard/ui/ui_options_cover.py:149 +#: picard/ui/ui_options_cover.py:135 msgid "Use the following file name for images:" msgstr "" -#: picard/ui/ui_options_cover.py:150 +#: picard/ui/ui_options_cover.py:136 msgid "Overwrite the file if it already exists" msgstr "如果文件已存在则覆盖" -#: picard/ui/ui_options_cover.py:151 +#: picard/ui/ui_options_cover.py:137 msgid "Coverart Providers" msgstr "" -#: picard/ui/ui_options_cover.py:152 +#: picard/ui/ui_options_cover.py:138 msgid "Amazon" msgstr "" -#: picard/ui/ui_options_cover.py:153 picard/ui/ui_options_cover.py:155 +#: picard/ui/ui_options_cover.py:139 picard/ui/ui_options_cover.py:141 msgid "Cover Art Archive" msgstr "" -#: picard/ui/ui_options_cover.py:154 +#: picard/ui/ui_options_cover.py:140 msgid "Sites on the whitelist" msgstr "" -#: picard/ui/ui_options_cover.py:156 +#: picard/ui/ui_options_cover.py:142 msgid "Only use images of the following size:" msgstr "" -#: picard/ui/ui_options_cover.py:157 +#: picard/ui/ui_options_cover.py:143 msgid "250 px" msgstr "" -#: picard/ui/ui_options_cover.py:158 +#: picard/ui/ui_options_cover.py:144 msgid "500 px" msgstr "" -#: picard/ui/ui_options_cover.py:159 +#: picard/ui/ui_options_cover.py:145 msgid "Full size" msgstr "" -#: picard/ui/ui_options_cover.py:160 +#: picard/ui/ui_options_cover.py:146 msgid "Download only images of the following types:" msgstr "" -#: picard/ui/ui_options_cover.py:161 +#: picard/ui/ui_options_cover.py:147 msgid "Download only approved images" msgstr "" -#: picard/ui/ui_options_cover.py:162 +#: picard/ui/ui_options_cover.py:148 msgid "" "Use the first image type as the filename. This will not change the filename " "of front images." msgstr "" -#: picard/ui/ui_options_fingerprinting.py:83 +#: picard/ui/ui_options_fingerprinting.py:70 msgid "Audio Fingerprinting" msgstr "" -#: picard/ui/ui_options_fingerprinting.py:84 +#: picard/ui/ui_options_fingerprinting.py:71 msgid "Do not use audio fingerprinting" msgstr "" -#: picard/ui/ui_options_fingerprinting.py:85 +#: picard/ui/ui_options_fingerprinting.py:72 msgid "Use AcoustID" msgstr "" -#: picard/ui/ui_options_fingerprinting.py:86 +#: picard/ui/ui_options_fingerprinting.py:73 msgid "AcoustID Settings" msgstr "" -#: picard/ui/ui_options_fingerprinting.py:87 +#: picard/ui/ui_options_fingerprinting.py:74 msgid "Fingerprint calculator:" msgstr "" -#: picard/ui/ui_options_fingerprinting.py:88 -#: picard/ui/ui_options_interface.py:88 picard/ui/ui_options_renaming.py:138 +#: picard/ui/ui_options_fingerprinting.py:75 +#: picard/ui/ui_options_interface.py:75 picard/ui/ui_options_renaming.py:134 msgid "Browse..." msgstr "" -#: picard/ui/ui_options_fingerprinting.py:89 +#: picard/ui/ui_options_fingerprinting.py:76 msgid "Download..." msgstr "" -#: picard/ui/ui_options_fingerprinting.py:90 +#: picard/ui/ui_options_fingerprinting.py:77 msgid "API key:" msgstr "" -#: picard/ui/ui_options_fingerprinting.py:91 +#: picard/ui/ui_options_fingerprinting.py:78 msgid "Get API key..." msgstr "" -#: picard/ui/ui_options_folksonomy.py:115 picard/ui/options/folksonomy.py:28 +#: picard/ui/ui_options_folksonomy.py:102 picard/ui/options/folksonomy.py:28 msgid "Folksonomy Tags" msgstr "" -#: picard/ui/ui_options_folksonomy.py:117 +#: picard/ui/ui_options_folksonomy.py:104 msgid "Only use my tags" msgstr "" -#: picard/ui/ui_options_folksonomy.py:120 +#: picard/ui/ui_options_folksonomy.py:107 msgid "Maximum number of tags:" msgstr "" -#: picard/ui/ui_options_general.py:92 +#: picard/ui/ui_options_general.py:88 msgid "MusicBrainz Server" msgstr "MusicBrainz 服务器" -#: picard/ui/ui_options_general.py:93 picard/ui/ui_options_network.py:123 +#: picard/ui/ui_options_general.py:89 picard/ui/ui_options_network.py:110 msgid "Port:" msgstr "端口:" -#: picard/ui/ui_options_general.py:94 picard/ui/ui_options_network.py:124 +#: picard/ui/ui_options_general.py:90 picard/ui/ui_options_network.py:111 msgid "Server address:" msgstr "服务器地址:" -#: picard/ui/ui_options_general.py:95 +#: picard/ui/ui_options_general.py:91 msgid "Account Information" msgstr "账户信息" -#: picard/ui/ui_options_general.py:96 picard/ui/ui_options_network.py:121 -#: picard/ui/ui_passworddialog.py:74 +#: picard/ui/ui_options_general.py:92 picard/ui/ui_options_network.py:108 +#: picard/ui/ui_passworddialog.py:70 msgid "Password:" msgstr "密码:" -#: picard/ui/ui_options_general.py:97 picard/ui/ui_options_network.py:122 -#: picard/ui/ui_passworddialog.py:73 +#: picard/ui/ui_options_general.py:93 picard/ui/ui_options_network.py:109 +#: picard/ui/ui_passworddialog.py:69 msgid "Username:" msgstr "用户名:" -#: picard/ui/ui_options_general.py:98 picard/ui/options/general.py:31 +#: picard/ui/ui_options_general.py:94 picard/ui/options/general.py:31 msgid "General" msgstr "" -#: picard/ui/ui_options_general.py:99 +#: picard/ui/ui_options_general.py:95 msgid "Automatically scan all new files" msgstr "自动扫描所有新文件" -#: picard/ui/ui_options_general.py:100 +#: picard/ui/ui_options_general.py:96 msgid "Ignore MBIDs when loading new files" msgstr "" -#: picard/ui/ui_options_interface.py:82 +#: picard/ui/ui_options_interface.py:69 msgid "Miscellaneous" msgstr "" -#: picard/ui/ui_options_interface.py:83 +#: picard/ui/ui_options_interface.py:70 msgid "Show text labels under icons" msgstr "" -#: picard/ui/ui_options_interface.py:84 +#: picard/ui/ui_options_interface.py:71 msgid "Allow selection of multiple directories" msgstr "" -#: picard/ui/ui_options_interface.py:85 +#: picard/ui/ui_options_interface.py:72 msgid "Use advanced query syntax" msgstr "使用高级查询语法" -#: picard/ui/ui_options_interface.py:86 +#: picard/ui/ui_options_interface.py:73 msgid "Show a quit confirmation dialog for unsaved changes" msgstr "" -#: picard/ui/ui_options_interface.py:87 +#: picard/ui/ui_options_interface.py:74 msgid "Begin browsing in the following directory:" msgstr "" -#: picard/ui/ui_options_interface.py:89 +#: picard/ui/ui_options_interface.py:76 msgid "User interface language:" msgstr "用户界面语言:" -#: picard/ui/ui_options_matching.py:86 +#: picard/ui/ui_options_matching.py:73 msgid "Thresholds" msgstr "" -#: picard/ui/ui_options_matching.py:87 +#: picard/ui/ui_options_matching.py:74 msgid "Minimal similarity for matching files to tracks:" msgstr "" -#: picard/ui/ui_options_matching.py:91 +#: picard/ui/ui_options_matching.py:78 msgid "Minimal similarity for file lookups:" msgstr "" -#: picard/ui/ui_options_matching.py:92 +#: picard/ui/ui_options_matching.py:79 msgid "Minimal similarity for cluster lookups:" msgstr "" -#: picard/ui/ui_options_metadata.py:114 picard/ui/options/metadata.py:29 +#: picard/ui/ui_options_metadata.py:101 picard/ui/options/metadata.py:29 msgid "Metadata" msgstr "元数据" -#: picard/ui/ui_options_metadata.py:115 +#: picard/ui/ui_options_metadata.py:102 msgid "Translate artist names to this locale where possible:" msgstr "" -#: picard/ui/ui_options_metadata.py:116 +#: picard/ui/ui_options_metadata.py:103 msgid "Use standardized artist names" msgstr "" -#: picard/ui/ui_options_metadata.py:117 +#: picard/ui/ui_options_metadata.py:104 msgid "Convert Unicode punctuation characters to ASCII" msgstr "" -#: picard/ui/ui_options_metadata.py:118 +#: picard/ui/ui_options_metadata.py:105 msgid "Use release relationships" msgstr "使用专辑关系" -#: picard/ui/ui_options_metadata.py:119 +#: picard/ui/ui_options_metadata.py:106 msgid "Use track relationships" msgstr "" -#: picard/ui/ui_options_metadata.py:120 +#: picard/ui/ui_options_metadata.py:107 msgid "Use folksonomy tags as genre" msgstr "" -#: picard/ui/ui_options_metadata.py:121 +#: picard/ui/ui_options_metadata.py:108 msgid "Custom Fields" msgstr "" -#: picard/ui/ui_options_metadata.py:122 +#: picard/ui/ui_options_metadata.py:109 msgid "Various artists:" msgstr "" -#: picard/ui/ui_options_metadata.py:123 +#: picard/ui/ui_options_metadata.py:110 msgid "Non-album tracks:" msgstr "" -#: picard/ui/ui_options_metadata.py:124 picard/ui/ui_options_metadata.py:125 -#: picard/ui/ui_options_renaming.py:147 +#: picard/ui/ui_options_metadata.py:111 picard/ui/ui_options_metadata.py:112 +#: picard/ui/ui_options_renaming.py:143 msgid "Default" msgstr "" -#: picard/ui/ui_options_network.py:120 +#: picard/ui/ui_options_network.py:107 msgid "Web Proxy" msgstr "网络代理服务器" -#: picard/ui/ui_options_network.py:125 +#: picard/ui/ui_options_network.py:112 msgid "Browser Integration" msgstr "" -#: picard/ui/ui_options_network.py:126 +#: picard/ui/ui_options_network.py:113 msgid "Default listening port:" msgstr "" -#: picard/ui/ui_options_network.py:127 +#: picard/ui/ui_options_network.py:114 msgid "Listen only on localhost" msgstr "" -#: picard/ui/ui_options_plugins.py:131 picard/ui/options/plugins.py:38 +#: picard/ui/ui_options_plugins.py:127 picard/ui/options/plugins.py:38 msgid "Plugins" msgstr "插件" -#: picard/ui/ui_options_plugins.py:132 picard/ui/options/plugins.py:122 +#: picard/ui/ui_options_plugins.py:128 picard/ui/options/plugins.py:122 msgid "Name" msgstr "名称" -#: picard/ui/ui_options_plugins.py:133 picard/util/tags.py:39 +#: picard/ui/ui_options_plugins.py:129 msgid "Version" msgstr "版本" -#: picard/ui/ui_options_plugins.py:134 picard/ui/options/plugins.py:125 +#: picard/ui/ui_options_plugins.py:130 picard/ui/options/plugins.py:125 msgid "Author" msgstr "" -#: picard/ui/ui_options_plugins.py:135 +#: picard/ui/ui_options_plugins.py:131 msgid "Install plugin..." msgstr "" -#: picard/ui/ui_options_plugins.py:136 +#: picard/ui/ui_options_plugins.py:132 msgid "Open plugin folder" msgstr "打开插件文件夹" -#: picard/ui/ui_options_plugins.py:137 +#: picard/ui/ui_options_plugins.py:133 msgid "Download plugins" msgstr "下载插件" -#: picard/ui/ui_options_plugins.py:138 +#: picard/ui/ui_options_plugins.py:134 msgid "Details" msgstr "" -#: picard/ui/ui_options_ratings.py:53 +#: picard/ui/ui_options_ratings.py:49 msgid "Enable track ratings" msgstr "" -#: picard/ui/ui_options_ratings.py:54 +#: picard/ui/ui_options_ratings.py:50 msgid "" "Picard saves the ratings together with an e-mail address identifying the " "user who did the rating. That way different ratings for different users can " @@ -1479,207 +1404,167 @@ msgid "" "your ratings." msgstr "" -#: picard/ui/ui_options_ratings.py:55 +#: picard/ui/ui_options_ratings.py:51 msgid "E-mail:" msgstr "" -#: picard/ui/ui_options_ratings.py:56 +#: picard/ui/ui_options_ratings.py:52 msgid "Submit ratings to MusicBrainz" msgstr "提交分级到MusicBrainz" -#: picard/ui/ui_options_releases.py:215 +#: picard/ui/ui_options_releases.py:104 msgid "Preferred release types" msgstr "" -#: picard/ui/ui_options_releases.py:217 -msgid "Single" -msgstr "" - -#: picard/ui/ui_options_releases.py:218 -msgid "EP" -msgstr "" - -#: picard/ui/ui_options_releases.py:219 -msgid "Compilation" -msgstr "曲集" - -#: picard/ui/ui_options_releases.py:220 -msgid "Soundtrack" -msgstr "" - -#: picard/ui/ui_options_releases.py:221 -msgid "Spokenword" -msgstr "" - -#: picard/ui/ui_options_releases.py:222 -msgid "Interview" -msgstr "" - -#: picard/ui/ui_options_releases.py:223 -msgid "Audiobook" -msgstr "" - -#: picard/ui/ui_options_releases.py:224 -msgid "Live" -msgstr "" - -#: picard/ui/ui_options_releases.py:225 -msgid "Remix" -msgstr "" - -#: picard/ui/ui_options_releases.py:227 -msgid "Reset all" -msgstr "" - -#: picard/ui/ui_options_releases.py:228 +#: picard/ui/ui_options_releases.py:105 msgid "Preferred release countries" msgstr "" -#: picard/ui/ui_options_releases.py:229 picard/ui/ui_options_releases.py:232 +#: picard/ui/ui_options_releases.py:106 picard/ui/ui_options_releases.py:109 msgid ">" msgstr "" -#: picard/ui/ui_options_releases.py:230 picard/ui/ui_options_releases.py:233 +#: picard/ui/ui_options_releases.py:107 picard/ui/ui_options_releases.py:110 msgid "<" msgstr "" -#: picard/ui/ui_options_releases.py:231 +#: picard/ui/ui_options_releases.py:108 msgid "Preferred release formats" msgstr "" -#: picard/ui/ui_options_renaming.py:134 +#: picard/ui/ui_options_renaming.py:130 msgid "Rename files when saving" msgstr "" -#: picard/ui/ui_options_renaming.py:135 +#: picard/ui/ui_options_renaming.py:131 msgid "Replace non-ASCII characters" msgstr "将非 ASCII 字符取代" -#: picard/ui/ui_options_renaming.py:136 +#: picard/ui/ui_options_renaming.py:132 msgid "Windows compatibility" msgstr "" -#: picard/ui/ui_options_renaming.py:137 +#: picard/ui/ui_options_renaming.py:133 msgid "Move files to this directory when saving:" msgstr "保存文件时移动到该目录:" -#: picard/ui/ui_options_renaming.py:139 +#: picard/ui/ui_options_renaming.py:135 msgid "Delete empty directories" msgstr "删除空文件夹" -#: picard/ui/ui_options_renaming.py:140 +#: picard/ui/ui_options_renaming.py:136 msgid "Move additional files:" msgstr "" -#: picard/ui/ui_options_renaming.py:141 +#: picard/ui/ui_options_renaming.py:137 msgid "Name files like this" msgstr "" -#: picard/ui/ui_options_renaming.py:148 +#: picard/ui/ui_options_renaming.py:144 msgid "Examples" msgstr "" -#: picard/ui/ui_options_script.py:49 +#: picard/ui/ui_options_script.py:45 msgid "Tagger Script" msgstr "" -#: picard/ui/ui_options_tags.py:165 +#: picard/ui/ui_options_tags.py:152 msgid "Write tags to files" msgstr "" -#: picard/ui/ui_options_tags.py:166 +#: picard/ui/ui_options_tags.py:153 msgid "Preserve timestamps of tagged files" msgstr "" -#: picard/ui/ui_options_tags.py:167 +#: picard/ui/ui_options_tags.py:154 msgid "Before Tagging" msgstr "" -#: picard/ui/ui_options_tags.py:168 +#: picard/ui/ui_options_tags.py:155 msgid "Clear existing tags" msgstr "清除现有标签" -#: picard/ui/ui_options_tags.py:169 +#: picard/ui/ui_options_tags.py:156 msgid "Remove ID3 tags from FLAC files" msgstr "将FLAC文件中ID3标签删掉" -#: picard/ui/ui_options_tags.py:170 +#: picard/ui/ui_options_tags.py:157 msgid "Remove APEv2 tags from MP3 files" msgstr "将MP3文件中APEv2标签删掉" -#: picard/ui/ui_options_tags.py:171 +#: picard/ui/ui_options_tags.py:158 msgid "" "Preserve these tags from being cleared or overwritten with MusicBrainz data:" msgstr "" -#: picard/ui/ui_options_tags.py:172 +#: picard/ui/ui_options_tags.py:159 msgid "Tags are separated by commas, and are case-sensitive." msgstr "" -#: picard/ui/ui_options_tags.py:173 +#: picard/ui/ui_options_tags.py:160 msgid "Tag Compatibility" msgstr "" -#: picard/ui/ui_options_tags.py:174 +#: picard/ui/ui_options_tags.py:161 msgid "ID3v2 Version" msgstr "" -#: picard/ui/ui_options_tags.py:175 +#: picard/ui/ui_options_tags.py:162 msgid "2.4" msgstr "" -#: picard/ui/ui_options_tags.py:176 +#: picard/ui/ui_options_tags.py:163 msgid "2.3" msgstr "" -#: picard/ui/ui_options_tags.py:177 +#: picard/ui/ui_options_tags.py:164 msgid "ID3v2 Text Encoding" msgstr "" -#: picard/ui/ui_options_tags.py:178 +#: picard/ui/ui_options_tags.py:165 msgid "UTF-8" msgstr "" -#: picard/ui/ui_options_tags.py:179 +#: picard/ui/ui_options_tags.py:166 msgid "UTF-16" msgstr "" -#: picard/ui/ui_options_tags.py:180 +#: picard/ui/ui_options_tags.py:167 msgid "ISO-8859-1" msgstr "ISO-8859-1" -#: picard/ui/ui_options_tags.py:181 +#: picard/ui/ui_options_tags.py:168 msgid "Join multiple ID3v2.3 tags with:" msgstr "" -#: picard/ui/ui_options_tags.py:182 +#: picard/ui/ui_options_tags.py:169 msgid "" "

Default is '/' to maintain compatibility with previous" " Picard releases.

New alternatives are ';_' or '_/_' or type your own." "

" msgstr "" -#: picard/ui/ui_options_tags.py:183 +#: picard/ui/ui_options_tags.py:170 msgid "Also include ID3v1 tags in the files" msgstr "" -#: picard/ui/ui_passworddialog.py:72 +#: picard/ui/ui_passworddialog.py:68 msgid "Authentication required" msgstr "" -#: picard/ui/ui_passworddialog.py:75 +#: picard/ui/ui_passworddialog.py:71 msgid "Save username and password" msgstr "保存用户名和密码" -#: picard/ui/ui_tagsfromfilenames.py:54 +#: picard/ui/ui_tagsfromfilenames.py:50 msgid "Convert File Names to Tags" msgstr "将文件名称转换为标签" -#: picard/ui/ui_tagsfromfilenames.py:55 +#: picard/ui/ui_tagsfromfilenames.py:51 msgid "Replace underscores with spaces" msgstr "" -#: picard/ui/ui_tagsfromfilenames.py:56 +#: picard/ui/ui_tagsfromfilenames.py:52 msgid "&Preview" msgstr "" @@ -1735,7 +1620,11 @@ msgstr "高级设置" msgid "Regex Error" msgstr "" -#: picard/ui/options/cover.py:63 +#: picard/ui/options/cover.py:44 +msgid "title" +msgstr "" + +#: picard/ui/options/cover.py:68 msgid "Cover Art" msgstr "封面图像" @@ -1751,11 +1640,11 @@ msgstr "用户界面" msgid "System default" msgstr "" -#: picard/ui/options/interface.py:96 +#: picard/ui/options/interface.py:98 msgid "Language changed" msgstr "" -#: picard/ui/options/interface.py:96 +#: picard/ui/options/interface.py:99 msgid "" "You have changed the interface language. You have to restart Picard in order" " for the change to take effect." @@ -1777,31 +1666,35 @@ msgstr "文件" msgid "Ratings" msgstr "分级" -#: picard/ui/options/releases.py:33 +#: picard/ui/options/releases.py:87 msgid "Preferred Releases" msgstr "" +#: picard/ui/options/releases.py:121 +msgid "Reset all" +msgstr "" + #: picard/ui/options/renaming.py:37 msgid "File Naming" msgstr "" -#: picard/ui/options/renaming.py:184 +#: picard/ui/options/renaming.py:187 msgid "Error" msgstr "错误" -#: picard/ui/options/renaming.py:184 +#: picard/ui/options/renaming.py:187 msgid "The location to move files to must not be empty." msgstr "将要移入文件的地址不能为空" -#: picard/ui/options/renaming.py:194 +#: picard/ui/options/renaming.py:197 msgid "The file naming format must not be empty." msgstr "" -#: picard/ui/options/scripting.py:63 +#: picard/ui/options/scripting.py:99 msgid "Scripting" msgstr "" -#: picard/ui/options/scripting.py:95 +#: picard/ui/options/scripting.py:131 msgid "Script Error" msgstr "" @@ -1921,199 +1814,199 @@ msgstr "ASIN" msgid "Grouping" msgstr "分组" -#: picard/util/tags.py:40 +#: picard/util/tags.py:39 msgid "ISRC" msgstr "" -#: picard/util/tags.py:41 +#: picard/util/tags.py:40 msgid "Mood" msgstr "心情" -#: picard/util/tags.py:42 +#: picard/util/tags.py:41 msgid "BPM" msgstr "BPM" -#: picard/util/tags.py:43 +#: picard/util/tags.py:42 msgid "Copyright" msgstr "版权" -#: picard/util/tags.py:44 +#: picard/util/tags.py:43 msgid "License" msgstr "" -#: picard/util/tags.py:45 +#: picard/util/tags.py:44 msgid "Composer" msgstr "作曲" -#: picard/util/tags.py:46 +#: picard/util/tags.py:45 msgid "Writer" msgstr "" -#: picard/util/tags.py:47 +#: picard/util/tags.py:46 msgid "Conductor" msgstr "指挥" -#: picard/util/tags.py:48 +#: picard/util/tags.py:47 msgid "Lyricist" msgstr "作词" -#: picard/util/tags.py:49 +#: picard/util/tags.py:48 msgid "Arranger" msgstr "" -#: picard/util/tags.py:50 +#: picard/util/tags.py:49 msgid "Producer" msgstr "制作人" -#: picard/util/tags.py:51 +#: picard/util/tags.py:50 msgid "Engineer" msgstr "" -#: picard/util/tags.py:52 +#: picard/util/tags.py:51 msgid "Subtitle" msgstr "副标题" -#: picard/util/tags.py:53 +#: picard/util/tags.py:52 msgid "Disc Subtitle" msgstr "碟片副标题" -#: picard/util/tags.py:54 +#: picard/util/tags.py:53 msgid "Remixer" msgstr "混音器" -#: picard/util/tags.py:55 +#: picard/util/tags.py:54 msgid "MusicBrainz Recording Id" msgstr "" -#: picard/util/tags.py:56 +#: picard/util/tags.py:55 msgid "MusicBrainz Track Id" msgstr "" -#: picard/util/tags.py:57 +#: picard/util/tags.py:56 msgid "MusicBrainz Release Id" msgstr "" -#: picard/util/tags.py:58 +#: picard/util/tags.py:57 msgid "MusicBrainz Artist Id" msgstr "" -#: picard/util/tags.py:59 +#: picard/util/tags.py:58 msgid "MusicBrainz Release Artist Id" msgstr "" -#: picard/util/tags.py:60 +#: picard/util/tags.py:59 msgid "MusicBrainz Work Id" msgstr "" -#: picard/util/tags.py:61 +#: picard/util/tags.py:60 msgid "MusicBrainz Release Group Id" msgstr "" -#: picard/util/tags.py:62 +#: picard/util/tags.py:61 msgid "MusicBrainz Disc Id" msgstr "" -#: picard/util/tags.py:63 -msgid "MusicBrainz Sort Name" -msgstr "" - -#: picard/util/tags.py:64 +#: picard/util/tags.py:62 msgid "MusicIP PUID" msgstr "" -#: picard/util/tags.py:65 +#: picard/util/tags.py:63 msgid "MusicIP Fingerprint" msgstr "" -#: picard/util/tags.py:66 +#: picard/util/tags.py:64 msgid "AcoustID" msgstr "" -#: picard/util/tags.py:67 +#: picard/util/tags.py:65 msgid "AcoustID Fingerprint" msgstr "" -#: picard/util/tags.py:68 +#: picard/util/tags.py:66 msgid "Disc Id" msgstr "" -#: picard/util/tags.py:69 -msgid "Website" -msgstr "网站" +#: picard/util/tags.py:67 +msgid "Artist Website" +msgstr "" -#: picard/util/tags.py:70 +#: picard/util/tags.py:68 msgid "Compilation (iTunes)" msgstr "" -#: picard/util/tags.py:71 +#: picard/util/tags.py:69 msgid "Comment" msgstr "注释" -#: picard/util/tags.py:72 +#: picard/util/tags.py:70 msgid "Genre" msgstr "" -#: picard/util/tags.py:73 +#: picard/util/tags.py:71 msgid "Encoded By" msgstr "" -#: picard/util/tags.py:74 +#: picard/util/tags.py:72 +msgid "Encoder Settings" +msgstr "" + +#: picard/util/tags.py:73 msgid "Performer" msgstr "" -#: picard/util/tags.py:75 +#: picard/util/tags.py:74 msgid "Release Type" msgstr "发行类型" -#: picard/util/tags.py:76 +#: picard/util/tags.py:75 msgid "Release Status" msgstr "发行状态" -#: picard/util/tags.py:77 +#: picard/util/tags.py:76 msgid "Release Country" msgstr "版本地区" -#: picard/util/tags.py:78 +#: picard/util/tags.py:77 msgid "Record Label" msgstr "唱片公司" -#: picard/util/tags.py:80 +#: picard/util/tags.py:79 msgid "Catalog Number" msgstr "分类号码" -#: picard/util/tags.py:82 +#: picard/util/tags.py:80 msgid "DJ-Mixer" msgstr "" -#: picard/util/tags.py:83 +#: picard/util/tags.py:81 msgid "Media" msgstr "" -#: picard/util/tags.py:84 +#: picard/util/tags.py:82 msgid "Lyrics" msgstr "歌词" -#: picard/util/tags.py:85 +#: picard/util/tags.py:83 msgid "Mixer" msgstr "混音者" -#: picard/util/tags.py:86 +#: picard/util/tags.py:84 msgid "Language" msgstr "" -#: picard/util/tags.py:87 +#: picard/util/tags.py:85 msgid "Script" msgstr "" -#: picard/util/tags.py:89 +#: picard/util/tags.py:87 msgid "Rating" msgstr "" -#: picard/util/tags.py:90 +#: picard/util/tags.py:88 msgid "Artists" msgstr "" -#: picard/util/tags.py:91 +#: picard/util/tags.py:89 msgid "Work" msgstr "" From 373302db2414b280e31ce25dac90fd2ca92211b3 Mon Sep 17 00:00:00 2001 From: Sophist Date: Mon, 5 May 2014 12:50:03 +0100 Subject: [PATCH 043/212] Make py2app includes consistent with py2exe and make indents standard. --- setup.py | 59 ++++++++++++++++++++++++++++---------------------------- 1 file changed, 30 insertions(+), 29 deletions(-) diff --git a/setup.py b/setup.py index 8d0b99be3..a3fe910ac 100755 --- a/setup.py +++ b/setup.py @@ -19,37 +19,42 @@ if sys.version_info < (2, 6): args = {} +ext_modules = [ + Extension('picard.util.astrcmp', sources=['picard/util/astrcmp.c']), +] + + try: from py2app.build_app import py2app do_py2app = True args['app'] = ['tagger.py'] args['name'] = 'Picard' args['options'] = { 'py2app' : - { - 'optimize' : 2, - 'argv_emulation' : True, - 'iconfile' : 'picard.icns', - 'frameworks' : ['libiconv.2.dylib', 'libdiscid.0.dylib'], - 'resources' : ['locale'], - 'includes' : ['json', 'sip', 'PyQt4', 'picard.util.astrcmp'], - '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.QtXml', 'PyQt4.QtXmlPatterns', 'PyQt4.phonon'], - 'plist' : { 'CFBundleName' : 'MusicBrainz Picard', - 'CFBundleGetInfoString' : 'Picard, the next generation MusicBrainz tagger (see http://musicbrainz.org/doc/MusicBrainz_Picard)', - 'CFBundleIdentifier':'org.musicbrainz.picard', - 'CFBundleShortVersionString':__version__, - 'CFBundleVersion': 'Picard ' + __version__, - 'LSMinimumSystemVersion':'10.4.3', - 'LSMultipleInstancesProhibited':'true', - # RAK: It biffed when I tried to include your accented characters, luks. :-( - 'NSHumanReadableCopyright':'Copyright 2008 Lukas Lalinsky, Robert Kaye', - }, - 'qt_plugins': ['imageformats/libqgif.dylib', - 'imageformats/libqjpeg.dylib', - 'imageformats/libqtiff.dylib', - 'accessible/libqtaccessiblewidgets.dylib'] - }, + { + 'optimize' : 2, + 'argv_emulation' : True, + 'iconfile' : 'picard.icns', + 'frameworks' : ['libiconv.2.dylib', 'libdiscid.0.dylib'], + 'resources' : ['locale'], + 'includes' : ['json', 'sip', 'PyQt4'] + [e.name for e in ext_modules], + '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.QtXml', 'PyQt4.QtXmlPatterns', 'PyQt4.phonon'], + 'plist' : { 'CFBundleName' : 'MusicBrainz Picard', + 'CFBundleGetInfoString' : 'Picard, the next generation MusicBrainz tagger (see http://musicbrainz.org/doc/MusicBrainz_Picard)', + 'CFBundleIdentifier':'org.musicbrainz.picard', + 'CFBundleShortVersionString':__version__, + 'CFBundleVersion': 'Picard ' + __version__, + 'LSMinimumSystemVersion':'10.4.3', + 'LSMultipleInstancesProhibited':'true', + # RAK: It biffed when I tried to include your accented characters, luks. :-( + 'NSHumanReadableCopyright':'Copyright 2008 Lukas Lalinsky, Robert Kaye', + }, + 'qt_plugins': ['imageformats/libqgif.dylib', + 'imageformats/libqjpeg.dylib', + 'imageformats/libqtiff.dylib', + 'accessible/libqtaccessiblewidgets.dylib'] + }, } except ImportError: @@ -66,10 +71,6 @@ from distutils.dist import Distribution from distutils.spawn import find_executable -ext_modules = [ - Extension('picard.util.astrcmp', sources=['picard/util/astrcmp.c']), -] - tx_executable = find_executable('tx') From c9a975b185152349d9f82fc3d67aa8555db7804e Mon Sep 17 00:00:00 2001 From: Laurent Monin Date: Mon, 5 May 2014 16:00:32 +0200 Subject: [PATCH 044/212] PICARD-603: fix missing imports Traceback (most recent call last): File "/usr/lib/picard/picard/ui/mainwindow.py", line 302, in _on_submit self.tagger.acoustidmanager.submit() File "/usr/lib/picard/picard/acoustidmanager.py", line 78, in submit log.debug("AcoustID: submitting ...") NameError: global name 'log' is not defined and pylint tells more: Module picard.ui.infodialog E: 55,16: Undefined variable 'log' (undefined-variable) E: 55,26: Undefined variable 'traceback' (undefined-variable) --- picard/ui/infodialog.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/picard/ui/infodialog.py b/picard/ui/infodialog.py index 27197a9ff..f38d8b780 100644 --- a/picard/ui/infodialog.py +++ b/picard/ui/infodialog.py @@ -19,7 +19,9 @@ import os.path import cgi +import traceback from PyQt4 import QtGui, QtCore +from picard import log from picard.util import format_time, encode_filename, bytes2human from picard.ui import PicardDialog from picard.ui.ui_infodialog import Ui_InfoDialog From 95ec346c2ada3394fdb8db452d824ba047e1ac7a Mon Sep 17 00:00:00 2001 From: Sophist Date: Mon, 5 May 2014 15:03:42 +0100 Subject: [PATCH 045/212] Remove obsolete ref to cgi --- picard/ui/infodialog.py | 1 - 1 file changed, 1 deletion(-) diff --git a/picard/ui/infodialog.py b/picard/ui/infodialog.py index 27197a9ff..9f830957e 100644 --- a/picard/ui/infodialog.py +++ b/picard/ui/infodialog.py @@ -18,7 +18,6 @@ # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. import os.path -import cgi from PyQt4 import QtGui, QtCore from picard.util import format_time, encode_filename, bytes2human from picard.ui import PicardDialog From b42dc5f10c747b7819a65beb1a37ec791eea25af Mon Sep 17 00:00:00 2001 From: Laurent Monin Date: Mon, 5 May 2014 17:57:35 +0200 Subject: [PATCH 046/212] Add missing import --- picard/acoustidmanager.py | 1 + 1 file changed, 1 insertion(+) diff --git a/picard/acoustidmanager.py b/picard/acoustidmanager.py index 58d42bd40..f3c057d28 100644 --- a/picard/acoustidmanager.py +++ b/picard/acoustidmanager.py @@ -19,6 +19,7 @@ from functools import partial from PyQt4 import QtCore +from picard import log class Submission(object): From a0cc9a636b4a4a9cdbf820f4d0130ff829f3b23f Mon Sep 17 00:00:00 2001 From: Sophist Date: Mon, 5 May 2014 19:14:30 +0100 Subject: [PATCH 047/212] Eliminate unnecessary modules --- setup.py | 21 +++++++++++++++++---- 1 file changed, 17 insertions(+), 4 deletions(-) diff --git a/setup.py b/setup.py index a3fe910ac..c0d7fb48b 100755 --- a/setup.py +++ b/setup.py @@ -23,6 +23,21 @@ ext_modules = [ Extension('picard.util.astrcmp', sources=['picard/util/astrcmp.c']), ] +py2app_exclude_modules = [ + 'pydoc', + 'PyQt4.QtDeclarative', 'PyQt4.QtDesigner', 'PyQt4.QtHelp', 'PyQt4.QtMultimedia', + 'PyQt4.QtOpenGL', 'PyQt4.QtScript', 'PyQt4.QtScriptTools', 'PyQt4.QtSql', 'PyQt4.QtSvg', + 'PyQt4.QtTest', 'PyQt4.QtWebKit', 'PyQt4.QtXml', 'PyQt4.QtXmlPatterns', 'PyQt4.phonon' +] + +exclude_modules = [ + 'ssl', 'socket', 'bz2', + 'distutils', 'unittest', + 'bdb', 'calendar', 'cgi', 'difflib', 'doctest', 'dummy_thread', 'gzip', + 'optparse', 'pdb', 'plistlib', 'pyexpat', 'quopri', 'repr', 'select', + 'stringio', 'tarfile', 'uu', 'zipfile' +] + try: from py2app.build_app import py2app @@ -37,9 +52,7 @@ try: 'frameworks' : ['libiconv.2.dylib', 'libdiscid.0.dylib'], 'resources' : ['locale'], 'includes' : ['json', 'sip', 'PyQt4'] + [e.name for e in ext_modules], - '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.QtXml', 'PyQt4.QtXmlPatterns', 'PyQt4.phonon'], + 'excludes' : exclude_modules + py2app_exclude_modules, 'plist' : { 'CFBundleName' : 'MusicBrainz Picard', 'CFBundleGetInfoString' : 'Picard, the next generation MusicBrainz tagger (see http://musicbrainz.org/doc/MusicBrainz_Picard)', 'CFBundleIdentifier':'org.musicbrainz.picard', @@ -701,7 +714,7 @@ try: args['options'] = { 'bdist_nsis': { 'includes': ['json', 'sip'] + [e.name for e in ext_modules], - 'excludes': ['ssl', 'socket', 'bz2'], + 'excludes': exclude_modules, 'optimize': 2, }, } From 8b76501cdd70d0fca4e9265d74d2bd8707708a11 Mon Sep 17 00:00:00 2001 From: Sophist Date: Mon, 5 May 2014 20:16:43 +0100 Subject: [PATCH 048/212] Revert "Remove obsolete ref to cgi" This reverts commit 95ec346c2ada3394fdb8db452d824ba047e1ac7a. --- picard/ui/infodialog.py | 1 + 1 file changed, 1 insertion(+) diff --git a/picard/ui/infodialog.py b/picard/ui/infodialog.py index 9f830957e..27197a9ff 100644 --- a/picard/ui/infodialog.py +++ b/picard/ui/infodialog.py @@ -18,6 +18,7 @@ # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. import os.path +import cgi from PyQt4 import QtGui, QtCore from picard.util import format_time, encode_filename, bytes2human from picard.ui import PicardDialog From fd27cc2cd9a1427351558671ab5367b8f0afc7ac Mon Sep 17 00:00:00 2001 From: Sophist Date: Mon, 5 May 2014 20:20:02 +0100 Subject: [PATCH 049/212] Add back use of cgi escape Added originally in 27cc6d7086576ae7fce22d47ead7f863a937f524 and reverted in error in 5a2eee348484403bf10d0617ce4dff462db1ad2f. --- picard/ui/infodialog.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/picard/ui/infodialog.py b/picard/ui/infodialog.py index 27197a9ff..1c97c0c34 100644 --- a/picard/ui/infodialog.py +++ b/picard/ui/infodialog.py @@ -109,8 +109,8 @@ class FileInfoDialog(InfoDialog): ch = str(ch) info.append((_('Channels:'), ch)) text = '
'.join(map(lambda i: '%s
%s' % - (QtCore.Qt.escape(i[0]), - QtCore.Qt.escape(i[1])), info)) + (cgi.escape(i[0]), + cgi.escape(i[1])), info)) self.ui.info.setText(text) From 4bb1079c4ab6d9017784fd8bf5e8f3baf912f845 Mon Sep 17 00:00:00 2001 From: Sophist Date: Mon, 5 May 2014 20:20:38 +0100 Subject: [PATCH 050/212] Remove cgi from exclude_module list --- setup.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/setup.py b/setup.py index c0d7fb48b..ac806a8cb 100755 --- a/setup.py +++ b/setup.py @@ -33,7 +33,7 @@ py2app_exclude_modules = [ exclude_modules = [ 'ssl', 'socket', 'bz2', 'distutils', 'unittest', - 'bdb', 'calendar', 'cgi', 'difflib', 'doctest', 'dummy_thread', 'gzip', + 'bdb', 'calendar', 'difflib', 'doctest', 'dummy_thread', 'gzip', 'optparse', 'pdb', 'plistlib', 'pyexpat', 'quopri', 'repr', 'select', 'stringio', 'tarfile', 'uu', 'zipfile' ] From 63639d066cdbb485dbf0157d2a6e5e7914f8fceb Mon Sep 17 00:00:00 2001 From: Sophist Date: Mon, 5 May 2014 21:59:30 +0100 Subject: [PATCH 051/212] Restructure to import in correct order etc. --- setup.py | 33 ++++++++++++++++----------------- 1 file changed, 16 insertions(+), 17 deletions(-) diff --git a/setup.py b/setup.py index ac806a8cb..15c34c547 100755 --- a/setup.py +++ b/setup.py @@ -18,6 +18,21 @@ if sys.version_info < (2, 6): args = {} +try: + from py2app.build_app import py2app + do_py2app = True +except ImportError: + do_py2app = False + +# this must be imported *after* py2app, because py2app imports setuptools +# which "patches" (read: screws up) the Extension class +from distutils import log +from distutils.command.build import build +from distutils.command.install import install as install +from distutils.core import setup, Command, Extension +from distutils.dep_util import newer +from distutils.dist import Distribution +from distutils.spawn import find_executable ext_modules = [ Extension('picard.util.astrcmp', sources=['picard/util/astrcmp.c']), @@ -38,10 +53,7 @@ exclude_modules = [ 'stringio', 'tarfile', 'uu', 'zipfile' ] - -try: - from py2app.build_app import py2app - do_py2app = True +if do_py2app: args['app'] = ['tagger.py'] args['name'] = 'Picard' args['options'] = { 'py2app' : @@ -70,19 +82,6 @@ try: }, } -except ImportError: - do_py2app = False - -# this must be imported *after* py2app, because py2app imports setuptools -# which "patches" (read: screws up) the Extension class -from distutils import log -from distutils.command.build import build -from distutils.command.install import install as install -from distutils.core import setup, Command, Extension -from distutils.dep_util import newer -from distutils.dist import Distribution -from distutils.spawn import find_executable - tx_executable = find_executable('tx') From f7834bfea78495063abc42ae61edc887adfcb6d6 Mon Sep 17 00:00:00 2001 From: Laurent Monin Date: Sun, 4 May 2014 12:57:19 +0200 Subject: [PATCH 052/212] _fill_try_list(): do not enter loops if not needed --- picard/coverart.py | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/picard/coverart.py b/picard/coverart.py index ecc098279..c9d989246 100644 --- a/picard/coverart.py +++ b/picard/coverart.py @@ -223,17 +223,22 @@ def coverart(album, metadata, release, try_list=None): def _fill_try_list(album, release, try_list): """Fills ``try_list`` by looking at the relationships in ``release``.""" + use_whitelist = config.setting['ca_provider_use_whitelist'] + use_amazon = config.setting['ca_provider_use_amazon'] + if not (use_whitelist or use_amazon): + return try: if 'relation_list' in release.children: for relation_list in release.relation_list: if relation_list.target_type == 'url': for relation in relation_list.relation: # Use the URL of a cover art link directly - if config.setting['ca_provider_use_whitelist']\ - and (relation.type == 'cover art link' or - relation.type == 'has_cover_art_at'): - _try_list_append_image_url(try_list, QUrl(relation.target[0].text)) - elif config.setting['ca_provider_use_amazon']\ + if use_whitelist \ + and (relation.type == 'cover art link' or + relation.type == 'has_cover_art_at'): + url = QUrl(relation.target[0].text) + _try_list_append_image_url(try_list, url) + elif use_amazon \ and (relation.type == 'amazon asin' or relation.type == 'has_Amazon_ASIN'): _process_asin_relation(try_list, relation) From 55c80f588c52448ae10fa58e64f668da7be2448b Mon Sep 17 00:00:00 2001 From: Laurent Monin Date: Sun, 4 May 2014 13:12:44 +0200 Subject: [PATCH 053/212] Reduce code redundancy using intermediate variables has_front and has_back --- picard/coverart.py | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/picard/coverart.py b/picard/coverart.py index c9d989246..00606f8b5 100644 --- a/picard/coverart.py +++ b/picard/coverart.py @@ -184,8 +184,10 @@ def coverart(album, metadata, release, try_list=None): if 'cover_art_archive' in release.children: caa_node = release.children['cover_art_archive'][0] has_caa_artwork = (caa_node.artwork[0].text == 'true') + has_front = 'front' in caa_types + has_back = 'back' in caa_types - if len(caa_types) == 2 and ('front' in caa_types or 'back' in caa_types): + if len(caa_types) == 2 and (has_front or has_back): # The OR cases are there to still download and process the CAA # JSON file if front or back is enabled but not in the CAA and # another type (that's neither front nor back) is enabled. @@ -195,13 +197,13 @@ def coverart(album, metadata, release, try_list=None): # as well) but it's still necessary to download the booklet # images by using the fact that back is enabled but there are # no back images in the CAA. - front_in_caa = caa_node.front[0].text == 'true' or 'front' not in caa_types - back_in_caa = caa_node.back[0].text == 'true' or 'back' not in caa_types + front_in_caa = caa_node.front[0].text == 'true' or not has_front + back_in_caa = caa_node.back[0].text == 'true' or not has_back has_caa_artwork = has_caa_artwork and (front_in_caa or back_in_caa) - elif len(caa_types) == 1 and ('front' in caa_types or 'back' in caa_types): - front_in_caa = caa_node.front[0].text == 'true' and 'front' in caa_types - back_in_caa = caa_node.back[0].text == 'true' and 'back' in caa_types + elif len(caa_types) == 1 and (has_front or has_back): + front_in_caa = caa_node.front[0].text == 'true' and has_front + back_in_caa = caa_node.back[0].text == 'true' and has_back has_caa_artwork = has_caa_artwork and (front_in_caa or back_in_caa) if config.setting['ca_provider_use_caa'] and has_caa_artwork\ From a8906f3cec30364a37a4a03c3f4414c420708c9e Mon Sep 17 00:00:00 2001 From: Laurent Monin Date: Sun, 4 May 2014 13:32:11 +0200 Subject: [PATCH 054/212] Introduce class CoverArt --- picard/coverart.py | 139 ++++++++++++++++++++++++--------------------- 1 file changed, 73 insertions(+), 66 deletions(-) diff --git a/picard/coverart.py b/picard/coverart.py index 00606f8b5..29cddcba0 100644 --- a/picard/coverart.py +++ b/picard/coverart.py @@ -74,7 +74,7 @@ def _coverart_http_error(album, http): album.error_append(u'Coverart error: %s' % (unicode(http.errorString()))) -def _coverart_downloaded(album, metadata, release, try_list, coverinfos, data, http, error): +def _coverart_downloaded(album, metadata, release, coverartobj, coverinfos, data, http, error): album._requests -= 1 if error or len(data) < 1000: @@ -109,14 +109,14 @@ def _coverart_downloaded(album, metadata, release, try_list, coverinfos, data, h # If the image already was a front image, there might still be some # other front images in the try_list - remove them. if is_front_image(coverinfos): - for item in try_list[:]: + for item in coverartobj.try_list[:]: if is_front_image(item) and 'archive.org' not in item['host']: # Hosts other than archive.org only provide front images - try_list.remove(item) - _walk_try_list(album, metadata, release, try_list) + coverartobj.try_list.remove(item) + _walk_try_list(album, metadata, release, coverartobj) -def _caa_json_downloaded(album, metadata, release, try_list, data, http, error): +def _caa_json_downloaded(album, metadata, release, coverartobj, data, http, error): album._requests -= 1 caa_front_found = False if error: @@ -139,12 +139,12 @@ def _caa_json_downloaded(album, metadata, release, try_list, data, http, error): if imagetype == "front": caa_front_found = True if imagetype in caa_types: - _caa_append_image_to_trylist(try_list, image) + _caa_append_image_to_trylist(coverartobj, image) break if error or not caa_front_found: - _fill_try_list(album, release, try_list) - _walk_try_list(album, metadata, release, try_list) + _fill_try_list(album, release, coverartobj) + _walk_try_list(album, metadata, release, coverartobj) _CAA_THUMBNAIL_SIZE_MAP = { 0: "small", @@ -152,7 +152,7 @@ _CAA_THUMBNAIL_SIZE_MAP = { } -def _caa_append_image_to_trylist(try_list, imagedata): +def _caa_append_image_to_trylist(coverartobj, imagedata): """Adds URLs to `try_list` depending on the users CAA image size settings.""" imagesize = config.setting["caa_image_size"] thumbsize = _CAA_THUMBNAIL_SIZE_MAP.get(imagesize, None) @@ -165,65 +165,72 @@ def _caa_append_image_to_trylist(try_list, imagedata): 'desc': imagedata["comment"], 'front': imagedata['front'], # front image indicator from CAA } - _try_list_append_image_url(try_list, url, extras) + _try_list_append_image_url(coverartobj, url, extras) -def coverart(album, metadata, release, try_list=None): +class CoverArt: + + def __init__(self): + self.try_list = [] + +def coverart(album, metadata, release, coverartobj=None): """ Gets all cover art URLs from the metadata and then attempts to download the album art. """ # try_list will be None for the first call - if try_list is None: - try_list = [] + if coverartobj is not None: + return + + coverartobj = CoverArt() - # MB web service indicates if CAA has artwork - # http://tickets.musicbrainz.org/browse/MBS-4536 - has_caa_artwork = False - caa_types = map(unicode.lower, config.setting["caa_image_types"]) + # MB web service indicates if CAA has artwork + # http://tickets.musicbrainz.org/browse/MBS-4536 + has_caa_artwork = False + caa_types = map(unicode.lower, config.setting["caa_image_types"]) - if 'cover_art_archive' in release.children: - caa_node = release.children['cover_art_archive'][0] - has_caa_artwork = (caa_node.artwork[0].text == 'true') - has_front = 'front' in caa_types - has_back = 'back' in caa_types + if 'cover_art_archive' in release.children: + caa_node = release.children['cover_art_archive'][0] + has_caa_artwork = (caa_node.artwork[0].text == 'true') + has_front = 'front' in caa_types + has_back = 'back' in caa_types - if len(caa_types) == 2 and (has_front or has_back): - # The OR cases are there to still download and process the CAA - # JSON file if front or back is enabled but not in the CAA and - # another type (that's neither front nor back) is enabled. - # For example, if both front and booklet are enabled and the - # CAA only has booklet images, the front element in the XML - # from the webservice will be false (thus front_in_caa is False - # as well) but it's still necessary to download the booklet - # images by using the fact that back is enabled but there are - # no back images in the CAA. - front_in_caa = caa_node.front[0].text == 'true' or not has_front - back_in_caa = caa_node.back[0].text == 'true' or not has_back - has_caa_artwork = has_caa_artwork and (front_in_caa or back_in_caa) + if len(caa_types) == 2 and (has_front or has_back): + # The OR cases are there to still download and process the CAA + # JSON file if front or back is enabled but not in the CAA and + # another type (that's neither front nor back) is enabled. + # For example, if both front and booklet are enabled and the + # CAA only has booklet images, the front element in the XML + # from the webservice will be false (thus front_in_caa is False + # as well) but it's still necessary to download the booklet + # images by using the fact that back is enabled but there are + # no back images in the CAA. + front_in_caa = caa_node.front[0].text == 'true' or not has_front + back_in_caa = caa_node.back[0].text == 'true' or not has_back + has_caa_artwork = has_caa_artwork and (front_in_caa or back_in_caa) - elif len(caa_types) == 1 and (has_front or has_back): - front_in_caa = caa_node.front[0].text == 'true' and has_front - back_in_caa = caa_node.back[0].text == 'true' and has_back - has_caa_artwork = has_caa_artwork and (front_in_caa or back_in_caa) + elif len(caa_types) == 1 and (has_front or has_back): + front_in_caa = caa_node.front[0].text == 'true' and has_front + back_in_caa = caa_node.back[0].text == 'true' and has_back + has_caa_artwork = has_caa_artwork and (front_in_caa or back_in_caa) - if config.setting['ca_provider_use_caa'] and has_caa_artwork\ - and len(caa_types) > 0: - log.debug("There are suitable images in the cover art archive for %s" - % release.id) - album._requests += 1 - album.tagger.xmlws.download( - CAA_HOST, CAA_PORT, "/release/%s/" % - metadata["musicbrainz_albumid"], - partial(_caa_json_downloaded, album, metadata, release, try_list), - priority=True, important=False) - else: - log.debug("There are no suitable images in the cover art archive for %s" - % release.id) - _fill_try_list(album, release, try_list) - _walk_try_list(album, metadata, release, try_list) + if config.setting['ca_provider_use_caa'] and has_caa_artwork\ + and len(caa_types) > 0: + log.debug("There are suitable images in the cover art archive for %s" + % release.id) + album._requests += 1 + album.tagger.xmlws.download( + CAA_HOST, CAA_PORT, "/release/%s/" % + metadata["musicbrainz_albumid"], + partial(_caa_json_downloaded, album, metadata, release, coverartobj), + priority=True, important=False) + else: + log.debug("There are no suitable images in the cover art archive for %s" + % release.id) + _fill_try_list(album, release, coverartobj) + _walk_try_list(album, metadata, release, coverartobj) -def _fill_try_list(album, release, try_list): +def _fill_try_list(album, release, coverartobj): """Fills ``try_list`` by looking at the relationships in ``release``.""" use_whitelist = config.setting['ca_provider_use_whitelist'] use_amazon = config.setting['ca_provider_use_amazon'] @@ -239,26 +246,26 @@ def _fill_try_list(album, release, try_list): and (relation.type == 'cover art link' or relation.type == 'has_cover_art_at'): url = QUrl(relation.target[0].text) - _try_list_append_image_url(try_list, url) + _try_list_append_image_url(coverartobj, url) elif use_amazon \ and (relation.type == 'amazon asin' or relation.type == 'has_Amazon_ASIN'): - _process_asin_relation(try_list, relation) + _process_asin_relation(coverartobj, relation) except AttributeError: album.error_append(traceback.format_exc()) -def _walk_try_list(album, metadata, release, try_list): +def _walk_try_list(album, metadata, release, coverartobj): """Downloads each item in ``try_list``. If there are none left, loading of ``album`` will be finalized.""" - if len(try_list) == 0: + if len(coverartobj.try_list) == 0: album._finalize_loading(None) elif album.id not in album.tagger.albums: return else: # We still have some items to try! album._requests += 1 - coverinfos = try_list.pop(0) + coverinfos = coverartobj.try_list.pop(0) QObject.tagger.window.set_statusbar_message( N_("Downloading cover art of type '%(type)s' for %(albumid)s from %(host)s ..."), { @@ -269,11 +276,11 @@ def _walk_try_list(album, metadata, release, try_list): ) album.tagger.xmlws.download( coverinfos['host'], coverinfos['port'], coverinfos['path'], - partial(_coverart_downloaded, album, metadata, release, try_list, coverinfos), + partial(_coverart_downloaded, album, metadata, release, coverartobj, coverinfos), priority=True, important=False) -def _process_asin_relation(try_list, relation): +def _process_asin_relation(coverartobj, relation): amz = parse_amazon_url(relation.target[0].text) if amz is not None: if amz['host'] in AMAZON_SERVER: @@ -283,11 +290,11 @@ def _process_asin_relation(try_list, relation): host = serverInfo['server'] path_l = AMAZON_IMAGE_PATH % (amz['asin'], serverInfo['id'], 'L') path_m = AMAZON_IMAGE_PATH % (amz['asin'], serverInfo['id'], 'M') - _try_list_append_image_url(try_list, QUrl("http://%s:%s" % (host, path_l))) - _try_list_append_image_url(try_list, QUrl("http://%s:%s" % (host, path_m))) + _try_list_append_image_url(coverartobj, QUrl("http://%s:%s" % (host, path_l))) + _try_list_append_image_url(coverartobj, QUrl("http://%s:%s" % (host, path_m))) -def _try_list_append_image_url(try_list, parsedUrl, extras=None): +def _try_list_append_image_url(coverartobj, parsedUrl, extras=None): path = str(parsedUrl.encodedPath()) if parsedUrl.hasQuery(): path += '?' + parsedUrl.encodedQuery() @@ -301,4 +308,4 @@ def _try_list_append_image_url(try_list, parsedUrl, extras=None): if extras is not None: coverinfos.update(extras) log.debug("Adding %s image %s", coverinfos['type'], parsedUrl.toString()) - try_list.append(coverinfos) + coverartobj.try_list.append(coverinfos) From 01a815018a7810fa1cb3147eb42316eefb0fdf9b Mon Sep 17 00:00:00 2001 From: Laurent Monin Date: Sun, 4 May 2014 13:33:31 +0200 Subject: [PATCH 055/212] Re-order _fill_try_list arguments, place coverartobj in first position --- picard/coverart.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/picard/coverart.py b/picard/coverart.py index 29cddcba0..b7bc16a5d 100644 --- a/picard/coverart.py +++ b/picard/coverart.py @@ -143,7 +143,7 @@ def _caa_json_downloaded(album, metadata, release, coverartobj, data, http, erro break if error or not caa_front_found: - _fill_try_list(album, release, coverartobj) + _fill_try_list(coverartobj, album, release) _walk_try_list(album, metadata, release, coverartobj) _CAA_THUMBNAIL_SIZE_MAP = { @@ -226,11 +226,11 @@ def coverart(album, metadata, release, coverartobj=None): else: log.debug("There are no suitable images in the cover art archive for %s" % release.id) - _fill_try_list(album, release, coverartobj) + _fill_try_list(coverartobj, album, release) _walk_try_list(album, metadata, release, coverartobj) -def _fill_try_list(album, release, coverartobj): +def _fill_try_list(coverartobj, album, release): """Fills ``try_list`` by looking at the relationships in ``release``.""" use_whitelist = config.setting['ca_provider_use_whitelist'] use_amazon = config.setting['ca_provider_use_amazon'] From 1dd3ba051fbf1e47af925882982626352f7981cf Mon Sep 17 00:00:00 2001 From: Laurent Monin Date: Sun, 4 May 2014 13:35:24 +0200 Subject: [PATCH 056/212] Re-order _walk_try_list() argument, place coverartobj in first position --- picard/coverart.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/picard/coverart.py b/picard/coverart.py index b7bc16a5d..0c47fd938 100644 --- a/picard/coverart.py +++ b/picard/coverart.py @@ -113,7 +113,7 @@ def _coverart_downloaded(album, metadata, release, coverartobj, coverinfos, data if is_front_image(item) and 'archive.org' not in item['host']: # Hosts other than archive.org only provide front images coverartobj.try_list.remove(item) - _walk_try_list(album, metadata, release, coverartobj) + _walk_try_list(coverartobj, album, metadata, release) def _caa_json_downloaded(album, metadata, release, coverartobj, data, http, error): @@ -144,7 +144,7 @@ def _caa_json_downloaded(album, metadata, release, coverartobj, data, http, erro if error or not caa_front_found: _fill_try_list(coverartobj, album, release) - _walk_try_list(album, metadata, release, coverartobj) + _walk_try_list(coverartobj, album, metadata, release) _CAA_THUMBNAIL_SIZE_MAP = { 0: "small", @@ -227,7 +227,7 @@ def coverart(album, metadata, release, coverartobj=None): log.debug("There are no suitable images in the cover art archive for %s" % release.id) _fill_try_list(coverartobj, album, release) - _walk_try_list(album, metadata, release, coverartobj) + _walk_try_list(coverartobj, album, metadata, release) def _fill_try_list(coverartobj, album, release): @@ -255,7 +255,7 @@ def _fill_try_list(coverartobj, album, release): album.error_append(traceback.format_exc()) -def _walk_try_list(album, metadata, release, coverartobj): +def _walk_try_list(coverartobj, album, metadata, release): """Downloads each item in ``try_list``. If there are none left, loading of ``album`` will be finalized.""" if len(coverartobj.try_list) == 0: From 3287546f002b735f633e70254c11c451f2901bf8 Mon Sep 17 00:00:00 2001 From: Laurent Monin Date: Sun, 4 May 2014 13:36:51 +0200 Subject: [PATCH 057/212] Re-order _caa_json_downloaded() arguments, place coverartobj first --- picard/coverart.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/picard/coverart.py b/picard/coverart.py index 0c47fd938..6b32cb4e4 100644 --- a/picard/coverart.py +++ b/picard/coverart.py @@ -116,7 +116,7 @@ def _coverart_downloaded(album, metadata, release, coverartobj, coverinfos, data _walk_try_list(coverartobj, album, metadata, release) -def _caa_json_downloaded(album, metadata, release, coverartobj, data, http, error): +def _caa_json_downloaded(coverartobj, album, metadata, release, data, http, error): album._requests -= 1 caa_front_found = False if error: @@ -221,7 +221,7 @@ def coverart(album, metadata, release, coverartobj=None): album.tagger.xmlws.download( CAA_HOST, CAA_PORT, "/release/%s/" % metadata["musicbrainz_albumid"], - partial(_caa_json_downloaded, album, metadata, release, coverartobj), + partial(_caa_json_downloaded, coverartobj, album, metadata, release), priority=True, important=False) else: log.debug("There are no suitable images in the cover art archive for %s" From 7a1e01006f06eef18eab87bc9ebbe995c3b55150 Mon Sep 17 00:00:00 2001 From: Laurent Monin Date: Sun, 4 May 2014 13:39:18 +0200 Subject: [PATCH 058/212] Re-order _coverart_downloaded() arguments, place coverartobj first --- picard/coverart.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/picard/coverart.py b/picard/coverart.py index 6b32cb4e4..50aae855c 100644 --- a/picard/coverart.py +++ b/picard/coverart.py @@ -74,7 +74,7 @@ def _coverart_http_error(album, http): album.error_append(u'Coverart error: %s' % (unicode(http.errorString()))) -def _coverart_downloaded(album, metadata, release, coverartobj, coverinfos, data, http, error): +def _coverart_downloaded(coverartobj, album, metadata, release, coverinfos, data, http, error): album._requests -= 1 if error or len(data) < 1000: @@ -276,7 +276,7 @@ def _walk_try_list(coverartobj, album, metadata, release): ) album.tagger.xmlws.download( coverinfos['host'], coverinfos['port'], coverinfos['path'], - partial(_coverart_downloaded, album, metadata, release, coverartobj, coverinfos), + partial(_coverart_downloaded, coverartobj, album, metadata, release, coverinfos), priority=True, important=False) From c04ffeed9effe39f51e5f322a6fa8b6c09f8613c Mon Sep 17 00:00:00 2001 From: Laurent Monin Date: Sun, 4 May 2014 13:42:48 +0200 Subject: [PATCH 059/212] Move most code from coverart() to new coverart_init() --- picard/coverart.py | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/picard/coverart.py b/picard/coverart.py index 50aae855c..c362bd72a 100644 --- a/picard/coverart.py +++ b/picard/coverart.py @@ -173,6 +173,7 @@ class CoverArt: def __init__(self): self.try_list = [] + def coverart(album, metadata, release, coverartobj=None): """ Gets all cover art URLs from the metadata and then attempts to download the album art. """ @@ -180,9 +181,13 @@ def coverart(album, metadata, release, coverartobj=None): # try_list will be None for the first call if coverartobj is not None: return - + coverartobj = CoverArt() + coverart_init(coverartobj, album, metadata, release) + + +def coverart_init(coverartobj, album, metadata, release) # MB web service indicates if CAA has artwork # http://tickets.musicbrainz.org/browse/MBS-4536 has_caa_artwork = False From 7b65ec2e5054fbf76eb084206595bdb5eb3e4b7f Mon Sep 17 00:00:00 2001 From: Laurent Monin Date: Sun, 4 May 2014 13:44:10 +0200 Subject: [PATCH 060/212] Move class CoverArt and coverart() at end of the file --- picard/coverart.py | 38 +++++++++++++++++++------------------- 1 file changed, 19 insertions(+), 19 deletions(-) diff --git a/picard/coverart.py b/picard/coverart.py index c362bd72a..ad6fb7621 100644 --- a/picard/coverart.py +++ b/picard/coverart.py @@ -168,25 +168,6 @@ def _caa_append_image_to_trylist(coverartobj, imagedata): _try_list_append_image_url(coverartobj, url, extras) -class CoverArt: - - def __init__(self): - self.try_list = [] - - -def coverart(album, metadata, release, coverartobj=None): - """ Gets all cover art URLs from the metadata and then attempts to - download the album art. """ - - # try_list will be None for the first call - if coverartobj is not None: - return - - coverartobj = CoverArt() - - coverart_init(coverartobj, album, metadata, release) - - def coverart_init(coverartobj, album, metadata, release) # MB web service indicates if CAA has artwork # http://tickets.musicbrainz.org/browse/MBS-4536 @@ -314,3 +295,22 @@ def _try_list_append_image_url(coverartobj, parsedUrl, extras=None): coverinfos.update(extras) log.debug("Adding %s image %s", coverinfos['type'], parsedUrl.toString()) coverartobj.try_list.append(coverinfos) + + +class CoverArt: + + def __init__(self): + self.try_list = [] + + +def coverart(album, metadata, release, coverartobj=None): + """ Gets all cover art URLs from the metadata and then attempts to + download the album art. """ + + # try_list will be None for the first call + if coverartobj is not None: + return + + coverartobj = CoverArt() + + coverart_init(coverartobj, album, metadata, release) From d2744cae029f4105cdb76521a5456c347118d19a Mon Sep 17 00:00:00 2001 From: Laurent Monin Date: Sun, 4 May 2014 13:54:05 +0200 Subject: [PATCH 061/212] Convert most functions to class methods --- picard/coverart.py | 433 +++++++++++++++++++++++---------------------- 1 file changed, 218 insertions(+), 215 deletions(-) diff --git a/picard/coverart.py b/picard/coverart.py index ad6fb7621..1fc2369ec 100644 --- a/picard/coverart.py +++ b/picard/coverart.py @@ -74,77 +74,6 @@ def _coverart_http_error(album, http): album.error_append(u'Coverart error: %s' % (unicode(http.errorString()))) -def _coverart_downloaded(coverartobj, album, metadata, release, coverinfos, data, http, error): - album._requests -= 1 - - if error or len(data) < 1000: - if error: - _coverart_http_error(album, http) - else: - QObject.tagger.window.set_statusbar_message( - N_("Cover art of type '%(type)s' downloaded for %(albumid)s from %(host)s"), - { - 'type': coverinfos['type'].title(), - 'albumid': album.id, - 'host': coverinfos['host'] - } - ) - mime = mimetype.get_from_data(data, default="image/jpeg") - - try: - metadata.make_and_add_image(mime, data, - imagetype=coverinfos['type'], - comment=coverinfos['desc']) - for track in album._new_tracks: - track.metadata.make_and_add_image(mime, data, - imagetype=coverinfos['type'], - comment=coverinfos['desc']) - except (IOError, OSError) as e: - album.error_append(e.message) - album._finalize_loading(error=True) - # It doesn't make sense to store/download more images if we can't - # save them in the temporary folder, abort. - return - - # If the image already was a front image, there might still be some - # other front images in the try_list - remove them. - if is_front_image(coverinfos): - for item in coverartobj.try_list[:]: - if is_front_image(item) and 'archive.org' not in item['host']: - # Hosts other than archive.org only provide front images - coverartobj.try_list.remove(item) - _walk_try_list(coverartobj, album, metadata, release) - - -def _caa_json_downloaded(coverartobj, album, metadata, release, data, http, error): - album._requests -= 1 - caa_front_found = False - if error: - _coverart_http_error(album, http) - else: - try: - caa_data = json.loads(data) - except ValueError: - log.debug("Invalid JSON: %s", http.url().toString()) - else: - caa_types = config.setting["caa_image_types"] - caa_types = map(unicode.lower, caa_types) - for image in caa_data["images"]: - if config.setting["caa_approved_only"] and not image["approved"]: - continue - if not image["types"] and "unknown" in caa_types: - image["types"] = [u"Unknown"] - imagetypes = map(unicode.lower, image["types"]) - for imagetype in imagetypes: - if imagetype == "front": - caa_front_found = True - if imagetype in caa_types: - _caa_append_image_to_trylist(coverartobj, image) - break - - if error or not caa_front_found: - _fill_try_list(coverartobj, album, release) - _walk_try_list(coverartobj, album, metadata, release) _CAA_THUMBNAIL_SIZE_MAP = { 0: "small", @@ -152,149 +81,6 @@ _CAA_THUMBNAIL_SIZE_MAP = { } -def _caa_append_image_to_trylist(coverartobj, imagedata): - """Adds URLs to `try_list` depending on the users CAA image size settings.""" - imagesize = config.setting["caa_image_size"] - thumbsize = _CAA_THUMBNAIL_SIZE_MAP.get(imagesize, None) - if thumbsize is None: - url = QUrl(imagedata["image"]) - else: - url = QUrl(imagedata["thumbnails"][thumbsize]) - extras = { - 'type': imagedata["types"][0].lower(), # FIXME: we pass only 1 type - 'desc': imagedata["comment"], - 'front': imagedata['front'], # front image indicator from CAA - } - _try_list_append_image_url(coverartobj, url, extras) - - -def coverart_init(coverartobj, album, metadata, release) - # MB web service indicates if CAA has artwork - # http://tickets.musicbrainz.org/browse/MBS-4536 - has_caa_artwork = False - caa_types = map(unicode.lower, config.setting["caa_image_types"]) - - if 'cover_art_archive' in release.children: - caa_node = release.children['cover_art_archive'][0] - has_caa_artwork = (caa_node.artwork[0].text == 'true') - has_front = 'front' in caa_types - has_back = 'back' in caa_types - - if len(caa_types) == 2 and (has_front or has_back): - # The OR cases are there to still download and process the CAA - # JSON file if front or back is enabled but not in the CAA and - # another type (that's neither front nor back) is enabled. - # For example, if both front and booklet are enabled and the - # CAA only has booklet images, the front element in the XML - # from the webservice will be false (thus front_in_caa is False - # as well) but it's still necessary to download the booklet - # images by using the fact that back is enabled but there are - # no back images in the CAA. - front_in_caa = caa_node.front[0].text == 'true' or not has_front - back_in_caa = caa_node.back[0].text == 'true' or not has_back - has_caa_artwork = has_caa_artwork and (front_in_caa or back_in_caa) - - elif len(caa_types) == 1 and (has_front or has_back): - front_in_caa = caa_node.front[0].text == 'true' and has_front - back_in_caa = caa_node.back[0].text == 'true' and has_back - has_caa_artwork = has_caa_artwork and (front_in_caa or back_in_caa) - - if config.setting['ca_provider_use_caa'] and has_caa_artwork\ - and len(caa_types) > 0: - log.debug("There are suitable images in the cover art archive for %s" - % release.id) - album._requests += 1 - album.tagger.xmlws.download( - CAA_HOST, CAA_PORT, "/release/%s/" % - metadata["musicbrainz_albumid"], - partial(_caa_json_downloaded, coverartobj, album, metadata, release), - priority=True, important=False) - else: - log.debug("There are no suitable images in the cover art archive for %s" - % release.id) - _fill_try_list(coverartobj, album, release) - _walk_try_list(coverartobj, album, metadata, release) - - -def _fill_try_list(coverartobj, album, release): - """Fills ``try_list`` by looking at the relationships in ``release``.""" - use_whitelist = config.setting['ca_provider_use_whitelist'] - use_amazon = config.setting['ca_provider_use_amazon'] - if not (use_whitelist or use_amazon): - return - try: - if 'relation_list' in release.children: - for relation_list in release.relation_list: - if relation_list.target_type == 'url': - for relation in relation_list.relation: - # Use the URL of a cover art link directly - if use_whitelist \ - and (relation.type == 'cover art link' or - relation.type == 'has_cover_art_at'): - url = QUrl(relation.target[0].text) - _try_list_append_image_url(coverartobj, url) - elif use_amazon \ - and (relation.type == 'amazon asin' or - relation.type == 'has_Amazon_ASIN'): - _process_asin_relation(coverartobj, relation) - except AttributeError: - album.error_append(traceback.format_exc()) - - -def _walk_try_list(coverartobj, album, metadata, release): - """Downloads each item in ``try_list``. If there are none left, loading of - ``album`` will be finalized.""" - if len(coverartobj.try_list) == 0: - album._finalize_loading(None) - elif album.id not in album.tagger.albums: - return - else: - # We still have some items to try! - album._requests += 1 - coverinfos = coverartobj.try_list.pop(0) - QObject.tagger.window.set_statusbar_message( - N_("Downloading cover art of type '%(type)s' for %(albumid)s from %(host)s ..."), - { - 'type': coverinfos['type'], - 'albumid': album.id, - 'host': coverinfos['host'] - } - ) - album.tagger.xmlws.download( - coverinfos['host'], coverinfos['port'], coverinfos['path'], - partial(_coverart_downloaded, coverartobj, album, metadata, release, coverinfos), - priority=True, important=False) - - -def _process_asin_relation(coverartobj, relation): - amz = parse_amazon_url(relation.target[0].text) - if amz is not None: - if amz['host'] in AMAZON_SERVER: - serverInfo = AMAZON_SERVER[amz['host']] - else: - serverInfo = AMAZON_SERVER['amazon.com'] - host = serverInfo['server'] - path_l = AMAZON_IMAGE_PATH % (amz['asin'], serverInfo['id'], 'L') - path_m = AMAZON_IMAGE_PATH % (amz['asin'], serverInfo['id'], 'M') - _try_list_append_image_url(coverartobj, QUrl("http://%s:%s" % (host, path_l))) - _try_list_append_image_url(coverartobj, QUrl("http://%s:%s" % (host, path_m))) - - -def _try_list_append_image_url(coverartobj, parsedUrl, extras=None): - path = str(parsedUrl.encodedPath()) - if parsedUrl.hasQuery(): - path += '?' + parsedUrl.encodedQuery() - coverinfos = { - 'host': str(parsedUrl.host()), - 'port': parsedUrl.port(80), - 'path': str(path), - 'type': 'front', - 'desc': '' - } - if extras is not None: - coverinfos.update(extras) - log.debug("Adding %s image %s", coverinfos['type'], parsedUrl.toString()) - coverartobj.try_list.append(coverinfos) class CoverArt: @@ -302,6 +88,223 @@ class CoverArt: def __init__(self): self.try_list = [] + def _coverart_downloaded(self, album, metadata, release, coverinfos, data, http, error): + album._requests -= 1 + + if error or len(data) < 1000: + if error: + _coverart_http_error(album, http) + else: + QObject.tagger.window.set_statusbar_message( + N_("Cover art of type '%(type)s' downloaded for %(albumid)s from %(host)s"), + { + 'type': coverinfos['type'].title(), + 'albumid': album.id, + 'host': coverinfos['host'] + } + ) + mime = mimetype.get_from_data(data, default="image/jpeg") + + try: + metadata.make_and_add_image(mime, data, + imagetype=coverinfos['type'], + comment=coverinfos['desc']) + for track in album._new_tracks: + track.metadata.make_and_add_image(mime, data, + imagetype=coverinfos['type'], + comment=coverinfos['desc']) + except (IOError, OSError) as e: + album.error_append(e.message) + album._finalize_loading(error=True) + # It doesn't make sense to store/download more images if we can't + # save them in the temporary folder, abort. + return + + # If the image already was a front image, there might still be some + # other front images in the try_list - remove them. + if is_front_image(coverinfos): + for item in self.try_list[:]: + if is_front_image(item) and 'archive.org' not in item['host']: + # Hosts other than archive.org only provide front images + self.try_list.remove(item) + self._walk_try_list(album, metadata, release) + + + def _caa_json_downloaded(self, album, metadata, release, data, http, error): + album._requests -= 1 + caa_front_found = False + if error: + _coverart_http_error(album, http) + else: + try: + caa_data = json.loads(data) + except ValueError: + log.debug("Invalid JSON: %s", http.url().toString()) + else: + caa_types = config.setting["caa_image_types"] + caa_types = map(unicode.lower, caa_types) + for image in caa_data["images"]: + if config.setting["caa_approved_only"] and not image["approved"]: + continue + if not image["types"] and "unknown" in caa_types: + image["types"] = [u"Unknown"] + imagetypes = map(unicode.lower, image["types"]) + for imagetype in imagetypes: + if imagetype == "front": + caa_front_found = True + if imagetype in caa_types: + self._caa_append_image_to_trylist(image) + break + + if error or not caa_front_found: + self._fill_try_list(album, release) + self._walk_try_list(album, metadata, release) + + + def _caa_append_image_to_trylist(self, imagedata): + """Adds URLs to `try_list` depending on the users CAA image size settings.""" + imagesize = config.setting["caa_image_size"] + thumbsize = _CAA_THUMBNAIL_SIZE_MAP.get(imagesize, None) + if thumbsize is None: + url = QUrl(imagedata["image"]) + else: + url = QUrl(imagedata["thumbnails"][thumbsize]) + extras = { + 'type': imagedata["types"][0].lower(), # FIXME: we pass only 1 type + 'desc': imagedata["comment"], + 'front': imagedata['front'], # front image indicator from CAA + } + self._try_list_append_image_url(url, extras) + + + def coverart_init(self, album, metadata, release): + # MB web service indicates if CAA has artwork + # http://tickets.musicbrainz.org/browse/MBS-4536 + has_caa_artwork = False + caa_types = map(unicode.lower, config.setting["caa_image_types"]) + + if 'cover_art_archive' in release.children: + caa_node = release.children['cover_art_archive'][0] + has_caa_artwork = (caa_node.artwork[0].text == 'true') + has_front = 'front' in caa_types + has_back = 'back' in caa_types + + if len(caa_types) == 2 and (has_front or has_back): + # The OR cases are there to still download and process the CAA + # JSON file if front or back is enabled but not in the CAA and + # another type (that's neither front nor back) is enabled. + # For example, if both front and booklet are enabled and the + # CAA only has booklet images, the front element in the XML + # from the webservice will be false (thus front_in_caa is False + # as well) but it's still necessary to download the booklet + # images by using the fact that back is enabled but there are + # no back images in the CAA. + front_in_caa = caa_node.front[0].text == 'true' or not has_front + back_in_caa = caa_node.back[0].text == 'true' or not has_back + has_caa_artwork = has_caa_artwork and (front_in_caa or back_in_caa) + + elif len(caa_types) == 1 and (has_front or has_back): + front_in_caa = caa_node.front[0].text == 'true' and has_front + back_in_caa = caa_node.back[0].text == 'true' and has_back + has_caa_artwork = has_caa_artwork and (front_in_caa or back_in_caa) + + if config.setting['ca_provider_use_caa'] and has_caa_artwork\ + and len(caa_types) > 0: + log.debug("There are suitable images in the cover art archive for %s" + % release.id) + album._requests += 1 + album.tagger.xmlws.download( + CAA_HOST, CAA_PORT, "/release/%s/" % + metadata["musicbrainz_albumid"], + partial(self._caa_json_downloaded, album, metadata, release), + priority=True, important=False) + else: + log.debug("There are no suitable images in the cover art archive for %s" + % release.id) + self._fill_try_list(album, release) + self._walk_try_list(album, metadata, release) + + + def _fill_try_list(self, album, release): + """Fills ``try_list`` by looking at the relationships in ``release``.""" + use_whitelist = config.setting['ca_provider_use_whitelist'] + use_amazon = config.setting['ca_provider_use_amazon'] + if not (use_whitelist or use_amazon): + return + try: + if 'relation_list' in release.children: + for relation_list in release.relation_list: + if relation_list.target_type == 'url': + for relation in relation_list.relation: + # Use the URL of a cover art link directly + if use_whitelist \ + and (relation.type == 'cover art link' or + relation.type == 'has_cover_art_at'): + url = QUrl(relation.target[0].text) + self._try_list_append_image_url(url) + elif use_amazon \ + and (relation.type == 'amazon asin' or + relation.type == 'has_Amazon_ASIN'): + self._process_asin_relation(relation) + except AttributeError: + album.error_append(traceback.format_exc()) + + + def _walk_try_list(self, album, metadata, release): + """Downloads each item in ``try_list``. If there are none left, loading of + ``album`` will be finalized.""" + if len(self.try_list) == 0: + album._finalize_loading(None) + elif album.id not in album.tagger.albums: + return + else: + # We still have some items to try! + album._requests += 1 + coverinfos = self.try_list.pop(0) + QObject.tagger.window.set_statusbar_message( + N_("Downloading cover art of type '%(type)s' for %(albumid)s from %(host)s ..."), + { + 'type': coverinfos['type'], + 'albumid': album.id, + 'host': coverinfos['host'] + } + ) + album.tagger.xmlws.download( + coverinfos['host'], coverinfos['port'], coverinfos['path'], + partial(self._coverart_downloaded, album, metadata, release, coverinfos), + priority=True, important=False) + + + def _process_asin_relation(self, relation): + amz = parse_amazon_url(relation.target[0].text) + if amz is not None: + if amz['host'] in AMAZON_SERVER: + serverInfo = AMAZON_SERVER[amz['host']] + else: + serverInfo = AMAZON_SERVER['amazon.com'] + host = serverInfo['server'] + path_l = AMAZON_IMAGE_PATH % (amz['asin'], serverInfo['id'], 'L') + path_m = AMAZON_IMAGE_PATH % (amz['asin'], serverInfo['id'], 'M') + self._try_list_append_image_url(QUrl("http://%s:%s" % (host, path_l))) + self._try_list_append_image_url(QUrl("http://%s:%s" % (host, path_m))) + + + def _try_list_append_image_url(self, parsedUrl, extras=None): + path = str(parsedUrl.encodedPath()) + if parsedUrl.hasQuery(): + path += '?' + parsedUrl.encodedQuery() + coverinfos = { + 'host': str(parsedUrl.host()), + 'port': parsedUrl.port(80), + 'path': str(path), + 'type': 'front', + 'desc': '' + } + if extras is not None: + coverinfos.update(extras) + log.debug("Adding %s image %s", coverinfos['type'], parsedUrl.toString()) + self.try_list.append(coverinfos) + def coverart(album, metadata, release, coverartobj=None): """ Gets all cover art URLs from the metadata and then attempts to @@ -313,4 +316,4 @@ def coverart(album, metadata, release, coverartobj=None): coverartobj = CoverArt() - coverart_init(coverartobj, album, metadata, release) + coverartobj.coverart_init(album, metadata, release) From 48bd904cf8cf9452111c928bfd71c5bcb3c015d7 Mon Sep 17 00:00:00 2001 From: Laurent Monin Date: Sun, 4 May 2014 13:57:30 +0200 Subject: [PATCH 062/212] Move coverart_init() code to __init__() --- picard/coverart.py | 100 ++++++++++++++++++++++----------------------- 1 file changed, 48 insertions(+), 52 deletions(-) diff --git a/picard/coverart.py b/picard/coverart.py index 1fc2369ec..129ec9da5 100644 --- a/picard/coverart.py +++ b/picard/coverart.py @@ -85,9 +85,55 @@ _CAA_THUMBNAIL_SIZE_MAP = { class CoverArt: - def __init__(self): + def __init__(self, album, metadata, release): self.try_list = [] + # MB web service indicates if CAA has artwork + # http://tickets.musicbrainz.org/browse/MBS-4536 + has_caa_artwork = False + caa_types = map(unicode.lower, config.setting["caa_image_types"]) + + if 'cover_art_archive' in release.children: + caa_node = release.children['cover_art_archive'][0] + has_caa_artwork = (caa_node.artwork[0].text == 'true') + has_front = 'front' in caa_types + has_back = 'back' in caa_types + + if len(caa_types) == 2 and (has_front or has_back): + # The OR cases are there to still download and process the CAA + # JSON file if front or back is enabled but not in the CAA and + # another type (that's neither front nor back) is enabled. + # For example, if both front and booklet are enabled and the + # CAA only has booklet images, the front element in the XML + # from the webservice will be false (thus front_in_caa is False + # as well) but it's still necessary to download the booklet + # images by using the fact that back is enabled but there are + # no back images in the CAA. + front_in_caa = caa_node.front[0].text == 'true' or not has_front + back_in_caa = caa_node.back[0].text == 'true' or not has_back + has_caa_artwork = has_caa_artwork and (front_in_caa or back_in_caa) + + elif len(caa_types) == 1 and (has_front or has_back): + front_in_caa = caa_node.front[0].text == 'true' and has_front + back_in_caa = caa_node.back[0].text == 'true' and has_back + has_caa_artwork = has_caa_artwork and (front_in_caa or back_in_caa) + + if config.setting['ca_provider_use_caa'] and has_caa_artwork\ + and len(caa_types) > 0: + log.debug("There are suitable images in the cover art archive for %s" + % release.id) + album._requests += 1 + album.tagger.xmlws.download( + CAA_HOST, CAA_PORT, "/release/%s/" % + metadata["musicbrainz_albumid"], + partial(self._caa_json_downloaded, album, metadata, release), + priority=True, important=False) + else: + log.debug("There are no suitable images in the cover art archive for %s" + % release.id) + self._fill_try_list(album, release) + self._walk_try_list(album, metadata, release) + def _coverart_downloaded(self, album, metadata, release, coverinfos, data, http, error): album._requests -= 1 @@ -177,54 +223,6 @@ class CoverArt: self._try_list_append_image_url(url, extras) - def coverart_init(self, album, metadata, release): - # MB web service indicates if CAA has artwork - # http://tickets.musicbrainz.org/browse/MBS-4536 - has_caa_artwork = False - caa_types = map(unicode.lower, config.setting["caa_image_types"]) - - if 'cover_art_archive' in release.children: - caa_node = release.children['cover_art_archive'][0] - has_caa_artwork = (caa_node.artwork[0].text == 'true') - has_front = 'front' in caa_types - has_back = 'back' in caa_types - - if len(caa_types) == 2 and (has_front or has_back): - # The OR cases are there to still download and process the CAA - # JSON file if front or back is enabled but not in the CAA and - # another type (that's neither front nor back) is enabled. - # For example, if both front and booklet are enabled and the - # CAA only has booklet images, the front element in the XML - # from the webservice will be false (thus front_in_caa is False - # as well) but it's still necessary to download the booklet - # images by using the fact that back is enabled but there are - # no back images in the CAA. - front_in_caa = caa_node.front[0].text == 'true' or not has_front - back_in_caa = caa_node.back[0].text == 'true' or not has_back - has_caa_artwork = has_caa_artwork and (front_in_caa or back_in_caa) - - elif len(caa_types) == 1 and (has_front or has_back): - front_in_caa = caa_node.front[0].text == 'true' and has_front - back_in_caa = caa_node.back[0].text == 'true' and has_back - has_caa_artwork = has_caa_artwork and (front_in_caa or back_in_caa) - - if config.setting['ca_provider_use_caa'] and has_caa_artwork\ - and len(caa_types) > 0: - log.debug("There are suitable images in the cover art archive for %s" - % release.id) - album._requests += 1 - album.tagger.xmlws.download( - CAA_HOST, CAA_PORT, "/release/%s/" % - metadata["musicbrainz_albumid"], - partial(self._caa_json_downloaded, album, metadata, release), - priority=True, important=False) - else: - log.debug("There are no suitable images in the cover art archive for %s" - % release.id) - self._fill_try_list(album, release) - self._walk_try_list(album, metadata, release) - - def _fill_try_list(self, album, release): """Fills ``try_list`` by looking at the relationships in ``release``.""" use_whitelist = config.setting['ca_provider_use_whitelist'] @@ -314,6 +312,4 @@ def coverart(album, metadata, release, coverartobj=None): if coverartobj is not None: return - coverartobj = CoverArt() - - coverartobj.coverart_init(album, metadata, release) + coverartobj = CoverArt(album, metadata, release) From 007c30dd214164bcc450183313bc2f6b52ed84a2 Mon Sep 17 00:00:00 2001 From: Laurent Monin Date: Sun, 4 May 2014 14:01:30 +0200 Subject: [PATCH 063/212] Convert album argument to class property --- picard/coverart.py | 55 +++++++++++++++++++++++----------------------- 1 file changed, 28 insertions(+), 27 deletions(-) diff --git a/picard/coverart.py b/picard/coverart.py index 129ec9da5..6290d38e4 100644 --- a/picard/coverart.py +++ b/picard/coverart.py @@ -87,6 +87,7 @@ class CoverArt: def __init__(self, album, metadata, release): self.try_list = [] + self.album = album # MB web service indicates if CAA has artwork # http://tickets.musicbrainz.org/browse/MBS-4536 @@ -122,30 +123,30 @@ class CoverArt: and len(caa_types) > 0: log.debug("There are suitable images in the cover art archive for %s" % release.id) - album._requests += 1 - album.tagger.xmlws.download( + self.album._requests += 1 + self.album.tagger.xmlws.download( CAA_HOST, CAA_PORT, "/release/%s/" % metadata["musicbrainz_albumid"], - partial(self._caa_json_downloaded, album, metadata, release), + partial(self._caa_json_downloaded, metadata, release), priority=True, important=False) else: log.debug("There are no suitable images in the cover art archive for %s" % release.id) - self._fill_try_list(album, release) - self._walk_try_list(album, metadata, release) + self._fill_try_list(release) + self._walk_try_list(metadata, release) - def _coverart_downloaded(self, album, metadata, release, coverinfos, data, http, error): - album._requests -= 1 + def _coverart_downloaded(self, metadata, release, coverinfos, data, http, error): + self.album._requests -= 1 if error or len(data) < 1000: if error: - _coverart_http_error(album, http) + _coverart_http_error(self.album, http) else: QObject.tagger.window.set_statusbar_message( N_("Cover art of type '%(type)s' downloaded for %(albumid)s from %(host)s"), { 'type': coverinfos['type'].title(), - 'albumid': album.id, + 'albumid': self.album.id, 'host': coverinfos['host'] } ) @@ -155,13 +156,13 @@ class CoverArt: metadata.make_and_add_image(mime, data, imagetype=coverinfos['type'], comment=coverinfos['desc']) - for track in album._new_tracks: + for track in self.album._new_tracks: track.metadata.make_and_add_image(mime, data, imagetype=coverinfos['type'], comment=coverinfos['desc']) except (IOError, OSError) as e: - album.error_append(e.message) - album._finalize_loading(error=True) + self.album.error_append(e.message) + self.album._finalize_loading(error=True) # It doesn't make sense to store/download more images if we can't # save them in the temporary folder, abort. return @@ -173,14 +174,14 @@ class CoverArt: if is_front_image(item) and 'archive.org' not in item['host']: # Hosts other than archive.org only provide front images self.try_list.remove(item) - self._walk_try_list(album, metadata, release) + self._walk_try_list(metadata, release) - def _caa_json_downloaded(self, album, metadata, release, data, http, error): - album._requests -= 1 + def _caa_json_downloaded(self, metadata, release, data, http, error): + self.album._requests -= 1 caa_front_found = False if error: - _coverart_http_error(album, http) + _coverart_http_error(self.album, http) else: try: caa_data = json.loads(data) @@ -203,8 +204,8 @@ class CoverArt: break if error or not caa_front_found: - self._fill_try_list(album, release) - self._walk_try_list(album, metadata, release) + self._fill_try_list(release) + self._walk_try_list(metadata, release) def _caa_append_image_to_trylist(self, imagedata): @@ -223,7 +224,7 @@ class CoverArt: self._try_list_append_image_url(url, extras) - def _fill_try_list(self, album, release): + def _fill_try_list(self, release): """Fills ``try_list`` by looking at the relationships in ``release``.""" use_whitelist = config.setting['ca_provider_use_whitelist'] use_amazon = config.setting['ca_provider_use_amazon'] @@ -245,31 +246,31 @@ class CoverArt: relation.type == 'has_Amazon_ASIN'): self._process_asin_relation(relation) except AttributeError: - album.error_append(traceback.format_exc()) + self.album.error_append(traceback.format_exc()) - def _walk_try_list(self, album, metadata, release): + def _walk_try_list(self, metadata, release): """Downloads each item in ``try_list``. If there are none left, loading of ``album`` will be finalized.""" if len(self.try_list) == 0: - album._finalize_loading(None) - elif album.id not in album.tagger.albums: + self.album._finalize_loading(None) + elif self.album.id not in self.album.tagger.albums: return else: # We still have some items to try! - album._requests += 1 + self.album._requests += 1 coverinfos = self.try_list.pop(0) QObject.tagger.window.set_statusbar_message( N_("Downloading cover art of type '%(type)s' for %(albumid)s from %(host)s ..."), { 'type': coverinfos['type'], - 'albumid': album.id, + 'albumid': self.album.id, 'host': coverinfos['host'] } ) - album.tagger.xmlws.download( + self.album.tagger.xmlws.download( coverinfos['host'], coverinfos['port'], coverinfos['path'], - partial(self._coverart_downloaded, album, metadata, release, coverinfos), + partial(self._coverart_downloaded, metadata, release, coverinfos), priority=True, important=False) From d6cd3eb467ac2795ef3bcebfb8aa7d3b90e92a7b Mon Sep 17 00:00:00 2001 From: Laurent Monin Date: Sun, 4 May 2014 14:05:10 +0200 Subject: [PATCH 064/212] Convert metadata argument to class property --- picard/coverart.py | 21 +++++++++++---------- 1 file changed, 11 insertions(+), 10 deletions(-) diff --git a/picard/coverart.py b/picard/coverart.py index 6290d38e4..ff9298f12 100644 --- a/picard/coverart.py +++ b/picard/coverart.py @@ -88,6 +88,7 @@ class CoverArt: def __init__(self, album, metadata, release): self.try_list = [] self.album = album + self.metadata = metadata # MB web service indicates if CAA has artwork # http://tickets.musicbrainz.org/browse/MBS-4536 @@ -126,16 +127,16 @@ class CoverArt: self.album._requests += 1 self.album.tagger.xmlws.download( CAA_HOST, CAA_PORT, "/release/%s/" % - metadata["musicbrainz_albumid"], - partial(self._caa_json_downloaded, metadata, release), + self.metadata["musicbrainz_albumid"], + partial(self._caa_json_downloaded, release), priority=True, important=False) else: log.debug("There are no suitable images in the cover art archive for %s" % release.id) self._fill_try_list(release) - self._walk_try_list(metadata, release) + self._walk_try_list(release) - def _coverart_downloaded(self, metadata, release, coverinfos, data, http, error): + def _coverart_downloaded(self, release, coverinfos, data, http, error): self.album._requests -= 1 if error or len(data) < 1000: @@ -153,7 +154,7 @@ class CoverArt: mime = mimetype.get_from_data(data, default="image/jpeg") try: - metadata.make_and_add_image(mime, data, + self.metadata.make_and_add_image(mime, data, imagetype=coverinfos['type'], comment=coverinfos['desc']) for track in self.album._new_tracks: @@ -174,10 +175,10 @@ class CoverArt: if is_front_image(item) and 'archive.org' not in item['host']: # Hosts other than archive.org only provide front images self.try_list.remove(item) - self._walk_try_list(metadata, release) + self._walk_try_list(release) - def _caa_json_downloaded(self, metadata, release, data, http, error): + def _caa_json_downloaded(self, release, data, http, error): self.album._requests -= 1 caa_front_found = False if error: @@ -205,7 +206,7 @@ class CoverArt: if error or not caa_front_found: self._fill_try_list(release) - self._walk_try_list(metadata, release) + self._walk_try_list(release) def _caa_append_image_to_trylist(self, imagedata): @@ -249,7 +250,7 @@ class CoverArt: self.album.error_append(traceback.format_exc()) - def _walk_try_list(self, metadata, release): + def _walk_try_list(self, release): """Downloads each item in ``try_list``. If there are none left, loading of ``album`` will be finalized.""" if len(self.try_list) == 0: @@ -270,7 +271,7 @@ class CoverArt: ) self.album.tagger.xmlws.download( coverinfos['host'], coverinfos['port'], coverinfos['path'], - partial(self._coverart_downloaded, metadata, release, coverinfos), + partial(self._coverart_downloaded, release, coverinfos), priority=True, important=False) From 7ab4677a4e6adcdd6de704879aa8270c5ae93407 Mon Sep 17 00:00:00 2001 From: Laurent Monin Date: Sun, 4 May 2014 14:07:36 +0200 Subject: [PATCH 065/212] Move _coverart_http_error() to class CoverArt --- picard/coverart.py | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/picard/coverart.py b/picard/coverart.py index ff9298f12..1eca4db39 100644 --- a/picard/coverart.py +++ b/picard/coverart.py @@ -70,11 +70,6 @@ AMAZON_SERVER = { AMAZON_IMAGE_PATH = '/images/P/%s.%s.%sZZZZZZZ.jpg' -def _coverart_http_error(album, http): - album.error_append(u'Coverart error: %s' % (unicode(http.errorString()))) - - - _CAA_THUMBNAIL_SIZE_MAP = { 0: "small", 1: "large", @@ -136,12 +131,15 @@ class CoverArt: self._fill_try_list(release) self._walk_try_list(release) + def _coverart_http_error(self, http): + self.album.error_append(u'Coverart error: %s' % (unicode(http.errorString()))) + def _coverart_downloaded(self, release, coverinfos, data, http, error): self.album._requests -= 1 if error or len(data) < 1000: if error: - _coverart_http_error(self.album, http) + self._coverart_http_error(http) else: QObject.tagger.window.set_statusbar_message( N_("Cover art of type '%(type)s' downloaded for %(albumid)s from %(host)s"), @@ -182,7 +180,7 @@ class CoverArt: self.album._requests -= 1 caa_front_found = False if error: - _coverart_http_error(self.album, http) + self._coverart_http_error(http) else: try: caa_data = json.loads(data) From 6cdecc328e143a355ea0ef9e3be4eb5b751bca85 Mon Sep 17 00:00:00 2001 From: Laurent Monin Date: Sun, 4 May 2014 14:10:55 +0200 Subject: [PATCH 066/212] Convert release argument to class property --- picard/coverart.py | 35 ++++++++++++++++++----------------- 1 file changed, 18 insertions(+), 17 deletions(-) diff --git a/picard/coverart.py b/picard/coverart.py index 1eca4db39..d3861b3e2 100644 --- a/picard/coverart.py +++ b/picard/coverart.py @@ -84,14 +84,15 @@ class CoverArt: self.try_list = [] self.album = album self.metadata = metadata + self.release = release # MB web service indicates if CAA has artwork # http://tickets.musicbrainz.org/browse/MBS-4536 has_caa_artwork = False caa_types = map(unicode.lower, config.setting["caa_image_types"]) - if 'cover_art_archive' in release.children: - caa_node = release.children['cover_art_archive'][0] + if 'cover_art_archive' in self.release.children: + caa_node = self.release.children['cover_art_archive'][0] has_caa_artwork = (caa_node.artwork[0].text == 'true') has_front = 'front' in caa_types has_back = 'back' in caa_types @@ -118,23 +119,23 @@ class CoverArt: if config.setting['ca_provider_use_caa'] and has_caa_artwork\ and len(caa_types) > 0: log.debug("There are suitable images in the cover art archive for %s" - % release.id) + % self.release.id) self.album._requests += 1 self.album.tagger.xmlws.download( CAA_HOST, CAA_PORT, "/release/%s/" % self.metadata["musicbrainz_albumid"], - partial(self._caa_json_downloaded, release), + partial(self._caa_json_downloaded), priority=True, important=False) else: log.debug("There are no suitable images in the cover art archive for %s" - % release.id) - self._fill_try_list(release) - self._walk_try_list(release) + % self.release.id) + self._fill_try_list() + self._walk_try_list() def _coverart_http_error(self, http): self.album.error_append(u'Coverart error: %s' % (unicode(http.errorString()))) - def _coverart_downloaded(self, release, coverinfos, data, http, error): + def _coverart_downloaded(self, coverinfos, data, http, error): self.album._requests -= 1 if error or len(data) < 1000: @@ -173,10 +174,10 @@ class CoverArt: if is_front_image(item) and 'archive.org' not in item['host']: # Hosts other than archive.org only provide front images self.try_list.remove(item) - self._walk_try_list(release) + self._walk_try_list() - def _caa_json_downloaded(self, release, data, http, error): + def _caa_json_downloaded(self, data, http, error): self.album._requests -= 1 caa_front_found = False if error: @@ -203,8 +204,8 @@ class CoverArt: break if error or not caa_front_found: - self._fill_try_list(release) - self._walk_try_list(release) + self._fill_try_list() + self._walk_try_list() def _caa_append_image_to_trylist(self, imagedata): @@ -223,15 +224,15 @@ class CoverArt: self._try_list_append_image_url(url, extras) - def _fill_try_list(self, release): + def _fill_try_list(self): """Fills ``try_list`` by looking at the relationships in ``release``.""" use_whitelist = config.setting['ca_provider_use_whitelist'] use_amazon = config.setting['ca_provider_use_amazon'] if not (use_whitelist or use_amazon): return try: - if 'relation_list' in release.children: - for relation_list in release.relation_list: + if 'relation_list' in self.release.children: + for relation_list in self.release.relation_list: if relation_list.target_type == 'url': for relation in relation_list.relation: # Use the URL of a cover art link directly @@ -248,7 +249,7 @@ class CoverArt: self.album.error_append(traceback.format_exc()) - def _walk_try_list(self, release): + def _walk_try_list(self): """Downloads each item in ``try_list``. If there are none left, loading of ``album`` will be finalized.""" if len(self.try_list) == 0: @@ -269,7 +270,7 @@ class CoverArt: ) self.album.tagger.xmlws.download( coverinfos['host'], coverinfos['port'], coverinfos['path'], - partial(self._coverart_downloaded, release, coverinfos), + partial(self._coverart_downloaded, coverinfos), priority=True, important=False) From f3edf6cefe695c04fdad1fcb8bb258f45c7a900e Mon Sep 17 00:00:00 2001 From: Laurent Monin Date: Sun, 4 May 2014 14:17:02 +0200 Subject: [PATCH 067/212] Drop '_try_list' prefix/suffix and shorten method names --- picard/coverart.py | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/picard/coverart.py b/picard/coverart.py index d3861b3e2..52f4c3f2b 100644 --- a/picard/coverart.py +++ b/picard/coverart.py @@ -129,8 +129,8 @@ class CoverArt: else: log.debug("There are no suitable images in the cover art archive for %s" % self.release.id) - self._fill_try_list() - self._walk_try_list() + self._fill() + self._walk() def _coverart_http_error(self, http): self.album.error_append(u'Coverart error: %s' % (unicode(http.errorString()))) @@ -174,7 +174,7 @@ class CoverArt: if is_front_image(item) and 'archive.org' not in item['host']: # Hosts other than archive.org only provide front images self.try_list.remove(item) - self._walk_try_list() + self._walk() def _caa_json_downloaded(self, data, http, error): @@ -204,8 +204,8 @@ class CoverArt: break if error or not caa_front_found: - self._fill_try_list() - self._walk_try_list() + self._fill() + self._walk() def _caa_append_image_to_trylist(self, imagedata): @@ -221,10 +221,10 @@ class CoverArt: 'desc': imagedata["comment"], 'front': imagedata['front'], # front image indicator from CAA } - self._try_list_append_image_url(url, extras) + self._append_image_url(url, extras) - def _fill_try_list(self): + def _fill(self): """Fills ``try_list`` by looking at the relationships in ``release``.""" use_whitelist = config.setting['ca_provider_use_whitelist'] use_amazon = config.setting['ca_provider_use_amazon'] @@ -240,7 +240,7 @@ class CoverArt: and (relation.type == 'cover art link' or relation.type == 'has_cover_art_at'): url = QUrl(relation.target[0].text) - self._try_list_append_image_url(url) + self._append_image_url(url) elif use_amazon \ and (relation.type == 'amazon asin' or relation.type == 'has_Amazon_ASIN'): @@ -249,7 +249,7 @@ class CoverArt: self.album.error_append(traceback.format_exc()) - def _walk_try_list(self): + def _walk(self): """Downloads each item in ``try_list``. If there are none left, loading of ``album`` will be finalized.""" if len(self.try_list) == 0: @@ -284,11 +284,11 @@ class CoverArt: host = serverInfo['server'] path_l = AMAZON_IMAGE_PATH % (amz['asin'], serverInfo['id'], 'L') path_m = AMAZON_IMAGE_PATH % (amz['asin'], serverInfo['id'], 'M') - self._try_list_append_image_url(QUrl("http://%s:%s" % (host, path_l))) - self._try_list_append_image_url(QUrl("http://%s:%s" % (host, path_m))) + self._append_image_url(QUrl("http://%s:%s" % (host, path_l))) + self._append_image_url(QUrl("http://%s:%s" % (host, path_m))) - def _try_list_append_image_url(self, parsedUrl, extras=None): + def _append_image_url(self, parsedUrl, extras=None): path = str(parsedUrl.encodedPath()) if parsedUrl.hasQuery(): path += '?' + parsedUrl.encodedQuery() From 139ab5b1e8390b9818f0777848b659faecd487b3 Mon Sep 17 00:00:00 2001 From: Laurent Monin Date: Sun, 4 May 2014 14:25:23 +0200 Subject: [PATCH 068/212] Store accepted CAA types and number of them in class properties --- picard/coverart.py | 19 +++++++++---------- 1 file changed, 9 insertions(+), 10 deletions(-) diff --git a/picard/coverart.py b/picard/coverart.py index 52f4c3f2b..06b744d01 100644 --- a/picard/coverart.py +++ b/picard/coverart.py @@ -85,19 +85,20 @@ class CoverArt: self.album = album self.metadata = metadata self.release = release + self.caa_types = map(unicode.lower, config.setting["caa_image_types"]) + self.len_caa_types = len(self.caa_types) # MB web service indicates if CAA has artwork # http://tickets.musicbrainz.org/browse/MBS-4536 has_caa_artwork = False - caa_types = map(unicode.lower, config.setting["caa_image_types"]) if 'cover_art_archive' in self.release.children: caa_node = self.release.children['cover_art_archive'][0] has_caa_artwork = (caa_node.artwork[0].text == 'true') - has_front = 'front' in caa_types - has_back = 'back' in caa_types + has_front = 'front' in self.caa_types + has_back = 'back' in self.caa_types - if len(caa_types) == 2 and (has_front or has_back): + if self.len_caa_types == 2 and (has_front or has_back): # The OR cases are there to still download and process the CAA # JSON file if front or back is enabled but not in the CAA and # another type (that's neither front nor back) is enabled. @@ -111,13 +112,13 @@ class CoverArt: back_in_caa = caa_node.back[0].text == 'true' or not has_back has_caa_artwork = has_caa_artwork and (front_in_caa or back_in_caa) - elif len(caa_types) == 1 and (has_front or has_back): + elif self.len_caa_types == 1 and (has_front or has_back): front_in_caa = caa_node.front[0].text == 'true' and has_front back_in_caa = caa_node.back[0].text == 'true' and has_back has_caa_artwork = has_caa_artwork and (front_in_caa or back_in_caa) if config.setting['ca_provider_use_caa'] and has_caa_artwork\ - and len(caa_types) > 0: + and self.len_caa_types > 0: log.debug("There are suitable images in the cover art archive for %s" % self.release.id) self.album._requests += 1 @@ -188,18 +189,16 @@ class CoverArt: except ValueError: log.debug("Invalid JSON: %s", http.url().toString()) else: - caa_types = config.setting["caa_image_types"] - caa_types = map(unicode.lower, caa_types) for image in caa_data["images"]: if config.setting["caa_approved_only"] and not image["approved"]: continue - if not image["types"] and "unknown" in caa_types: + if not image["types"] and "unknown" in self.caa_types: image["types"] = [u"Unknown"] imagetypes = map(unicode.lower, image["types"]) for imagetype in imagetypes: if imagetype == "front": caa_front_found = True - if imagetype in caa_types: + if imagetype in self.caa_types: self._caa_append_image_to_trylist(image) break From b5625207c4315c45811eb8470f81b3a14b723192 Mon Sep 17 00:00:00 2001 From: Laurent Monin Date: Sun, 4 May 2014 14:34:25 +0200 Subject: [PATCH 069/212] Tidy up, PEP8 conformance --- picard/coverart.py | 63 +++++++++++++++++++++++++--------------------- 1 file changed, 35 insertions(+), 28 deletions(-) diff --git a/picard/coverart.py b/picard/coverart.py index 06b744d01..ef305cbe0 100644 --- a/picard/coverart.py +++ b/picard/coverart.py @@ -76,8 +76,6 @@ _CAA_THUMBNAIL_SIZE_MAP = { } - - class CoverArt: def __init__(self, album, metadata, release): @@ -118,23 +116,27 @@ class CoverArt: has_caa_artwork = has_caa_artwork and (front_in_caa or back_in_caa) if config.setting['ca_provider_use_caa'] and has_caa_artwork\ - and self.len_caa_types > 0: + and self.len_caa_types > 0: log.debug("There are suitable images in the cover art archive for %s" - % self.release.id) + % self.release.id) self.album._requests += 1 self.album.tagger.xmlws.download( - CAA_HOST, CAA_PORT, "/release/%s/" % - self.metadata["musicbrainz_albumid"], - partial(self._caa_json_downloaded), - priority=True, important=False) + CAA_HOST, + CAA_PORT, + "/release/%s/" % self.metadata["musicbrainz_albumid"], + self._caa_json_downloaded, + priority=True, + important=False + ) else: log.debug("There are no suitable images in the cover art archive for %s" - % self.release.id) + % self.release.id) self._fill() self._walk() def _coverart_http_error(self, http): - self.album.error_append(u'Coverart error: %s' % (unicode(http.errorString()))) + self.album.error_append(u'Coverart error: %s' % + (unicode(http.errorString()))) def _coverart_downloaded(self, coverinfos, data, http, error): self.album._requests -= 1 @@ -154,13 +156,19 @@ class CoverArt: mime = mimetype.get_from_data(data, default="image/jpeg") try: - self.metadata.make_and_add_image(mime, data, - imagetype=coverinfos['type'], - comment=coverinfos['desc']) + self.metadata.make_and_add_image( + mime, + data, + imagetype=coverinfos['type'], + comment=coverinfos['desc'] + ) for track in self.album._new_tracks: - track.metadata.make_and_add_image(mime, data, - imagetype=coverinfos['type'], - comment=coverinfos['desc']) + track.metadata.make_and_add_image( + mime, + data, + imagetype=coverinfos['type'], + comment=coverinfos['desc'] + ) except (IOError, OSError) as e: self.album.error_append(e.message) self.album._finalize_loading(error=True) @@ -177,7 +185,6 @@ class CoverArt: self.try_list.remove(item) self._walk() - def _caa_json_downloaded(self, data, http, error): self.album._requests -= 1 caa_front_found = False @@ -206,7 +213,6 @@ class CoverArt: self._fill() self._walk() - def _caa_append_image_to_trylist(self, imagedata): """Adds URLs to `try_list` depending on the users CAA image size settings.""" imagesize = config.setting["caa_image_size"] @@ -222,7 +228,6 @@ class CoverArt: } self._append_image_url(url, extras) - def _fill(self): """Fills ``try_list`` by looking at the relationships in ``release``.""" use_whitelist = config.setting['ca_provider_use_whitelist'] @@ -236,18 +241,17 @@ class CoverArt: for relation in relation_list.relation: # Use the URL of a cover art link directly if use_whitelist \ - and (relation.type == 'cover art link' or - relation.type == 'has_cover_art_at'): + and (relation.type == 'cover art link' or + relation.type == 'has_cover_art_at'): url = QUrl(relation.target[0].text) self._append_image_url(url) elif use_amazon \ and (relation.type == 'amazon asin' or - relation.type == 'has_Amazon_ASIN'): + relation.type == 'has_Amazon_ASIN'): self._process_asin_relation(relation) except AttributeError: self.album.error_append(traceback.format_exc()) - def _walk(self): """Downloads each item in ``try_list``. If there are none left, loading of ``album`` will be finalized.""" @@ -268,10 +272,13 @@ class CoverArt: } ) self.album.tagger.xmlws.download( - coverinfos['host'], coverinfos['port'], coverinfos['path'], + coverinfos['host'], + coverinfos['port'], + coverinfos['path'], partial(self._coverart_downloaded, coverinfos), - priority=True, important=False) - + priority=True, + important=False + ) def _process_asin_relation(self, relation): amz = parse_amazon_url(relation.target[0].text) @@ -286,7 +293,6 @@ class CoverArt: self._append_image_url(QUrl("http://%s:%s" % (host, path_l))) self._append_image_url(QUrl("http://%s:%s" % (host, path_m))) - def _append_image_url(self, parsedUrl, extras=None): path = str(parsedUrl.encodedPath()) if parsedUrl.hasQuery(): @@ -300,7 +306,8 @@ class CoverArt: } if extras is not None: coverinfos.update(extras) - log.debug("Adding %s image %s", coverinfos['type'], parsedUrl.toString()) + log.debug("Adding %s image %s", + coverinfos['type'], parsedUrl.toString()) self.try_list.append(coverinfos) From 0908b0e6c97f67fbd7803fe81420a8d944a29850 Mon Sep 17 00:00:00 2001 From: Laurent Monin Date: Sun, 4 May 2014 14:47:02 +0200 Subject: [PATCH 070/212] _caa_append_image_to_trylist() -> _append_caa_image() --- picard/coverart.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/picard/coverart.py b/picard/coverart.py index ef305cbe0..5e707a4bc 100644 --- a/picard/coverart.py +++ b/picard/coverart.py @@ -206,14 +206,14 @@ class CoverArt: if imagetype == "front": caa_front_found = True if imagetype in self.caa_types: - self._caa_append_image_to_trylist(image) + self._append_caa_image(image) break if error or not caa_front_found: self._fill() self._walk() - def _caa_append_image_to_trylist(self, imagedata): + def _append_caa_image(self, imagedata): """Adds URLs to `try_list` depending on the users CAA image size settings.""" imagesize = config.setting["caa_image_size"] thumbsize = _CAA_THUMBNAIL_SIZE_MAP.get(imagesize, None) From 84ffb3f32c8b1c0b171cf46715885162aa8f780d Mon Sep 17 00:00:00 2001 From: Laurent Monin Date: Sun, 4 May 2014 14:47:38 +0200 Subject: [PATCH 071/212] imagedata -> image --- picard/coverart.py | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/picard/coverart.py b/picard/coverart.py index 5e707a4bc..d18c2628b 100644 --- a/picard/coverart.py +++ b/picard/coverart.py @@ -213,18 +213,18 @@ class CoverArt: self._fill() self._walk() - def _append_caa_image(self, imagedata): + def _append_caa_image(self, image): """Adds URLs to `try_list` depending on the users CAA image size settings.""" imagesize = config.setting["caa_image_size"] thumbsize = _CAA_THUMBNAIL_SIZE_MAP.get(imagesize, None) if thumbsize is None: - url = QUrl(imagedata["image"]) + url = QUrl(image["image"]) else: - url = QUrl(imagedata["thumbnails"][thumbsize]) + url = QUrl(image["thumbnails"][thumbsize]) extras = { - 'type': imagedata["types"][0].lower(), # FIXME: we pass only 1 type - 'desc': imagedata["comment"], - 'front': imagedata['front'], # front image indicator from CAA + 'type': image["types"][0].lower(), # FIXME: we pass only 1 type + 'desc': image["comment"], + 'front': image['front'], # front image indicator from CAA } self._append_image_url(url, extras) From c5efe95ff0b6a5b5b2de60732718fc7abacf3a03 Mon Sep 17 00:00:00 2001 From: Laurent Monin Date: Wed, 7 May 2014 18:00:58 +0200 Subject: [PATCH 072/212] Wrap QObject.tagger.window.set_statusbar_message() in new message() class method --- picard/coverart.py | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/picard/coverart.py b/picard/coverart.py index d18c2628b..6c847acfb 100644 --- a/picard/coverart.py +++ b/picard/coverart.py @@ -134,6 +134,9 @@ class CoverArt: self._fill() self._walk() + def message(self, *args, **kwargs): + QObject.tagger.window.set_statusbar_message(*args, **kwargs) + def _coverart_http_error(self, http): self.album.error_append(u'Coverart error: %s' % (unicode(http.errorString()))) @@ -145,7 +148,7 @@ class CoverArt: if error: self._coverart_http_error(http) else: - QObject.tagger.window.set_statusbar_message( + self.message( N_("Cover art of type '%(type)s' downloaded for %(albumid)s from %(host)s"), { 'type': coverinfos['type'].title(), @@ -263,7 +266,7 @@ class CoverArt: # We still have some items to try! self.album._requests += 1 coverinfos = self.try_list.pop(0) - QObject.tagger.window.set_statusbar_message( + self.message( N_("Downloading cover art of type '%(type)s' for %(albumid)s from %(host)s ..."), { 'type': coverinfos['type'], From f7bf4acfa1ea9875b41b66f8ac28391fb792305f Mon Sep 17 00:00:00 2001 From: Laurent Monin Date: Sun, 4 May 2014 15:00:49 +0200 Subject: [PATCH 073/212] Pass url as text to _append_image_url() instead of QUrl object --- picard/coverart.py | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/picard/coverart.py b/picard/coverart.py index 6c847acfb..4fa895442 100644 --- a/picard/coverart.py +++ b/picard/coverart.py @@ -221,9 +221,9 @@ class CoverArt: imagesize = config.setting["caa_image_size"] thumbsize = _CAA_THUMBNAIL_SIZE_MAP.get(imagesize, None) if thumbsize is None: - url = QUrl(image["image"]) + url = image["image"] else: - url = QUrl(image["thumbnails"][thumbsize]) + url = image["thumbnails"][thumbsize] extras = { 'type': image["types"][0].lower(), # FIXME: we pass only 1 type 'desc': image["comment"], @@ -246,7 +246,7 @@ class CoverArt: if use_whitelist \ and (relation.type == 'cover art link' or relation.type == 'has_cover_art_at'): - url = QUrl(relation.target[0].text) + url = relation.target[0].text self._append_image_url(url) elif use_amazon \ and (relation.type == 'amazon asin' or @@ -293,10 +293,11 @@ class CoverArt: host = serverInfo['server'] path_l = AMAZON_IMAGE_PATH % (amz['asin'], serverInfo['id'], 'L') path_m = AMAZON_IMAGE_PATH % (amz['asin'], serverInfo['id'], 'M') - self._append_image_url(QUrl("http://%s:%s" % (host, path_l))) - self._append_image_url(QUrl("http://%s:%s" % (host, path_m))) + self._append_image_url("http://%s:%s" % (host, path_l)) + self._append_image_url("http://%s:%s" % (host, path_m)) - def _append_image_url(self, parsedUrl, extras=None): + def _append_image_url(self, url, extras=None): + parsedUrl = QUrl(url) path = str(parsedUrl.encodedPath()) if parsedUrl.hasQuery(): path += '?' + parsedUrl.encodedQuery() From a43569755d124cfa75766cb13d74af2199ad4932 Mon Sep 17 00:00:00 2001 From: Laurent Monin Date: Sun, 4 May 2014 15:40:45 +0200 Subject: [PATCH 074/212] Introduce CoverArtImage class and simplify code - move is_front_image() from metadata.py to class CoverArtImage as it is only used here --- picard/coverart.py | 101 +++++++++++++++++++++++++-------------------- picard/metadata.py | 9 ---- 2 files changed, 56 insertions(+), 54 deletions(-) diff --git a/picard/coverart.py b/picard/coverart.py index 4fa895442..e741c6e14 100644 --- a/picard/coverart.py +++ b/picard/coverart.py @@ -26,7 +26,7 @@ import re import traceback from functools import partial from picard import config, log -from picard.metadata import Image, is_front_image +from picard.metadata import Image from picard.util import mimetype, parse_amazon_url from picard.const import CAA_HOST, CAA_PORT from PyQt4.QtCore import QUrl, QObject @@ -75,6 +75,30 @@ _CAA_THUMBNAIL_SIZE_MAP = { 1: "large", } +class CoverArtImage: + + def __init__(self, url, type='front', desc='', front=None): + self.url = QUrl(url) + path = str(self.url.encodedPath()) + if self.url.hasQuery(): + path += '?' + self.url.encodedQuery() + self.host = str(self.url.host()) + self.port = self.url.port(80) + self.path = str(path) + self.type = type + self.desc = desc + self.front = front + + def is_front_image(self): + # CAA has a flag for "front" image, use it in priority + if self.front is None: + # no caa front flag, use type instead + return (self.type == 'front') + return self.front + + def __repr__(self): + return "type: %r from %s" % (self.type, self.url.toString()) + class CoverArt: @@ -141,7 +165,7 @@ class CoverArt: self.album.error_append(u'Coverart error: %s' % (unicode(http.errorString()))) - def _coverart_downloaded(self, coverinfos, data, http, error): + def _coverart_downloaded(self, coverartimage, data, http, error): self.album._requests -= 1 if error or len(data) < 1000: @@ -151,9 +175,9 @@ class CoverArt: self.message( N_("Cover art of type '%(type)s' downloaded for %(albumid)s from %(host)s"), { - 'type': coverinfos['type'].title(), + 'type': coverartimage.type, 'albumid': self.album.id, - 'host': coverinfos['host'] + 'host': coverartimage.host } ) mime = mimetype.get_from_data(data, default="image/jpeg") @@ -162,15 +186,15 @@ class CoverArt: self.metadata.make_and_add_image( mime, data, - imagetype=coverinfos['type'], - comment=coverinfos['desc'] + imagetype=coverartimage.type, + comment=coverartimage.desc ) for track in self.album._new_tracks: track.metadata.make_and_add_image( mime, data, - imagetype=coverinfos['type'], - comment=coverinfos['desc'] + imagetype=coverartimage.type, + comment=coverartimage.desc ) except (IOError, OSError) as e: self.album.error_append(e.message) @@ -181,9 +205,9 @@ class CoverArt: # If the image already was a front image, there might still be some # other front images in the try_list - remove them. - if is_front_image(coverinfos): + if coverartimage.is_front_image(): for item in self.try_list[:]: - if is_front_image(item) and 'archive.org' not in item['host']: + if item.is_front_image() and 'archive.org' not in item.host: # Hosts other than archive.org only provide front images self.try_list.remove(item) self._walk() @@ -224,12 +248,13 @@ class CoverArt: url = image["image"] else: url = image["thumbnails"][thumbsize] - extras = { - 'type': image["types"][0].lower(), # FIXME: we pass only 1 type - 'desc': image["comment"], - 'front': image['front'], # front image indicator from CAA - } - self._append_image_url(url, extras) + coverartimage = CoverArtImage( + url, + type = image["types"][0].lower(), # FIXME: we pass only 1 type + desc = image["comment"], + front = image['front'], # front image indicator from CAA + ) + self._append_image(coverartimage) def _fill(self): """Fills ``try_list`` by looking at the relationships in ``release``.""" @@ -247,7 +272,7 @@ class CoverArt: and (relation.type == 'cover art link' or relation.type == 'has_cover_art_at'): url = relation.target[0].text - self._append_image_url(url) + self._append_image(CoverArtImage(url)) elif use_amazon \ and (relation.type == 'amazon asin' or relation.type == 'has_Amazon_ASIN'): @@ -265,20 +290,20 @@ class CoverArt: else: # We still have some items to try! self.album._requests += 1 - coverinfos = self.try_list.pop(0) + coverartimage = self.try_list.pop(0) self.message( N_("Downloading cover art of type '%(type)s' for %(albumid)s from %(host)s ..."), { - 'type': coverinfos['type'], + 'type': coverartimage.type, 'albumid': self.album.id, - 'host': coverinfos['host'] + 'host': coverartimage.host } ) self.album.tagger.xmlws.download( - coverinfos['host'], - coverinfos['port'], - coverinfos['path'], - partial(self._coverart_downloaded, coverinfos), + coverartimage.host, + coverartimage.port, + coverartimage.path, + partial(self._coverart_downloaded, coverartimage), priority=True, important=False ) @@ -291,28 +316,14 @@ class CoverArt: else: serverInfo = AMAZON_SERVER['amazon.com'] host = serverInfo['server'] - path_l = AMAZON_IMAGE_PATH % (amz['asin'], serverInfo['id'], 'L') - path_m = AMAZON_IMAGE_PATH % (amz['asin'], serverInfo['id'], 'M') - self._append_image_url("http://%s:%s" % (host, path_l)) - self._append_image_url("http://%s:%s" % (host, path_m)) + for size in ('L', 'M'): + path = AMAZON_IMAGE_PATH % (amz['asin'], serverInfo['id'], size) + url = "http://%s:%s" % (host, path) + self._append_image(CoverArtImage(url)) - def _append_image_url(self, url, extras=None): - parsedUrl = QUrl(url) - path = str(parsedUrl.encodedPath()) - if parsedUrl.hasQuery(): - path += '?' + parsedUrl.encodedQuery() - coverinfos = { - 'host': str(parsedUrl.host()), - 'port': parsedUrl.port(80), - 'path': str(path), - 'type': 'front', - 'desc': '' - } - if extras is not None: - coverinfos.update(extras) - log.debug("Adding %s image %s", - coverinfos['type'], parsedUrl.toString()) - self.try_list.append(coverinfos) + def _append_image(self, coverartimage): + log.debug("Appending cover art image %r", coverartimage) + self.try_list.append(coverartimage) def coverart(album, metadata, release, coverartobj=None): diff --git a/picard/metadata.py b/picard/metadata.py index f7542fccc..78ed1d138 100644 --- a/picard/metadata.py +++ b/picard/metadata.py @@ -45,15 +45,6 @@ from picard.mbxml import artist_credit_from_node MULTI_VALUED_JOINER = '; ' -def is_front_image(image): - # CAA has a flag for "front" image, use it in priority - caa_front = image.get('front', None) - if caa_front is None: - # no caa front flag, use type instead - return (image['type'] == 'front') - return caa_front - - def save_this_image_to_tags(image): if not config.setting["save_only_front_images_to_tags"]: return True From e31d77f8d52fb9f1c1f26c1efc86f5696aaed88c Mon Sep 17 00:00:00 2001 From: Laurent Monin Date: Sun, 4 May 2014 16:05:56 +0200 Subject: [PATCH 075/212] Wraps self.album.tagger.xmlws.download() in new _download() method --- picard/coverart.py | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/picard/coverart.py b/picard/coverart.py index e741c6e14..d0dcfa307 100644 --- a/picard/coverart.py +++ b/picard/coverart.py @@ -143,8 +143,7 @@ class CoverArt: and self.len_caa_types > 0: log.debug("There are suitable images in the cover art archive for %s" % self.release.id) - self.album._requests += 1 - self.album.tagger.xmlws.download( + self._download( CAA_HOST, CAA_PORT, "/release/%s/" % self.metadata["musicbrainz_albumid"], @@ -161,6 +160,10 @@ class CoverArt: def message(self, *args, **kwargs): QObject.tagger.window.set_statusbar_message(*args, **kwargs) + def _download(self, *args, **kwargs): + self.album._requests += 1 + self.album.tagger.xmlws.download(*args, **kwargs) + def _coverart_http_error(self, http): self.album.error_append(u'Coverart error: %s' % (unicode(http.errorString()))) @@ -289,7 +292,6 @@ class CoverArt: return else: # We still have some items to try! - self.album._requests += 1 coverartimage = self.try_list.pop(0) self.message( N_("Downloading cover art of type '%(type)s' for %(albumid)s from %(host)s ..."), @@ -299,7 +301,7 @@ class CoverArt: 'host': coverartimage.host } ) - self.album.tagger.xmlws.download( + self._download( coverartimage.host, coverartimage.port, coverartimage.path, From cdec8f4e929ec838e445147ca76d756f4a987d28 Mon Sep 17 00:00:00 2001 From: Laurent Monin Date: Sun, 4 May 2014 16:09:53 +0200 Subject: [PATCH 076/212] No need to calculate length of the list to test if empty. --- picard/coverart.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/picard/coverart.py b/picard/coverart.py index d0dcfa307..44db21da4 100644 --- a/picard/coverart.py +++ b/picard/coverart.py @@ -286,7 +286,7 @@ class CoverArt: def _walk(self): """Downloads each item in ``try_list``. If there are none left, loading of ``album`` will be finalized.""" - if len(self.try_list) == 0: + if not self.try_list: self.album._finalize_loading(None) elif self.album.id not in self.album.tagger.albums: return From 4ea310c9831e0b1a5a7f5e35f71eed1345459f96 Mon Sep 17 00:00:00 2001 From: Laurent Monin Date: Sun, 4 May 2014 19:06:19 +0200 Subject: [PATCH 077/212] _process_asin_relation(): reduce indentation level --- picard/coverart.py | 21 +++++++++++---------- 1 file changed, 11 insertions(+), 10 deletions(-) diff --git a/picard/coverart.py b/picard/coverart.py index 44db21da4..1c8b4e6f3 100644 --- a/picard/coverart.py +++ b/picard/coverart.py @@ -312,16 +312,17 @@ class CoverArt: def _process_asin_relation(self, relation): amz = parse_amazon_url(relation.target[0].text) - if amz is not None: - if amz['host'] in AMAZON_SERVER: - serverInfo = AMAZON_SERVER[amz['host']] - else: - serverInfo = AMAZON_SERVER['amazon.com'] - host = serverInfo['server'] - for size in ('L', 'M'): - path = AMAZON_IMAGE_PATH % (amz['asin'], serverInfo['id'], size) - url = "http://%s:%s" % (host, path) - self._append_image(CoverArtImage(url)) + if amz is None: + return + if amz['host'] in AMAZON_SERVER: + serverInfo = AMAZON_SERVER[amz['host']] + else: + serverInfo = AMAZON_SERVER['amazon.com'] + host = serverInfo['server'] + for size in ('L', 'M'): + path = AMAZON_IMAGE_PATH % (amz['asin'], serverInfo['id'], size) + url = "http://%s:%s" % (host, path) + self._append_image(CoverArtImage(url)) def _append_image(self, coverartimage): log.debug("Appending cover art image %r", coverartimage) From 2df6c9759ef1cd7a3e3dd64e81be89716ec90136 Mon Sep 17 00:00:00 2001 From: Laurent Monin Date: Sun, 4 May 2014 19:07:36 +0200 Subject: [PATCH 078/212] _walk(): reduce indentation level --- picard/coverart.py | 42 ++++++++++++++++++++++-------------------- 1 file changed, 22 insertions(+), 20 deletions(-) diff --git a/picard/coverart.py b/picard/coverart.py index 1c8b4e6f3..0f525f75a 100644 --- a/picard/coverart.py +++ b/picard/coverart.py @@ -288,27 +288,29 @@ class CoverArt: ``album`` will be finalized.""" if not self.try_list: self.album._finalize_loading(None) - elif self.album.id not in self.album.tagger.albums: return - else: - # We still have some items to try! - coverartimage = self.try_list.pop(0) - self.message( - N_("Downloading cover art of type '%(type)s' for %(albumid)s from %(host)s ..."), - { - 'type': coverartimage.type, - 'albumid': self.album.id, - 'host': coverartimage.host - } - ) - self._download( - coverartimage.host, - coverartimage.port, - coverartimage.path, - partial(self._coverart_downloaded, coverartimage), - priority=True, - important=False - ) + + if self.album.id not in self.album.tagger.albums: + return + + # We still have some items to try! + coverartimage = self.try_list.pop(0) + self.message( + N_("Downloading cover art of type '%(type)s' for %(albumid)s from %(host)s ..."), + { + 'type': coverartimage.type, + 'albumid': self.album.id, + 'host': coverartimage.host + } + ) + self._download( + coverartimage.host, + coverartimage.port, + coverartimage.path, + partial(self._coverart_downloaded, coverartimage), + priority=True, + important=False + ) def _process_asin_relation(self, relation): amz = parse_amazon_url(relation.target[0].text) From 825abdda5d5e8637dd01305f579d9b31469a772f Mon Sep 17 00:00:00 2001 From: Laurent Monin Date: Sun, 4 May 2014 19:13:30 +0200 Subject: [PATCH 079/212] _fill() -> _fill_from_relationships() --- picard/coverart.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/picard/coverart.py b/picard/coverart.py index 0f525f75a..99acad25d 100644 --- a/picard/coverart.py +++ b/picard/coverart.py @@ -154,7 +154,7 @@ class CoverArt: else: log.debug("There are no suitable images in the cover art archive for %s" % self.release.id) - self._fill() + self._fill_from_relationships() self._walk() def message(self, *args, **kwargs): @@ -240,7 +240,7 @@ class CoverArt: break if error or not caa_front_found: - self._fill() + self._fill_from_relationships() self._walk() def _append_caa_image(self, image): @@ -259,7 +259,7 @@ class CoverArt: ) self._append_image(coverartimage) - def _fill(self): + def _fill_from_relationships(self): """Fills ``try_list`` by looking at the relationships in ``release``.""" use_whitelist = config.setting['ca_provider_use_whitelist'] use_amazon = config.setting['ca_provider_use_amazon'] From 3a4f062694f34ce2951a0acfcd2a942c0c1e6248 Mon Sep 17 00:00:00 2001 From: Laurent Monin Date: Sun, 4 May 2014 19:55:39 +0200 Subject: [PATCH 080/212] _coverart_downloaded(): better handling of not enough data case At least log a message in debug mode in this case. Btw, i'm not sure why this condition was added, even if it makes sense. --- picard/coverart.py | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/picard/coverart.py b/picard/coverart.py index 99acad25d..2ba3b6c7c 100644 --- a/picard/coverart.py +++ b/picard/coverart.py @@ -171,9 +171,10 @@ class CoverArt: def _coverart_downloaded(self, coverartimage, data, http, error): self.album._requests -= 1 - if error or len(data) < 1000: - if error: - self._coverart_http_error(http) + if error: + self._coverart_http_error(http) + elif len(data) < 1000: + log.debug("Not enough data, skipping image") else: self.message( N_("Cover art of type '%(type)s' downloaded for %(albumid)s from %(host)s"), From 46649c633274bffaddf8d0521ea19523e66e582a Mon Sep 17 00:00:00 2001 From: Laurent Monin Date: Sun, 4 May 2014 21:06:49 +0200 Subject: [PATCH 081/212] Drop useless coverartobj argument, cleanup --- picard/coverart.py | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/picard/coverart.py b/picard/coverart.py index 2ba3b6c7c..345d9c605 100644 --- a/picard/coverart.py +++ b/picard/coverart.py @@ -110,6 +110,10 @@ class CoverArt: self.caa_types = map(unicode.lower, config.setting["caa_image_types"]) self.len_caa_types = len(self.caa_types) + def __repr__(self): + return "CoverArt for %r" % (self.album) + + def retrieve(self): # MB web service indicates if CAA has artwork # http://tickets.musicbrainz.org/browse/MBS-4536 has_caa_artwork = False @@ -332,12 +336,10 @@ class CoverArt: self.try_list.append(coverartimage) -def coverart(album, metadata, release, coverartobj=None): +def coverart(album, metadata, release): """ Gets all cover art URLs from the metadata and then attempts to download the album art. """ - # try_list will be None for the first call - if coverartobj is not None: - return - - coverartobj = CoverArt(album, metadata, release) + coverart = CoverArt(album, metadata, release) + coverart.retrieve() + log.debug("New %r", coverart) From 67c9225767f9932ee326e31b51913979f0d27252 Mon Sep 17 00:00:00 2001 From: Laurent Monin Date: Sun, 4 May 2014 21:53:39 +0200 Subject: [PATCH 082/212] Use types intersection to select caa images to download, clarify code - lowercase types from json, to match lowercased types from options - fix up logic concerning caa_front_found - add few comments and debug info --- picard/coverart.py | 24 ++++++++++++++---------- 1 file changed, 14 insertions(+), 10 deletions(-) diff --git a/picard/coverart.py b/picard/coverart.py index 345d9c605..a0527c666 100644 --- a/picard/coverart.py +++ b/picard/coverart.py @@ -234,17 +234,21 @@ class CoverArt: for image in caa_data["images"]: if config.setting["caa_approved_only"] and not image["approved"]: continue - if not image["types"] and "unknown" in self.caa_types: - image["types"] = [u"Unknown"] - imagetypes = map(unicode.lower, image["types"]) - for imagetype in imagetypes: - if imagetype == "front": - caa_front_found = True - if imagetype in self.caa_types: - self._append_caa_image(image) - break + # if image has no type set, we still want it to match + # pseudo type 'unknown' + if not image["types"]: + image["types"] = [u"unknown"] + else: + image["types"] = map(unicode.lower, image["types"]) + # only keep enabled caa types + types = set(image["types"]).intersection(set(self.caa_types)) + if types: + if not caa_front_found: + caa_front_found = u'front' in types + self._append_caa_image(image) if error or not caa_front_found: + log.debug("Trying to get cover art from release relationships") self._fill_from_relationships() self._walk() @@ -258,7 +262,7 @@ class CoverArt: url = image["thumbnails"][thumbsize] coverartimage = CoverArtImage( url, - type = image["types"][0].lower(), # FIXME: we pass only 1 type + type = image["types"][0], # FIXME: we pass only 1 type desc = image["comment"], front = image['front'], # front image indicator from CAA ) From d5b4bfec914a76a4efd978e9359632e52790ee5b Mon Sep 17 00:00:00 2001 From: Laurent Monin Date: Sun, 4 May 2014 22:37:49 +0200 Subject: [PATCH 083/212] Subclass CoverArtImage and add support_types property - CaaCoverArtImage is only used for CAA images - drop host comparaison (vs 'archive.org'), use a much cleaner "flag" - all current providers but CAA don't support multiple types, so we defaults to a "front" type - once we have one image from one of those providers we are done - we don't want to remove all images from CAA having front type --- picard/coverart.py | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/picard/coverart.py b/picard/coverart.py index a0527c666..5725934a9 100644 --- a/picard/coverart.py +++ b/picard/coverart.py @@ -77,6 +77,8 @@ _CAA_THUMBNAIL_SIZE_MAP = { class CoverArtImage: + support_types = False + def __init__(self, url, type='front', desc='', front=None): self.url = QUrl(url) path = str(self.url.encodedPath()) @@ -90,6 +92,9 @@ class CoverArtImage: self.front = front def is_front_image(self): + if not self.support_types: + # consider all images as front if types aren't supported by provider + return True # CAA has a flag for "front" image, use it in priority if self.front is None: # no caa front flag, use type instead @@ -100,6 +105,11 @@ class CoverArtImage: return "type: %r from %s" % (self.type, self.url.toString()) +class CaaCoverArtImage(CoverArtImage): + + support_types = True + + class CoverArt: def __init__(self, album, metadata, release): @@ -212,11 +222,10 @@ class CoverArt: return # If the image already was a front image, there might still be some - # other front images in the try_list - remove them. + # other non-CAA front images in the try_list - remove them. if coverartimage.is_front_image(): for item in self.try_list[:]: - if item.is_front_image() and 'archive.org' not in item.host: - # Hosts other than archive.org only provide front images + if not item.support_types: self.try_list.remove(item) self._walk() @@ -260,7 +269,7 @@ class CoverArt: url = image["image"] else: url = image["thumbnails"][thumbsize] - coverartimage = CoverArtImage( + coverartimage = CaaCoverArtImage( url, type = image["types"][0], # FIXME: we pass only 1 type desc = image["comment"], From 73c57108f6699f3664bf7302ff9c3e124f4d45e8 Mon Sep 17 00:00:00 2001 From: Laurent Monin Date: Sun, 4 May 2014 23:06:21 +0200 Subject: [PATCH 084/212] Use an explicit is_front property for CAA front flag indicator --- picard/coverart.py | 19 +++++++++---------- 1 file changed, 9 insertions(+), 10 deletions(-) diff --git a/picard/coverart.py b/picard/coverart.py index 5725934a9..f4768d997 100644 --- a/picard/coverart.py +++ b/picard/coverart.py @@ -78,8 +78,10 @@ _CAA_THUMBNAIL_SIZE_MAP = { class CoverArtImage: support_types = False + # consider all images as front if types aren't supported by provider + is_front = True - def __init__(self, url, type='front', desc='', front=None): + def __init__(self, url, type='front', desc=''): self.url = QUrl(url) path = str(self.url.encodedPath()) if self.url.hasQuery(): @@ -89,17 +91,13 @@ class CoverArtImage: self.path = str(path) self.type = type self.desc = desc - self.front = front def is_front_image(self): - if not self.support_types: - # consider all images as front if types aren't supported by provider - return True # CAA has a flag for "front" image, use it in priority - if self.front is None: - # no caa front flag, use type instead - return (self.type == 'front') - return self.front + if self.is_front: + return True + # no caa front flag, use type instead + return (self.type == 'front') def __repr__(self): return "type: %r from %s" % (self.type, self.url.toString()) @@ -107,6 +105,7 @@ class CoverArtImage: class CaaCoverArtImage(CoverArtImage): + is_front = False support_types = True @@ -273,8 +272,8 @@ class CoverArt: url, type = image["types"][0], # FIXME: we pass only 1 type desc = image["comment"], - front = image['front'], # front image indicator from CAA ) + coverartimage.is_front = bool(image['front']) # front image indicator from CAA self._append_image(coverartimage) def _fill_from_relationships(self): From 5b5ca9a481d06857cf4986789981fa02553c9f21 Mon Sep 17 00:00:00 2001 From: Laurent Monin Date: Mon, 5 May 2014 17:32:48 +0200 Subject: [PATCH 085/212] Add image description to debug message if available --- picard/coverart.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/picard/coverart.py b/picard/coverart.py index f4768d997..d2bc014da 100644 --- a/picard/coverart.py +++ b/picard/coverart.py @@ -100,7 +100,10 @@ class CoverArtImage: return (self.type == 'front') def __repr__(self): - return "type: %r from %s" % (self.type, self.url.toString()) + if self.desc: + return "types: %r (%r) from %s" % (self.types, self.desc, self.url.toString()) + else: + return "types: %r from %s" % (self.types, self.url.toString()) class CaaCoverArtImage(CoverArtImage): From 7a1607e8c352ab928b64c5ce7c302e2d6a7ad5b4 Mon Sep 17 00:00:00 2001 From: Laurent Monin Date: Mon, 5 May 2014 17:33:28 +0200 Subject: [PATCH 086/212] Remove useless import --- picard/coverart.py | 1 - 1 file changed, 1 deletion(-) diff --git a/picard/coverart.py b/picard/coverart.py index d2bc014da..6091a85cd 100644 --- a/picard/coverart.py +++ b/picard/coverart.py @@ -26,7 +26,6 @@ import re import traceback from functools import partial from picard import config, log -from picard.metadata import Image from picard.util import mimetype, parse_amazon_url from picard.const import CAA_HOST, CAA_PORT from PyQt4.QtCore import QUrl, QObject From 7de9477b7b58cd8c30ea032cb346c0f0010dda4c Mon Sep 17 00:00:00 2001 From: Laurent Monin Date: Mon, 5 May 2014 17:35:09 +0200 Subject: [PATCH 087/212] Add types_and_front() helper function - it converts id3 type to CAA-like type list - it returns a is_front boolean, emulating CAA flag --- picard/formats/id3.py | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/picard/formats/id3.py b/picard/formats/id3.py index 5afb0738f..94c05f2f7 100644 --- a/picard/formats/id3.py +++ b/picard/formats/id3.py @@ -92,6 +92,12 @@ def image_type_as_id3_num(texttype): return __ID3_IMAGE_TYPE_MAP.get(texttype, 0) +def types_and_front(id3type): + imgtype = image_type_from_id3_num(id3type) + is_front = imgtype == 'front' + return [unicode(imgtype)], is_front + + class ID3File(File): """Generic ID3-based file.""" From b79149f84307076807c8c27d098b779699a581fa Mon Sep 17 00:00:00 2001 From: Laurent Monin Date: Mon, 5 May 2014 17:43:40 +0200 Subject: [PATCH 088/212] Improve handling of multiple image types and is_front flag - convert type-as-a-string to list of types - display concatenated list of types in messages (ie. back,spine) - pass is_front flag everywhere needed - pass list of types instead of single string everywhere needed - introduce maintype() method to get the first type if more than one is set - in formats/*, use types_and_front() at read time to get properly formatted list of types (only one element for now, since no format seems to support multiple types) - use Image.maintype() at write time (since no format supports multiple types for now) --- picard/coverart.py | 22 ++++++++++++---------- picard/formats/asf.py | 7 ++++--- picard/formats/id3.py | 5 +++-- picard/formats/vorbis.py | 11 +++++++---- picard/metadata.py | 27 ++++++++++++++++----------- picard/ui/coverartbox.py | 2 +- 6 files changed, 43 insertions(+), 31 deletions(-) diff --git a/picard/coverart.py b/picard/coverart.py index 6091a85cd..2f99d06a8 100644 --- a/picard/coverart.py +++ b/picard/coverart.py @@ -80,7 +80,7 @@ class CoverArtImage: # consider all images as front if types aren't supported by provider is_front = True - def __init__(self, url, type='front', desc=''): + def __init__(self, url, types=[u'front'], desc=''): self.url = QUrl(url) path = str(self.url.encodedPath()) if self.url.hasQuery(): @@ -88,7 +88,7 @@ class CoverArtImage: self.host = str(self.url.host()) self.port = self.url.port(80) self.path = str(path) - self.type = type + self.types = types self.desc = desc def is_front_image(self): @@ -96,7 +96,7 @@ class CoverArtImage: if self.is_front: return True # no caa front flag, use type instead - return (self.type == 'front') + return u'front' in self.types def __repr__(self): if self.desc: @@ -194,7 +194,7 @@ class CoverArt: self.message( N_("Cover art of type '%(type)s' downloaded for %(albumid)s from %(host)s"), { - 'type': coverartimage.type, + 'type': ','.join(coverartimage.types), 'albumid': self.album.id, 'host': coverartimage.host } @@ -205,15 +205,17 @@ class CoverArt: self.metadata.make_and_add_image( mime, data, - imagetype=coverartimage.type, - comment=coverartimage.desc + types=coverartimage.types, + comment=coverartimage.desc, + is_front=coverartimage.is_front ) for track in self.album._new_tracks: track.metadata.make_and_add_image( mime, data, - imagetype=coverartimage.type, - comment=coverartimage.desc + types=coverartimage.types, + comment=coverartimage.desc, + is_front=coverartimage.is_front ) except (IOError, OSError) as e: self.album.error_append(e.message) @@ -272,7 +274,7 @@ class CoverArt: url = image["thumbnails"][thumbsize] coverartimage = CaaCoverArtImage( url, - type = image["types"][0], # FIXME: we pass only 1 type + types = image["types"], desc = image["comment"], ) coverartimage.is_front = bool(image['front']) # front image indicator from CAA @@ -317,7 +319,7 @@ class CoverArt: self.message( N_("Downloading cover art of type '%(type)s' for %(albumid)s from %(host)s ..."), { - 'type': coverartimage.type, + 'type': ','.join(coverartimage.types), 'albumid': self.album.id, 'host': coverartimage.host } diff --git a/picard/formats/asf.py b/picard/formats/asf.py index 6b0eed69d..75e95d627 100644 --- a/picard/formats/asf.py +++ b/picard/formats/asf.py @@ -19,7 +19,7 @@ from picard import config, log from picard.file import File -from picard.formats.id3 import image_type_from_id3_num, image_type_as_id3_num +from picard.formats.id3 import types_and_front, image_type_as_id3_num from picard.util import encode_filename from picard.metadata import Metadata, save_this_image_to_tags from mutagen.asf import ASF, ASFByteArrayAttribute @@ -141,8 +141,9 @@ class ASFFile(File): if name == 'WM/Picture': for image in values: (mime, data, type, description) = unpack_image(image.value) + types, is_front = types_and_front(type) metadata.make_and_add_image(mime, data, comment=description, - imagetype=image_type_from_id3_num(type)) + types=types, is_front=is_front) continue elif name not in self.__RTRANS: continue @@ -168,7 +169,7 @@ class ASFFile(File): if not save_this_image_to_tags(image): continue tag_data = pack_image(image.mimetype, image.data, - image_type_as_id3_num(image.imagetype), + image_type_as_id3_num(image.maintype()), image.description) cover.append(ASFByteArrayAttribute(tag_data)) if cover: diff --git a/picard/formats/id3.py b/picard/formats/id3.py index 94c05f2f7..7aacfc89f 100644 --- a/picard/formats/id3.py +++ b/picard/formats/id3.py @@ -261,8 +261,9 @@ class ID3File(File): else: log.error("Invalid %s value '%s' dropped in %r", frameid, frame.text[0], filename) elif frameid == 'APIC': + types, is_front = types_and_front(frame.type) metadata.make_and_add_image(frame.mime, frame.data, comment=frame.desc, - imagetype=image_type_from_id3_num(frame.type)) + types=types, is_front=is_front) elif frameid == 'POPM': # Rating in ID3 ranges from 0 to 255, normalize this to the range 0 to 5 if frame.email == config.setting['rating_user_email']: @@ -328,7 +329,7 @@ class ID3File(File): counters[desc] += 1 tags.add(id3.APIC(encoding=0, mime=image.mimetype, - type=image_type_as_id3_num(image.imagetype), + type=image_type_as_id3_num(image.maintype()), desc=desctag, data=image.data)) diff --git a/picard/formats/vorbis.py b/picard/formats/vorbis.py index bf9161988..1e42f9bca 100644 --- a/picard/formats/vorbis.py +++ b/picard/formats/vorbis.py @@ -32,7 +32,7 @@ except ImportError: with_opus = False from picard import config, log from picard.file import File -from picard.formats.id3 import image_type_from_id3_num, image_type_as_id3_num +from picard.formats.id3 import types_and_front, image_type_as_id3_num from picard.metadata import Metadata, save_this_image_to_tags from picard.util import encode_filename, sanitize_date @@ -96,17 +96,20 @@ class VCommentFile(File): name = "totaldiscs" elif name == "metadata_block_picture": image = mutagen.flac.Picture(base64.standard_b64decode(value)) + types, is_front = types_and_front(image.type) metadata.make_and_add_image(image.mime, image.data, comment=image.desc, - imagetype=image_type_from_id3_num(image.type)) + types=types, + is_front=is_front) continue elif name in self.__translate: name = self.__translate[name] metadata.add(name, value) if self._File == mutagen.flac.FLAC: for image in file.pictures: + types, is_front = types_and_front(image.type) metadata.make_and_add_image(image.mime, image.data, comment=image.desc, - imagetype=image_type_from_id3_num(image.type)) + types=types, is_front=is_front) # Read the unofficial COVERART tags, for backward compatibillity only if not "metadata_block_picture" in file.tags: try: @@ -173,7 +176,7 @@ class VCommentFile(File): picture.data = image.data picture.mime = image.mimetype picture.desc = image.description - picture.type = image_type_as_id3_num(image.imagetype) + picture.type = image_type_as_id3_num(image.maintype()) if self._File == mutagen.flac.FLAC: file.add_picture(picture) else: diff --git a/picard/metadata.py b/picard/metadata.py index 78ed1d138..4b336f244 100644 --- a/picard/metadata.py +++ b/picard/metadata.py @@ -48,7 +48,7 @@ MULTI_VALUED_JOINER = '; ' def save_this_image_to_tags(image): if not config.setting["save_only_front_images_to_tags"]: return True - return image.is_front_image + return image.is_front class Image(object): @@ -57,8 +57,8 @@ class Image(object): an IOError or OSError due to the usage of tempfiles underneath. """ - def __init__(self, data, mimetype="image/jpeg", imagetype="front", - comment="", filename=None, datahash=""): + def __init__(self, data, mimetype="image/jpeg", types=[u"front"], + comment="", filename=None, datahash="", is_front=True): self.description = comment (fd, self._tempfile_filename) = tempfile.mkstemp(prefix="picard") with fdopen(fd, "wb") as imagefile: @@ -68,10 +68,13 @@ class Image(object): self.datalength = len(data) self.extension = mime.get_extension(mime, ".jpg") self.filename = filename - self.imagetype = imagetype - self.is_front_image = imagetype == "front" + self.types = types + self.is_front = is_front self.mimetype = mimetype + def maintype(self): + return self.types[0] + def _make_image_filename(self, filename, dirname, metadata): if config.setting["ascii_filenames"]: if isinstance(filename, unicode): @@ -100,8 +103,8 @@ class Image(object): log.debug("Using the custom file name %s", self.filename) filename = self.filename elif config.setting["caa_image_type_as_filename"]: - log.debug("Using image type %s", self.imagetype) - filename = self.imagetype + filename = self.maintype() + log.debug("Make filename from types: %r -> %r", self.types, filename) else: log.debug("Using default file name %s", config.setting["cover_image_filename"]) @@ -170,7 +173,7 @@ class Metadata(dict): self.length = 0 def make_and_add_image(self, mime, data, filename=None, comment="", - imagetype="front"): + types=[u"front"], is_front=True): """Build a new image object from ``data`` and adds it to this Metadata object. If an image with the same MD5 hash has already been added to any Metadata object, that file will be reused. @@ -180,7 +183,8 @@ class Metadata(dict): data -- The image data filename -- The image filename, without an extension comment -- image description or comment, default to '' - imagetype -- main type as a string, default to 'front' + types -- list of types, default to [u'front'] + is_front -- mark image as front image """ m = md5() m.update(data) @@ -188,8 +192,9 @@ class Metadata(dict): QObject.tagger.images.lock() image = QObject.tagger.images[datahash] if image is None: - image = Image(data, mime, imagetype, comment, filename, - datahash=datahash) + image = Image(data, mime, types, comment, filename, + datahash=datahash, + is_front=is_front) QObject.tagger.images[datahash] = image QObject.tagger.images.unlock() self.images.append(image) diff --git a/picard/ui/coverartbox.py b/picard/ui/coverartbox.py index 9a2122f0c..f20aba56d 100644 --- a/picard/ui/coverartbox.py +++ b/picard/ui/coverartbox.py @@ -122,7 +122,7 @@ class CoverArtBox(QtGui.QGroupBox): data = None if metadata and metadata.images: for image in metadata.images: - if image.is_front_image: + if image.is_front: data = image break else: From af405b1baa080bb94080babbb6bdb4fc1997e06d Mon Sep 17 00:00:00 2001 From: Laurent Monin Date: Mon, 5 May 2014 22:44:56 +0200 Subject: [PATCH 089/212] Improve debug messages --- picard/coverart.py | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/picard/coverart.py b/picard/coverart.py index 2f99d06a8..3cbebfaa0 100644 --- a/picard/coverart.py +++ b/picard/coverart.py @@ -167,8 +167,9 @@ class CoverArt: important=False ) else: - log.debug("There are no suitable images in the cover art archive for %s" - % self.release.id) + if config.setting['ca_provider_use_caa']: + log.debug("There are no suitable images in the cover art archive for %s" + % self.release.id) self._fill_from_relationships() self._walk() @@ -260,7 +261,6 @@ class CoverArt: self._append_caa_image(image) if error or not caa_front_found: - log.debug("Trying to get cover art from release relationships") self._fill_from_relationships() self._walk() @@ -286,6 +286,7 @@ class CoverArt: use_amazon = config.setting['ca_provider_use_amazon'] if not (use_whitelist or use_amazon): return + log.debug("Trying to get cover art from release relationships ...") try: if 'relation_list' in self.release.children: for relation_list in self.release.relation_list: @@ -295,6 +296,7 @@ class CoverArt: if use_whitelist \ and (relation.type == 'cover art link' or relation.type == 'has_cover_art_at'): + log.debug("Found cover art link in whitelist") url = relation.target[0].text self._append_image(CoverArtImage(url)) elif use_amazon \ @@ -337,6 +339,7 @@ class CoverArt: amz = parse_amazon_url(relation.target[0].text) if amz is None: return + log.debug("Found ASIN relation : %s %s", amz['host'], amz['asin']) if amz['host'] in AMAZON_SERVER: serverInfo = AMAZON_SERVER[amz['host']] else: From f2a0c1b2cdc43eb91141a0f2b1f6bcd76096b7bd Mon Sep 17 00:00:00 2001 From: Laurent Monin Date: Tue, 6 May 2014 16:44:18 +0200 Subject: [PATCH 090/212] Modify how we skip unneeded front images from non-CAA sources Instead of looping and modify the try list, just check in _walk() and continue. Improve debugging messages (no more silent removal in debug mode). --- picard/coverart.py | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) diff --git a/picard/coverart.py b/picard/coverart.py index 3cbebfaa0..b1e53ea57 100644 --- a/picard/coverart.py +++ b/picard/coverart.py @@ -120,6 +120,7 @@ class CoverArt: self.release = release self.caa_types = map(unicode.lower, config.setting["caa_image_types"]) self.len_caa_types = len(self.caa_types) + self.at_least_one_front_image = False def __repr__(self): return "CoverArt for %r" % (self.album) @@ -226,11 +227,9 @@ class CoverArt: return # If the image already was a front image, there might still be some - # other non-CAA front images in the try_list - remove them. - if coverartimage.is_front_image(): - for item in self.try_list[:]: - if not item.support_types: - self.try_list.remove(item) + # other non-CAA front images in the queue - ignore them. + if not self.at_least_one_front_image: + self.at_least_one_front_image = coverartimage.is_front_image() self._walk() def _caa_json_downloaded(self, data, http, error): @@ -318,6 +317,14 @@ class CoverArt: # We still have some items to try! coverartimage = self.try_list.pop(0) + if not coverartimage.support_types and self.at_least_one_front_image: + # we already have one front image, no need to try other type-less + # sources + log.debug("Skipping cover art %r, one front image is already available", + coverartimage) + self._walk() + return + self.message( N_("Downloading cover art of type '%(type)s' for %(albumid)s from %(host)s ..."), { From 6d68b9f00b99c24c123c73427e6f69be6cde13de Mon Sep 17 00:00:00 2001 From: Laurent Monin Date: Tue, 6 May 2014 17:03:56 +0200 Subject: [PATCH 091/212] try_list -> queue + fix up few comments --- picard/coverart.py | 20 +++++++++++--------- 1 file changed, 11 insertions(+), 9 deletions(-) diff --git a/picard/coverart.py b/picard/coverart.py index b1e53ea57..4f9a1cb49 100644 --- a/picard/coverart.py +++ b/picard/coverart.py @@ -114,7 +114,7 @@ class CaaCoverArtImage(CoverArtImage): class CoverArt: def __init__(self, album, metadata, release): - self.try_list = [] + self.queue = [] self.album = album self.metadata = metadata self.release = release @@ -264,7 +264,7 @@ class CoverArt: self._walk() def _append_caa_image(self, image): - """Adds URLs to `try_list` depending on the users CAA image size settings.""" + """Queue images depending on the CAA image size settings.""" imagesize = config.setting["caa_image_size"] thumbsize = _CAA_THUMBNAIL_SIZE_MAP.get(imagesize, None) if thumbsize is None: @@ -280,7 +280,8 @@ class CoverArt: self._append_image(coverartimage) def _fill_from_relationships(self): - """Fills ``try_list`` by looking at the relationships in ``release``.""" + """Queue images by looking at the release's relationships. + """ use_whitelist = config.setting['ca_provider_use_whitelist'] use_amazon = config.setting['ca_provider_use_amazon'] if not (use_whitelist or use_amazon): @@ -306,9 +307,10 @@ class CoverArt: self.album.error_append(traceback.format_exc()) def _walk(self): - """Downloads each item in ``try_list``. If there are none left, loading of - ``album`` will be finalized.""" - if not self.try_list: + """Downloads each item in queue. + If there are none left, loading of album will be finalized. + """ + if not self.queue: self.album._finalize_loading(None) return @@ -316,7 +318,7 @@ class CoverArt: return # We still have some items to try! - coverartimage = self.try_list.pop(0) + coverartimage = self.queue.pop(0) if not coverartimage.support_types and self.at_least_one_front_image: # we already have one front image, no need to try other type-less # sources @@ -358,8 +360,8 @@ class CoverArt: self._append_image(CoverArtImage(url)) def _append_image(self, coverartimage): - log.debug("Appending cover art image %r", coverartimage) - self.try_list.append(coverartimage) + log.debug("Queing image %r for download", coverartimage) + self.queue.append(coverartimage) def coverart(album, metadata, release): From 8677a4aa3db20e72248f1e727fa11232095fe17f Mon Sep 17 00:00:00 2001 From: Laurent Monin Date: Tue, 6 May 2014 17:18:53 +0200 Subject: [PATCH 092/212] Hide underlying queue/list using a bunch of new methods - _append_image() -> _queue_put() - new _queue_get() - new _queue_empty() - new _queue_new() --- picard/coverart.py | 29 +++++++++++++++++++++-------- 1 file changed, 21 insertions(+), 8 deletions(-) diff --git a/picard/coverart.py b/picard/coverart.py index 4f9a1cb49..fa175f88f 100644 --- a/picard/coverart.py +++ b/picard/coverart.py @@ -114,7 +114,7 @@ class CaaCoverArtImage(CoverArtImage): class CoverArt: def __init__(self, album, metadata, release): - self.queue = [] + self._queue_new() self.album = album self.metadata = metadata self.release = release @@ -277,7 +277,7 @@ class CoverArt: desc = image["comment"], ) coverartimage.is_front = bool(image['front']) # front image indicator from CAA - self._append_image(coverartimage) + self._queue_put(coverartimage) def _fill_from_relationships(self): """Queue images by looking at the release's relationships. @@ -298,7 +298,7 @@ class CoverArt: relation.type == 'has_cover_art_at'): log.debug("Found cover art link in whitelist") url = relation.target[0].text - self._append_image(CoverArtImage(url)) + self._queue_put(CoverArtImage(url)) elif use_amazon \ and (relation.type == 'amazon asin' or relation.type == 'has_Amazon_ASIN'): @@ -310,7 +310,7 @@ class CoverArt: """Downloads each item in queue. If there are none left, loading of album will be finalized. """ - if not self.queue: + if self._queue_empty(): self.album._finalize_loading(None) return @@ -318,7 +318,7 @@ class CoverArt: return # We still have some items to try! - coverartimage = self.queue.pop(0) + coverartimage = self._queue_get() if not coverartimage.support_types and self.at_least_one_front_image: # we already have one front image, no need to try other type-less # sources @@ -357,11 +357,24 @@ class CoverArt: for size in ('L', 'M'): path = AMAZON_IMAGE_PATH % (amz['asin'], serverInfo['id'], size) url = "http://%s:%s" % (host, path) - self._append_image(CoverArtImage(url)) + self._queue_put(CoverArtImage(url)) - def _append_image(self, coverartimage): + def _queue_put(self, coverartimage): + "Add an image to queue" log.debug("Queing image %r for download", coverartimage) - self.queue.append(coverartimage) + self.__queue.append(coverartimage) + + def _queue_get(self): + "Get next image and remove it from queue" + return self.__queue.pop(0) + + def _queue_empty(self): + "Returns True if the queue is empty" + return not self.__queue + + def _queue_new(self): + "Initialize the queue" + self.__queue = [] def coverart(album, metadata, release): From 80ed1d7265032e2bf721183cac2eb5b85dd3c202 Mon Sep 17 00:00:00 2001 From: Laurent Monin Date: Wed, 7 May 2014 16:38:33 +0200 Subject: [PATCH 093/212] Do not hide errors that are actually errors Use Album.error_append() instead of log.debug() --- picard/coverart.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/picard/coverart.py b/picard/coverart.py index fa175f88f..6c10eae59 100644 --- a/picard/coverart.py +++ b/picard/coverart.py @@ -191,7 +191,7 @@ class CoverArt: if error: self._coverart_http_error(http) elif len(data) < 1000: - log.debug("Not enough data, skipping image") + self.album.error_append("Not enough data, skipping image %r" % coverartimage) else: self.message( N_("Cover art of type '%(type)s' downloaded for %(albumid)s from %(host)s"), @@ -241,7 +241,7 @@ class CoverArt: try: caa_data = json.loads(data) except ValueError: - log.debug("Invalid JSON: %s", http.url().toString()) + self.album.error_append("Invalid JSON: %s", http.url().toString()) else: for image in caa_data["images"]: if config.setting["caa_approved_only"] and not image["approved"]: From a9199b4911e9d4568c8b660ffd19d1f37a66034f Mon Sep 17 00:00:00 2001 From: Laurent Monin Date: Wed, 7 May 2014 16:43:17 +0200 Subject: [PATCH 094/212] _download() -> _xmlws_download() This is a wrapper to the actual call to album.tagger.xmlws.download() --- picard/coverart.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/picard/coverart.py b/picard/coverart.py index 6c10eae59..373119391 100644 --- a/picard/coverart.py +++ b/picard/coverart.py @@ -159,7 +159,7 @@ class CoverArt: and self.len_caa_types > 0: log.debug("There are suitable images in the cover art archive for %s" % self.release.id) - self._download( + self._xmlws_download( CAA_HOST, CAA_PORT, "/release/%s/" % self.metadata["musicbrainz_albumid"], @@ -177,7 +177,7 @@ class CoverArt: def message(self, *args, **kwargs): QObject.tagger.window.set_statusbar_message(*args, **kwargs) - def _download(self, *args, **kwargs): + def _xmlws_download(self, *args, **kwargs): self.album._requests += 1 self.album.tagger.xmlws.download(*args, **kwargs) @@ -335,7 +335,7 @@ class CoverArt: 'host': coverartimage.host } ) - self._download( + self._xmlws_download( coverartimage.host, coverartimage.port, coverartimage.path, From 50db339a84e7731d80b14fda7f04433b06c3ff18 Mon Sep 17 00:00:00 2001 From: Laurent Monin Date: Wed, 7 May 2014 16:54:30 +0200 Subject: [PATCH 095/212] _walk() -> _download_next_in_queue() Better match what it does. --- picard/coverart.py | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/picard/coverart.py b/picard/coverart.py index 373119391..136e22d65 100644 --- a/picard/coverart.py +++ b/picard/coverart.py @@ -172,7 +172,7 @@ class CoverArt: log.debug("There are no suitable images in the cover art archive for %s" % self.release.id) self._fill_from_relationships() - self._walk() + self._download_next_in_queue() def message(self, *args, **kwargs): QObject.tagger.window.set_statusbar_message(*args, **kwargs) @@ -230,7 +230,7 @@ class CoverArt: # other non-CAA front images in the queue - ignore them. if not self.at_least_one_front_image: self.at_least_one_front_image = coverartimage.is_front_image() - self._walk() + self._download_next_in_queue() def _caa_json_downloaded(self, data, http, error): self.album._requests -= 1 @@ -261,7 +261,7 @@ class CoverArt: if error or not caa_front_found: self._fill_from_relationships() - self._walk() + self._download_next_in_queue() def _append_caa_image(self, image): """Queue images depending on the CAA image size settings.""" @@ -306,7 +306,7 @@ class CoverArt: except AttributeError: self.album.error_append(traceback.format_exc()) - def _walk(self): + def _download_next_in_queue(self): """Downloads each item in queue. If there are none left, loading of album will be finalized. """ @@ -324,7 +324,7 @@ class CoverArt: # sources log.debug("Skipping cover art %r, one front image is already available", coverartimage) - self._walk() + self._download_next_in_queue() return self.message( From e881e090037c93d51196dd23e1a111cca6de2bf5 Mon Sep 17 00:00:00 2001 From: Laurent Monin Date: Wed, 7 May 2014 16:57:04 +0200 Subject: [PATCH 096/212] _fill_from_relationships() -> _queue_from_relationships() --- picard/coverart.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/picard/coverart.py b/picard/coverart.py index 136e22d65..890d99aee 100644 --- a/picard/coverart.py +++ b/picard/coverart.py @@ -171,7 +171,7 @@ class CoverArt: if config.setting['ca_provider_use_caa']: log.debug("There are no suitable images in the cover art archive for %s" % self.release.id) - self._fill_from_relationships() + self._queue_from_relationships() self._download_next_in_queue() def message(self, *args, **kwargs): @@ -260,7 +260,7 @@ class CoverArt: self._append_caa_image(image) if error or not caa_front_found: - self._fill_from_relationships() + self._queue_from_relationships() self._download_next_in_queue() def _append_caa_image(self, image): @@ -279,7 +279,7 @@ class CoverArt: coverartimage.is_front = bool(image['front']) # front image indicator from CAA self._queue_put(coverartimage) - def _fill_from_relationships(self): + def _queue_from_relationships(self): """Queue images by looking at the release's relationships. """ use_whitelist = config.setting['ca_provider_use_whitelist'] From 1dddba902932a2b05a9305a2777abd82899367f8 Mon Sep 17 00:00:00 2001 From: Laurent Monin Date: Wed, 7 May 2014 16:59:17 +0200 Subject: [PATCH 097/212] _append_caa_image() -> _queue_image_from_caa() --- picard/coverart.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/picard/coverart.py b/picard/coverart.py index 890d99aee..0f15fd669 100644 --- a/picard/coverart.py +++ b/picard/coverart.py @@ -257,13 +257,13 @@ class CoverArt: if types: if not caa_front_found: caa_front_found = u'front' in types - self._append_caa_image(image) + self._queue_image_from_caa(image) if error or not caa_front_found: self._queue_from_relationships() self._download_next_in_queue() - def _append_caa_image(self, image): + def _queue_image_from_caa(self, image): """Queue images depending on the CAA image size settings.""" imagesize = config.setting["caa_image_size"] thumbsize = _CAA_THUMBNAIL_SIZE_MAP.get(imagesize, None) From d1e08001d5c1de975682b272a2080c34f4409b27 Mon Sep 17 00:00:00 2001 From: Laurent Monin Date: Wed, 7 May 2014 17:15:26 +0200 Subject: [PATCH 098/212] Move part of code from retrieve() to new _has_caa_artwork() --- picard/coverart.py | 41 +++++++++++++++++++++++------------------ 1 file changed, 23 insertions(+), 18 deletions(-) diff --git a/picard/coverart.py b/picard/coverart.py index 0f15fd669..7d9ef1400 100644 --- a/picard/coverart.py +++ b/picard/coverart.py @@ -126,6 +126,28 @@ class CoverArt: return "CoverArt for %r" % (self.album) def retrieve(self): + + if (config.setting['ca_provider_use_caa'] + and self.len_caa_types > 0 + and self._has_caa_artwork()): + log.debug("There are suitable images in the cover art archive for %s" + % self.release.id) + self._xmlws_download( + CAA_HOST, + CAA_PORT, + "/release/%s/" % self.metadata["musicbrainz_albumid"], + self._caa_json_downloaded, + priority=True, + important=False + ) + else: + if config.setting['ca_provider_use_caa']: + log.debug("There are no suitable images in the cover art archive for %s" + % self.release.id) + self._queue_from_relationships() + self._download_next_in_queue() + + def _has_caa_artwork(self): # MB web service indicates if CAA has artwork # http://tickets.musicbrainz.org/browse/MBS-4536 has_caa_artwork = False @@ -155,24 +177,7 @@ class CoverArt: back_in_caa = caa_node.back[0].text == 'true' and has_back has_caa_artwork = has_caa_artwork and (front_in_caa or back_in_caa) - if config.setting['ca_provider_use_caa'] and has_caa_artwork\ - and self.len_caa_types > 0: - log.debug("There are suitable images in the cover art archive for %s" - % self.release.id) - self._xmlws_download( - CAA_HOST, - CAA_PORT, - "/release/%s/" % self.metadata["musicbrainz_albumid"], - self._caa_json_downloaded, - priority=True, - important=False - ) - else: - if config.setting['ca_provider_use_caa']: - log.debug("There are no suitable images in the cover art archive for %s" - % self.release.id) - self._queue_from_relationships() - self._download_next_in_queue() + return has_caa_artwork def message(self, *args, **kwargs): QObject.tagger.window.set_statusbar_message(*args, **kwargs) From 14aef163b6a419c3726279e498792f4178d9a362 Mon Sep 17 00:00:00 2001 From: Laurent Monin Date: Wed, 7 May 2014 18:02:12 +0200 Subject: [PATCH 099/212] Add methods descriptions + minor tidy up --- picard/coverart.py | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/picard/coverart.py b/picard/coverart.py index 7d9ef1400..8a7816870 100644 --- a/picard/coverart.py +++ b/picard/coverart.py @@ -74,6 +74,7 @@ _CAA_THUMBNAIL_SIZE_MAP = { 1: "large", } + class CoverArtImage: support_types = False @@ -126,10 +127,11 @@ class CoverArt: return "CoverArt for %r" % (self.album) def retrieve(self): + """Retrieve available cover art images for the release""" if (config.setting['ca_provider_use_caa'] - and self.len_caa_types > 0 - and self._has_caa_artwork()): + and self.len_caa_types > 0 + and self._has_caa_artwork()): log.debug("There are suitable images in the cover art archive for %s" % self.release.id) self._xmlws_download( @@ -148,6 +150,7 @@ class CoverArt: self._download_next_in_queue() def _has_caa_artwork(self): + """Check if CAA artwork has to be downloaded""" # MB web service indicates if CAA has artwork # http://tickets.musicbrainz.org/browse/MBS-4536 has_caa_artwork = False @@ -180,17 +183,21 @@ class CoverArt: return has_caa_artwork def message(self, *args, **kwargs): + """Display message to status bar""" QObject.tagger.window.set_statusbar_message(*args, **kwargs) def _xmlws_download(self, *args, **kwargs): + """xmlws.download wrapper""" self.album._requests += 1 self.album.tagger.xmlws.download(*args, **kwargs) def _coverart_http_error(self, http): + """Append http error to album errors""" self.album.error_append(u'Coverart error: %s' % (unicode(http.errorString()))) def _coverart_downloaded(self, coverartimage, data, http, error): + """Handle finished download, save it to metadata""" self.album._requests -= 1 if error: @@ -238,6 +245,7 @@ class CoverArt: self._download_next_in_queue() def _caa_json_downloaded(self, data, http, error): + """Parse CAA JSON file and queue CAA cover art images for download""" self.album._requests -= 1 caa_front_found = False if error: @@ -278,8 +286,8 @@ class CoverArt: url = image["thumbnails"][thumbsize] coverartimage = CaaCoverArtImage( url, - types = image["types"], - desc = image["comment"], + types=image["types"], + desc=image["comment"], ) coverartimage.is_front = bool(image['front']) # front image indicator from CAA self._queue_put(coverartimage) @@ -350,6 +358,7 @@ class CoverArt: ) def _process_asin_relation(self, relation): + """Queue cover art images from Amazon""" amz = parse_amazon_url(relation.target[0].text) if amz is None: return From adc014eae1230d415d0ca4c1415ecf6bf362962e Mon Sep 17 00:00:00 2001 From: Laurent Monin Date: Thu, 8 May 2014 07:53:08 +0200 Subject: [PATCH 100/212] Move _process_asin_relation() near its caller --- picard/coverart.py | 32 ++++++++++++++++---------------- 1 file changed, 16 insertions(+), 16 deletions(-) diff --git a/picard/coverart.py b/picard/coverart.py index 8a7816870..c55b5488f 100644 --- a/picard/coverart.py +++ b/picard/coverart.py @@ -319,6 +319,22 @@ class CoverArt: except AttributeError: self.album.error_append(traceback.format_exc()) + def _process_asin_relation(self, relation): + """Queue cover art images from Amazon""" + amz = parse_amazon_url(relation.target[0].text) + if amz is None: + return + log.debug("Found ASIN relation : %s %s", amz['host'], amz['asin']) + if amz['host'] in AMAZON_SERVER: + serverInfo = AMAZON_SERVER[amz['host']] + else: + serverInfo = AMAZON_SERVER['amazon.com'] + host = serverInfo['server'] + for size in ('L', 'M'): + path = AMAZON_IMAGE_PATH % (amz['asin'], serverInfo['id'], size) + url = "http://%s:%s" % (host, path) + self._queue_put(CoverArtImage(url)) + def _download_next_in_queue(self): """Downloads each item in queue. If there are none left, loading of album will be finalized. @@ -357,22 +373,6 @@ class CoverArt: important=False ) - def _process_asin_relation(self, relation): - """Queue cover art images from Amazon""" - amz = parse_amazon_url(relation.target[0].text) - if amz is None: - return - log.debug("Found ASIN relation : %s %s", amz['host'], amz['asin']) - if amz['host'] in AMAZON_SERVER: - serverInfo = AMAZON_SERVER[amz['host']] - else: - serverInfo = AMAZON_SERVER['amazon.com'] - host = serverInfo['server'] - for size in ('L', 'M'): - path = AMAZON_IMAGE_PATH % (amz['asin'], serverInfo['id'], size) - url = "http://%s:%s" % (host, path) - self._queue_put(CoverArtImage(url)) - def _queue_put(self, coverartimage): "Add an image to queue" log.debug("Queing image %r for download", coverartimage) From 91f1baf8dd736a471459828c44df5b74204cf957 Mon Sep 17 00:00:00 2001 From: Laurent Monin Date: Thu, 8 May 2014 07:55:05 +0200 Subject: [PATCH 101/212] Move message() and _xmlws_download() --- picard/coverart.py | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/picard/coverart.py b/picard/coverart.py index c55b5488f..90fbe6331 100644 --- a/picard/coverart.py +++ b/picard/coverart.py @@ -182,15 +182,6 @@ class CoverArt: return has_caa_artwork - def message(self, *args, **kwargs): - """Display message to status bar""" - QObject.tagger.window.set_statusbar_message(*args, **kwargs) - - def _xmlws_download(self, *args, **kwargs): - """xmlws.download wrapper""" - self.album._requests += 1 - self.album.tagger.xmlws.download(*args, **kwargs) - def _coverart_http_error(self, http): """Append http error to album errors""" self.album.error_append(u'Coverart error: %s' % @@ -390,6 +381,15 @@ class CoverArt: "Initialize the queue" self.__queue = [] + def message(self, *args, **kwargs): + """Display message to status bar""" + QObject.tagger.window.set_statusbar_message(*args, **kwargs) + + def _xmlws_download(self, *args, **kwargs): + """xmlws.download wrapper""" + self.album._requests += 1 + self.album.tagger.xmlws.download(*args, **kwargs) + def coverart(album, metadata, release): """ Gets all cover art URLs from the metadata and then attempts to From 1fe8c708a43c9f43caf73f1bc26cea3dc81b75bd Mon Sep 17 00:00:00 2001 From: Laurent Monin Date: Thu, 8 May 2014 07:56:46 +0200 Subject: [PATCH 102/212] message() -> _message() --- picard/coverart.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/picard/coverart.py b/picard/coverart.py index 90fbe6331..c89ef3a0d 100644 --- a/picard/coverart.py +++ b/picard/coverart.py @@ -196,7 +196,7 @@ class CoverArt: elif len(data) < 1000: self.album.error_append("Not enough data, skipping image %r" % coverartimage) else: - self.message( + self._message( N_("Cover art of type '%(type)s' downloaded for %(albumid)s from %(host)s"), { 'type': ','.join(coverartimage.types), @@ -347,7 +347,7 @@ class CoverArt: self._download_next_in_queue() return - self.message( + self._message( N_("Downloading cover art of type '%(type)s' for %(albumid)s from %(host)s ..."), { 'type': ','.join(coverartimage.types), @@ -381,7 +381,7 @@ class CoverArt: "Initialize the queue" self.__queue = [] - def message(self, *args, **kwargs): + def _message(self, *args, **kwargs): """Display message to status bar""" QObject.tagger.window.set_statusbar_message(*args, **kwargs) From 2b94c71348dadab1a9434093e4fa7b55a5d2508f Mon Sep 17 00:00:00 2001 From: Laurent Monin Date: Thu, 8 May 2014 07:57:59 +0200 Subject: [PATCH 103/212] _process_asin_relation() -> _queue_from_asin_relation() --- picard/coverart.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/picard/coverart.py b/picard/coverart.py index c89ef3a0d..5554bd3c1 100644 --- a/picard/coverart.py +++ b/picard/coverart.py @@ -306,11 +306,11 @@ class CoverArt: elif use_amazon \ and (relation.type == 'amazon asin' or relation.type == 'has_Amazon_ASIN'): - self._process_asin_relation(relation) + self._queue_from_asin_relation(relation) except AttributeError: self.album.error_append(traceback.format_exc()) - def _process_asin_relation(self, relation): + def _queue_from_asin_relation(self, relation): """Queue cover art images from Amazon""" amz = parse_amazon_url(relation.target[0].text) if amz is None: From 90faeb9fd473ffccd76154eee7f68793b7e44a13 Mon Sep 17 00:00:00 2001 From: Laurent Monin Date: Thu, 8 May 2014 08:02:06 +0200 Subject: [PATCH 104/212] Move code to new _queue_from_cover_art_relation() Consistency. --- picard/coverart.py | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/picard/coverart.py b/picard/coverart.py index 5554bd3c1..742c75a6c 100644 --- a/picard/coverart.py +++ b/picard/coverart.py @@ -300,9 +300,7 @@ class CoverArt: if use_whitelist \ and (relation.type == 'cover art link' or relation.type == 'has_cover_art_at'): - log.debug("Found cover art link in whitelist") - url = relation.target[0].text - self._queue_put(CoverArtImage(url)) + self._queue_from_cover_art_relation(relation) elif use_amazon \ and (relation.type == 'amazon asin' or relation.type == 'has_Amazon_ASIN'): @@ -310,6 +308,12 @@ class CoverArt: except AttributeError: self.album.error_append(traceback.format_exc()) + def _queue_from_cover_art_relation(self, relation): + """Queue from cover art relationships""" + log.debug("Found cover art link in whitelist") + url = relation.target[0].text + self._queue_put(CoverArtImage(url)) + def _queue_from_asin_relation(self, relation): """Queue cover art images from Amazon""" amz = parse_amazon_url(relation.target[0].text) From f086ccb1e917bdc960e9f02ada3181c031b20714 Mon Sep 17 00:00:00 2001 From: Laurent Monin Date: Thu, 8 May 2014 08:04:26 +0200 Subject: [PATCH 105/212] _queue_image_from_caa() -> _queue_from_caa() --- picard/coverart.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/picard/coverart.py b/picard/coverart.py index 742c75a6c..1db103a9c 100644 --- a/picard/coverart.py +++ b/picard/coverart.py @@ -261,13 +261,13 @@ class CoverArt: if types: if not caa_front_found: caa_front_found = u'front' in types - self._queue_image_from_caa(image) + self._queue_from_caa(image) if error or not caa_front_found: self._queue_from_relationships() self._download_next_in_queue() - def _queue_image_from_caa(self, image): + def _queue_from_caa(self, image): """Queue images depending on the CAA image size settings.""" imagesize = config.setting["caa_image_size"] thumbsize = _CAA_THUMBNAIL_SIZE_MAP.get(imagesize, None) From 5cddf673131a10689c0573ecc2b193097bdb1281 Mon Sep 17 00:00:00 2001 From: Laurent Monin Date: Thu, 8 May 2014 09:00:01 +0200 Subject: [PATCH 106/212] CoverArtImage.desc -> CoverArtImage.comment --- picard/coverart.py | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/picard/coverart.py b/picard/coverart.py index 1db103a9c..3fa4f4516 100644 --- a/picard/coverart.py +++ b/picard/coverart.py @@ -81,7 +81,7 @@ class CoverArtImage: # consider all images as front if types aren't supported by provider is_front = True - def __init__(self, url, types=[u'front'], desc=''): + def __init__(self, url, types=[u'front'], comment=''): self.url = QUrl(url) path = str(self.url.encodedPath()) if self.url.hasQuery(): @@ -90,7 +90,7 @@ class CoverArtImage: self.port = self.url.port(80) self.path = str(path) self.types = types - self.desc = desc + self.comment = comment def is_front_image(self): # CAA has a flag for "front" image, use it in priority @@ -100,8 +100,8 @@ class CoverArtImage: return u'front' in self.types def __repr__(self): - if self.desc: - return "types: %r (%r) from %s" % (self.types, self.desc, self.url.toString()) + if self.comment: + return "types: %r (%r) from %s" % (self.types, self.comment, self.url.toString()) else: return "types: %r from %s" % (self.types, self.url.toString()) @@ -211,7 +211,7 @@ class CoverArt: mime, data, types=coverartimage.types, - comment=coverartimage.desc, + comment=coverartimage.comment, is_front=coverartimage.is_front ) for track in self.album._new_tracks: @@ -219,7 +219,7 @@ class CoverArt: mime, data, types=coverartimage.types, - comment=coverartimage.desc, + comment=coverartimage.comment, is_front=coverartimage.is_front ) except (IOError, OSError) as e: @@ -278,7 +278,7 @@ class CoverArt: coverartimage = CaaCoverArtImage( url, types=image["types"], - desc=image["comment"], + comment=image["comment"], ) coverartimage.is_front = bool(image['front']) # front image indicator from CAA self._queue_put(coverartimage) From 919150d2a2415035bc93f4c02bd48a0386a280cc Mon Sep 17 00:00:00 2001 From: Laurent Monin Date: Thu, 8 May 2014 09:31:24 +0200 Subject: [PATCH 107/212] CoverArtImage: make url optional at instanciation, improve __repr__() --- picard/coverart.py | 21 +++++++++++++++------ 1 file changed, 15 insertions(+), 6 deletions(-) diff --git a/picard/coverart.py b/picard/coverart.py index 3fa4f4516..bdb52245e 100644 --- a/picard/coverart.py +++ b/picard/coverart.py @@ -81,7 +81,15 @@ class CoverArtImage: # consider all images as front if types aren't supported by provider is_front = True - def __init__(self, url, types=[u'front'], comment=''): + def __init__(self, url=None, types=[u'front'], comment=''): + if url is not None: + self.parse_url(url) + else: + self.url = None + self.types = types + self.comment = comment + + def parse_url(self, url): self.url = QUrl(url) path = str(self.url.encodedPath()) if self.url.hasQuery(): @@ -89,8 +97,6 @@ class CoverArtImage: self.host = str(self.url.host()) self.port = self.url.port(80) self.path = str(path) - self.types = types - self.comment = comment def is_front_image(self): # CAA has a flag for "front" image, use it in priority @@ -100,10 +106,13 @@ class CoverArtImage: return u'front' in self.types def __repr__(self): + p = [] + if self.url is not None: + p.append("url=%r" % self.url.toString()) + p.append("types=%r" % self.types) if self.comment: - return "types: %r (%r) from %s" % (self.types, self.comment, self.url.toString()) - else: - return "types: %r from %s" % (self.types, self.url.toString()) + p.append("comment=%r" % self.comment) + return "%s(%s)" % (self.__class__.__name__, ", ".join(p)) class CaaCoverArtImage(CoverArtImage): From 4f3520e68855aca41b4d52221b1e79bcf22ee797 Mon Sep 17 00:00:00 2001 From: Laurent Monin Date: Thu, 8 May 2014 09:46:35 +0200 Subject: [PATCH 108/212] CoverArtImage: add __unicode__() and __str__(), improve error/debug messages --- picard/coverart.py | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) diff --git a/picard/coverart.py b/picard/coverart.py index bdb52245e..11d59b892 100644 --- a/picard/coverart.py +++ b/picard/coverart.py @@ -114,6 +114,18 @@ class CoverArtImage: p.append("comment=%r" % self.comment) return "%s(%s)" % (self.__class__.__name__, ", ".join(p)) + def __unicode__(self): + p = [u'Image'] + if self.url is not None: + p.append(u"from %s" % self.url.toString()) + p.append(u"of type %s" % u','.join(self.types)) + if self.comment: + p.append(u"and comment '%s'" % self.comment) + return u' '.join(p) + + def __str__(self): + return unicode(self).encode('utf-8') + class CaaCoverArtImage(CoverArtImage): @@ -203,7 +215,7 @@ class CoverArt: if error: self._coverart_http_error(http) elif len(data) < 1000: - self.album.error_append("Not enough data, skipping image %r" % coverartimage) + self.album.error_append("Not enough data, skipping %s" % coverartimage) else: self._message( N_("Cover art of type '%(type)s' downloaded for %(albumid)s from %(host)s"), @@ -355,7 +367,7 @@ class CoverArt: if not coverartimage.support_types and self.at_least_one_front_image: # we already have one front image, no need to try other type-less # sources - log.debug("Skipping cover art %r, one front image is already available", + log.debug("Skipping %r, one front image is already available", coverartimage) self._download_next_in_queue() return @@ -379,7 +391,7 @@ class CoverArt: def _queue_put(self, coverartimage): "Add an image to queue" - log.debug("Queing image %r for download", coverartimage) + log.debug("Queing %r for download", coverartimage) self.__queue.append(coverartimage) def _queue_get(self): From 118bfa8d5c558d985961c2b73077ce07d3d97ccc Mon Sep 17 00:00:00 2001 From: Laurent Monin Date: Thu, 8 May 2014 10:16:37 +0200 Subject: [PATCH 109/212] Improve CAA debug messages --- picard/coverart.py | 67 +++++++++++++++++++++++++++------------------- 1 file changed, 40 insertions(+), 27 deletions(-) diff --git a/picard/coverart.py b/picard/coverart.py index 11d59b892..c404ac55c 100644 --- a/picard/coverart.py +++ b/picard/coverart.py @@ -150,11 +150,7 @@ class CoverArt: def retrieve(self): """Retrieve available cover art images for the release""" - if (config.setting['ca_provider_use_caa'] - and self.len_caa_types > 0 - and self._has_caa_artwork()): - log.debug("There are suitable images in the cover art archive for %s" - % self.release.id) + if self._has_caa_artwork(): self._xmlws_download( CAA_HOST, CAA_PORT, @@ -164,14 +160,18 @@ class CoverArt: important=False ) else: - if config.setting['ca_provider_use_caa']: - log.debug("There are no suitable images in the cover art archive for %s" - % self.release.id) self._queue_from_relationships() self._download_next_in_queue() def _has_caa_artwork(self): """Check if CAA artwork has to be downloaded""" + if not config.setting['ca_provider_use_caa']: + log.debug("Cover Art Archive disabled by user") + return False + if not self.len_caa_types: + log.debug("User disabled all Cover Art Archive types") + return False + # MB web service indicates if CAA has artwork # http://tickets.musicbrainz.org/browse/MBS-4536 has_caa_artwork = False @@ -179,27 +179,40 @@ class CoverArt: if 'cover_art_archive' in self.release.children: caa_node = self.release.children['cover_art_archive'][0] has_caa_artwork = (caa_node.artwork[0].text == 'true') - has_front = 'front' in self.caa_types - has_back = 'back' in self.caa_types - if self.len_caa_types == 2 and (has_front or has_back): - # The OR cases are there to still download and process the CAA - # JSON file if front or back is enabled but not in the CAA and - # another type (that's neither front nor back) is enabled. - # For example, if both front and booklet are enabled and the - # CAA only has booklet images, the front element in the XML - # from the webservice will be false (thus front_in_caa is False - # as well) but it's still necessary to download the booklet - # images by using the fact that back is enabled but there are - # no back images in the CAA. - front_in_caa = caa_node.front[0].text == 'true' or not has_front - back_in_caa = caa_node.back[0].text == 'true' or not has_back - has_caa_artwork = has_caa_artwork and (front_in_caa or back_in_caa) + if not has_caa_artwork: + log.debug("There are no images in the Cover Art Archive for %s" + % self.release.id) + return False - elif self.len_caa_types == 1 and (has_front or has_back): - front_in_caa = caa_node.front[0].text == 'true' and has_front - back_in_caa = caa_node.back[0].text == 'true' and has_back - has_caa_artwork = has_caa_artwork and (front_in_caa or back_in_caa) + has_front = 'front' in self.caa_types + has_back = 'back' in self.caa_types + + if self.len_caa_types == 2 and (has_front or has_back): + # The OR cases are there to still download and process the CAA + # JSON file if front or back is enabled but not in the CAA and + # another type (that's neither front nor back) is enabled. + # For example, if both front and booklet are enabled and the + # CAA only has booklet images, the front element in the XML + # from the webservice will be false (thus front_in_caa is False + # as well) but it's still necessary to download the booklet + # images by using the fact that back is enabled but there are + # no back images in the CAA. + front_in_caa = caa_node.front[0].text == 'true' or not has_front + back_in_caa = caa_node.back[0].text == 'true' or not has_back + has_caa_artwork = front_in_caa or back_in_caa + + elif self.len_caa_types == 1 and (has_front or has_back): + front_in_caa = caa_node.front[0].text == 'true' and has_front + back_in_caa = caa_node.back[0].text == 'true' and has_back + has_caa_artwork = front_in_caa or back_in_caa + + if not has_caa_artwork: + log.debug("There are no suitable images in the Cover Art Archive for %s" + % self.release.id) + else: + log.debug("There are suitable images in the Cover Art Archive for %s" + % self.release.id) return has_caa_artwork From 5ed2a5b81aa24623157f5c5efded0e3021e6639f Mon Sep 17 00:00:00 2001 From: Laurent Monin Date: Thu, 8 May 2014 10:54:57 +0200 Subject: [PATCH 110/212] _download_next_in_queue(): fix up description --- picard/coverart.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/picard/coverart.py b/picard/coverart.py index c404ac55c..0bdb38175 100644 --- a/picard/coverart.py +++ b/picard/coverart.py @@ -365,7 +365,7 @@ class CoverArt: self._queue_put(CoverArtImage(url)) def _download_next_in_queue(self): - """Downloads each item in queue. + """Downloads next item in queue. If there are none left, loading of album will be finalized. """ if self._queue_empty(): From e762388a94ce1027c924ef92f15769d3ed5e0492 Mon Sep 17 00:00:00 2001 From: Laurent Monin Date: Fri, 9 May 2014 15:19:28 +0200 Subject: [PATCH 111/212] Add Copyright line in licence header --- picard/coverart.py | 1 + 1 file changed, 1 insertion(+) diff --git a/picard/coverart.py b/picard/coverart.py index 0bdb38175..d15a4bb09 100644 --- a/picard/coverart.py +++ b/picard/coverart.py @@ -6,6 +6,7 @@ # Copyright (C) 2007, 2010, 2011 Lukáš Lalinský # Copyright (C) 2011 Michael Wiencek # Copyright (C) 2011-2012 Wieland Hoffmann +# Copyright (C) 2013-2014 Laurent Monin # # This program is free software; you can redistribute it and/or # modify it under the terms of the GNU General Public License From 7a90e8896abed75f037fe6b39afae0d366dde29c Mon Sep 17 00:00:00 2001 From: Laurent Monin Date: Fri, 9 May 2014 15:21:10 +0200 Subject: [PATCH 112/212] CoverArtImage.parse_url(): tidy up --- picard/coverart.py | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/picard/coverart.py b/picard/coverart.py index d15a4bb09..d455ec8ba 100644 --- a/picard/coverart.py +++ b/picard/coverart.py @@ -92,12 +92,11 @@ class CoverArtImage: def parse_url(self, url): self.url = QUrl(url) - path = str(self.url.encodedPath()) - if self.url.hasQuery(): - path += '?' + self.url.encodedQuery() self.host = str(self.url.host()) self.port = self.url.port(80) - self.path = str(path) + self.path = str(self.url.encodedPath()) + if self.url.hasQuery(): + self.path += '?' + str(self.url.encodedQuery()) def is_front_image(self): # CAA has a flag for "front" image, use it in priority From b256b673cdda68cfa479fc523a94cc80c86659e1 Mon Sep 17 00:00:00 2001 From: Laurent Monin Date: Fri, 9 May 2014 15:23:01 +0200 Subject: [PATCH 113/212] at_least_one_front_image -> front_image_found --- picard/coverart.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/picard/coverart.py b/picard/coverart.py index d455ec8ba..88165a128 100644 --- a/picard/coverart.py +++ b/picard/coverart.py @@ -142,7 +142,7 @@ class CoverArt: self.release = release self.caa_types = map(unicode.lower, config.setting["caa_image_types"]) self.len_caa_types = len(self.caa_types) - self.at_least_one_front_image = False + self.front_image_found = False def __repr__(self): return "CoverArt for %r" % (self.album) @@ -265,8 +265,8 @@ class CoverArt: # If the image already was a front image, there might still be some # other non-CAA front images in the queue - ignore them. - if not self.at_least_one_front_image: - self.at_least_one_front_image = coverartimage.is_front_image() + if not self.front_image_found: + self.front_image_found = coverartimage.is_front_image() self._download_next_in_queue() def _caa_json_downloaded(self, data, http, error): @@ -377,7 +377,7 @@ class CoverArt: # We still have some items to try! coverartimage = self._queue_get() - if not coverartimage.support_types and self.at_least_one_front_image: + if not coverartimage.support_types and self.front_image_found: # we already have one front image, no need to try other type-less # sources log.debug("Skipping %r, one front image is already available", From af67fd22bd2edfda3b9698bd003474d039319d5b Mon Sep 17 00:00:00 2001 From: Laurent Monin Date: Fri, 9 May 2014 15:24:51 +0200 Subject: [PATCH 114/212] Wrap few long lines and remove spurious space --- picard/coverart.py | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/picard/coverart.py b/picard/coverart.py index 88165a128..7b2efe288 100644 --- a/picard/coverart.py +++ b/picard/coverart.py @@ -228,7 +228,8 @@ class CoverArt: if error: self._coverart_http_error(http) elif len(data) < 1000: - self.album.error_append("Not enough data, skipping %s" % coverartimage) + self.album.error_append("Not enough data, skipping %s" % + coverartimage) else: self._message( N_("Cover art of type '%(type)s' downloaded for %(albumid)s from %(host)s"), @@ -279,7 +280,8 @@ class CoverArt: try: caa_data = json.loads(data) except ValueError: - self.album.error_append("Invalid JSON: %s", http.url().toString()) + self.album.error_append( + "Invalid JSON: %s", http.url().toString()) else: for image in caa_data["images"]: if config.setting["caa_approved_only"] and not image["approved"]: @@ -291,7 +293,8 @@ class CoverArt: else: image["types"] = map(unicode.lower, image["types"]) # only keep enabled caa types - types = set(image["types"]).intersection(set(self.caa_types)) + types = set(image["types"]).intersection( + set(self.caa_types)) if types: if not caa_front_found: caa_front_found = u'front' in types @@ -314,7 +317,8 @@ class CoverArt: types=image["types"], comment=image["comment"], ) - coverartimage.is_front = bool(image['front']) # front image indicator from CAA + # front image indicator from CAA + coverartimage.is_front = bool(image['front']) self._queue_put(coverartimage) def _queue_from_relationships(self): @@ -430,7 +434,7 @@ class CoverArt: def coverart(album, metadata, release): - """ Gets all cover art URLs from the metadata and then attempts to + """Gets all cover art URLs from the metadata and then attempts to download the album art. """ coverart = CoverArt(album, metadata, release) From 75857294556171d6ae4594a29805ecbd33bc0370 Mon Sep 17 00:00:00 2001 From: Laurent Monin Date: Fri, 9 May 2014 16:12:55 +0200 Subject: [PATCH 115/212] Use named place holders in AMAZON_IMAGE_PATH --- picard/coverart.py | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/picard/coverart.py b/picard/coverart.py index 7b2efe288..6f33cc47e 100644 --- a/picard/coverart.py +++ b/picard/coverart.py @@ -67,7 +67,7 @@ AMAZON_SERVER = { }, } -AMAZON_IMAGE_PATH = '/images/P/%s.%s.%sZZZZZZZ.jpg' +AMAZON_IMAGE_PATH = '/images/P/%(asin)s.%(serverid)s.%(size)sZZZZZZZ.jpg' _CAA_THUMBNAIL_SIZE_MAP = { @@ -364,7 +364,11 @@ class CoverArt: serverInfo = AMAZON_SERVER['amazon.com'] host = serverInfo['server'] for size in ('L', 'M'): - path = AMAZON_IMAGE_PATH % (amz['asin'], serverInfo['id'], size) + path = AMAZON_IMAGE_PATH % { + 'asin': amz['asin'], + 'serverid': serverInfo['id'], + 'size': size + } url = "http://%s:%s" % (host, path) self._queue_put(CoverArtImage(url)) From 21590355e123fe6fe00ead60897d06047de65b06 Mon Sep 17 00:00:00 2001 From: Laurent Monin Date: Fri, 9 May 2014 16:15:47 +0200 Subject: [PATCH 116/212] Fix up incorrect handling of missing image (data < 1000) case - just log a warning, it may happen ie. if large amazon's image request failed - set front_image_found only if no error --- picard/coverart.py | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/picard/coverart.py b/picard/coverart.py index 6f33cc47e..e70d656c4 100644 --- a/picard/coverart.py +++ b/picard/coverart.py @@ -228,8 +228,7 @@ class CoverArt: if error: self._coverart_http_error(http) elif len(data) < 1000: - self.album.error_append("Not enough data, skipping %s" % - coverartimage) + log.warning("Not enough data, skipping %s" % coverartimage) else: self._message( N_("Cover art of type '%(type)s' downloaded for %(albumid)s from %(host)s"), @@ -257,6 +256,12 @@ class CoverArt: comment=coverartimage.comment, is_front=coverartimage.is_front ) + # If the image already was a front image, + # there might still be some other non-CAA front + # images in the queue - ignore them. + if not self.front_image_found: + self.front_image_found = coverartimage.is_front_image() + except (IOError, OSError) as e: self.album.error_append(e.message) self.album._finalize_loading(error=True) @@ -264,10 +269,6 @@ class CoverArt: # save them in the temporary folder, abort. return - # If the image already was a front image, there might still be some - # other non-CAA front images in the queue - ignore them. - if not self.front_image_found: - self.front_image_found = coverartimage.is_front_image() self._download_next_in_queue() def _caa_json_downloaded(self, data, http, error): From 5a398062c10055bf83ab282bffa6b88c8eca0f88 Mon Sep 17 00:00:00 2001 From: Laurent Monin Date: Fri, 9 May 2014 17:58:51 +0200 Subject: [PATCH 117/212] Improve amazon sizes codes description Source: http://aaugh.com/imageabuse.html (+ confirmed by my tests) --- picard/coverart.py | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) diff --git a/picard/coverart.py b/picard/coverart.py index e70d656c4..6c8e38914 100644 --- a/picard/coverart.py +++ b/picard/coverart.py @@ -67,8 +67,22 @@ AMAZON_SERVER = { }, } -AMAZON_IMAGE_PATH = '/images/P/%(asin)s.%(serverid)s.%(size)sZZZZZZZ.jpg' +AMAZON_IMAGE_PATH = '/images/P/%(asin)s.%(serverid)s.%(size)s.jpg' +# First item in the list will be tried first +AMAZON_SIZES = ( + # huge size option is only available for items + # that have a ZOOMing picture on its amazon web page + # and it doesn't work for all of the domain names + #'_SCRM_', # huge size + 'LZZZZZZZ', # large size, option format 1 + #'_SCLZZZZZZZ_', # large size, option format 3 + 'MZZZZZZZ', # default image size, format 1 + #'_SCMZZZZZZZ_', # medium size, option format 3 + #'TZZZZZZZ', # medium image size, option format 1 + #'_SCTZZZZZZZ_', # small size, option format 3 + #'THUMBZZZ', # small size, option format 1 +) _CAA_THUMBNAIL_SIZE_MAP = { 0: "small", @@ -364,7 +378,7 @@ class CoverArt: else: serverInfo = AMAZON_SERVER['amazon.com'] host = serverInfo['server'] - for size in ('L', 'M'): + for size in AMAZON_SIZES: path = AMAZON_IMAGE_PATH % { 'asin': amz['asin'], 'serverid': serverInfo['id'], From 1a135341059bc9928447ed7d4aaf2f985a89d7d0 Mon Sep 17 00:00:00 2001 From: Sophist Date: Sat, 10 May 2014 16:41:47 +0100 Subject: [PATCH 118/212] Only refresh objects which can be refreshed --- picard/tagger.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/picard/tagger.py b/picard/tagger.py index b40f121fe..a02ca7053 100644 --- a/picard/tagger.py +++ b/picard/tagger.py @@ -613,7 +613,8 @@ class Tagger(QtGui.QApplication): def refresh(self, objs): for obj in objs: - obj.load(priority=True, refresh=True) + if obj.can_refresh(): + obj.load(priority=True, refresh=True) @classmethod def instance(cls): From 76bf791c2a990eebe3b1d7620bd002a5999415b0 Mon Sep 17 00:00:00 2001 From: Sophist Date: Sat, 10 May 2014 19:02:42 +0100 Subject: [PATCH 119/212] Fix conversion of : to _ in drive letter on windows ``` D: 19:02:00 Saving cover images to u'D_\\Audio\\Music\\Pop\\ABBA\\ABBA (1992) Gold - Greatest Hits\\folder' E: 19:02:00 Traceback (most recent call last): File "picard\util\thread.pyo", line 46, in run File "picard\file.pyo", line 197, in _save_and_rename File "picard\file.pyo", line 326, in _save_images File "picard\metadata.pyo", line 143, in save File "os.pyo", line 150, in makedirs File "os.pyo", line 150, in makedirs File "os.pyo", line 150, in makedirs File "os.pyo", line 150, in makedirs File "os.pyo", line 150, in makedirs File "os.pyo", line 157, in makedirs WindowsError: [Error 5] Access is denied: u'D_' ``` --- picard/metadata.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/picard/metadata.py b/picard/metadata.py index f7542fccc..fa5e6c37e 100644 --- a/picard/metadata.py +++ b/picard/metadata.py @@ -92,7 +92,8 @@ class Image(object): filename = os.path.join(dirname, filename) # replace incompatible characters if config.setting["windows_compatibility"] or sys.platform == "win32": - filename = replace_win32_incompat(filename) + drive, rest = os.path.splitdrive(filename) + filename = drive + replace_win32_incompat(rest) # remove null characters filename = filename.replace("\x00", "") return encode_filename(filename) From 807870274128986bde2ede2404f29f0aa8035878 Mon Sep 17 00:00:00 2001 From: Laurent Monin Date: Sat, 10 May 2014 20:53:30 +0200 Subject: [PATCH 120/212] has_front -> want_front, has_back -> want_back Those are defined according to user config option for accepted caa types. --- picard/coverart.py | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/picard/coverart.py b/picard/coverart.py index 6c8e38914..0c40358f0 100644 --- a/picard/coverart.py +++ b/picard/coverart.py @@ -199,10 +199,10 @@ class CoverArt: % self.release.id) return False - has_front = 'front' in self.caa_types - has_back = 'back' in self.caa_types + want_front = 'front' in self.caa_types + want_back = 'back' in self.caa_types - if self.len_caa_types == 2 and (has_front or has_back): + if self.len_caa_types == 2 and (want_front or want_back): # The OR cases are there to still download and process the CAA # JSON file if front or back is enabled but not in the CAA and # another type (that's neither front nor back) is enabled. @@ -212,13 +212,13 @@ class CoverArt: # as well) but it's still necessary to download the booklet # images by using the fact that back is enabled but there are # no back images in the CAA. - front_in_caa = caa_node.front[0].text == 'true' or not has_front - back_in_caa = caa_node.back[0].text == 'true' or not has_back + front_in_caa = caa_node.front[0].text == 'true' or not want_front + back_in_caa = caa_node.back[0].text == 'true' or not want_back has_caa_artwork = front_in_caa or back_in_caa - elif self.len_caa_types == 1 and (has_front or has_back): - front_in_caa = caa_node.front[0].text == 'true' and has_front - back_in_caa = caa_node.back[0].text == 'true' and has_back + elif self.len_caa_types == 1 and (want_front or want_back): + front_in_caa = caa_node.front[0].text == 'true' and want_front + back_in_caa = caa_node.back[0].text == 'true' and want_back has_caa_artwork = front_in_caa or back_in_caa if not has_caa_artwork: From 7b034087d707d38620b7ca22281c49a1f87bc847 Mon Sep 17 00:00:00 2001 From: Laurent Monin Date: Sat, 10 May 2014 20:59:52 +0200 Subject: [PATCH 121/212] Introduce caa_has_front and caa_has_back, reduce code redundancy --- picard/coverart.py | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/picard/coverart.py b/picard/coverart.py index 0c40358f0..245198a62 100644 --- a/picard/coverart.py +++ b/picard/coverart.py @@ -201,6 +201,8 @@ class CoverArt: want_front = 'front' in self.caa_types want_back = 'back' in self.caa_types + caa_has_front = caa_node.front[0].text == 'true' + caa_has_back = caa_node.back[0].text == 'true' if self.len_caa_types == 2 and (want_front or want_back): # The OR cases are there to still download and process the CAA @@ -212,13 +214,13 @@ class CoverArt: # as well) but it's still necessary to download the booklet # images by using the fact that back is enabled but there are # no back images in the CAA. - front_in_caa = caa_node.front[0].text == 'true' or not want_front - back_in_caa = caa_node.back[0].text == 'true' or not want_back + front_in_caa = caa_has_front or not want_front + back_in_caa = caa_has_back or not want_back has_caa_artwork = front_in_caa or back_in_caa elif self.len_caa_types == 1 and (want_front or want_back): - front_in_caa = caa_node.front[0].text == 'true' and want_front - back_in_caa = caa_node.back[0].text == 'true' and want_back + front_in_caa = caa_has_front and want_front + back_in_caa = caa_has_back and want_back has_caa_artwork = front_in_caa or back_in_caa if not has_caa_artwork: From ced1d2ac82dcdc908095c2a0bb6ac34f428e5b5f Mon Sep 17 00:00:00 2001 From: Laurent Monin Date: Sat, 10 May 2014 21:02:35 +0200 Subject: [PATCH 122/212] has_caa_artwork -> caa_has_suitable_artwork It reflects much more its purpose as even if caa has artwork we may have this set to False --- picard/coverart.py | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/picard/coverart.py b/picard/coverart.py index 245198a62..5aab95636 100644 --- a/picard/coverart.py +++ b/picard/coverart.py @@ -164,7 +164,7 @@ class CoverArt: def retrieve(self): """Retrieve available cover art images for the release""" - if self._has_caa_artwork(): + if self._caa_has_suitable_artwork(): self._xmlws_download( CAA_HOST, CAA_PORT, @@ -177,7 +177,7 @@ class CoverArt: self._queue_from_relationships() self._download_next_in_queue() - def _has_caa_artwork(self): + def _caa_has_suitable_artwork(self): """Check if CAA artwork has to be downloaded""" if not config.setting['ca_provider_use_caa']: log.debug("Cover Art Archive disabled by user") @@ -188,13 +188,13 @@ class CoverArt: # MB web service indicates if CAA has artwork # http://tickets.musicbrainz.org/browse/MBS-4536 - has_caa_artwork = False + caa_has_suitable_artwork = False if 'cover_art_archive' in self.release.children: caa_node = self.release.children['cover_art_archive'][0] - has_caa_artwork = (caa_node.artwork[0].text == 'true') + caa_has_suitable_artwork = (caa_node.artwork[0].text == 'true') - if not has_caa_artwork: + if not caa_has_suitable_artwork: log.debug("There are no images in the Cover Art Archive for %s" % self.release.id) return False @@ -216,21 +216,21 @@ class CoverArt: # no back images in the CAA. front_in_caa = caa_has_front or not want_front back_in_caa = caa_has_back or not want_back - has_caa_artwork = front_in_caa or back_in_caa + caa_has_suitable_artwork = front_in_caa or back_in_caa elif self.len_caa_types == 1 and (want_front or want_back): front_in_caa = caa_has_front and want_front back_in_caa = caa_has_back and want_back - has_caa_artwork = front_in_caa or back_in_caa + caa_has_suitable_artwork = front_in_caa or back_in_caa - if not has_caa_artwork: + if not caa_has_suitable_artwork: log.debug("There are no suitable images in the Cover Art Archive for %s" % self.release.id) else: log.debug("There are suitable images in the Cover Art Archive for %s" % self.release.id) - return has_caa_artwork + return caa_has_suitable_artwork def _coverart_http_error(self, http): """Append http error to album errors""" From 52afea16d8413b29970fd0e032f2b911f0a148ec Mon Sep 17 00:00:00 2001 From: Laurent Monin Date: Sat, 10 May 2014 21:21:13 +0200 Subject: [PATCH 123/212] Differentiate case of no CAA info vs no cover art --- picard/coverart.py | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/picard/coverart.py b/picard/coverart.py index 5aab95636..a3e81b439 100644 --- a/picard/coverart.py +++ b/picard/coverart.py @@ -188,11 +188,13 @@ class CoverArt: # MB web service indicates if CAA has artwork # http://tickets.musicbrainz.org/browse/MBS-4536 - caa_has_suitable_artwork = False + if 'cover_art_archive' not in self.release.children: + log.debug("No Cover Art Archive information for %s" + % self.release.id) + return False - if 'cover_art_archive' in self.release.children: - caa_node = self.release.children['cover_art_archive'][0] - caa_has_suitable_artwork = (caa_node.artwork[0].text == 'true') + caa_node = self.release.children['cover_art_archive'][0] + caa_has_suitable_artwork = caa_node.artwork[0].text == 'true' if not caa_has_suitable_artwork: log.debug("There are no images in the Cover Art Archive for %s" From b454cc15065b0f1bc7af8f2c58096b25faba6302 Mon Sep 17 00:00:00 2001 From: Laurent Monin Date: Sat, 10 May 2014 22:30:45 +0200 Subject: [PATCH 124/212] Remove the hack modifying album.metadata['album'] for display purpose This hack was leading to cluttered debug messages since __repr__() was returning status message in place of album's title. Instead use a `status` property which is displayed in place of the title when it isn't None. --- picard/album.py | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/picard/album.py b/picard/album.py index f429a5e32..5361c43ea 100644 --- a/picard/album.py +++ b/picard/album.py @@ -64,6 +64,7 @@ class Album(DataObject, Item): self._after_load_callbacks = [] self.unmatched_files = Cluster(_("Unmatched Files"), special=True, related_album=self, hide_if_empty=True) self.errors = [] + self.status = None def __repr__(self): return '' % (self.id, self.metadata[u"album"]) @@ -185,7 +186,7 @@ class Album(DataObject, Item): def _finalize_loading(self, error): if error: self.metadata.clear() - self.metadata['album'] = _("[could not load album %s]") % self.id + self.status = _("[could not load album %s]") % self.id del self._new_metadata del self._new_tracks self.update() @@ -271,6 +272,7 @@ class Album(DataObject, Item): del self._new_metadata del self._new_tracks self.loaded = True + self.status = None self.match_files(self.unmatched_files.files) self.update() self.tagger.window.set_statusbar_message( @@ -295,12 +297,12 @@ class Album(DataObject, Item): {'id': self.id} ) self.loaded = False + self.status = _("[loading album information]") if self.release_group: self.release_group.loaded = False self.release_group.folksonomy_tags.clear() self.metadata.clear() self.folksonomy_tags.clear() - self.metadata['album'] = _("[loading album information]") self.update() self._new_metadata = Metadata() self._new_tracks = [] @@ -462,12 +464,17 @@ class Album(DataObject, Item): def column(self, column): if column == 'title': + if self.status is not None: + title = self.status + else: + title = self.metadata['album'] if self.tracks: linked_tracks = 0 for track in self.tracks: if track.is_linked(): linked_tracks += 1 - text = u'%s\u200E (%d/%d' % (self.metadata['album'], linked_tracks, len(self.tracks)) + + text = u'%s\u200E (%d/%d' % (title, linked_tracks, len(self.tracks)) unmatched = self.get_num_unmatched_files() if unmatched: text += '; %d?' % (unmatched,) @@ -478,7 +485,7 @@ class Album(DataObject, Item): len(self.metadata.images)) % len(self.metadata.images) return text + ')' else: - return self.metadata['album'] + return title elif column == '~length': length = self.metadata.length if length: From c826639abc298b87dd8d6086c73d52193da07c5b Mon Sep 17 00:00:00 2001 From: Sophist Date: Sun, 11 May 2014 08:00:19 +0100 Subject: [PATCH 125/212] Improve 76bf791c2a990eebe3b1d7620bd002a5999415b0 Puts the fix where it really should be in replace_win32_incompat. --- picard/metadata.py | 3 +-- picard/util/__init__.py | 4 +++- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/picard/metadata.py b/picard/metadata.py index 964bbf941..4b336f244 100644 --- a/picard/metadata.py +++ b/picard/metadata.py @@ -86,8 +86,7 @@ class Image(object): filename = os.path.join(dirname, filename) # replace incompatible characters if config.setting["windows_compatibility"] or sys.platform == "win32": - drive, rest = os.path.splitdrive(filename) - filename = drive + replace_win32_incompat(rest) + filename = replace_win32_incompat(filename) # remove null characters filename = filename.replace("\x00", "") return encode_filename(filename) diff --git a/picard/util/__init__.py b/picard/util/__init__.py index 3f17c7518..9fd43990d 100644 --- a/picard/util/__init__.py +++ b/picard/util/__init__.py @@ -143,7 +143,9 @@ _re_win32_incompat = re.compile(r'["*:<>?|]', re.UNICODE) def replace_win32_incompat(string, repl=u"_"): """Replace win32 filename incompatible characters from ``string`` by ``repl``.""" - return _re_win32_incompat.sub(repl, string) + # Don't replace : with _ for windows drive + drive, rest = os.path.splitdrive(string) + return drive + _re_win32_incompat.sub(repl, rest) _re_non_alphanum = re.compile(r'\W+', re.UNICODE) From adab289bdb62309935f15fc7e5233ff4e9c89413 Mon Sep 17 00:00:00 2001 From: Sophist Date: Sun, 11 May 2014 10:24:35 +0100 Subject: [PATCH 126/212] Fix and add tests for windows drive --- test/test_utils.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/test/test_utils.py b/test/test_utils.py index 8a9cd9e85..634426970 100644 --- a/test/test_utils.py +++ b/test/test_utils.py @@ -14,7 +14,9 @@ class ReplaceWin32IncompatTest(unittest.TestCase): def test_correct(self): self.assertEqual(util.replace_win32_incompat("c:\\test\\te\"st/2"), - "c_\\test\\te_st/2") + "c:\\test\\te_st/2") + self.assertEqual(util.replace_win32_incompat("c:\\test\\d:/2"), + "c:\\test\\d_/2") self.assertEqual(util.replace_win32_incompat("A\"*:<>?|b"), "A_______b") From 81544ca38f5351555c08fdb1729cdf5a1c1d963d Mon Sep 17 00:00:00 2001 From: Sophist Date: Sun, 11 May 2014 11:31:58 +0100 Subject: [PATCH 127/212] Fix so this runs correctly under ix with win set. --- picard/util/__init__.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/picard/util/__init__.py b/picard/util/__init__.py index 9fd43990d..1a96dbf7c 100644 --- a/picard/util/__init__.py +++ b/picard/util/__init__.py @@ -19,6 +19,7 @@ # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. import os +import ntpath import re import sys import unicodedata @@ -144,7 +145,7 @@ def replace_win32_incompat(string, repl=u"_"): """Replace win32 filename incompatible characters from ``string`` by ``repl``.""" # Don't replace : with _ for windows drive - drive, rest = os.path.splitdrive(string) + drive, rest = ntpath.splitdrive(string) return drive + _re_win32_incompat.sub(repl, rest) From 478544f2bbcd8a226676957781b2d11bac3e8b21 Mon Sep 17 00:00:00 2001 From: Laurent Monin Date: Sun, 11 May 2014 13:29:53 +0200 Subject: [PATCH 128/212] Fix debug message "Add files at ..." Not very useful, replaced by a more useful debug message (later in code, since exclusion of files is already logged) --- picard/tagger.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/picard/tagger.py b/picard/tagger.py index a02ca7053..8a1a43f61 100644 --- a/picard/tagger.py +++ b/picard/tagger.py @@ -321,7 +321,6 @@ class Tagger(QtGui.QApplication): def add_files(self, filenames, target=None): """Add files to the tagger.""" - log.debug("Adding files %r", filenames) ignoreregex = None pattern = config.setting['ignore_regex'] if pattern: @@ -342,6 +341,7 @@ class Tagger(QtGui.QApplication): self.files[filename] = file new_files.append(file) if new_files: + log.debug("Adding files %r", new_files) new_files.sort(key=lambda x: x.filename) if target is None or target is self.unmatched_files: self.unmatched_files.add_files(new_files) From 6280451464717dae9d0b3bcde25dfb8f89790b52 Mon Sep 17 00:00:00 2001 From: Laurent Monin Date: Sun, 11 May 2014 14:03:52 +0200 Subject: [PATCH 129/212] Fix up "Waiting 0 ms before ..." debug message - last_ms has sub-milliseconds precision - request_delay - last_ms can be < 1.0 (and it is a float) - message use %d to convert value from float to int (so 0.5 is displayed 0 ms) - QTimer.start() only supports milliseconds precision as int (so 0.5 will prolly be converted to 0) - if delay is required, better wait more than not enough, so, ie., 0.7 ms delay is converted to 1 ms - when delay is required, 0 delay doesn't make sense, first branch of the if condition handled that - int(math.ceil(delay)) does the job - int() cast is needed with python 2 (it returns a float), python 3 math.ceil() returns int --- picard/webservice.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/picard/webservice.py b/picard/webservice.py index dd75aafbe..2f62f5e92 100644 --- a/picard/webservice.py +++ b/picard/webservice.py @@ -28,6 +28,7 @@ import re import time import os.path import platform +import math from collections import deque, defaultdict from functools import partial from PyQt4 import QtCore, QtNetwork @@ -328,7 +329,7 @@ class XmlWebService(QtCore.QObject): d = request_delay queue.popleft()() else: - d = request_delay - last_ms + d = int(math.ceil(request_delay - last_ms)) log.debug("Waiting %d ms before starting another request to %s", d, key) if d < delay: delay = d From 9b2bd19f1a53d17c769e48aa074efe3c836eca5f Mon Sep 17 00:00:00 2001 From: Sophist Date: Mon, 12 May 2014 10:25:02 +0100 Subject: [PATCH 130/212] Fix issues in Tags from File Names... 1. Replace all \ with / in path not just last one so it works properly on Windows. 2. Set combo index to show last used string 3. Strip leading zeros from numeric tags like tracknumber. --- picard/ui/tagsfromfilenames.py | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/picard/ui/tagsfromfilenames.py b/picard/ui/tagsfromfilenames.py index 93a323e71..7d5ee4bb7 100644 --- a/picard/ui/tagsfromfilenames.py +++ b/picard/ui/tagsfromfilenames.py @@ -40,14 +40,19 @@ class TagsFromFileNamesDialog(PicardDialog): self.ui = Ui_TagsFromFileNamesDialog() self.ui.setupUi(self) items = [ + "%artist%/%album%/%title%", "%artist%/%album%/%tracknumber% %title%", "%artist%/%album%/%tracknumber% - %title%", - "%artist%/%album - %tracknumber% - %title%", + "%artist%/%album% - %tracknumber% - %title%", + "%artist% - %album%/%title%", + "%artist% - %album%/%tracknumber% %title%", + "%artist% - %album%/%tracknumber% - %title%", ] format = config.persist["tags_from_filenames_format"] if format and format not in items: items.insert(0, format) self.ui.format.addItems(items) + self.ui.format.setCurrentIndex(items.index(format)) self.ui.buttonbox.addButton(StandardButton(StandardButton.OK), QtGui.QDialogButtonBox.AcceptRole) self.ui.buttonbox.addButton(StandardButton(StandardButton.CANCEL), QtGui.QDialogButtonBox.RejectRole) self.ui.buttonbox.accepted.connect(self.accept) @@ -62,6 +67,7 @@ class TagsFromFileNamesDialog(PicardDialog): item.setText(0, os.path.basename(file.filename)) self.items.append(item) self._tag_re = re.compile("(%\w+%)") + self.numeric_tags = ('tracknumber', 'totaltracks', 'discnumber', 'totaldiscs') def parse_format(self): format = unicode(self.ui.format.currentText()) @@ -71,7 +77,7 @@ class TagsFromFileNamesDialog(PicardDialog): if part.startswith('%') and part.endswith('%'): name = part[1:-1] columns.append(name) - if name in ('tracknumber', 'totaltracks', 'discnumber', 'totaldiscs'): + if name in self.numeric_tags: format_re.append('(?P<' + name + '>\d+)') elif name in ('date'): format_re.append('(?P<' + name + '>\d+(?:-\d+(?:-\d+)?)?)') @@ -79,16 +85,18 @@ class TagsFromFileNamesDialog(PicardDialog): format_re.append('(?P<' + name + '>[^/]*?)') else: format_re.append(re.escape(part)) - format_re.append('\\.(\\w+)$') + format_re.append(r'\.(\w+)$') format_re = re.compile("".join(format_re)) return format_re, columns def match_file(self, file, format): - match = format.search('/'.join(os.path.split(file.filename))) + match = format.search(file.filename.replace('\\','/')) if match: result = {} for name, value in match.groupdict().iteritems(): value = value.strip() + if name in self.numeric_tags: + value = value.lstrip("0") if self.ui.replace_underscores.isChecked(): value = value.replace('_', ' ') result[name] = value From 3e601c06c111bc0efa8f98d04384ba20304ed51f Mon Sep 17 00:00:00 2001 From: Sophist Date: Mon, 12 May 2014 10:55:34 +0100 Subject: [PATCH 131/212] Strip tracknumber from title if leading --- picard/file.py | 6 +++++- picard/util/__init__.py | 6 +++--- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/picard/file.py b/picard/file.py index 77a9b6259..c7e46506d 100644 --- a/picard/file.py +++ b/picard/file.py @@ -122,7 +122,11 @@ class File(QtCore.QObject, Item): if 'tracknumber' not in metadata: tracknumber = tracknum_from_filename(self.base_filename) if tracknumber != -1: - metadata['tracknumber'] = str(tracknumber) + tracknumber = str(tracknumber) + metadata['tracknumber'] = tracknumber + if metadata['title'] == filename and \ + filename.lstrip('0')[:len(tracknumber)] == tracknumber: + metadata['title'] = filename.lstrip('0')[len(tracknumber):].lstrip() self.orig_metadata = metadata self.metadata.copy(metadata) diff --git a/picard/util/__init__.py b/picard/util/__init__.py index 1a96dbf7c..7e200ac79 100644 --- a/picard/util/__init__.py +++ b/picard/util/__init__.py @@ -305,9 +305,9 @@ def tracknum_from_filename(base_filename): n = int(match.group(1)) if n > 0: return n - # find all numbers between 1 and 99 - # 4-digit or more numbers are very unlikely to be a track number - # smaller number is prefered in any case + # find all numbers between 1 and 99 + # 4-digit or more numbers are very unlikely to be a track number + # smaller number is preferred in any case numbers = sorted([int(n) for n in re.findall(r'\d+', filename) if int(n) <= 99 and int(n) > 0]) if numbers: From 87da33bd8e0d15cc5189614f395a5dc69e67c1ea Mon Sep 17 00:00:00 2001 From: Sophist Date: Mon, 12 May 2014 12:03:43 +0100 Subject: [PATCH 132/212] Improve clustering by grouping by directory --- picard/cluster.py | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/picard/cluster.py b/picard/cluster.py index 1ff816396..71d8bdab0 100644 --- a/picard/cluster.py +++ b/picard/cluster.py @@ -19,6 +19,7 @@ # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. import re +import os from operator import itemgetter from heapq import heappush, heappop from PyQt4 import QtCore @@ -204,6 +205,20 @@ class Cluster(QtCore.QObject, Item): for file in files: artist = file.metadata["albumartist"] or file.metadata["artist"] album = file.metadata["album"] + # Improve clustering from directory structure if no existing tags + # Only used for grouping and to provide cluster title / artist - not added to file tags. + if not album: + dirs = os.path.dirname(file.filename).replace('\\','/').split('/') + print "dirs:", dirs + # Strip disc subdirectory from list + if re.search(r'(^|\s)(CD|DVD|Disc)\s*\d+(\s|$)', dirs[-1], re.I): + del dirs[-1] + # For clustering assume %artist%/%album%/file and %artist% - %album%/file + album = dirs[-1] + if ' - ' in album: + artist, album = album.split(' - ', 1) + else: + artist = dirs[-2] # For each track, record the index of the artist and album within the clusters tracks.append((artistDict.add(artist), albumDict.add(album))) From cbc3a7920528aaf915c6739b6a7384196ce22a48 Mon Sep 17 00:00:00 2001 From: Sophist Date: Mon, 12 May 2014 12:05:53 +0100 Subject: [PATCH 133/212] Tweak to not overwrite artist if it exists --- picard/cluster.py | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/picard/cluster.py b/picard/cluster.py index 71d8bdab0..6b10dbfee 100644 --- a/picard/cluster.py +++ b/picard/cluster.py @@ -215,10 +215,11 @@ class Cluster(QtCore.QObject, Item): del dirs[-1] # For clustering assume %artist%/%album%/file and %artist% - %album%/file album = dirs[-1] - if ' - ' in album: - artist, album = album.split(' - ', 1) - else: - artist = dirs[-2] + if not artist: + if ' - ' in album: + artist, album = album.split(' - ', 1) + else: + artist = dirs[-2] # For each track, record the index of the artist and album within the clusters tracks.append((artistDict.add(artist), albumDict.add(album))) From cacc4c1419b9ecba3623a48026992fe20ac00191 Mon Sep 17 00:00:00 2001 From: Sophist Date: Mon, 12 May 2014 15:31:52 +0100 Subject: [PATCH 134/212] Remove debug print. --- picard/cluster.py | 1 - 1 file changed, 1 deletion(-) diff --git a/picard/cluster.py b/picard/cluster.py index 6b10dbfee..aca9056e2 100644 --- a/picard/cluster.py +++ b/picard/cluster.py @@ -209,7 +209,6 @@ class Cluster(QtCore.QObject, Item): # Only used for grouping and to provide cluster title / artist - not added to file tags. if not album: dirs = os.path.dirname(file.filename).replace('\\','/').split('/') - print "dirs:", dirs # Strip disc subdirectory from list if re.search(r'(^|\s)(CD|DVD|Disc)\s*\d+(\s|$)', dirs[-1], re.I): del dirs[-1] From 3cc636b4022e41731a5c9a7fa5ebb2ced39f35f6 Mon Sep 17 00:00:00 2001 From: Sophist Date: Mon, 12 May 2014 15:36:15 +0100 Subject: [PATCH 135/212] Simplify code for readability. --- picard/file.py | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/picard/file.py b/picard/file.py index c7e46506d..fcdeec7f6 100644 --- a/picard/file.py +++ b/picard/file.py @@ -124,9 +124,11 @@ class File(QtCore.QObject, Item): if tracknumber != -1: tracknumber = str(tracknumber) metadata['tracknumber'] = tracknumber - if metadata['title'] == filename and \ - filename.lstrip('0')[:len(tracknumber)] == tracknumber: - metadata['title'] = filename.lstrip('0')[len(tracknumber):].lstrip() + if metadata['title'] == filename: + stripped_filename = filename.lstrip('0') + tnlen = len(tracknumber) + if stripped_filename[:tnlen] == tracknumber: + metadata['title'] = stripped_filename[tnlen:].lstrip() self.orig_metadata = metadata self.metadata.copy(metadata) From 6344ca2806658cc9c271a6e79135111b84ba83c8 Mon Sep 17 00:00:00 2001 From: Sophist Date: Mon, 12 May 2014 21:06:26 +0100 Subject: [PATCH 136/212] Move album_artist_from_path to utils and add test. --- picard/cluster.py | 20 +++++++------------- picard/util/__init__.py | 20 ++++++++++++++++++++ test/test_utils.py | 28 ++++++++++++++++++++++++++++ 3 files changed, 55 insertions(+), 13 deletions(-) diff --git a/picard/cluster.py b/picard/cluster.py index aca9056e2..e27242141 100644 --- a/picard/cluster.py +++ b/picard/cluster.py @@ -20,6 +20,8 @@ import re import os +import ntpath +import sys from operator import itemgetter from heapq import heappush, heappop from PyQt4 import QtCore @@ -27,7 +29,7 @@ from picard import config from picard.metadata import Metadata from picard.similarity import similarity from picard.ui.item import Item -from picard.util import format_time +from picard.util import format_time, album_artist_from_path class Cluster(QtCore.QObject, Item): @@ -207,18 +209,10 @@ class Cluster(QtCore.QObject, Item): album = file.metadata["album"] # Improve clustering from directory structure if no existing tags # Only used for grouping and to provide cluster title / artist - not added to file tags. - if not album: - dirs = os.path.dirname(file.filename).replace('\\','/').split('/') - # Strip disc subdirectory from list - if re.search(r'(^|\s)(CD|DVD|Disc)\s*\d+(\s|$)', dirs[-1], re.I): - del dirs[-1] - # For clustering assume %artist%/%album%/file and %artist% - %album%/file - album = dirs[-1] - if not artist: - if ' - ' in album: - artist, album = album.split(' - ', 1) - else: - artist = dirs[-2] + filename = file.filename + if config.settings["windows_compatibility"] or sys.platform == "win32": + filename = ntpath.splitdrive(filename)[1] + album, artist = album_artist_from_path(filename, album, artist) # For each track, record the index of the artist and album within the clusters tracks.append((artistDict.add(artist), albumDict.add(album))) diff --git a/picard/util/__init__.py b/picard/util/__init__.py index 7e200ac79..47b5dc8eb 100644 --- a/picard/util/__init__.py +++ b/picard/util/__init__.py @@ -349,3 +349,23 @@ def linear_combination_of_weights(parts): total += weight sum_of_products += value * weight return sum_of_products / total + +def album_artist_from_path(filename, album, artist): + if not album: + dirs = os.path.dirname(filename).replace('\\','/').lstrip('/').split('/') + if len(dirs) == 0: + return album, artist + # Strip disc subdirectory from list + if len(dirs) > 0: + if re.search(r'(^|\s)(CD|DVD|Disc)\s*\d+(\s|$)', dirs[-1], re.I): + del dirs[-1] + if len(dirs) > 0: + # For clustering assume %artist%/%album%/file or %artist% - %album%/file + album = dirs[-1] + if ' - ' in album: + new_artist, album = album.split(' - ', 1) + if not artist: + artist = new_artist + elif not artist and len(dirs) >= 2: + artist = dirs[-2] + return album, artist diff --git a/test/test_utils.py b/test/test_utils.py index 634426970..20ab92985 100644 --- a/test/test_utils.py +++ b/test/test_utils.py @@ -141,3 +141,31 @@ class LinearCombinationTest(unittest.TestCase): def test_9(self): parts = ((1.5, 4)) self.assertRaises(TypeError, util.linear_combination_of_weights, parts) + + +class AlbumArtistFromPathTest(unittest.TestCase): + + def test_album_artist_from_path(self): + aafp = util.album_artist_from_path + from picard.file import File + file_1 = r"/10cc/Original Soundtrack/02 I'm Not in Love.mp3" + file_2 = r"/10cc - Original Soundtrack/02 I'm Not in Love.mp3" + file_3 = r"/Original Soundtrack/02 I'm Not in Love.mp3" + file_4 = r"/02 I'm Not in Love.mp3" + self.assertEqual(aafp(file_1, '', ''), ('Original Soundtrack', '10cc')) + self.assertEqual(aafp(file_2, '', ''), ('Original Soundtrack', '10cc')) + self.assertEqual(aafp(file_3, '', ''), ('Original Soundtrack', '')) + self.assertEqual(aafp(file_4, '', ''), ('', '')) + self.assertEqual(aafp(file_1, 'album', ''), ('album', '')) + self.assertEqual(aafp(file_2, 'album', ''), ('album', '')) + self.assertEqual(aafp(file_3, 'album', ''), ('album', '')) + self.assertEqual(aafp(file_4, 'album', ''), ('album', '')) + self.assertEqual(aafp(file_1, '', 'artist'), ('Original Soundtrack', 'artist')) + self.assertEqual(aafp(file_2, '', 'artist'), ('Original Soundtrack', 'artist')) + self.assertEqual(aafp(file_3, '', 'artist'), ('Original Soundtrack', 'artist')) + self.assertEqual(aafp(file_4, '', 'artist'), ('', 'artist')) + self.assertEqual(aafp(file_1, 'album', 'artist'), ('album', 'artist')) + self.assertEqual(aafp(file_2, 'album', 'artist'), ('album', 'artist')) + self.assertEqual(aafp(file_3, 'album', 'artist'), ('album', 'artist')) + self.assertEqual(aafp(file_4, 'album', 'artist'), ('album', 'artist')) + From 4daab44b7449b5f1097ed815ff72c8bb4b227e0c Mon Sep 17 00:00:00 2001 From: Sophist Date: Mon, 12 May 2014 22:28:47 +0100 Subject: [PATCH 137/212] Fix typo --- picard/cluster.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/picard/cluster.py b/picard/cluster.py index e27242141..95449388e 100644 --- a/picard/cluster.py +++ b/picard/cluster.py @@ -210,7 +210,7 @@ class Cluster(QtCore.QObject, Item): # Improve clustering from directory structure if no existing tags # Only used for grouping and to provide cluster title / artist - not added to file tags. filename = file.filename - if config.settings["windows_compatibility"] or sys.platform == "win32": + if config.setting["windows_compatibility"] or sys.platform == "win32": filename = ntpath.splitdrive(filename)[1] album, artist = album_artist_from_path(filename, album, artist) # For each track, record the index of the artist and album within the clusters From bdaf9e7d8916052d5ad3a1c754e3c525c178251b Mon Sep 17 00:00:00 2001 From: Laurent Monin Date: Tue, 13 May 2014 17:05:01 +0200 Subject: [PATCH 138/212] Add missing whitelines + album_artist_from_path() description --- picard/util/__init__.py | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/picard/util/__init__.py b/picard/util/__init__.py index 47b5dc8eb..2d40c9acc 100644 --- a/picard/util/__init__.py +++ b/picard/util/__init__.py @@ -314,6 +314,7 @@ def tracknum_from_filename(base_filename): return numbers[0] return -1 + # Provide os.path.samefile equivalent which is missing in Python under Windows if sys.platform == 'win32': def os_path_samefile(p1, p2): @@ -350,7 +351,10 @@ def linear_combination_of_weights(parts): sum_of_products += value * weight return sum_of_products / total + def album_artist_from_path(filename, album, artist): + """If album is not set, try to extract album and artist from path + """ if not album: dirs = os.path.dirname(filename).replace('\\','/').lstrip('/').split('/') if len(dirs) == 0: From ad0c66ec241d182d6e67be66c99b413d3a490b36 Mon Sep 17 00:00:00 2001 From: Laurent Monin Date: Sun, 11 May 2014 21:30:12 +0200 Subject: [PATCH 139/212] Use new translate_caa_type() to handle caa type translations --- picard/coverartarchive.py | 11 +++++++++++ picard/ui/options/cover.py | 8 ++------ 2 files changed, 13 insertions(+), 6 deletions(-) diff --git a/picard/coverartarchive.py b/picard/coverartarchive.py index 8ddeb3e51..d0e23e488 100644 --- a/picard/coverartarchive.py +++ b/picard/coverartarchive.py @@ -18,6 +18,7 @@ # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. from picard.attributes import MB_ATTRIBUTES +from picard.i18n import ugettext_attr # list of types from http://musicbrainz.org/doc/Cover_Art/Types # order of declaration is preserved in selection box @@ -28,3 +29,13 @@ for k, v in sorted(MB_ATTRIBUTES.items(), key=lambda (k,v): k): # pseudo type, used for the no type case CAA_TYPES.append({'name': "unknown", 'title': N_(u"Unknown")}) + +CAA_TYPES_TR = {} +for t in CAA_TYPES: + CAA_TYPES_TR[t['name']] = t['title'] + +def translate_caa_type(name): + if name == 'unknown': + return _(CAA_TYPES_TR[name]) + else: + return ugettext_attr(CAA_TYPES_TR[name], u"cover_art_type") diff --git a/picard/ui/options/cover.py b/picard/ui/options/cover.py index 090e2e392..f51df4640 100644 --- a/picard/ui/options/cover.py +++ b/picard/ui/options/cover.py @@ -21,8 +21,7 @@ from PyQt4 import QtCore, QtGui from picard import config from picard.ui.options import OptionsPage, register_options_page from picard.ui.ui_options_cover import Ui_CoverOptionsPage -from picard.coverartarchive import CAA_TYPES -from picard.i18n import ugettext_attr +from picard.coverartarchive import CAA_TYPES, translate_caa_type class CAATypesSelector(object): @@ -40,10 +39,7 @@ class CAATypesSelector(object): def _add_item(self, typ, enabled=False): item = QtGui.QListWidgetItem(self.widget) - if typ['name'] == 'unknown': - title = _(typ['title']) - else: - title = ugettext_attr(typ['title'], u"cover_art_type") + title = translate_caa_type(typ['name']) item.setText(title) tooltip = u"CAA: %(name)s" % typ item.setToolTip(tooltip) From 60bfd6d344bf09f048b0dc02cec7232d98c873e6 Mon Sep 17 00:00:00 2001 From: Laurent Monin Date: Mon, 12 May 2014 18:54:39 +0200 Subject: [PATCH 140/212] Merge Image() and CoverArtImage() - Info dialog Artwork tab now displays types and comment for cover art images - a tooltip gives info about the source (url, caa url, local file, tag, ...) --- picard/coverart.py | 75 +---------- picard/coverartimage.py | 271 +++++++++++++++++++++++++++++++++++++++ picard/formats/apev2.py | 12 +- picard/formats/asf.py | 17 ++- picard/formats/id3.py | 17 ++- picard/formats/mp4.py | 16 ++- picard/formats/vorbis.py | 45 +++++-- picard/metadata.py | 131 +------------------ picard/tagger.py | 8 +- picard/ui/coverartbox.py | 30 +++-- picard/ui/infodialog.py | 17 ++- test/test_formats.py | 59 ++++++++- 12 files changed, 459 insertions(+), 239 deletions(-) create mode 100644 picard/coverartimage.py diff --git a/picard/coverart.py b/picard/coverart.py index a3e81b439..3a99951dd 100644 --- a/picard/coverart.py +++ b/picard/coverart.py @@ -29,6 +29,7 @@ from functools import partial from picard import config, log from picard.util import mimetype, parse_amazon_url from picard.const import CAA_HOST, CAA_PORT +from picard.coverartimage import CoverArtImage, CaaCoverArtImage from PyQt4.QtCore import QUrl, QObject # amazon image file names are unique on all servers and constructed like @@ -90,63 +91,6 @@ _CAA_THUMBNAIL_SIZE_MAP = { } -class CoverArtImage: - - support_types = False - # consider all images as front if types aren't supported by provider - is_front = True - - def __init__(self, url=None, types=[u'front'], comment=''): - if url is not None: - self.parse_url(url) - else: - self.url = None - self.types = types - self.comment = comment - - def parse_url(self, url): - self.url = QUrl(url) - self.host = str(self.url.host()) - self.port = self.url.port(80) - self.path = str(self.url.encodedPath()) - if self.url.hasQuery(): - self.path += '?' + str(self.url.encodedQuery()) - - def is_front_image(self): - # CAA has a flag for "front" image, use it in priority - if self.is_front: - return True - # no caa front flag, use type instead - return u'front' in self.types - - def __repr__(self): - p = [] - if self.url is not None: - p.append("url=%r" % self.url.toString()) - p.append("types=%r" % self.types) - if self.comment: - p.append("comment=%r" % self.comment) - return "%s(%s)" % (self.__class__.__name__, ", ".join(p)) - - def __unicode__(self): - p = [u'Image'] - if self.url is not None: - p.append(u"from %s" % self.url.toString()) - p.append(u"of type %s" % u','.join(self.types)) - if self.comment: - p.append(u"and comment '%s'" % self.comment) - return u' '.join(p) - - def __str__(self): - return unicode(self).encode('utf-8') - - -class CaaCoverArtImage(CoverArtImage): - - is_front = False - support_types = True - - class CoverArt: def __init__(self, album, metadata, release): @@ -259,21 +203,10 @@ class CoverArt: mime = mimetype.get_from_data(data, default="image/jpeg") try: - self.metadata.make_and_add_image( - mime, - data, - types=coverartimage.types, - comment=coverartimage.comment, - is_front=coverartimage.is_front - ) + coverartimage.set_data(data, mime) + self.metadata.append_image(coverartimage) for track in self.album._new_tracks: - track.metadata.make_and_add_image( - mime, - data, - types=coverartimage.types, - comment=coverartimage.comment, - is_front=coverartimage.is_front - ) + track.metadata.append_image(coverartimage) # If the image already was a front image, # there might still be some other non-CAA front # images in the queue - ignore them. diff --git a/picard/coverartimage.py b/picard/coverartimage.py new file mode 100644 index 000000000..90bbc2f55 --- /dev/null +++ b/picard/coverartimage.py @@ -0,0 +1,271 @@ +# -*- coding: utf-8 -*- +# +# Picard, the next-generation MusicBrainz tagger +# Copyright (C) 2007 Oliver Charles +# Copyright (C) 2007-2011 Philipp Wolfer +# Copyright (C) 2007, 2010, 2011 Lukáš Lalinský +# Copyright (C) 2011 Michael Wiencek +# Copyright (C) 2011-2012 Wieland Hoffmann +# Copyright (C) 2013-2014 Laurent Monin +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License +# as published by the Free Software Foundation; either version 2 +# of the License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +import os.path +import shutil +import sys +import tempfile +import traceback + + +from hashlib import md5 +from os import fdopen, unlink +from PyQt4.QtCore import QUrl, QObject +from picard import config, log +from picard.util import ( + encode_filename, + mimetype as mime, + replace_win32_incompat, +) +from picard.util.textencoding import ( + replace_non_ascii, + unaccent, +) + + +class CoverArtImage: + + support_types = False + # consider all images as front if types aren't supported by provider + is_front = True + sourceprefix = "URL" + + def __init__(self, url=None, types=[u'front'], comment='', + data=None, mimetype="image/jpeg"): + if url is not None: + self.parse_url(url) + else: + self.url = None + self.types = types + self.comment = comment + self.datahash = None + self.tempfile_filename = None + if data is not None: + self.set_data(data, mimetype=mimetype) + + def parse_url(self, url): + self.url = QUrl(url) + self.host = str(self.url.host()) + self.port = self.url.port(80) + self.path = str(self.url.encodedPath()) + if self.url.hasQuery(): + self.path += '?' + str(self.url.encodedQuery()) + + @property + def source(self): + if self.url is not None: + return u"%s: %s" % (self.sourceprefix, self.url.toString()) + else: + return u"%s" % self.sourceprefix + + def is_front_image(self): + # CAA has a flag for "front" image, use it in priority + if self.is_front: + return True + # no caa front flag, use type instead + return u'front' in self.types + + def __repr__(self): + p = [] + if self.url is not None: + p.append("url=%r" % self.url.toString()) + p.append("types=%r" % self.types) + if self.comment: + p.append("comment=%r" % self.comment) + return "%s(%s)" % (self.__class__.__name__, ", ".join(p)) + + def __unicode__(self): + p = [u'Image'] + if self.url is not None: + p.append(u"from %s" % self.url.toString()) + p.append(u"of type %s" % u','.join(self.types)) + if self.comment: + p.append(u"and comment '%s'" % self.comment) + return u' '.join(p) + + def __str__(self): + return unicode(self).encode('utf-8') + + def set_data(self, data, mimetype="image/jpeg", filename=None): + """Store image data in a file, if data already exists in such file + it will be re-used and no file write occurs + A reference counter is handling case where more than one + cover art image are using the same data. + """ + self.datalength = len(data) + self.extension = mime.get_extension(mime, ".jpg") + self.filename = filename + self.mimetype = mimetype + + m = md5() + m.update(data) + datahash = m.hexdigest() + if self.datahash is not None and datahash != self.datahash: + # data is about to be replaced, eventually delete old attached file + self.delete_data() + self.datahash = datahash + QObject.tagger.images.lock() + self.tempfile_filename, refcount = QObject.tagger.images[self.datahash] + assert(refcount >= 0) + assert((self.tempfile_filename is None and not refcount) + or (self.tempfile_filename is not None and refcount)) + if not refcount: + (fd, self.tempfile_filename) = tempfile.mkstemp(prefix="picard", + suffix=self.extension) + with fdopen(fd, "wb") as imagefile: + imagefile.write(data) + log.debug("Saving image for %r (hash=%s) to %r" % + (self, self.datahash, self.tempfile_filename)) + # reference counter is always increased + refcount += 1 + QObject.tagger.images[self.datahash] = (self.tempfile_filename, refcount) + QObject.tagger.images.unlock() + + def delete_data(self): + """Delete file containing data if needed, or just decrease reference + counter. + """ + if self.datahash is None: + assert(self.tempfile_filename is None) + return + QObject.tagger.images.lock() + _tempfile_filename, refcount = QObject.tagger.images[self.datahash] + QObject.tagger.images.unlock() + assert(_tempfile_filename is not None) + refcount -= 1 + assert(refcount >= 0) + if refcount: + # file still used by another CoverArtImage + self.tempfile_filename = None + return + os.unlink(_tempfile_filename) + self.tempfile_filename = None + QObject.tagger.images.lock() + del QObject.tagger.images[self.datahash] + QObject.tagger.images.unlock() + self.datahash = None + + def __del__(self): + try: + self.delete_data() + except: + pass + + def maintype(self): + return self.types[0] + + def _make_image_filename(self, filename, dirname, metadata): + if config.setting["ascii_filenames"]: + if isinstance(filename, unicode): + filename = unaccent(filename) + filename = replace_non_ascii(filename) + if not filename: + filename = "cover" + if not os.path.isabs(filename): + filename = os.path.join(dirname, filename) + # replace incompatible characters + if config.setting["windows_compatibility"] or sys.platform == "win32": + filename = replace_win32_incompat(filename) + # remove null characters + filename = filename.replace("\x00", "") + return encode_filename(filename) + + def save(self, dirname, metadata, counters): + """Saves this image. + + :dirname: The name of the directory that contains the audio file + :metadata: A metadata object + :counters: A dictionary mapping filenames to the amount of how many + images with that filename were already saved in `dirname`. + """ + if self.filename is not None: + log.debug("Using the custom file name %s", self.filename) + filename = self.filename + elif config.setting["caa_image_type_as_filename"]: + filename = self.maintype() + log.debug("Make filename from types: %r -> %r", self.types, filename) + else: + log.debug("Using default file name %s", + config.setting["cover_image_filename"]) + filename = config.setting["cover_image_filename"] + filename = self._make_image_filename(filename, dirname, metadata) + + overwrite = config.setting["save_images_overwrite"] + ext = self.extension + image_filename = filename + if counters[filename] > 0: + image_filename = "%s (%d)" % (filename, counters[filename]) + counters[filename] = counters[filename] + 1 + while os.path.exists(image_filename + ext) and not overwrite: + if os.path.getsize(image_filename + ext) == self.datalength: + log.debug("Identical file size, not saving %r", image_filename) + break + image_filename = "%s (%d)" % (filename, counters[filename]) + counters[filename] = counters[filename] + 1 + else: + new_filename = image_filename + ext + # Even if overwrite is enabled we don't need to write the same + # image multiple times + if (os.path.exists(new_filename) and + os.path.getsize(new_filename) == self.datalength): + log.debug("Identical file size, not saving %r", image_filename) + return + log.debug("Saving cover images to %r", image_filename) + new_dirname = os.path.dirname(image_filename) + if not os.path.isdir(new_dirname): + os.makedirs(new_dirname) + shutil.copyfile(self.tempfile_filename, new_filename) + + @property + def data(self): + """Reads the data from the temporary file created for this image. May + raise IOErrors or OSErrors. + """ + if not self.tempfile_filename: + return None + with open(self.tempfile_filename, "rb") as imagefile: + return imagefile.read() + + +class CaaCoverArtImage(CoverArtImage): + + is_front = False + support_types = True + sourceprefix = u"CAA" + + +class TagCoverArtImage(CoverArtImage): + + def __init__(self, file, tag=None, types=[u'front'], is_front=True, + support_types=False, comment='', data=None, + mimetype='image/jpeg'): + CoverArtImage.__init__(self, url=None, types=types, comment=comment, + data=data, mimetype=mimetype) + self.sourcefile = file + self.tag = tag + self.is_front = is_front + self.support_types = support_types + + @property + def source(self): + return u'Tag %s from %s' % (self.tag if self.tag else '', self.sourcefile) diff --git a/picard/formats/apev2.py b/picard/formats/apev2.py index e358e5a1c..188087ac0 100644 --- a/picard/formats/apev2.py +++ b/picard/formats/apev2.py @@ -24,6 +24,7 @@ import mutagen.wavpack import mutagen.optimfrog import mutagenext.tak from picard import config, log +from picard.coverartimage import TagCoverArtImage from picard.file import File from picard.metadata import Metadata, save_this_image_to_tags from picard.util import encode_filename, sanitize_date, mimetype @@ -63,7 +64,16 @@ class APEv2File(File): if '\0' in values.value: descr, data = values.value.split('\0', 1) mime = mimetype.get_from_data(data, descr, 'image/jpeg') - metadata.make_and_add_image(mime, data) + metadata.append_image( + TagCoverArtImage( + file=filename, + tag=origname, + support_types=False, + data=data, + mimetype=mime + ) + ) + # skip EXTERNAL and BINARY values if values.kind != mutagen.apev2.TEXT: continue diff --git a/picard/formats/asf.py b/picard/formats/asf.py index 75e95d627..1747f341d 100644 --- a/picard/formats/asf.py +++ b/picard/formats/asf.py @@ -18,6 +18,7 @@ # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. from picard import config, log +from picard.coverartimage import TagCoverArtImage from picard.file import File from picard.formats.id3 import types_and_front, image_type_as_id3_num from picard.util import encode_filename @@ -142,8 +143,18 @@ class ASFFile(File): for image in values: (mime, data, type, description) = unpack_image(image.value) types, is_front = types_and_front(type) - metadata.make_and_add_image(mime, data, comment=description, - types=types, is_front=is_front) + metadata.append_image( + TagCoverArtImage( + file=filename, + tag=name, + types=types, + is_front=is_front, + comment=description, + support_types=True, + data=data, + mimetype=mime + ) + ) continue elif name not in self.__RTRANS: continue @@ -170,7 +181,7 @@ class ASFFile(File): continue tag_data = pack_image(image.mimetype, image.data, image_type_as_id3_num(image.maintype()), - image.description) + image.comment) cover.append(ASFByteArrayAttribute(tag_data)) if cover: file.tags['WM/Picture'] = cover diff --git a/picard/formats/id3.py b/picard/formats/id3.py index 7aacfc89f..e70c1561d 100644 --- a/picard/formats/id3.py +++ b/picard/formats/id3.py @@ -24,6 +24,7 @@ import re from collections import defaultdict from mutagen import id3 from picard import config, log +from picard.coverartimage import TagCoverArtImage from picard.metadata import Metadata, save_this_image_to_tags, MULTI_VALUED_JOINER from picard.file import File from picard.formats.mutagenext import compatid3 @@ -262,8 +263,18 @@ class ID3File(File): log.error("Invalid %s value '%s' dropped in %r", frameid, frame.text[0], filename) elif frameid == 'APIC': types, is_front = types_and_front(frame.type) - metadata.make_and_add_image(frame.mime, frame.data, comment=frame.desc, - types=types, is_front=is_front) + metadata.append_image( + TagCoverArtImage( + file=filename, + tag=frameid, + types=types, + is_front=is_front, + comment=frame.desc, + support_types=True, + data=frame.data, + mimetype=frame.mime + ) + ) elif frameid == 'POPM': # Rating in ID3 ranges from 0 to 255, normalize this to the range 0 to 5 if frame.email == config.setting['rating_user_email']: @@ -318,7 +329,7 @@ class ID3File(File): # any description. counters = defaultdict(lambda: 0) for image in metadata.images: - desc = desctag = image.description + desc = desctag = image.comment if not save_this_image_to_tags(image): continue if counters[desc] > 0: diff --git a/picard/formats/mp4.py b/picard/formats/mp4.py index 576f92cf4..77ff2202f 100644 --- a/picard/formats/mp4.py +++ b/picard/formats/mp4.py @@ -19,6 +19,7 @@ from mutagen.mp4 import MP4, MP4Cover from picard import config, log +from picard.coverartimage import TagCoverArtImage from picard.file import File from picard.metadata import Metadata, save_this_image_to_tags from picard.util import encode_filename @@ -141,9 +142,20 @@ class MP4File(File): elif name == "covr": for value in values: if value.imageformat == value.FORMAT_JPEG: - metadata.make_and_add_image("image/jpeg", value) + mime = "image/jpeg" elif value.imageformat == value.FORMAT_PNG: - metadata.make_and_add_image("image/png", value) + mime = "image/png" + else: + continue + metadata.append_image( + TagCoverArtImage( + file=filename, + tag=name, + support_types=False, + data=value, + mimetype=mime + ) + ) self._info(metadata, file) return metadata diff --git a/picard/formats/vorbis.py b/picard/formats/vorbis.py index 1e42f9bca..1aff8aa4e 100644 --- a/picard/formats/vorbis.py +++ b/picard/formats/vorbis.py @@ -31,6 +31,7 @@ except ImportError: OggOpus = None with_opus = False from picard import config, log +from picard.coverartimage import TagCoverArtImage from picard.file import File from picard.formats.id3 import types_and_front, image_type_as_id3_num from picard.metadata import Metadata, save_this_image_to_tags @@ -97,10 +98,18 @@ class VCommentFile(File): elif name == "metadata_block_picture": image = mutagen.flac.Picture(base64.standard_b64decode(value)) types, is_front = types_and_front(image.type) - metadata.make_and_add_image(image.mime, image.data, - comment=image.desc, - types=types, - is_front=is_front) + metadata.append_image( + TagCoverArtImage( + file=filename, + tag=name, + types=types, + is_front=is_front, + comment=image.desc, + support_types=True, + data=image.data, + mimetype=image.mime + ) + ) continue elif name in self.__translate: name = self.__translate[name] @@ -108,15 +117,31 @@ class VCommentFile(File): if self._File == mutagen.flac.FLAC: for image in file.pictures: types, is_front = types_and_front(image.type) - metadata.make_and_add_image(image.mime, image.data, comment=image.desc, - types=types, is_front=is_front) + coverartimage = TagCoverArtImage( + file=filename, + tag='FLAC/PICTURE', + types=types, + is_front=is_front, + comment=image.desc, + support_types=True, + data=image.data, + mimetype=image.mime + ) + metadata.append_image(coverartimage) # Read the unofficial COVERART tags, for backward compatibillity only if not "metadata_block_picture" in file.tags: try: for index, data in enumerate(file["COVERART"]): - metadata.make_and_add_image(file["COVERARTMIME"][index], - base64.standard_b64decode(data) - ) + mime = file["COVERARTMIME"][index] + data = base64.standard_b64decode(data) + coverartimage = TagCoverArtImage( + file=filename, + tag='COVERART', + support_types=False, + data=data, + mimetype=mime + ) + metadata.append_image(coverartimage) except KeyError: pass self._info(metadata, file) @@ -175,7 +200,7 @@ class VCommentFile(File): picture = mutagen.flac.Picture() picture.data = image.data picture.mime = image.mimetype - picture.desc = image.description + picture.desc = image.comment picture.type = image_type_as_id3_num(image.maintype()) if self._File == mutagen.flac.FLAC: file.add_picture(picture) diff --git a/picard/metadata.py b/picard/metadata.py index 4b336f244..f370fe021 100644 --- a/picard/metadata.py +++ b/picard/metadata.py @@ -51,108 +51,6 @@ def save_this_image_to_tags(image): return image.is_front -class Image(object): - - """Wrapper around images. Instantiating an object of this class can raise - an IOError or OSError due to the usage of tempfiles underneath. - """ - - def __init__(self, data, mimetype="image/jpeg", types=[u"front"], - comment="", filename=None, datahash="", is_front=True): - self.description = comment - (fd, self._tempfile_filename) = tempfile.mkstemp(prefix="picard") - with fdopen(fd, "wb") as imagefile: - imagefile.write(data) - log.debug("Saving image (hash=%s) to %r" % (datahash, - self._tempfile_filename)) - self.datalength = len(data) - self.extension = mime.get_extension(mime, ".jpg") - self.filename = filename - self.types = types - self.is_front = is_front - self.mimetype = mimetype - - def maintype(self): - return self.types[0] - - def _make_image_filename(self, filename, dirname, metadata): - if config.setting["ascii_filenames"]: - if isinstance(filename, unicode): - filename = unaccent(filename) - filename = replace_non_ascii(filename) - if not filename: - filename = "cover" - if not os.path.isabs(filename): - filename = os.path.join(dirname, filename) - # replace incompatible characters - if config.setting["windows_compatibility"] or sys.platform == "win32": - filename = replace_win32_incompat(filename) - # remove null characters - filename = filename.replace("\x00", "") - return encode_filename(filename) - - def save(self, dirname, metadata, counters): - """Saves this image. - - :dirname: The name of the directory that contains the audio file - :metadata: A metadata object - :counters: A dictionary mapping filenames to the amount of how many - images with that filename were already saved in `dirname`. - """ - if self.filename is not None: - log.debug("Using the custom file name %s", self.filename) - filename = self.filename - elif config.setting["caa_image_type_as_filename"]: - filename = self.maintype() - log.debug("Make filename from types: %r -> %r", self.types, filename) - else: - log.debug("Using default file name %s", - config.setting["cover_image_filename"]) - filename = config.setting["cover_image_filename"] - filename = self._make_image_filename(filename, dirname, metadata) - - overwrite = config.setting["save_images_overwrite"] - ext = self.extension - image_filename = filename - if counters[filename] > 0: - image_filename = "%s (%d)" % (filename, counters[filename]) - counters[filename] = counters[filename] + 1 - while os.path.exists(image_filename + ext) and not overwrite: - if os.path.getsize(image_filename + ext) == self.datalength: - log.debug("Identical file size, not saving %r", image_filename) - break - image_filename = "%s (%d)" % (filename, counters[filename]) - counters[filename] = counters[filename] + 1 - else: - new_filename = image_filename + ext - # Even if overwrite is enabled we don't need to write the same - # image multiple times - if (os.path.exists(new_filename) and - os.path.getsize(new_filename) == self.datalength): - log.debug("Identical file size, not saving %r", image_filename) - return - log.debug("Saving cover images to %r", image_filename) - new_dirname = os.path.dirname(image_filename) - if not os.path.isdir(new_dirname): - os.makedirs(new_dirname) - shutil.copyfile(self._tempfile_filename, new_filename) - - @property - def data(self): - """Reads the data from the temporary file created for this image. May - raise IOErrors or OSErrors. - """ - with open(self._tempfile_filename, "rb") as imagefile: - return imagefile.read() - - def _delete(self): - log.debug("Unlinking %s", self._tempfile_filename) - try: - unlink(self._tempfile_filename) - except OSError as e: - log.error(traceback.format_exc()) - - class Metadata(dict): """List of metadata items with dict-like access.""" @@ -172,32 +70,9 @@ class Metadata(dict): self.images = [] self.length = 0 - def make_and_add_image(self, mime, data, filename=None, comment="", - types=[u"front"], is_front=True): - """Build a new image object from ``data`` and adds it to this Metadata - object. If an image with the same MD5 hash has already been added to - any Metadata object, that file will be reused. - - Arguments: - mime -- The mimetype of the image - data -- The image data - filename -- The image filename, without an extension - comment -- image description or comment, default to '' - types -- list of types, default to [u'front'] - is_front -- mark image as front image - """ - m = md5() - m.update(data) - datahash = m.hexdigest() - QObject.tagger.images.lock() - image = QObject.tagger.images[datahash] - if image is None: - image = Image(data, mime, types, comment, filename, - datahash=datahash, - is_front=is_front) - QObject.tagger.images[datahash] = image - QObject.tagger.images.unlock() - self.images.append(image) + def append_image(self, coverartimage): + assert(coverartimage is not None) + self.images.append(coverartimage) def remove_image(self, index): self.images.pop(index) diff --git a/picard/tagger.py b/picard/tagger.py index 8a1a43f61..61ee173a3 100644 --- a/picard/tagger.py +++ b/picard/tagger.py @@ -195,7 +195,7 @@ class Tagger(QtGui.QApplication): self.albums = {} self.release_groups = {} self.mbid_redirects = {} - self.images = LockableDefaultDict(lambda: None) + self.images = LockableDefaultDict(lambda: (None, 0)) self.unmatched_files = UnmatchedFiles() self.nats = None self.window = MainWindow() @@ -248,12 +248,16 @@ class Tagger(QtGui.QApplication): def exit(self): log.debug("exit") - map(lambda i: i._delete(), self.images.itervalues()) self.stopping = True self._acoustid.done() self.thread_pool.waitForDone() self.browser_integration.stop() self.xmlws.stop() + for filename, refcount in self.images.itervalues(): + try: + os.unlink(filename) + except OSError: + pass def _run_init(self): if self._args: diff --git a/picard/ui/coverartbox.py b/picard/ui/coverartbox.py index f20aba56d..dba4f42ff 100644 --- a/picard/ui/coverartbox.py +++ b/picard/ui/coverartbox.py @@ -18,9 +18,11 @@ # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. import os +from functools import partial from PyQt4 import QtCore, QtGui, QtNetwork from picard import config, log from picard.album import Album +from picard.coverartimage import CoverArtImage from picard.track import Track from picard.file import File from picard.util import webbrowser2, encode_filename @@ -158,7 +160,8 @@ class CoverArtBox(QtGui.QGroupBox): if url.hasQuery(): path += '?' + url.encodedQuery() self.tagger.xmlws.get(url.encodedHost(), url.port(80), path, - self.on_remote_image_fetched, xml=False, + partial(self.on_remote_image_fetched, url), + xml=False, priority=True, important=True) elif url.scheme() == 'file': path = encode_filename(unicode(url.toLocalFile())) @@ -167,12 +170,12 @@ class CoverArtBox(QtGui.QGroupBox): mime = 'image/png' if path.lower().endswith('.png') else 'image/jpeg' data = f.read() f.close() - self.load_remote_image(mime, data) + self.load_remote_image(url, mime, data) - def on_remote_image_fetched(self, data, reply, error): + def on_remote_image_fetched(self, url, data, reply, error): mime = reply.header(QtNetwork.QNetworkRequest.ContentTypeHeader) if mime in ('image/jpeg', 'image/png'): - self.load_remote_image(mime, data) + self.load_remote_image(url, mime, data) elif reply.url().hasQueryItem("imgurl"): # This may be a google images result, try to get the URL which is encoded in the query url = QtCore.QUrl(reply.url().queryItemValue("imgurl")) @@ -180,24 +183,29 @@ class CoverArtBox(QtGui.QGroupBox): else: log.warning("Can't load image with MIME-Type %s", mime) - def load_remote_image(self, mime, data): + def load_remote_image(self, url, mime, data): pixmap = QtGui.QPixmap() if not pixmap.loadFromData(data): log.warning("Can't load image") return self.__set_data([mime, data], pixmap=pixmap) + coverartimage = CoverArtImage( + url=url.toString(), + data=data, + mimetype=mime + ) if isinstance(self.item, Album): album = self.item - album.metadata.make_and_add_image(mime, data) + album.metadata.append_image(coverartimage) for track in album.tracks: - track.metadata.make_and_add_image(mime, data) + track.metadata.append_image(coverartimage) for file in album.iterfiles(): - file.metadata.make_and_add_image(mime, data) + file.metadata.append_image(coverartimage) elif isinstance(self.item, Track): track = self.item - track.metadata.make_and_add_image(mime, data) + track.metadata.append_image(coverartimage) for file in track.iterfiles(): - file.metadata.make_and_add_image(mime, data) + file.metadata.append_image(coverartimage) elif isinstance(self.item, File): file = self.item - file.metadata.make_and_add_image(mime, data) + file.metadata.append_image(coverartimage) diff --git a/picard/ui/infodialog.py b/picard/ui/infodialog.py index c775c48fb..97ac89f59 100644 --- a/picard/ui/infodialog.py +++ b/picard/ui/infodialog.py @@ -22,6 +22,7 @@ import cgi import traceback from PyQt4 import QtGui, QtCore from picard import log +from picard.coverartarchive import translate_caa_type from picard.util import format_time, encode_filename, bytes2human from picard.ui import PicardDialog from picard.ui.ui_infodialog import Ui_InfoDialog @@ -56,17 +57,23 @@ class InfoDialog(PicardDialog): except (OSError, IOError) as e: log.error(traceback.format_exc()) continue - size = len(data) + size = image.datalength item = QtGui.QListWidgetItem() pixmap = QtGui.QPixmap() pixmap.loadFromData(data) icon = QtGui.QIcon(pixmap) item.setIcon(icon) - s = "%s (%s)\n%d x %d" % (bytes2human.decimal(size), - bytes2human.binary(size), - pixmap.width(), - pixmap.height()) + s = u"%s (%s)\n%d x %d\n%s" % ( + bytes2human.decimal(size), + bytes2human.binary(size), + pixmap.width(), + pixmap.height(), + ','.join([translate_caa_type(t) for t in image.types]) + ) + if image.comment: + s += u"\n%s" % image.comment item.setText(s) + item.setToolTip(image.source) self.ui.artwork_list.addItem(item) def tab_hide(self, widget): diff --git a/test/test_formats.py b/test/test_formats.py index e880f81d9..336a525fb 100644 --- a/test/test_formats.py +++ b/test/test_formats.py @@ -7,6 +7,7 @@ import shutil from PyQt4 import QtCore from picard.util import LockableDefaultDict from picard import config, log +from picard.coverartimage import CoverArtImage from picard.metadata import Metadata from tempfile import mkstemp @@ -36,7 +37,7 @@ class FakeTagger(QtCore.QObject): QtCore.QObject.config = config QtCore.QObject.log = log self.tagger_stats_changed.connect(self.emit) - self.images = LockableDefaultDict(lambda: None) + self.images = LockableDefaultDict(lambda: (None, 0)) def emit(self, *args): pass @@ -508,9 +509,56 @@ class TestCoverArt(unittest.TestCase): QtCore.QObject.tagger = FakeTagger() def _tear_down(self): - map(lambda i: i._delete(), QtCore.QObject.tagger.images.itervalues()) + for filename, refcount in QtCore.QObject.tagger.images.itervalues(): + if refcount: + os.unlink(filename) os.unlink(self.filename) + def test_coverartimage(self): + dummyload = "x" * 1024 * 128 + tests = { + 'jpg': { + 'mime': 'image/jpeg', + 'head': 'JFIF' + }, + 'png': { + 'mime': 'image/png', + 'head': 'PNG' + }, + } + tmp_files = [] + for t in tests: + imgdata = tests[t]['head'] + dummyload + imgdata2 = imgdata + 'xxx' + # set data once + coverartimage = CoverArtImage( + data=imgdata2, + mimetype=tests[t]['mime'] + ) + tmp_file = coverartimage.tempfile_filename + tmp_files.append(tmp_file) + l = os.path.getsize(tmp_file) + # ensure file was written, and check its length + self.assertEqual(l, len(imgdata2)) + self.assertEqual(coverartimage.data, imgdata2) + # delete file (and data) + coverartimage.delete_data() + self.assertEqual(coverartimage.data, None) + # set data again, with another payload + coverartimage.set_data(imgdata, tests[t]['mime']) + tmp_file = coverartimage.tempfile_filename + tmp_files.append(tmp_file) + l = os.path.getsize(tmp_file) + # check file length again + self.assertEqual(l, len(imgdata)) + self.assertEqual(coverartimage.data, imgdata) + # delete the object, file should be deleted too + del coverartimage + + # check if all files were deleted + for f in tmp_files: + self.assertEqual(os.path.isfile(f), False) + def test_asf(self): self._test_cover_art(os.path.join('test', 'data', 'test.wma')) @@ -549,7 +597,12 @@ class TestCoverArt(unittest.TestCase): f = picard.formats.open(self.filename) metadata = Metadata() imgdata = tests[t]['head'] + dummyload - metadata.make_and_add_image(tests[t]['mime'], imgdata) + metadata.append_image( + CoverArtImage( + data=imgdata, + mimetype=tests[t]['mime'] + ) + ) f._save(self.filename, metadata) f = picard.formats.open(self.filename) From d652e7307b81d992c54090a5093c380182b72813 Mon Sep 17 00:00:00 2001 From: Laurent Monin Date: Mon, 12 May 2014 20:55:37 +0200 Subject: [PATCH 141/212] Make exit cleanup process more generic --- picard/coverartimage.py | 14 ++++++++++++-- picard/tagger.py | 15 ++++++++++----- test/test_formats.py | 12 +++++++++--- 3 files changed, 31 insertions(+), 10 deletions(-) diff --git a/picard/coverartimage.py b/picard/coverartimage.py index 90bbc2f55..5eb64cd55 100644 --- a/picard/coverartimage.py +++ b/picard/coverartimage.py @@ -27,7 +27,7 @@ import sys import tempfile import traceback - +from functools import partial from hashlib import md5 from os import fdopen, unlink from PyQt4.QtCore import QUrl, QObject @@ -43,6 +43,12 @@ from picard.util.textencoding import ( ) +def _delete_tempfile(filename): + try: + os.unlink(filename) + except: + pass + class CoverArtImage: support_types = False @@ -60,6 +66,7 @@ class CoverArtImage: self.comment = comment self.datahash = None self.tempfile_filename = None + self.cleanup = None if data is not None: self.set_data(data, mimetype=mimetype) @@ -132,6 +139,8 @@ class CoverArtImage: if not refcount: (fd, self.tempfile_filename) = tempfile.mkstemp(prefix="picard", suffix=self.extension) + self.cleanup = partial(_delete_tempfile, self.tempfile_filename) + QObject.tagger.register_cleanup(self.cleanup) with fdopen(fd, "wb") as imagefile: imagefile.write(data) log.debug("Saving image for %r (hash=%s) to %r" % @@ -158,7 +167,8 @@ class CoverArtImage: # file still used by another CoverArtImage self.tempfile_filename = None return - os.unlink(_tempfile_filename) + self.cleanup() + self.cleanup = None self.tempfile_filename = None QObject.tagger.images.lock() del QObject.tagger.images[self.datahash] diff --git a/picard/tagger.py b/picard/tagger.py index 61ee173a3..9a470ce7c 100644 --- a/picard/tagger.py +++ b/picard/tagger.py @@ -199,6 +199,14 @@ class Tagger(QtGui.QApplication): self.unmatched_files = UnmatchedFiles() self.nats = None self.window = MainWindow() + self.exit_cleanup = [] + + def register_cleanup(self, func): + self.exit_cleanup.append(func) + + def run_cleanup(self): + for f in self.exit_cleanup: + f() def debug(self, debug): if self._debug == debug: @@ -253,11 +261,8 @@ class Tagger(QtGui.QApplication): self.thread_pool.waitForDone() self.browser_integration.stop() self.xmlws.stop() - for filename, refcount in self.images.itervalues(): - try: - os.unlink(filename) - except OSError: - pass + for f in self.exit_cleanup: + f() def _run_init(self): if self._args: diff --git a/test/test_formats.py b/test/test_formats.py index 336a525fb..c20678d33 100644 --- a/test/test_formats.py +++ b/test/test_formats.py @@ -38,6 +38,14 @@ class FakeTagger(QtCore.QObject): QtCore.QObject.log = log self.tagger_stats_changed.connect(self.emit) self.images = LockableDefaultDict(lambda: (None, 0)) + self.exit_cleanup = [] + + def register_cleanup(self, func): + self.exit_cleanup.append(func) + + def run_cleanup(self): + for f in self.exit_cleanup: + f() def emit(self, *args): pass @@ -509,9 +517,7 @@ class TestCoverArt(unittest.TestCase): QtCore.QObject.tagger = FakeTagger() def _tear_down(self): - for filename, refcount in QtCore.QObject.tagger.images.itervalues(): - if refcount: - os.unlink(filename) + QtCore.QObject.tagger.run_cleanup() os.unlink(self.filename) def test_coverartimage(self): From 42f2048d9934f7438f7357993598058976577c71 Mon Sep 17 00:00:00 2001 From: Laurent Monin Date: Thu, 15 May 2014 14:26:39 +0200 Subject: [PATCH 142/212] Drop refcount/__del__ mess, make code much more reliable and simpler --- picard/coverartimage.py | 116 ++++++++++++++++++---------------------- picard/tagger.py | 1 - test/test_formats.py | 1 - 3 files changed, 53 insertions(+), 65 deletions(-) diff --git a/picard/coverartimage.py b/picard/coverartimage.py index 5eb64cd55..fab36a0f4 100644 --- a/picard/coverartimage.py +++ b/picard/coverartimage.py @@ -27,10 +27,11 @@ import sys import tempfile import traceback +from collections import defaultdict from functools import partial from hashlib import md5 from os import fdopen, unlink -from PyQt4.QtCore import QUrl, QObject +from PyQt4.QtCore import QUrl, QObject, QMutex from picard import config, log from picard.util import ( encode_filename, @@ -43,11 +44,54 @@ from picard.util.textencoding import ( ) -def _delete_tempfile(filename): +datafiles = defaultdict(lambda: None) +datafile_mutex = QMutex(QMutex.Recursive) + + +def get_filename_from_hash(datahash): + datafile_mutex.lock() + filename = datafiles[datahash] + datafile_mutex.unlock() + return filename + + +def set_filename_for_hash(datahash, filename): + datafile_mutex.lock() + datafiles[datahash] = filename + datafile_mutex.unlock() + + +def delete_file_for_hash(datahash): + filename = get_filename_from_hash(datahash) + if filename is None: + return try: os.unlink(filename) except: pass + datafile_mutex.lock() + del datafiles[datahash] + datafile_mutex.unlock() + + +def store_data_for_hash(datahash, data, prefix='picard', suffix=''): + filename = get_filename_from_hash(datahash) + if filename is not None: + return filename + (fd, filename) = tempfile.mkstemp(prefix=prefix, suffix=suffix) + QObject.tagger.register_cleanup(partial(delete_file_for_hash, datahash)) + with fdopen(fd, "wb") as imagefile: + imagefile.write(data) + set_filename_for_hash(datahash, filename) + + +def get_data_for_hash(datahash): + filename = get_filename_from_hash(datahash) + if filename is None: + return None + with open(filename, "rb") as imagefile: + return imagefile.read() + class CoverArtImage: @@ -65,8 +109,6 @@ class CoverArtImage: self.types = types self.comment = comment self.datahash = None - self.tempfile_filename = None - self.cleanup = None if data is not None: self.set_data(data, mimetype=mimetype) @@ -123,63 +165,10 @@ class CoverArtImage: self.extension = mime.get_extension(mime, ".jpg") self.filename = filename self.mimetype = mimetype - m = md5() m.update(data) - datahash = m.hexdigest() - if self.datahash is not None and datahash != self.datahash: - # data is about to be replaced, eventually delete old attached file - self.delete_data() - self.datahash = datahash - QObject.tagger.images.lock() - self.tempfile_filename, refcount = QObject.tagger.images[self.datahash] - assert(refcount >= 0) - assert((self.tempfile_filename is None and not refcount) - or (self.tempfile_filename is not None and refcount)) - if not refcount: - (fd, self.tempfile_filename) = tempfile.mkstemp(prefix="picard", - suffix=self.extension) - self.cleanup = partial(_delete_tempfile, self.tempfile_filename) - QObject.tagger.register_cleanup(self.cleanup) - with fdopen(fd, "wb") as imagefile: - imagefile.write(data) - log.debug("Saving image for %r (hash=%s) to %r" % - (self, self.datahash, self.tempfile_filename)) - # reference counter is always increased - refcount += 1 - QObject.tagger.images[self.datahash] = (self.tempfile_filename, refcount) - QObject.tagger.images.unlock() - - def delete_data(self): - """Delete file containing data if needed, or just decrease reference - counter. - """ - if self.datahash is None: - assert(self.tempfile_filename is None) - return - QObject.tagger.images.lock() - _tempfile_filename, refcount = QObject.tagger.images[self.datahash] - QObject.tagger.images.unlock() - assert(_tempfile_filename is not None) - refcount -= 1 - assert(refcount >= 0) - if refcount: - # file still used by another CoverArtImage - self.tempfile_filename = None - return - self.cleanup() - self.cleanup = None - self.tempfile_filename = None - QObject.tagger.images.lock() - del QObject.tagger.images[self.datahash] - QObject.tagger.images.unlock() - self.datahash = None - - def __del__(self): - try: - self.delete_data() - except: - pass + self.datahash = m.hexdigest() + store_data_for_hash(self.datahash, data, suffix=self.extension) def maintype(self): return self.types[0] @@ -208,6 +197,7 @@ class CoverArtImage: :counters: A dictionary mapping filenames to the amount of how many images with that filename were already saved in `dirname`. """ + assert(self.tempfile_filename is not None) if self.filename is not None: log.debug("Using the custom file name %s", self.filename) filename = self.filename @@ -251,11 +241,11 @@ class CoverArtImage: """Reads the data from the temporary file created for this image. May raise IOErrors or OSErrors. """ - if not self.tempfile_filename: - return None - with open(self.tempfile_filename, "rb") as imagefile: - return imagefile.read() + return get_data_for_hash(self.datahash) + @property + def tempfile_filename(self): + return get_filename_from_hash(self.datahash) class CaaCoverArtImage(CoverArtImage): diff --git a/picard/tagger.py b/picard/tagger.py index 9a470ce7c..1ba6f9254 100644 --- a/picard/tagger.py +++ b/picard/tagger.py @@ -195,7 +195,6 @@ class Tagger(QtGui.QApplication): self.albums = {} self.release_groups = {} self.mbid_redirects = {} - self.images = LockableDefaultDict(lambda: (None, 0)) self.unmatched_files = UnmatchedFiles() self.nats = None self.window = MainWindow() diff --git a/test/test_formats.py b/test/test_formats.py index c20678d33..8d88fe53e 100644 --- a/test/test_formats.py +++ b/test/test_formats.py @@ -37,7 +37,6 @@ class FakeTagger(QtCore.QObject): QtCore.QObject.config = config QtCore.QObject.log = log self.tagger_stats_changed.connect(self.emit) - self.images = LockableDefaultDict(lambda: (None, 0)) self.exit_cleanup = [] def register_cleanup(self, func): From b4367486bd327b79f507058d742e07c9bbb705ae Mon Sep 17 00:00:00 2001 From: Laurent Monin Date: Thu, 15 May 2014 14:35:56 +0200 Subject: [PATCH 143/212] Introduce image_info() to extract width, height from image data --- picard/util/imageinfo.py | 95 +++++++++++++++++++++++++++++++++++++++ test/data/mb.gif | Bin 0 -> 5806 bytes test/data/mb.jpg | Bin 0 -> 8550 bytes test/data/mb.png | Bin 0 -> 15692 bytes test/test_utils.py | 33 ++++++++++++++ 5 files changed, 128 insertions(+) create mode 100644 picard/util/imageinfo.py create mode 100644 test/data/mb.gif create mode 100644 test/data/mb.jpg create mode 100644 test/data/mb.png diff --git a/picard/util/imageinfo.py b/picard/util/imageinfo.py new file mode 100644 index 000000000..7d33c19b6 --- /dev/null +++ b/picard/util/imageinfo.py @@ -0,0 +1,95 @@ +# -*- coding: utf-8 -*- +# +# Picard, the next-generation MusicBrainz tagger +# Copyright (C) 2014 Laurent Monin +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License +# as published by the Free Software Foundation; either version 2 +# of the License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + +import StringIO +import struct + + +class ImageInfoError(Exception): + pass + + +class ImageInfoUnrecognized(Exception): + pass + + +def image_info(data): + """Parse data for jpg, gif, png metadata + If successfully recognized, it returns a tuple with: + - width + - height + - mimetype + - data length + If there is not enough data (< 16 bytes), it will raise `ImageInfoError`. + If format isn't recognized, it will raise `ImageInfoUnrecognized` + """ + + datalen = len(data) + if datalen < 16: + raise ImageInfoError('Not enough data') + + w = -1 + h = -1 + mime = '' + + # http://en.wikipedia.org/wiki/Graphics_Interchange_Format + if data[:6] in ('GIF87a', 'GIF89a'): + w, h = struct.unpack('LL', data[16:24]) + mime = 'image/png' + + # http://en.wikipedia.org/wiki/JPEG + elif data[:2] == '\xFF\xD8': # Start Of Image (SOI) marker + jpeg = StringIO.StringIO(data) + # skip SOI + jpeg.read(2) + b = jpeg.read(1) + try: + while (b and ord(b) != 0xDA): # Start Of Scan (SOS) + while (ord(b) != 0xFF): b = jpeg.read(1) + while (ord(b) == 0xFF): b = jpeg.read(1) + if ord(b) in (0xC0, 0xC1, 0xC2, 0xC5, 0xC6, 0xC7, + 0xC9, 0xCA, 0xCB, 0xCD, 0xCE, 0xCF): + jpeg.read(2) # parameter length (2 bytes) + jpeg.read(1) # data precision (1 byte) + h, w = struct.unpack('>HH', jpeg.read(4)) + mime = 'image/jpeg' + break + else: + # read 2 bytes as integer + length = int(struct.unpack('>H', jpeg.read(2))[0]) + # skip data + jpeg.read(length - 2) + b = jpeg.read(1) + except struct.error: + pass + except ValueError: + pass + + else: + raise ImageInfoUnrecognized('Unrecognized image data') + assert(w != -1) + assert(h != -1) + assert(mime != '') + return (int(w), int(h), mime, datalen) diff --git a/test/data/mb.gif b/test/data/mb.gif new file mode 100644 index 0000000000000000000000000000000000000000..81fb1385318497bb2750908e131364f748cbe935 GIT binary patch literal 5806 zcmWlbi$Bwg>XTAJ8gV#8I;Xy!oZ{E-c|Cu^^M0PkFTmG%?XFya2TZR3015y=0Dx5RC;$WE zP-pRo770 zTZPkHWvH%Us->xIphdPK?q(AXXlj{jX=~}MHql?rSgmcrhNF#ih-TU(3u=sxu92>u zjxA-c9d)0Mo|V1oelvY4UEjjcfMGz_x6~)G)ekwU#W3iWOhdAhdaQw=tqI+ZVPwc+ zP;9hf)@mHIT^(m@L^Cm3XKv)^s1t8yvfj+x)X9|UqL;`tcXu&3;<84~TQ|j1|2T{3 zxt^urZj@+k>EmTAuwn;!veg}Jd;(2Vz0FTK*>G*`xW0Cp_KtRI?YH@}(gK`x);om; zS!Zl=S?#_yEZ9YRvrU$pD{t$1-7R)GTO7}ZyBmah7=ElDgS`&kpubh2g*ruQ~ou9Y4PQ#KHR0F)cUvb_x83lkts56B^GPYCCqMDLJ7@a7o1>D6s11A zEO^+GwXQvLeQ}y1FT3@6#z0YK|ATX!j$Du8bI6U{2fY`(%g+szTpaAX>{WSrxU_Ke zMUj7H;hT!<%Gbp{H8)0UuTKo$_Ltn6Y`pcSOf)`Ly5UaQCyQznSnS_W`p0=KyO@ssyUHHr(Jf7J9NY3Im(8(mS^?hL`9NJK|U{LkpGYPGKpAlmCV9~^#F{Rn3X`EN{Wsu&dR zu#A42qrM-?_j!;?5{A;>idfjtkQ)tuMcmxiJm7Ocv-&JC`MXAk&X5tVF5#=jSnELS zj!I)A*0Ujj$;dsnK`UBS$@gMtu!M0`RIC8OZnH;5*Mb{}l&BVT%C`Mc{Wyz=I>0dY zb&F=ozAIZMoOWFZKASH3zUY`vI_lrN8?(miy7y@*iz?Un8_>K}wd`Y2kTKSIYTogR zjCHd1#S`#AOYi5bm(1Yuzb}V3Ggl;APE)CZSd@Cn)Aip+&+yU-jKn~N;4 zwwml&4H_SN@tzrk7H~9=h8dzxfH)y!R?ephh*n!acmfdrE!y-!|BDJc!vD6R!!1Mh zt8yzbYlB0><$wFBgnqeuTi1d>N2wkD(cp(c;n*rHFTjhEhw2#5wY?=wLq+^%{*vcz zE3|p$=H7Hv*PGLzJ`&ZbI&u5vQb{+#;>TZpf$^xv4IA8+j|ji`oWU);eC|ea%&tj4 z^{?-x-&Ybya?(C}vW#<=!sPlqli8g)KD{SjDJMF`Zy zaR(NdJJB)~%kRaig7P0@S8_oLcPA69srcDP~#RW3jud z%NrBCfpdswo)v1wGuG`VV#hIDE*8&G;@L%;>1lGiXZxA%(b{TTn$+#qoJPy7n2C`# z-5?rQ)MZef3lj8D83@7he{!$OPK$_F-ZIPFj4wz3W=^}1{+&mYyIJoI%xA&E@-yKF zeU9q11|c3(On0Z^-?S5q^YLZ{|2A-d(EXZDSB_45krir>^SyzM-gcYTO>oZy*kmNr zfNS6Omnl|{?442%whDNa4{YIs#Oj(azF9Z>779Ip0(P1JO@4VQ&k5p*2sWsh@rf60 zfvOzC>^H-Cj*)zwV1B3e`vLtYb)Et0pcQhw`}<)A@G}D^R|~!5f;FalOqRTE?zPFs zCo-Z3XIIG*Yz?2Z{zYefm+K2LImUZT$S+<#XD$n~e+o0ykDm7hjw>0vIY`vEnMax_ zcknUuUbKkWi<`EZ7G~#02QK%8V~GA>Z%)HO_3IzrTcD{RI9#R&D?OJ!R@@bSHAE?9 zunswDKv1NG!5gJu_wM}Stn5t8&wzz^8gp8v_RK5L`R+pl)_ZCs_hlCj(n%DLKW{Ozc zFAx38W$A)2xr#SBPurRaYu7dBc^21)e;Lwnym!wsL$)`4)!M*F-FyJ_m+q7T>RR~@ zgr)|I9oLrWTk*B*40rj2hC@;Y(YS&zbm7zfK69?s$ab&fRYt&VM)n>WUxT;oW&eA$ zKk%hc7E0RX^(6xU7p}3~(aJE%z^ya?dm%s-^hYrZx|??oKE~*am`19vF`A9fPJ3T8 z3|oDmJ2Wi|=)Y4Qt9+jtdNjLWxXj}_;spek$W^+2S6eH2trzf=nd%{*v;E5-z^QFvp_%;-7U zasz7iLL%xkCsZ4xr%^i{+yk!1AA7p5$+m~9t5P}W_Kcl{R^3Q<`B$>ZihuPnUI6Ij zO#c&ng;IZrH2h7FrS(VLuJwG*_WHT)B=?S<7FHJBhF*EP z@ zP;}uNfz9c=lc@AwDpj;ctu(^@-&F|7Vd$b`gZrh-K#+l3xNjfne`NJj3 z-#+FgA>|yyF1`Q6zt^-d&$rJ!&CMEmwS-B0xV+2f{M*8RF&-P_J~?PG%%^L zaHa1PDi`>{Q+t|qFF7Tr`F4{r^gq>cuy=W<`{nTQ=U<_!lCJM((34v|bc?Rkm8Lb$ zVoj{Ub0}}}04?Y49G(0(7Vv6^m zjTZWC0nCj(07Jz0JBsi>4BjuDa7}c^(rf#%L0Y_$Zp|PXZ$WP>Cz!Bzp@eAjFiUf_ zGnX&Ld7WjRlc{{_w*A}D(^3`m6F|}l7Ro=~M%~r80gC3UtepfvF^Oe^eV`<-q$g}y z1%$V18NWC(pHA>n|20y+%iXHxzE@aaE2Xu<(6S3VR@7jC(HSY!1ffxib+s)47;fZsWur#aZ2 za&*4~7=#2f7>7TWZq@gqI1Kp7sVW=km|X}KnI;X3NcTNerp4s5f|N!2f%l#+ONQCs zj_vp_jZis}i{J3L$g}B&6d&Q#42m|^c#$cj$rJ1nbr*O{x$&xJiMC708#W4BgwzBmH4#?F1y;XC zTSEt}Wu>g)Qmds>>u`v{F0+@EI`GS!mOyiE8ADcPpH$|iD6^BGyu-_VmQW6hpl@5b zwxHa32@Gf}HvlTw;T55ZQU;&OMo0@tMbuISPrGurOJ($IMav@TGq*CPtuk)5Vw_DJ zMJnTxNa4ez8NPUi3qO&G`}uI*bPe1!NE4?#9$yP(p49cy$qe)K*;?POZujSBpSJAXEob&xqiwGEgxL zzFm@DcOly=p+9D&*9lTZTb)7zo>amU+SPZIwM;f?Si8O=T%4)EPPNteQYkZhcuIht z3xv`E*}q9u3v6NtqB1V5J}0SD%%c5~dN&yvUn3K6F`0ardZXb*AoZoTEJ6;=Nx+9n z@qoOpBWGFmXjZ%+f@ir^sY?xs5_oY|OpCybQ{fn1qZ>fJn*=-S$cnFvzr|FsZ#0!_ zH$pazlUxkT0yo2^qySCrN#Nov+#?qchm+I8@600P4le$@2;Z|PnPgW#VUvYP@B)u~ zhmSwcCf2vznW0ijkox8vc!*v#E)sVjcW2n7y>o;ipd~pFoh=A=133IV( zh>mV|!981oD?~Nj3fw2bU4$xiMWE*Ma5b;7iP>x^!p|&{H!RboPIUAhZk-;NJi{ZJ zj)0H3_gm+nOg7ZhhH3628_VnF6i}21zV#pFWfJ^ORO80MOa+2nBK*`aI5G!W$VoF? ziaxJ#6VTo`2Q?+b@0IPYB5)Ie3R#4wk@g449oLc0_BPOx*Fo!pE+`}+%9ayL9qr+m z)^+zkaT^s(>CfT&?{zvq{70UuY3FQ!x<&BExz6&w)_>O3&QeLOeNYR%#+8fNE0RVi z31fj!3m;a=l@nasr$lf+x3h;$nF7eEIbE)7+&@%!Od^ev05z{ttjz(M8&%k9=$JV+!cF2mycm!VjjV zfL{e-+Qt_Xu`f!LVr}w+&e;YlDOka4nvmAdAU(aL`Z{@+8=HJ`ssHat%FG<(&;R2e z0Q)AeYBZ8E!X|zD2#t$gW^(&Ji{Q_~K4>RpRN3t+#QJWm8J>kV0rxA|l+*Wz)aLIC zbO#-!QmqSpLmz8qfyZZSDd^g#MmI^DBUMi6QF)XGj>Gn_aeF?Z znKj@|g#1?6?$7UP(51ZNKD4B(Q~m_~@`3eeWdx@og`c#6Hy2y@^ANDU_h%qviPT%tano#y z$p{E6KmYvn`7`E=c7l@L(RV1N_8?Ggo;w6yfdBl_Z7-L+UEj0n>AS+6gKwoUpZ~Il zfSH*eOc#Mn1a*J0<<>ALI}e{+tk&ZagfTczWf#y1I&q)AQ)29SA1n|kQ&2s`ftVan zAbR?lhxZqOKphw(h3$9~TVY9v{C(tkvq52&Woq0q(T5!$Rko>n;y9muOPULg@(jK z(=aUW6z4e-(}mif3^R z)VW5txu&RJCbr6mtpZ|8=Um&Nxt5D_?OdWf>f=LwVv}&LBlTnd*vAGX4(EX$aGQS> gHUBzwe(2WxaOeE!*!g)Ns`#aC`&+7oLlANL(00MykGxz~KKLG^N9yS(UHrCX>4qo=u z@`|b&&r5(bfQW$b?}Qr?{6q#LBO@UpqobmtfHBcAF)`3FFtD)kaj~%RurV-jiE!}< zAcTa3m^j2FL=X~u2qEO(A|OQg93*5kWMni576umN|J$Cs0X#5Z4#XjX@Bjon5F#Gv zxfh@S01)!OPx!wEe?t^hFv34CIoyGO`2To8$Owo?D5%ei045^biHnE}U*Rz6-*j;j zhn9EnD=3zX#|l7b)>5?wB#Z$-Vi4_|>>!F`;7O%@d|u_v0)wwX%kMr3VZTFM5Xg;> zF3s7!&gW~R*o2R9(CeAV^Z?Iz?FIk8&A<0z*>>iEot~0kd`W+KtZEu^esf7LSe#rN za;U#`bT_luUbDQMCR2^1WhepDL_2b?B*(4vQhr!HZ`*tu*4=e}G!RezMWi7hx?*M4 zsXd~|x*Y(G%0`xPmkT8=U~#8?VmuUO7biPBFq@~sSR%>e+jm`U7pGmG+flnKF?>1**5Vowo) zugs6FJAZ@%P^Tu}p?EF`r$)TpWY_Q03t|9sET|py^S!7%y5qb%m1ovstX?XXAJS*S z^2sH`f}I6lOGg==_75a*6MUQwqAk*3uq055(tn>(zlF6i-L9t=vLx)CW=*OnoSH8N zx^UnVO<=b*EL;?mY>V>xgWUm#j2ZVIVgP^)k2N?Ja6^J4h5|yxg+~>DPmM=J!%Yw6 zhvNr^;|fRfsp=V^C|1w6vb*HLnvJe<39c8td1bCO)3dv1$dx@eD;5&}RGcqBd&TnN zjrL{_UGMJj!8g;pcJ@<-68^qnQ$^TmxSvkmx< zO1?}v(7r&TmENx3xT~xeC^pGaGH>5`XWqK2ZZ4p3Gn5jmQPk&VfZW4*UJG_Jx;SlA zfZZ!oya=jtv3wdf8f&dKp&_htfy}Zg8PIFs9x98+l;XHWk^~QAh)z_EPGwKv6yXd^ z9vN0qakhR6_N%{3%CnFqT#RjxG^r^oFfqNfRk|g-l)t^FOBAn16V6Os;A%DCq;Pj3 zq4*K;oz5Kv=SCcFiEx!(IyX36Q7rmkhfR+#Xj|Gei`EXvr~PWvKbSkYyBr;nS*21o z_M=7=SyO65mhQwA(aC67Ooi~KL#Ikw!5dx7&NR-FqfzpwgN-#2mLeuU7p8>G_gsIo zU%s^XG#Jr;33MsT&ri8Y3DY<`Qa{X8qKH{AUmbW|k>1})-cd?U-gyZssh@-p3{EraUl~pa2>#JP>1_sf?n|!_0%D z{_dcHJflOe^684oED)!h!-A|g*NJfNv3!G%)52z~bzne>G3ZyanV83GwG}~X!+7hi z`aj{m(_CO`4zXdwk9i#Ljr2cwN;br1k$MFm#ik?~A>!@2S`OBPOis>){9+y*vDewF zC?vdftk&RkyXCfyug5?iHt@zgFEs7T@oNg3`baB>o^zTbI+oN~!^aReu5!8M0pm0I0b%VO zV?IpvDCnMD)s@j+78gjat-v%*6?wCq+Y&cSv@TolSL9-;?QQNfh#wYe!4DO|NlcH; zd+3Zk=0|x3iXRg$5e;-V`DO~zlsr{WP$)(;14^fzE1WkEUO3ERE=#PQSAA`@5$P@! zdJnDmn|(VCVXX@dJa#BChW->+kIe_>fDu)@{Gq7kNQ0zC2EmNGvPw=x*z0qCo3al5MH}gCj<}0>HI{q*KYm1Klau4jyptKs3rsvm zvlh03cd|3On&uOY{AQ<66IGjyLMh|zm8RbWH(Aac!-)1M<7nn6r*>&mj;7ATi*sq8 zO{W|e`6JE4t9e(?S(45|KMbN|7~1hJjzb4+;EybiBx^{Bc5`*`Q z#)-{Xe*Rj&5>)B5FN0lRTFQw-*%8Oik3=t16kb7GZ+*lEDa;o=zZbvB=zBMgE^4t8 zf1n^6(c*6VK9&u1Y{t2vz?5lMze0Ec;)(OTNM}-~a5-SKTc*0+jV;`mN+x}rCDIs5 z)JsgPiEmvd%lBM4_M^TQ&_lt{J#Dr-%;Eppy2UxuL!rKNNYH_S)p(ly6eG03K7Gr4 z`?^RT>CCwPZLCOZ{V;jRW+&d(z<}*t_*!vIUzL4>sRiRbv#cD%#eLdjJ)5)XzAWnd~vwvJlUSgbTL8z7ZurlVYqNp4(g@_yF#+vKv@OVmX`dRx#$SV1eNUP*r5+20;c#;$P7~lx%v)=}0xbWsKN?C(a!#1aJMjIWf6U6%|w3 zYM$ll%gnO*jaDBv$@{vdk4Vi|H&k!E?@P|jn0KtnUC(bfo1xGbEVm&pFICenIm1)! zEx4-^pz{|o$R0u75IUyK3*+Q~YHv#$BBRM4Uf zITkif27|7wl;)$S6Rd5#lUJ&m*i5WV!M0MwMr5SPKFqc<#74wnN3>xhk-WvuOl&q818l@hKW%Q3W~wc>Q6nZ9`il=)B~Z>lfT^M)IZwyV{( zM91P2sAS-I*lI1yCQ@-}G#^DfAjYIQp;qkvWcFnl$PK^e(xTm}hh0STwknrLd0^q= z6ZB|)AI!A5_JC0{lvEybal!wzDdhkRJh%NIfk|xdo3n!4KXf40Io?l>e+vc0icWd= z8|1%Y*m>5new`H8+-Ua7J@eO)_)C8z*?jYx;`KvIoImCVhcS;-R1&L+x}=I2eO;gG ztp!Cx2vImjp`svC(D`YcHm?6dOn|aGiT|HoSZhH6y??;F=7uJ;A#ZZW^SBJ-UdoBI zM9^jGikc;kQh;$o){(#EFQ(R%zcO_%RsqI`AU4){7rNdYj_t8kPBz?q*7`S2zheSQ zeOadcw0w@NMW5)!$}?{9`m?d5)F{K*SW#uQZN@4CK|A_s*Q=~HCq!q zrn_q$=0BdDI^b|OY0^9qy9=VJhu#*d2kOqNIeLn{Uo(aEK}83wnogh?W4Z(onlvT+BOW8{t+5fCY9kLeZX{~xo}9)dNWNbV0=sd z+UYSzkJ9gBujes;lZ%kIg)nTw<7cNsWq>bEuX+JJ6OWu`oyOxzV(Z0FO2(i%XZ;%r zC;NwN*kO*HT|?N}4eaX6O^69Bod-=Zfp~^OsSPNm?~^WZz$SVusTDyC>Dcq&VKRqwygx--wk$H*aY}Ta)OOl7kGP zjlf{JXJKm`KSST;j~b-Op3+}Bu}fE~(%!)~bY|X4ix_cYForMw)mqivO*}QDX`@D^ zJL2TPSz}{qQpqbo{nQ17xNQ5rFOcGsCe@g7HWCb6QAGnB<_LC9P=hKOvw@;8E zN#{Rf)g-IrG%I!(;gyo!2Rw#%e8!n>g7#E^G?!@);u2mmO_nZh6d7{@QW< z7ON>ghRbE^d^2rd7B|U8Trx2JR2!5NBaJlaVdSs(8Ca84oG|crP|J(3E(EWi$3ybo zLK@XHjH0|%3nh%W$sG3rdaW9IQeMFDXiA2QV=mE8*0Byn7$6r5e2Z>7>qNz&H78W) z{#RDespGfFz0}BDy?52c*zQF|$-ie$S|uyQ;!G|F0z_kjM`G$|`YH|Le@0h`frWKT ze<|p3%xF3kU{DITr^gFKGfNM@hjFAX-^U9*4X8_pytXE5DpRs(SZCExo9W$WsVrCU zO*9ewT><^+SRm)gOVq7hy5Xp4hZ)LpFgU^D{T<1-tY(?dy7Z&jj|8VER>nQQ>&$FU zSJ}mmv?b(J2w}>qSkLNt`fy#s zs?=u#Yx+WI8e&$~2SSsy z6W!mayC#Z7*8&InGc1rJU;O+qugLa0At-Cso=)3ynCv2?&<=TbAeT+p^@^oII7ZFg zk+=?j^!;zGq&8jcxVBgbtkH%(@j}D7R7)eY6Ek;6Q8NPy%j*6ckJFl;hw67AmYpARMnm@;Aq;Q7rC%97 zDQRA`{XqTQ_y8MBEsFs`Uu`8m#H;s`ia<}y+CIM}rv zE~PV9@JD1bJIpYN_#bO+RcR+#(Yus3otw4Sqjspi9R0e1`3sx`yO$5Khc{X1i3rBo z`GFoMx(ECTc0t);5TkLI%aTnoQ8wptP7QvMX~p3o8I81QQ`S3^tncl20V)~jI$i~Z zEH$hARF4f0Y)NCUi?00fBgzTQ^;G!C(fb7sZ+vm^igw*r)GoC9AKJ=Z^7HXI zP?Y4Y#smg(s0`*X{$gKZ#+zB_&QWv7CY-V5D5F_9DZvuxot+|ju>6?0dpVWIFF?1K zxP4gS+??@U4xwJivSha-Ti{_$VR&G^_f1VquML z!}MN&S0q7My{vAlQT!1;Icdy6G|SVzFIPwinJIZqMw@HHesT7Vjy{MFcS&#LmUL~d z|6@l~+n`on&Hf?U#+FJ!Ebcq-Sv5TKGvdOFRs;kP(*NoeAUqlXUcJH-esUglEiU)T z>3_;rc-Q-i=BbcwmWz}|Xx=`&*7zAPAhHUMmAO8xaNdHHW|;MTo)maUf8Y5uE~NJX zcxeqe9a~4QlD&+*MdsZ{x9V~iQg2gir2#hHe*BDLtYM$YX0E#j(lnoBWR|#44~iu# z6#rFEJ#?pNjx0UzK1RGKMLK3FZf5M7qVqtIG+?TBL%Wm3uSO!?C{nmON8f_WNkjO#zPQ^hcIyLy> zZtv)Ofh&oIwPNsLu2pq+h{xfWSD4ykN9azTZ;6;j;O6yR0r=IFU-MB`y{(tE^LZcj z;qr+bPQfXPI_fp25>rLZm*`N@s#}A_FRtrRuj@1>rwYv&^0Dk!QQ`tm@vl zdkm5GjEf~kV)#T(tnO^Bdr1?x)5SS=>eAox{s{F+LTZR$y0t4rit6s!(Z#rY0aZ>NZucZ!OPhIMp<5eiq{feL{?c719e|O6itM}NH!7{;!ZF^@uHl0*NS*2XM&T#!;^>AI- z)Oq?+5VC#Dk38SqMQ40yg^SkEotzavYT@AX*CYM%#7$FJCB*|bI^ol+rK0<=(f8l5 z23e3eR@K^;Cu%$iP$QQzNsIiMM@r+FUuv~VXkWvX)4$UEL)?CP~u)_&W!ePC)S$PIt(E5I$ zYn=)2%ZtN_RN|805l~@nir70ejRC`I{4#TZbHYv2@ zpNDWunUrI=BoVHWy?UDvQaeRw*CwBns10RG^FZZtj62=XQEf#z#WatQPF0@Vi!;e; znRL4SVMV#CB9|CikOgaFXhK^cdL^{Da>y<`StxBykv>`=_ZS(6FxA8W$3Ww<>3A0Y+= z;L*TY(;ZHj7NK1y$rIEX|7nQ+$uGFiz-x~UgvNJNNY%Ns7(?i@;#D+@fiZV={7Sx! zDoJL#$N8?c*o3-qvA3-_)wej)B+l*LKeD=%>AJOiAH*j|Vm^6L0=N+Vc_xA;LP?EtHFd zQDU+8Mqg_a-&DCEF|dzC(9Y|pKIjZ+A8PnM-lrG+EouD5H8e?1TlD$M*7YY8+{!F7 z!=ny6ty!JvTC=eTO?1vKe-Up2_3cC)Sl4d1Kxh^jm%Do5-G>C&Y|6Qv(x2sJ1}1|L zs@zkI%dnJ`lu0cUR*LISAA@oyQN5{9x5LArYba`6+(Xy7g6xFVoqjMS1~EAnsZzj5 zLL1a*jPg7DgQg*jKL#XGK>H<%RkI7AmwYEi$UEMD0WDIKidX_^;0PpKJpM zGL^p=ucV0kX-n6lilmX_5AFr+Ling^zPUD3@nO?$ra1=GaNVf))AV54^8pOY|h4RS(94kJqRSzMrdv#+T)VMS~%E- z38U?Jb3tT~8b!{k=_zN7R<%z*q(8G@KTQXP+L>p(cm~|RI7xl}C5`sg5l`euw}}Xa zepE|F^t-P0e1`d7j-X!WfQ)?~tbtc%ge*zyf;Vp)P6RztC6E#v_I2b`)RKNuXr-Nw zyd&{b6SaS23e0atL94ZFvE86w5jY;f3`8(r4El2|aD26afa` z6Wm=f7Th72DzSXki~Y?*<&hs^e$0rjnR+sR(D1$&l4*bF?bJ8YBHgKKmb9LCt*TX3 zX+_8y^H8GarcuKP^ojv50G-k;gP`tY4C|~e{Bzg2P8k}l%ojiW#{nUQduYBq)cWl+ z;9?%F4{PMrCnfDM1lJ@B%-XG8%!{?gRrNJK@Pntt7~X~T|0EkD>_j#&5)<}sKR__- zFWBXwM2Jn!43m5KnSLw+)`(chxO8B@!pXG%UA|~)q%#%sS7eRCA+)5Iz>bdqyuA^P zR~Q3j9d<#8hrCX=Cg{XeG3MwkB&Z#gA(4;!W1GP8-k^Tw>d%ugeuHJB{I!y}&GDrI z4_8Q8gdasa>$WaeZW%-R?I0}UrS8o)r63G^{T@cpfRzf;{3Z+vhXt@TJdmS^bVo#+s@UzOF`veUS?rkZ3I5Rwb*`!7O5D1)CsfN)%~X zYSfenFk{F)aVEe~4HwJDglLBd>D+y53{=8N@Z375-l zc;o8_P_$ts&B~@Edo4y@U2hthsg}bj2rMOF
4c*aPo3z8Z5(I#X<4OLr`3uW~| zwcMu0%m+tDJp~k7w4h4zeyhqY@NC*vmB4usi5FXf~tN*1%&(M#MqaRG`q z`6RTlm`Oo}Hk%UkZypL5cnocnx3p>O^z+{0NDgU7{nAp#{s6<$LtJ&ef@ecXrBL)0 zfEIrfERytoE|3^V`GP@Bi5MJ3uStL>wl(nbtfcHxQsJFG!iL&bRDoVk@EfY}Naz>J zBFu4~PuL>ng)#DNiq#6+Jq|$ZO7B5nxdYf16tzeLF}veSEQ`OU!3Lq_^Fk`oSc=u1 z!I!9dQE{VGE=e**C&5tHLN!&>UUb$RW&%kXHvA|uaUne~m`doxbSW8$qZ)N9gwT=} z@`H_?@My%&JoM$eLk5$6JbNiJ1|j0b&CwF>E>-EXzofYm2=wSOR%_Au1-Qzcj70V| zPuM@t$n+18nbzLJ-X=xHyjWv60BzPp_cL7S6gJ$ckrcF$!fe7KPN$E0g=>pk>o<0E z4FQ>&TiItINCv$s#w?YqYmf=Vj75)}H;1>;;JZ_FompG9-*zPS3>-s|S?WO4Lx^?p ziDUqPxH#=XYD|qpZIPeQ{2TY6rr;}*_3zj_Dj~UOJUUs0zI2E0J+@D2oJlIe>|cXm~LguH{hovt}a? zpH4k|Yd<}@7a(;*pWN$%hLG|y1>fmFHe>%tgjMi;i{on$ws4SlA38I?Hxr7GiL{gN zt6qy8`uQW#1jmdjhf(7gV31|~l;uQ|S(zsj7DF=QkGBa;lHM00kXO^eI#5=nu!hXF z4fLduc)iS_psr9w=FKFrNq83Y=Iq*I{a z2F=quke>Rr^#6iJCS$C(k0NAVD!be4_u6qV?2#cd8EbCwr1Gi~`&_r7IMRSMtI!t^e`BcV=pd++y|Ees{j!2`RAwK>|04>{O$ zzd1l?<<9`V!9o-O^Wf|AVt%Y&qYODn;St`GJ>I+PFgCO;71{I(qT#LKALnySkQ`{YbL$Trx#ogWAA^6Li%;jb>H<|lo zcR$%b;+wJzDiQ$_002Ohla*A1+@m3vF~TRv_oQ^j5ajmBR6#}(@bUjAucI^x@(ZG~ ztgagXfY$r}1%*Q=9|Qo90pujbG`v^Nv%UOrEFL~K)g2Wslr9l%z9L`I)rTEQ%RfaUcU2C)JZWQw!>@XZp{yQZFdTMQL zZE^S7fHHE&12<})GIjKR6!vXqWo52hU8;Mo#;B{6CzBa|>J=CU*iOZNF2;8NUu}z# zlarrP$=O=d(p3TBC#8RU2I?-5*0dV1Bn|E2gXkjr%sFgml8$BN<^M5;d_v8D;tNdA zH`4n`$YuSlY}x+7($Z2SCnJM^(`iE}>Z1ZBZx1i&4yO5bQgjm#V`ZkGpn#lgq3d_m z1HY>b1}!c#u!%Azarr&i@49(GjCYF zd3iX0iLw#+?vLQ@z_ZHB&d&a5=(C@U2*9FMCc-BoGVp6cwR{C%A1WlyErFCAyWSo& zf{KcYqJjpludg3%GaitOuZ7{HVR|Qo9}RZ5`XjK0vSOfjo%v4meo@oWl_450RO)tB z-o%lyZJ(p(R6);n0Y9b_5)wXQVqyZo?Y9$APyCy9*49VMr&=&5gglk^My*XvJbU)P z1LKAo^8fyQ2Ho7;NLeiF<|pI9Gg?$3xc|UZKu_31>)l3Ib7+ALvUiwPltY+y8K@<$9eKJjR#|i38@go zne(9ayuHDpxhI{~ozEu?hTk|iIEc`~b_sP;V2+TY1`443CNq9e(a>NL6564nq6&Ya ztAcLue{zLvyX}Cl3bL|GZr1~NGFkG#<_+J9>!<%mbvj?MC;=JgDJ2C3S2sKu@`sE} zO!h!;?-my(0f7}_9Gv_6t)7sNCEcz?BVd5Fn%az+XIp@stZewqa~l}!%?x=wb;SIp z>9m5LifXU#V!h3%!TWkAJaI<83w`POo_%n07SCbD`ranAHWWmE# zAG&^5;ft;R#d5=8a9&K=~htXlRC~?gE_Da<;Ltu_SHQ(*;gSqJ+Y}T!cJFTDFfD>!0Q1Vn)VGn3>T1~iP4E<#F)ULfI zJ)~SV2jq7Sj*K$KUQHH<(bu?4@3@!1tfLe0U7gm})|O07O)+*o9b~fp@SQSKuwt-i zC@VV>ZC-Ol_InHzWxPvLokc`M{Qdj4^Rh*%)ZNi^;YETBi7I5SAkVFoLq`88*Z&4F zH{c=ttrwZqfBE!YSsk0YMf2N?I=tJ&R1^Zb3K<_AijwB^)D&0tHyl_fF^nEQ8ZrcE zk=(GE8-tCHqtE`4VOLjIuO%fkVT-3R_zR4QycZ<;T$jb~Zu;I{F-$&zf;s)M~(0akF zPa^$zV);Ky+OPbHP%V^Rj*5!9WT2;S)mFupCIx|=ETt1y)ust~}+^+%;z0 zVt<@VAb`)F!zF=-Eh5kQ`Fl9DhX)JKSp@|n_wPBd@!Nzr6H|*9aZNRgJ#p+OgnB0J zp@D&Qf5^P@!ii0NLM7;*$QA@@{7C1r!K~1#qF`XK)lpO&3x?nGP+&%tCG6BKUG>uJ63a1|kpGbL@u+F?*?8`5=N| zKq4Jmy9zdE810O3&jf8|?Co;~g^)-x>PK34S*7)Nu1bz&#$tr=FnVBz6Rr9fcz6Ms4*CjY?oXhQ7 zRwFWMAHZR(ZV>2siVIcs_j2=x+XE3eD{-bT=&PhRv>alGT==Dww~mmb3bIka+oxnr zDTLtRw9mI+IB#4xjGpmwTEvY{YGHAO>e3e%k5;z--Kw`b`g#c&CcjDDS8nQ$@WO-m zwdTd+rA%ky`5ZH{dwfDnr!~G8nj{?q_c?s21iUW}^7{urahh+tdhRuTUV=nDOVq$j zb5m2(7JP3g7cVasK0ZDnDXA!Mvoj#BaUyfv(#}~R8%=cdMI#{K&EbOxPMJ7kXr6i^5|4i}2B$!H78k>6EV_HK)Q%nEN+g3xOc8kN)BP#R8Ul^hojuxr3FtK zqCB>zMr;asw$>szV%RO`t=U5NV#-_M2+$@bCiIXxI8dc?{_-b2KE4i8Y)mC+r$!UMkqt)7=?ojRG8zI2{&- z4F!i@3%>Odcw;-$Z!P@##-{M64fV~S1}V~L*V_5^45eO8!g*=W)3suHW~Tmf!|yWY zsk0Y)%d>6q2{Pb>1VN~SiEIT`)#=pY;^Ndwow}WQdi4_j!@&LA%)CFo@-{X$W^Qh7 zqHur0uOv+%J6cYOBnZSn2MS)S@Y^b&Q~mCS;^)j~*)V=2qlu&C|ITV!pgwZK3Dqzn zZIzyoQSzC9K*4tf11Z*i$P#(FgG7mvqhDOX0@-U~9JcXx4o7Jg!#v@&Fy__HhQ%{; zEVud}62?Y70UnJm8OL03iEYsUT*G5y`d=Ap1g0l4nU?)cL2GLl!5p81^czT`k#bmT zse67ID_nOZWr*CNgy5VoWF#cV^W_HG%l2F4Zhl6s%B{*pwm=g^R%Yh!@bS|DEzb8i zDxV2wiAyU!HwCF$*QZPp3k`jefow? z>Jk`(gSRTdt1FVM8c^VlnqqVZO`$>BEt_u)d(>BeIit!p7ZK?s;AjSi;lvMTtQRuHqqrED!Q(H_CAFyly#Y*bzF=U?n_{^K2!Ffxno_9$8YX?oXb;5-VG}j<#RUn~5C= ziPi>qa$6H0XFC_E4|%q=x2^Qhd77G<1Mu+hHPs*xN5SJ}@%;S!oAs&NN}l#C7fZ*T z+IF_r#*^3#3Is&aGc!{Q2?^Ce;$85o*5!5D7?0afF6$}kGIv^Q96om15^o53+dVdCjfb=2h_X4)li>o#HPyOn7&GRoQn4bagU3V2r z-ib-|vd0U#dqqs5&N#~*PK_c6Ba(hvmF2A|X=NJqzHyNF5W}=+H^iH79MXAM7WKaE z@Z+~Sk}3oB{*XAeb}Xl4X`;oOY)8+Xgn7TP=ZVPv$ms=(`ire3kIIJsxjt%qdwQ%F z;vufIRP3@AX$!#AkXZ1Ikj36nF@-rnwKYGxMoZ*hUH-rZbX%W9}sHax4ftCTIre?M+EKh}E=97wM+;U;$< z{y4K8G79BbQXT(1p6dQgrM`Jqtp6tlzUEA(rEjbxWPXjWg7)Ke7vahdCTPkyJgSz1 zjZz$br0TCWw$9&UK0vMmv&CGV&K1a~sKX^M#Qc^OSo{`b7v?HSZDA@1I91tmyYWLRXtv8Q6l0r#o-hS;4cVOrNGT@OKCPl@s;?g9%LK!if7bYtjWezd%moC}GxdkRlUJpuD3l_q#6bCgYCQ7Y$1!3GB!3w z2;o{44vx*4U@+KOY4$f{B$btwc@kl00b93Ef9~eUd+$bg&FYrkDyw*n*{S3X-r`8} zkB&$HGwNY%4l_y+G`9G}iZfEc^ToL@n*y_*pmm*3E`Pr>DFXi~L>JTEO9JKq~Y8g29z?t3L z-ts$db<>YuqsIg&4=Aj_kHJL?o~^fef%7H8Vj&F3Z{Y_FyjHHK29v<^{=a|!D%Ahp zTU|(@KhyhF^*JC0cmLy_tn>OH0I;MthTr`m7jTOTrIW=bT_1&4_z>4SA^XROBrAW` zH|%zRNq}i)oP(Y!ET3y=cD#CMKxw`FcZsA1xq|wO7)E%#AGohbMQj$|pjo?zDeA{c zKhw?Bs2^gJ{F;j{=~X!yQsuhtMDFIAimDItatFnddtPLWiV77=FDR2#RQGWy6TaoN zcwM0S>6WhqCF-)9(KaKn6H@aH>J$aF_OX5MPq^Qw@+It4LaM*$YiTvTzZ~>sfl{$+ zU%n+$-M<*PZ*~7D0||If<_K%UtfVE}{%is(%iud&SMGG@djQ6=9^hxx;0x&t`(hTj zlFQ1>spLvZs(;$mJk#R3VHoDFVjyU0T3gdu9a{k@X)o<86*o}y)B`|^Gn$k!XHB25Tk(l@YbN%HucS-U36wervzIVvQFm%}HmAt_* zZ$$jA=G>vAcuS!u_~Lfk!N{!bYyE$uB#Gvxi#a%Sk#YTCMPE9-8^9Ge z8xwtwH@=DS8+=lf-*ZTV5+tTL4$zgv$uC#38u9PYLr%F96i zisX_U`K}X{OR=O>?cEN>@O2>)ncLINKI!WedmkF{c&;dE^Q!R3zANfCO&r~nk3wjlA+6GpgzM3g%{j(y1PFi)rY(|OeHc9~DOld`qNO6nq_l`_$ZDMk6p0ra- zD==2EfMMy|Az8(k1KwkSzWcW@H`vb*^jf)MDBaShn6^%2ym2E>@J5pS(P@$Jq+-vZ zs1Lzp?GwSVkp&opg!-O?;ce6kDP)m5GY~Yhh>3-@sRY@Sbc~FncK65ntM6|wDyP8; zDNGRnDnDmf3HV9#-IC^|+GA!(RnwPh74Plj({iUW1RdiF?k^SdVjknF8{UVG{vx~( zqKZu|DJGt1E~zS=NTpc694@cV+~eJG;VHh*WGp6@4*}$A+S<})X7?kAqN>IU%G@!^ zq5j;^l=goS878Lah*=Y z%HLm?_;xoU)Er`rKTdJoFZiq+T)upr9c(KHyZzeynkGfFWB+bk{$ePE{=IG z``A;6YCm3XGkcPx_BOo0Iz{pe0%?cpm8ccFoH|@y*QE+u%xwkGJL-(e9B$+(Wn!ZN zf0>RwueN$xj*gDP2nYy5Th}j2I1i}b;xnrtqPqmQ5*BeRoxdS^VW^R?ntBmw}R3zDfLLB|QErIM~1nK=_+lY56=zS)fsv6T{ZKrYdRoS(G z{-4VNX-b(=d)pThY^}0d97zr6!9MCInhH}I(YWe9tbB;W44n)2Y_yMIcFJt@fD@z;L zgfe&WP|)Xf)-kRKxF87&rJ;Ea2-nYw33MiKRYM5@ea5lP|1&71*%9`0IPa^^O}T*x zJC6Um$eO%NgdO@+Ver%V-33$HZ|TR16qi5szu@27;$&(_i)f>p|KUPEI5P$$N`xaf zpNN;)LI@C8kuC{RNP8jsMNV1SP}jgfsJ!vx?93kTtET2WRhL$2U0njC_GaTJxr5Hj zOLI6xRC0t`oy5g^CAvP|E+Oo2csMN(a9xK#Xf9u%sHpg;+;dzloI5?GBWEs&nL4It z-XA1zYc8-zrdOIKfdOlKD*v_?{k8{PD5epf!|7k!@&il7f%-)Gz`|p&BF!R!`D1SJ zsjeAa&AqaYb80B)Vp}%x2%XV7`UtDoiYVo`>=6n`RT>0Q;=8&aC4~_pSgqz)?2o2? z_`^!iazU)DF4QQ9&%;JXN9QyT(tLr?R@RC#NX{zH$Y2mlRFssYBIs&>m-(ixZP_w& zj#rT944+8HY4rd@+?4nS4qXaXY|l7oHQ>e%2R7j!NE{ISw)JFAWgz}Lma|jjTZD7u zd+2E4)$)QGYz0yL?&=27;1KNf`&*&=x3*3FFN`liks$HJq!+X1Ft64txL<-guQyI$%TvG5 zHxZlgjV|@PKTLRlFyWg$c7Ca1pzRkx?j=(g7FKVYwPQ^$HM)cGoRhX|%hF^;7T+f+ zi|1NcObQ44CGGhhdlJ!=;S`B^-@sbYQkwN#T2AxfcrieFdU~Z{hwtHe^QIwx!1Enx zBSrrsE+oWxBBZ3Gnz^{Sp%5$^(jgTc9pY7Jd1&f!F>x)VIcv_RuN|c5EmQ`4Zdk_c zzTx4~V)q4Ge9uT;_tU=VnGv0xGmr?U{A-qBfd@4{sU>RGpBikxsU|;J%I;HUC=ULr z3S;M$Lb&`vYloX8shE~rgRU`sx}vh2yja&+7!)+Xz-ebr(S{6-)dAPgUkuzR8;and zSW(QE8l*zj&|cI45DB;sgU2B@-gBYp6zLe1Zq>rt-rnA+Fi9K)UpgnyMP>?|ic)hg z&l1QvPRcQw;hk-UrJW#W{=f#t6X3c_Sx zs72&Q(cF%%q(dGNk&te0^|F@;KDIl{^Y4@w;OtI1AWF@3QwTo6P=%hg_4TJTk_uf& z;f|l4>|Xc|o1NB*bMZ>!hf~SsLTR9@5qVSpp7s`v9^(r%Ok()kUk$^zXPtRU#;U4$}-cd__<$CcMW`5z`tJ;X&f`= zlLQaU6TCP?005$`|9b&G{iKkOwUbN zcgVIcu=vX7$nrlv!9ap&CPNBeao|)$V&fXzg#b*G#kBs zTgQGpmL4FgRngIxb7+M(Nn3a*J0beG!ZOUCP_VP!{xU6Lj-E5VqoK0e-I!7Gr1v4Zz4pt%<=9MzsRxQk-mb1UM>rIc)U?6=8!X(42KMN% zV&;oElYh;FVQ|&db+4Zq+Mg~0-rEiHv!}{@2eVZi6xJSqUSMy^j+*Zi4Wx$@Y05d- z48s&gXG~UBhRpQrVo;V0TSBUNW$nLuZ!B?@ZkilOM222#c5i)H~vSj+Xl9-WYO zk@=u6I5?Ua@$qcL#>X?o#9Y%OdbwkDP%7Rp2iF42O>XH4uDWWTY0aW7xrc^&!yg;1 zVZ8AY<$Q_O$6J7Umt)B^U z8U5wp__7at%3vhju*Sx=-M52n=qIc|KK9BstUSyblMUSLw2TIPJW<8vXfsit|FbZ- zxsuj15SXxY^?iCAYR#S%3;x=iM%GI#dj2vP7)jtIcBDxha%l9Y`}d(M-z6bZlqVDh0p@6XE3n7b1Hx#B6wq!C{2uYUR3O%|jy03AHWoMc5H!aV zfWsHXYT-^0#&!eh=dxbQOFNG24x&x67)@_UyHbE#p3hk>iF6#SAa2rd?3$kIt60Bt zTY9^;6^0`(IRdnuX9}m;w66gPoLG<@O(`e0V2()##c|5nq^9a0KoBt>IW(_GM+}g8 zoLX48qcbmWE7~kA_m8=*xIc}fib82pp$$Rg4)+6@l(Z)$M?E3Tv+~|KI%yI3h~$Lu zUwK6h*#>TKNjZd}-c;}dx6dChWmE%x|33Jpwo(TsdmneIn?5G~xo>_=>(3y;Nukrw zK%|Qq{Wjx=bh6|IU6o6Kr+ATgJbbP=R1%`u^6HmH(q2#cXf%&Ui8|zg^q6lGeL^_U zm2&WIZugLc7|oRVjk{REB*B979u-GJ3x^zu0#^Y;tm)gyi2^+%1bT?DgcS8}gnlar z$&34cTKxV3EhY09Z&Vxe9Et=h)@>3;K`s(<_q(V4{+%L2|0Fy@Sx_ntl#Hr@50T6> zviHYw(+0WKXLLI{qR(5oH5OXgM=0KA#9OU3FbiL#D5HK5o;yMO_yC2wDv(n(^G+lp zJs3L%~ zxdVt9x;Q4qd5N|JyLj@h$Lz`B7fZuLLSCi>HuwlU;Qous;cp(`@qzRlkLCGq9O=4k5U^^=)-y*lW~H z&;!ba(bvZ(b%w>P`c@Y+$%8OHn;xwTXB)PNbk= zUazVli!C`A`!^V}pj?{#7O468+t+;M<@3CKF{EBfVZtk=Gh;oLft*!>tW1+u^ABo5 zBsfV-Su+6$1z*1>!F$YGAZW==&Oj_xg4|v+UUZAmSPsMQ--i=5;i5Zsk&%qrg31== z6h)5$-jmw3qyvC~f$tvys4($qX<(x6rtHz^B6=|lKJO#OjSukW`mnK`P@}Hi@UtkF zrNS%ktoOt#f%1cEJ_s~~l!Wa1uIzcI1Zqw~-i{d1b2x$u6%E5Y8InHS!XYchxz(wQ z4|cl9&{ zaR~|J!^vEu7xi}2E86Qs2x<^U3p4XFGgJS_$k-M4H&FT7XI@|L@gnnTJ7IMFB$N%k zvtSlX_D$Pp@S>w)xrsBL?Y9yxMIRQTizH`(85r}By|*u zEwC*E{YBYI);4_l2yTHPM=v8$Fd8CRfKx@SKY+CYXWn{)F_V#QjES;Ys!V53vgroDf(M-Pr<4x;FBva-4RmfnXPcMvDD6Pgd=tw)o%v|jg*B;x1p9CL}I)Pnan zF$h;fqO3Lwlbk`p2Q_*0WKA7DN*F8Dt%!WtsAqyLDH$ufeA)MN3&}g4+?-}B#Qg*A zyq?s5@V-D=S?pov9Lf1{fpkJ^i8jBNsR$S-0x1g!9phsYgJD_i_6w)-7oB zh-W>#09+O;2nf1!*+OJ2;@CgfN2L}gpdT#&k ziC9-TcQ_n!?3nq@6uz)=DGii*LwhGbWQBqlAT4z4fn%>|OjS8*dF})@Wlm*V1KRgU z_zzpMzE-g&d;F>Y6REk!a}-v@U;qm#@8rbRfda>qs~>(%l}PW7%B}a#y2RbnrQt&t z-#NCaYLE>1oa4@-`mFA&jY#AsQ)9hzJ=LFNhkIn?f^JfymGS>ylQ{HoVoxAjqmPQ3 z`WLaF=UC5UWr%0wI2I0$hZRIrBF0nf2dP~9)R>@_xD=7K4oc{*K8Yu9IQ z9}6hp`z90%L3Y2W(-;4G6vaYr{tm?!H)hRymgl0MYI?iOCO6~t z!v)%pH@W*yd_=JckX9|3$vl6J>FPDzpl#<)Mk6cs)rqwJ$bvGT4wihzOEDf@ zjMa1PnW@)b7~Jh5+NA|mZLP2xl5FW7{yX=7JMUel0C6hs3#HPSaKV+&$P9W0o$7=& zWEl2IFf@kTNW8XOUNdoI2s&e!mbz0KQo?2j!{;{nMU__^Tj$ChRC0;mqa6K`Nsiwp z)QE~~0#+97yHs!?njIS*F6Q*X!PkImno`#}gZ})O@q%q(& zK5`@4NLsV6$~cqerfd1e|$sw7n1SqW(&FQtZ=;eacc%x=l7)o06T~8ln-Ng>@9VYhp;y$z``lRK= ze8a@=R?EkfjJYYDZy}rf|?3h(0?nOra5}0uGrq+IWelR4FAK@ous?Pv2cWR15TJ7dY6*006;!WU0_@*?k?Wb@ z-F$J?)0)ps zV2}AC8of;!hDCten|5tBJS;Dx87T1MNh_%c#85mmDxmSp)|ICgD1#>aTmr$o^Eljm z`dP#@?QG3Q@K|Y0&8ty^B$k>syDHdH%P3s?1}ue~_tOqdGczN~ShI=Lh+ij&OMDX- zmk3u1ze%bgNTgELG?eJs7H42&xc2q$r|nN%7KM>1>%cmtGHyzXSK{b^zbnYw3Ku(S zT5R#)zSq#yAdE^$%!y`Fz}~~2nVOOnS0i$fs~c=VyBsZKYyQ%_sHA9*(oyf5M~BqN z?GgB>N8KpH0TCoiLM{I(Fh+MKC1TaV>8s)-zxFvm6X9S*449fcE(B=&);3PGNK{K2 zCYTG;(&|0bq#G8#sY0&}mA3W0IYx|L-0fT5x#$i-2>yEULkJ@;za+gXv*}CT5&{MV zSvUc=W+PwknT|bf4)B$FOzhbrgX1o0K9#*0gWqq zkC{kR#_umedRzUDBQbPWTAm-FofCkXI~i7DgF?!m1zDl~Lv_d$*oiI=(~>ejI*mG< zn%R%=S&nB$UrOSw#aTtV#?`qVA3k4B#Y?4^E%A_bL3WM8rvAaE!v5|>*u`G4l~Hj? z34xSq8jl+iWSUy^gdhPgYVBx)gdsmdm4uNht6JBY#!{N;NBROYU8lN7EYz#7uyMWk zM-{y8u$Z(#iyt>MiVOt8jTEuIhu8Hz`JP+ynS{A2+A}q?JQF7}?bzO2y>1%z+q36t zC_qk!xUS{~KCZ(_Pkz3BQfIg~`<$Pkv8V;gC;hrG>3G3JRY>F`y=snplK z>a6PO`owv^%yoB`W$MSk+E!e_q}Hb^4~N+Ri|eWWI-= zoSK}}CYrku!Xa?E^V70%1-$+pxvgLBrdjobTIQdsCPY=3;))q*pt*XEa-v9sRiwcp z?YKvLm?AT)b-8vikNcvy{W$F&3Xt6yUK$04Vqo56spy2N>BiR{3NRac+Lmv`MFSxf1LzqG*YAngUd^kwc_O8sTGQVnV4{mi{i`0RQSGPzC&W zzr$aOLN&54_*2y1a(SNVInAoit3*zYHfEXhLnSjK1BPvD4|!t9J<%(6n6|W23h5RZ z2A7hFAsSJAa(8sz?oF>G<@s3v=H~<9T53ywOHh!BrqsO+)_3SF4|v~O#W06VNEBKM7@&f0i{HZL zEyWV4Vu=O+VLghD_f0Z!@RdI3;lnz1UDAkC68YXMOTNDj4WXjX9NxNI@8faowA)k3 z6?8Tw0EO;UAe{v&`Z~|%_uD7>2l;eJ#~m}?J3oM5a=vToau?8HV4GS@V|n49*88mU zhy;42v$G0wa(vCEFAQplY?4K+dqjG%`WG=j;4?wULNYU1MRYgIwfT1oj{B*k$urHz za5+Jst@}$yNE^P==P#lG(bpP+;vpj>>~mZC%B3C(Dr~j-@#~(w!Og<$^>X4oaxGbo zDV;Cnbu73IzbXQ~mPZ=zn~|dF)Vz!6wsd6EVEoELrl#UO2Y%oGBIYwEQ+4?qo*2a3 za$ZHj&HWvDtaO~)k3=e$KUdzRUB?@g+-#xLS>MpA8oo~=MaqffIm#;EoFqC3?)-Z%vE`t&GNXR*dqa^`FOF5bc$fb9(5Ye~up(}qT= zcDoAO`yw(WWF4JcmFY=5I7M76NY+2ERcM1^U|_#a5V{)^Ui$zG8@ToPo6GU!Jp6qY z$Wp4F;Qn2bkdW-?ZA#M+!9BWY!jTzI^?8{Jf+yPgRhq~c#XJe`=VQ*+{u0WiMB}9V z^(Idlu|?AX>c^v246Gao|0AdneZ`ELk6tz%Jin`TxP7=BC&`UmPPK?w&wNxhG&HF^ z4eEhOd#a$<38`EPcF?g;Vd1Y#GEIxDM+#Y3AJEdyqT!#WNMokzZ}_Vd=EeQ~i`O^OBunMJ?8S{f^TY&; z^x{kA-AoUC1Z4ExtNcFM5>nBx6*dGO^D(bp*QaR?mS$CGXF|hHmYXwr9AUM!2qfMQ z=$lH$TuOy!-ag%S{zSa}P;*!5vnW*nn~QHAzBO`fyG-?R+G z6xFbIOS4BSCc7>sZL#@kfub*u7ZMn7X45!QLdk458-$4aR-z0z@vO0+)7y+#zh}Hf7R&&xaY^Ffp%Nk* z2Jz9gD&%gwg}j9gv8A@J-u+?8?3`&Rhhn~_D1qBWB$VtjN7-tN&6U zbXfgU6-oM#)!p{(bF^s9P*{+xj`x?tXn`<0r;eF!NV?d*Kk2&m?#P}J5b%3BUB#WM z(&xp_4KAQ71Bt}O$74XWr|x}M{6)tKGk@{T^OoF)M*@s^h?{7b%Z@HmgRY9bTxWvb z)_i##HzX<@$LgH*-j(E2C9R;O74gj-C)2{KM7>tc}@vj)N$Hq&iDH{ZZ8)g#Tmio_KbFnGI z6V0<$KY@|~=tK5AUV8U!ngH91lchQv-ticvBCDcVFK1RRP2{wi1rcm1L^5jq#k@Wp zi{+LYtS&6r&kX}Vhjyg|2jq_}qtapc^;@4V=u-igUJPvOf2lv*R(z11qN9}f&7MdK z=)idTtfD1Zk^>5f)*5Sbxytu`2HNPxph#c&{R7}I4Z;_yB2byA&EMXUmAYM@_PfD8 zx1dLX0k-sX{I&&$Kr{NQTcRG;a}?wzGAj!U;>){6{v=wJcZ<+Ko9w2I4nM-&4^kq{ WQhDq2&J4(5Xn>rQvShWmaqxf8-T$-z literal 0 HcmV?d00001 diff --git a/test/test_utils.py b/test/test_utils.py index 20ab92985..3e37564b7 100644 --- a/test/test_utils.py +++ b/test/test_utils.py @@ -169,3 +169,36 @@ class AlbumArtistFromPathTest(unittest.TestCase): self.assertEqual(aafp(file_3, 'album', 'artist'), ('album', 'artist')) self.assertEqual(aafp(file_4, 'album', 'artist'), ('album', 'artist')) + +from picard.util.imageinfo import image_info, ImageInfoError, ImageInfoUnrecognized + + +class ImageInfoTest(unittest.TestCase): + + def test_gif(self): + file = os.path.join('test', 'data', 'mb.gif') + + with open(file, 'rb') as f: + self.assertEqual(image_info(f.read()), (140, 96, 'image/gif', 5806)) + + def test_png(self): + file = os.path.join('test', 'data', 'mb.png') + + with open(file, 'rb') as f: + self.assertEqual(image_info(f.read()), (140, 96, 'image/png', 15692)) + + def test_jpeg(self): + file = os.path.join('test', 'data', 'mb.jpg',) + + with open(file, 'rb') as f: + self.assertEqual(image_info(f.read()), (140, 96, 'image/jpeg', 8550)) + + def test_not_enough_data(self): + self.assertRaises(ImageInfoError, image_info, "x") + + def test_invalid_data(self): + self.assertRaises(ImageInfoUnrecognized, image_info, "x" * 20) + + def test_invalid_png_data(self): + data = '\x89PNG\x0D\x0A\x1A\x0A' + "x" * 20 + self.assertRaises(ImageInfoUnrecognized, image_info, data) From a9e9a14a7414df15f54d595282813e9788c61002 Mon Sep 17 00:00:00 2001 From: Laurent Monin Date: Thu, 15 May 2014 14:36:41 +0200 Subject: [PATCH 144/212] Use real image files to test formats --- test/test_formats.py | 30 ++++++++++++++---------------- 1 file changed, 14 insertions(+), 16 deletions(-) diff --git a/test/test_formats.py b/test/test_formats.py index 8d88fe53e..6ef00932b 100644 --- a/test/test_formats.py +++ b/test/test_formats.py @@ -508,6 +508,11 @@ class WavPackTest(FormatsTest): class TestCoverArt(unittest.TestCase): + def setUp(self): + with open(os.path.join('test', 'data', 'mb.jpg'), 'rb') as f: + self.jpegdata = f.read() + with open(os.path.join('test', 'data', 'mb.png'), 'rb') as f: + self.pngdata = f.read() def _set_up(self, original): fd, self.filename = mkstemp(suffix=os.path.splitext(original)[1]) @@ -520,20 +525,19 @@ class TestCoverArt(unittest.TestCase): os.unlink(self.filename) def test_coverartimage(self): - dummyload = "x" * 1024 * 128 tests = { 'jpg': { 'mime': 'image/jpeg', - 'head': 'JFIF' + 'data': self.jpegdata }, 'png': { 'mime': 'image/png', - 'head': 'PNG' + 'data': self.pngdata }, } tmp_files = [] for t in tests: - imgdata = tests[t]['head'] + dummyload + imgdata = tests[t]['data'] imgdata2 = imgdata + 'xxx' # set data once coverartimage = CoverArtImage( @@ -546,23 +550,18 @@ class TestCoverArt(unittest.TestCase): # ensure file was written, and check its length self.assertEqual(l, len(imgdata2)) self.assertEqual(coverartimage.data, imgdata2) - # delete file (and data) - coverartimage.delete_data() - self.assertEqual(coverartimage.data, None) + # set data again, with another payload coverartimage.set_data(imgdata, tests[t]['mime']) + tmp_file = coverartimage.tempfile_filename tmp_files.append(tmp_file) l = os.path.getsize(tmp_file) # check file length again self.assertEqual(l, len(imgdata)) self.assertEqual(coverartimage.data, imgdata) - # delete the object, file should be deleted too - del coverartimage - # check if all files were deleted - for f in tmp_files: - self.assertEqual(os.path.isfile(f), False) + QtCore.QObject.tagger.run_cleanup() def test_asf(self): self._test_cover_art(os.path.join('test', 'data', 'test.wma')) @@ -587,21 +586,20 @@ class TestCoverArt(unittest.TestCase): try: # Use reasonable large data > 64kb. # This checks a mutagen error with ASF files. - dummyload = "a" * 1024 * 128 tests = { 'jpg': { 'mime': 'image/jpeg', - 'head': 'JFIF' + 'data': self.jpegdata }, 'png': { 'mime': 'image/png', - 'head': 'PNG' + 'data': self.pngdata }, } for t in tests: f = picard.formats.open(self.filename) metadata = Metadata() - imgdata = tests[t]['head'] + dummyload + imgdata = tests[t]['data'] metadata.append_image( CoverArtImage( data=imgdata, From adc54cc3b4eabf3a2394729edd8c673e21f2e093 Mon Sep 17 00:00:00 2001 From: Laurent Monin Date: Thu, 15 May 2014 15:28:16 +0200 Subject: [PATCH 145/212] Fix deprecated exception.message --- picard/coverart.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/picard/coverart.py b/picard/coverart.py index 3a99951dd..6f9db1038 100644 --- a/picard/coverart.py +++ b/picard/coverart.py @@ -214,7 +214,7 @@ class CoverArt: self.front_image_found = coverartimage.is_front_image() except (IOError, OSError) as e: - self.album.error_append(e.message) + self.album.error_append(unicode(e)) self.album._finalize_loading(error=True) # It doesn't make sense to store/download more images if we can't # save them in the temporary folder, abort. From 9a8fd64aeca510735faa0002efecf4798c27a41d Mon Sep 17 00:00:00 2001 From: Laurent Monin Date: Thu, 15 May 2014 15:29:22 +0200 Subject: [PATCH 146/212] imageinfo: add extension to result --- picard/util/imageinfo.py | 8 +++++++- test/test_utils.py | 9 ++++++--- 2 files changed, 13 insertions(+), 4 deletions(-) diff --git a/picard/util/imageinfo.py b/picard/util/imageinfo.py index 7d33c19b6..12c00ca64 100644 --- a/picard/util/imageinfo.py +++ b/picard/util/imageinfo.py @@ -35,6 +35,7 @@ def image_info(data): - width - height - mimetype + - extension - data length If there is not enough data (< 16 bytes), it will raise `ImageInfoError`. If format isn't recognized, it will raise `ImageInfoUnrecognized` @@ -47,17 +48,20 @@ def image_info(data): w = -1 h = -1 mime = '' + extension = '' # http://en.wikipedia.org/wiki/Graphics_Interchange_Format if data[:6] in ('GIF87a', 'GIF89a'): w, h = struct.unpack('LL', data[16:24]) mime = 'image/png' + extension = '.png' # http://en.wikipedia.org/wiki/JPEG elif data[:2] == '\xFF\xD8': # Start Of Image (SOI) marker @@ -75,6 +79,7 @@ def image_info(data): jpeg.read(1) # data precision (1 byte) h, w = struct.unpack('>HH', jpeg.read(4)) mime = 'image/jpeg' + extension = '.jpg' break else: # read 2 bytes as integer @@ -92,4 +97,5 @@ def image_info(data): assert(w != -1) assert(h != -1) assert(mime != '') - return (int(w), int(h), mime, datalen) + assert(extension != '') + return (int(w), int(h), mime, extension, datalen) diff --git a/test/test_utils.py b/test/test_utils.py index 3e37564b7..7b63595d2 100644 --- a/test/test_utils.py +++ b/test/test_utils.py @@ -179,19 +179,22 @@ class ImageInfoTest(unittest.TestCase): file = os.path.join('test', 'data', 'mb.gif') with open(file, 'rb') as f: - self.assertEqual(image_info(f.read()), (140, 96, 'image/gif', 5806)) + self.assertEqual(image_info(f.read()), (140, 96, 'image/gif', + '.gif', 5806)) def test_png(self): file = os.path.join('test', 'data', 'mb.png') with open(file, 'rb') as f: - self.assertEqual(image_info(f.read()), (140, 96, 'image/png', 15692)) + self.assertEqual(image_info(f.read()), (140, 96, 'image/png', + '.png', 15692)) def test_jpeg(self): file = os.path.join('test', 'data', 'mb.jpg',) with open(file, 'rb') as f: - self.assertEqual(image_info(f.read()), (140, 96, 'image/jpeg', 8550)) + self.assertEqual(image_info(f.read()), (140, 96, 'image/jpeg', + '.jpg', 8550)) def test_not_enough_data(self): self.assertRaises(ImageInfoError, image_info, "x") From 5ab4625fe7414268fcc445493b933d345efa1735 Mon Sep 17 00:00:00 2001 From: Laurent Monin Date: Thu, 15 May 2014 15:40:36 +0200 Subject: [PATCH 147/212] imageinfo: simplify code and exceptions, image_info() -> identify() --- picard/util/imageinfo.py | 17 +++++++---------- test/test_utils.py | 27 ++++++++++++++++----------- 2 files changed, 23 insertions(+), 21 deletions(-) diff --git a/picard/util/imageinfo.py b/picard/util/imageinfo.py index 12c00ca64..18a1cdb4d 100644 --- a/picard/util/imageinfo.py +++ b/picard/util/imageinfo.py @@ -21,15 +21,11 @@ import StringIO import struct -class ImageInfoError(Exception): +class IdentifyError(Exception): pass -class ImageInfoUnrecognized(Exception): - pass - - -def image_info(data): +def identify(data): """Parse data for jpg, gif, png metadata If successfully recognized, it returns a tuple with: - width @@ -37,13 +33,14 @@ def image_info(data): - mimetype - extension - data length - If there is not enough data (< 16 bytes), it will raise `ImageInfoError`. - If format isn't recognized, it will raise `ImageInfoUnrecognized` + It will raise 'IdentifyError' if: + - not enough data (< 16 bytes) + - format isn't recognized """ datalen = len(data) if datalen < 16: - raise ImageInfoError('Not enough data') + raise IdentifyError('Not enough data') w = -1 h = -1 @@ -93,7 +90,7 @@ def image_info(data): pass else: - raise ImageInfoUnrecognized('Unrecognized image data') + raise IdentifyError('Unrecognized image data') assert(w != -1) assert(h != -1) assert(mime != '') diff --git a/test/test_utils.py b/test/test_utils.py index 7b63595d2..9f2560ff4 100644 --- a/test/test_utils.py +++ b/test/test_utils.py @@ -170,8 +170,7 @@ class AlbumArtistFromPathTest(unittest.TestCase): self.assertEqual(aafp(file_4, 'album', 'artist'), ('album', 'artist')) -from picard.util.imageinfo import image_info, ImageInfoError, ImageInfoUnrecognized - +from picard.util import imageinfo class ImageInfoTest(unittest.TestCase): @@ -179,29 +178,35 @@ class ImageInfoTest(unittest.TestCase): file = os.path.join('test', 'data', 'mb.gif') with open(file, 'rb') as f: - self.assertEqual(image_info(f.read()), (140, 96, 'image/gif', - '.gif', 5806)) + self.assertEqual( + imageinfo.identify(f.read()), + (140, 96, 'image/gif', '.gif', 5806) + ) def test_png(self): file = os.path.join('test', 'data', 'mb.png') with open(file, 'rb') as f: - self.assertEqual(image_info(f.read()), (140, 96, 'image/png', - '.png', 15692)) + self.assertEqual( + imageinfo.identify(f.read()), + (140, 96, 'image/png','.png', 15692) + ) def test_jpeg(self): file = os.path.join('test', 'data', 'mb.jpg',) with open(file, 'rb') as f: - self.assertEqual(image_info(f.read()), (140, 96, 'image/jpeg', - '.jpg', 8550)) + self.assertEqual( + imageinfo.identify(f.read()), + (140, 96, 'image/jpeg', '.jpg', 8550) + ) def test_not_enough_data(self): - self.assertRaises(ImageInfoError, image_info, "x") + self.assertRaises(imageinfo.IdentifyError, imageinfo.identify, "x") def test_invalid_data(self): - self.assertRaises(ImageInfoUnrecognized, image_info, "x" * 20) + self.assertRaises(imageinfo.IdentifyError, imageinfo.identify, "x" * 20) def test_invalid_png_data(self): data = '\x89PNG\x0D\x0A\x1A\x0A' + "x" * 20 - self.assertRaises(ImageInfoUnrecognized, image_info, data) + self.assertRaises(imageinfo.IdentifyError, imageinfo.identify, data) From 8afcefaa6b915be27ccb90d0c57616fecf27d719 Mon Sep 17 00:00:00 2001 From: Laurent Monin Date: Thu, 15 May 2014 15:42:54 +0200 Subject: [PATCH 148/212] Remove now unused LockableDefaultDict --- picard/tagger.py | 1 - picard/util/__init__.py | 13 ------------- test/test_formats.py | 1 - 3 files changed, 15 deletions(-) diff --git a/picard/tagger.py b/picard/tagger.py index 1ba6f9254..dbe17b376 100644 --- a/picard/tagger.py +++ b/picard/tagger.py @@ -78,7 +78,6 @@ from picard.util import ( check_io_encoding, uniqify, is_hidden_path, - LockableDefaultDict ) from picard.webservice import XmlWebService diff --git a/picard/util/__init__.py b/picard/util/__init__.py index 2d40c9acc..60aeb6d54 100644 --- a/picard/util/__init__.py +++ b/picard/util/__init__.py @@ -32,19 +32,6 @@ from functools import partial from collections import defaultdict -class LockableDefaultDict(defaultdict): - - def __init__(self, default): - defaultdict.__init__(self, default) - self.__lock = QtCore.QReadWriteLock() - - def lock(self): - self.__lock.lockForWrite() - - def unlock(self): - self.__lock.unlock() - - class LockableObject(QtCore.QObject): """Read/write lockable object.""" diff --git a/test/test_formats.py b/test/test_formats.py index 6ef00932b..5d8ec43ba 100644 --- a/test/test_formats.py +++ b/test/test_formats.py @@ -5,7 +5,6 @@ import shutil from PyQt4 import QtCore -from picard.util import LockableDefaultDict from picard import config, log from picard.coverartimage import CoverArtImage from picard.metadata import Metadata From a0213db350528c3692456047f1613c251a0dd328 Mon Sep 17 00:00:00 2001 From: Laurent Monin Date: Thu, 15 May 2014 16:05:01 +0200 Subject: [PATCH 149/212] Rely on imageinfo.identify to extract mimetype - it does what mimetypes.get_from_data() - .tiff is unused (afaik), so don't bother with it - it is safer to analyze data for mime type (as data may not match provided mime type) - when images are loaded from audio file tags, a check is done on valid format --- picard/coverart.py | 7 ++-- picard/coverartimage.py | 17 +++++----- picard/formats/apev2.py | 26 ++++++++------- picard/formats/asf.py | 27 ++++++++------- picard/formats/id3.py | 24 +++++++------- picard/formats/mp4.py | 30 ++++++++--------- picard/formats/vorbis.py | 71 ++++++++++++++++++++++------------------ picard/ui/coverartbox.py | 19 ++++++----- test/test_formats.py | 8 ++--- 9 files changed, 120 insertions(+), 109 deletions(-) diff --git a/picard/coverart.py b/picard/coverart.py index 6f9db1038..b5811f279 100644 --- a/picard/coverart.py +++ b/picard/coverart.py @@ -27,7 +27,7 @@ import re import traceback from functools import partial from picard import config, log -from picard.util import mimetype, parse_amazon_url +from picard.util import mimetype, parse_amazon_url, imageinfo from picard.const import CAA_HOST, CAA_PORT from picard.coverartimage import CoverArtImage, CaaCoverArtImage from PyQt4.QtCore import QUrl, QObject @@ -200,10 +200,9 @@ class CoverArt: 'host': coverartimage.host } ) - mime = mimetype.get_from_data(data, default="image/jpeg") try: - coverartimage.set_data(data, mime) + coverartimage.set_data(data) self.metadata.append_image(coverartimage) for track in self.album._new_tracks: track.metadata.append_image(coverartimage) @@ -219,6 +218,8 @@ class CoverArt: # It doesn't make sense to store/download more images if we can't # save them in the temporary folder, abort. return + except imageinfo.IdentifyError as e: + self.album.error_append(unicode(e)) self._download_next_in_queue() diff --git a/picard/coverartimage.py b/picard/coverartimage.py index fab36a0f4..deb612b1c 100644 --- a/picard/coverartimage.py +++ b/picard/coverartimage.py @@ -37,6 +37,7 @@ from picard.util import ( encode_filename, mimetype as mime, replace_win32_incompat, + imageinfo ) from picard.util.textencoding import ( replace_non_ascii, @@ -101,7 +102,7 @@ class CoverArtImage: sourceprefix = "URL" def __init__(self, url=None, types=[u'front'], comment='', - data=None, mimetype="image/jpeg"): + data=None): if url is not None: self.parse_url(url) else: @@ -110,7 +111,7 @@ class CoverArtImage: self.comment = comment self.datahash = None if data is not None: - self.set_data(data, mimetype=mimetype) + self.set_data(data) def parse_url(self, url): self.url = QUrl(url) @@ -155,16 +156,15 @@ class CoverArtImage: def __str__(self): return unicode(self).encode('utf-8') - def set_data(self, data, mimetype="image/jpeg", filename=None): + def set_data(self, data, filename=None): """Store image data in a file, if data already exists in such file it will be re-used and no file write occurs A reference counter is handling case where more than one cover art image are using the same data. """ - self.datalength = len(data) - self.extension = mime.get_extension(mime, ".jpg") + (self.width, self.height, self.mimetype, self.extension, + self.datalength) = imageinfo.identify(data) self.filename = filename - self.mimetype = mimetype m = md5() m.update(data) self.datahash = m.hexdigest() @@ -257,10 +257,9 @@ class CaaCoverArtImage(CoverArtImage): class TagCoverArtImage(CoverArtImage): def __init__(self, file, tag=None, types=[u'front'], is_front=True, - support_types=False, comment='', data=None, - mimetype='image/jpeg'): + support_types=False, comment='', data=None): CoverArtImage.__init__(self, url=None, types=types, comment=comment, - data=data, mimetype=mimetype) + data=data) self.sourcefile = file self.tag = tag self.is_front = is_front diff --git a/picard/formats/apev2.py b/picard/formats/apev2.py index 188087ac0..c7ad7dc63 100644 --- a/picard/formats/apev2.py +++ b/picard/formats/apev2.py @@ -27,7 +27,7 @@ from picard import config, log from picard.coverartimage import TagCoverArtImage from picard.file import File from picard.metadata import Metadata, save_this_image_to_tags -from picard.util import encode_filename, sanitize_date, mimetype +from picard.util import encode_filename, sanitize_date, mimetype, imageinfo from os.path import isfile @@ -62,17 +62,19 @@ class APEv2File(File): for origname, values in file.tags.items(): if origname.lower().startswith("cover art") and values.kind == mutagen.apev2.BINARY: if '\0' in values.value: - descr, data = values.value.split('\0', 1) - mime = mimetype.get_from_data(data, descr, 'image/jpeg') - metadata.append_image( - TagCoverArtImage( - file=filename, - tag=origname, - support_types=False, - data=data, - mimetype=mime + try: + descr, data = values.value.split('\0', 1) + metadata.append_image( + TagCoverArtImage( + file=filename, + tag=origname, + support_types=False, + data=data, + ) ) - ) + except imageinfo.IdentifyError as e: + log.error('Cannot load image from %r: %s' % + (filename, e)) # skip EXTERNAL and BINARY values if values.kind != mutagen.apev2.TEXT: @@ -160,7 +162,7 @@ class APEv2File(File): if not save_this_image_to_tags(image): continue cover_filename = 'Cover Art (Front)' - cover_filename += mimetype.get_extension(image.mimetype, '.jpg') + cover_filename += image.extension tags['Cover Art (Front)'] = mutagen.apev2.APEValue(cover_filename + '\0' + image.data, mutagen.apev2.BINARY) break # can't save more than one item with the same name # (mp3tags does this, but it's against the specs) diff --git a/picard/formats/asf.py b/picard/formats/asf.py index 1747f341d..432774061 100644 --- a/picard/formats/asf.py +++ b/picard/formats/asf.py @@ -21,7 +21,7 @@ from picard import config, log from picard.coverartimage import TagCoverArtImage from picard.file import File from picard.formats.id3 import types_and_front, image_type_as_id3_num -from picard.util import encode_filename +from picard.util import encode_filename, imageinfo from picard.metadata import Metadata, save_this_image_to_tags from mutagen.asf import ASF, ASFByteArrayAttribute import struct @@ -143,18 +143,21 @@ class ASFFile(File): for image in values: (mime, data, type, description) = unpack_image(image.value) types, is_front = types_and_front(type) - metadata.append_image( - TagCoverArtImage( - file=filename, - tag=name, - types=types, - is_front=is_front, - comment=description, - support_types=True, - data=data, - mimetype=mime + try: + metadata.append_image( + TagCoverArtImage( + file=filename, + tag=name, + types=types, + is_front=is_front, + comment=description, + support_types=True, + data=data, + ) ) - ) + except imageinfo.IdentifyError as e: + log.error('Cannot load image from %r: %s' % + (filename, e)) continue elif name not in self.__RTRANS: continue diff --git a/picard/formats/id3.py b/picard/formats/id3.py index e70c1561d..62c144940 100644 --- a/picard/formats/id3.py +++ b/picard/formats/id3.py @@ -263,18 +263,20 @@ class ID3File(File): log.error("Invalid %s value '%s' dropped in %r", frameid, frame.text[0], filename) elif frameid == 'APIC': types, is_front = types_and_front(frame.type) - metadata.append_image( - TagCoverArtImage( - file=filename, - tag=frameid, - types=types, - is_front=is_front, - comment=frame.desc, - support_types=True, - data=frame.data, - mimetype=frame.mime + try: + metadata.append_image( + TagCoverArtImage( + file=filename, + tag=frameid, + types=types, + is_front=is_front, + comment=frame.desc, + support_types=True, + data=frame.data, + ) ) - ) + except imageinfo.IdentifyError as e: + log.error('Cannot load image from %r: %s' % (filename, e)) elif frameid == 'POPM': # Rating in ID3 ranges from 0 to 255, normalize this to the range 0 to 5 if frame.email == config.setting['rating_user_email']: diff --git a/picard/formats/mp4.py b/picard/formats/mp4.py index 77ff2202f..6a6f3643f 100644 --- a/picard/formats/mp4.py +++ b/picard/formats/mp4.py @@ -141,21 +141,20 @@ class MP4File(File): metadata["totaldiscs"] = str(values[0][1]) elif name == "covr": for value in values: - if value.imageformat == value.FORMAT_JPEG: - mime = "image/jpeg" - elif value.imageformat == value.FORMAT_PNG: - mime = "image/png" - else: + if value.imageformat not in (value.FORMAT_JPEG, + value.FORMAT_PNG): continue - metadata.append_image( - TagCoverArtImage( - file=filename, - tag=name, - support_types=False, - data=value, - mimetype=mime + try: + metadata.append_image( + TagCoverArtImage( + file=filename, + tag=name, + support_types=False, + data=value, + ) ) - ) + except imageinfo.IdentifyError as e: + log.error('Cannot load image from %r: %s' % (filename, e)) self._info(metadata, file) return metadata @@ -206,10 +205,9 @@ class MP4File(File): for image in metadata.images: if not save_this_image_to_tags(image): continue - mime = image.mimetype - if mime == "image/jpeg": + if image.mimetype == "image/jpeg": covr.append(MP4Cover(image.data, MP4Cover.FORMAT_JPEG)) - elif mime == "image/png": + elif image.mimetype == "image/png": covr.append(MP4Cover(image.data, MP4Cover.FORMAT_PNG)) if covr: file.tags["covr"] = covr diff --git a/picard/formats/vorbis.py b/picard/formats/vorbis.py index 1aff8aa4e..56e9d8e17 100644 --- a/picard/formats/vorbis.py +++ b/picard/formats/vorbis.py @@ -98,18 +98,20 @@ class VCommentFile(File): elif name == "metadata_block_picture": image = mutagen.flac.Picture(base64.standard_b64decode(value)) types, is_front = types_and_front(image.type) - metadata.append_image( - TagCoverArtImage( - file=filename, - tag=name, - types=types, - is_front=is_front, - comment=image.desc, - support_types=True, - data=image.data, - mimetype=image.mime + try: + metadata.append_image( + TagCoverArtImage( + file=filename, + tag=name, + types=types, + is_front=is_front, + comment=image.desc, + support_types=True, + data=image.data, + ) ) - ) + except imageinfo.IdentifyError as e: + log.error('Cannot load image from %r: %s' % (filename, e)) continue elif name in self.__translate: name = self.__translate[name] @@ -117,31 +119,36 @@ class VCommentFile(File): if self._File == mutagen.flac.FLAC: for image in file.pictures: types, is_front = types_and_front(image.type) - coverartimage = TagCoverArtImage( - file=filename, - tag='FLAC/PICTURE', - types=types, - is_front=is_front, - comment=image.desc, - support_types=True, - data=image.data, - mimetype=image.mime - ) - metadata.append_image(coverartimage) + try: + metadata.append_image( + TagCoverArtImage( + file=filename, + tag='FLAC/PICTURE', + types=types, + is_front=is_front, + comment=image.desc, + support_types=True, + data=image.data, + ) + ) + except imageinfo.IdentifyError as e: + log.error('Cannot load image from %r: %s' % (filename, e)) + # Read the unofficial COVERART tags, for backward compatibillity only if not "metadata_block_picture" in file.tags: try: for index, data in enumerate(file["COVERART"]): - mime = file["COVERARTMIME"][index] - data = base64.standard_b64decode(data) - coverartimage = TagCoverArtImage( - file=filename, - tag='COVERART', - support_types=False, - data=data, - mimetype=mime - ) - metadata.append_image(coverartimage) + try: + metadata.append_image( + TagCoverArtImage( + file=filename, + tag='COVERART', + support_types=False, + data=base64.standard_b64decode(data) + ) + ) + except imageinfo.IdentifyError as e: + log.error('Cannot load image from %r: %s' % (filename, e)) except KeyError: pass self._info(metadata, file) diff --git a/picard/ui/coverartbox.py b/picard/ui/coverartbox.py index dba4f42ff..571699fdc 100644 --- a/picard/ui/coverartbox.py +++ b/picard/ui/coverartbox.py @@ -25,7 +25,7 @@ from picard.album import Album from picard.coverartimage import CoverArtImage from picard.track import Track from picard.file import File -from picard.util import webbrowser2, encode_filename +from picard.util import webbrowser2, encode_filename, imageinfo class ActiveLabel(QtGui.QLabel): @@ -184,16 +184,17 @@ class CoverArtBox(QtGui.QGroupBox): log.warning("Can't load image with MIME-Type %s", mime) def load_remote_image(self, url, mime, data): - pixmap = QtGui.QPixmap() - if not pixmap.loadFromData(data): - log.warning("Can't load image") + try: + coverartimage = CoverArtImage( + url=url.toString(), + data=data + ) + except imageinfo.IdentifyError as e: + log.warning("Can't load image: %s" % unicode(e)) return + pixmap = QtGui.QPixmap() + pixmap.loadFromData(data) self.__set_data([mime, data], pixmap=pixmap) - coverartimage = CoverArtImage( - url=url.toString(), - data=data, - mimetype=mime - ) if isinstance(self.item, Album): album = self.item album.metadata.append_image(coverartimage) diff --git a/test/test_formats.py b/test/test_formats.py index 5d8ec43ba..01039aed4 100644 --- a/test/test_formats.py +++ b/test/test_formats.py @@ -540,8 +540,7 @@ class TestCoverArt(unittest.TestCase): imgdata2 = imgdata + 'xxx' # set data once coverartimage = CoverArtImage( - data=imgdata2, - mimetype=tests[t]['mime'] + data=imgdata2 ) tmp_file = coverartimage.tempfile_filename tmp_files.append(tmp_file) @@ -551,7 +550,7 @@ class TestCoverArt(unittest.TestCase): self.assertEqual(coverartimage.data, imgdata2) # set data again, with another payload - coverartimage.set_data(imgdata, tests[t]['mime']) + coverartimage.set_data(imgdata) tmp_file = coverartimage.tempfile_filename tmp_files.append(tmp_file) @@ -601,8 +600,7 @@ class TestCoverArt(unittest.TestCase): imgdata = tests[t]['data'] metadata.append_image( CoverArtImage( - data=imgdata, - mimetype=tests[t]['mime'] + data=imgdata ) ) f._save(self.filename, metadata) From caac63262f0c72cf60afb5f2d24ffd7a4a550483 Mon Sep 17 00:00:00 2001 From: Laurent Monin Date: Thu, 15 May 2014 16:09:27 +0200 Subject: [PATCH 150/212] Remove now unused util.mimetype --- picard/coverart.py | 2 +- picard/coverartimage.py | 1 - picard/file.py | 1 - picard/formats/apev2.py | 2 +- picard/metadata.py | 1 - picard/util/mimetype.py | 56 ----------------------------------------- 6 files changed, 2 insertions(+), 61 deletions(-) delete mode 100644 picard/util/mimetype.py diff --git a/picard/coverart.py b/picard/coverart.py index b5811f279..366391187 100644 --- a/picard/coverart.py +++ b/picard/coverart.py @@ -27,7 +27,7 @@ import re import traceback from functools import partial from picard import config, log -from picard.util import mimetype, parse_amazon_url, imageinfo +from picard.util import parse_amazon_url, imageinfo from picard.const import CAA_HOST, CAA_PORT from picard.coverartimage import CoverArtImage, CaaCoverArtImage from PyQt4.QtCore import QUrl, QObject diff --git a/picard/coverartimage.py b/picard/coverartimage.py index deb612b1c..f0d6c17af 100644 --- a/picard/coverartimage.py +++ b/picard/coverartimage.py @@ -35,7 +35,6 @@ from PyQt4.QtCore import QUrl, QObject, QMutex from picard import config, log from picard.util import ( encode_filename, - mimetype as mime, replace_win32_incompat, imageinfo ) diff --git a/picard/file.py b/picard/file.py index fcdeec7f6..777a48688 100644 --- a/picard/file.py +++ b/picard/file.py @@ -36,7 +36,6 @@ from picard.util import ( decode_filename, encode_filename, format_time, - mimetype, pathcmp, replace_win32_incompat, sanitize_filename, diff --git a/picard/formats/apev2.py b/picard/formats/apev2.py index c7ad7dc63..e10d97474 100644 --- a/picard/formats/apev2.py +++ b/picard/formats/apev2.py @@ -27,7 +27,7 @@ from picard import config, log from picard.coverartimage import TagCoverArtImage from picard.file import File from picard.metadata import Metadata, save_this_image_to_tags -from picard.util import encode_filename, sanitize_date, mimetype, imageinfo +from picard.util import encode_filename, sanitize_date, imageinfo from os.path import isfile diff --git a/picard/metadata.py b/picard/metadata.py index f370fe021..ebceb54f3 100644 --- a/picard/metadata.py +++ b/picard/metadata.py @@ -33,7 +33,6 @@ from picard.similarity import similarity2 from picard.util import ( encode_filename, linear_combination_of_weights, - mimetype as mime, replace_win32_incompat, ) from picard.util.textencoding import ( diff --git a/picard/util/mimetype.py b/picard/util/mimetype.py deleted file mode 100644 index a6abe3d52..000000000 --- a/picard/util/mimetype.py +++ /dev/null @@ -1,56 +0,0 @@ -# -*- coding: utf-8 -*- -# -# Picard, the next-generation MusicBrainz tagger -# Copyright (C) 2009 Philipp Wolfer -# -# This program is free software; you can redistribute it and/or -# modify it under the terms of the GNU General Public License -# as published by the Free Software Foundation; either version 2 -# of the License, or (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - -import os - -MIME_TYPE_EXTENSION_MAP = { - 'image/jpeg': '.jpg', - 'image/png': '.png', - 'image/gif': '.gif', - 'image/tiff': '.tiff', -} - -EXTENSION_MIME_TYPE_MAP = dict([(b, a) for a, b in MIME_TYPE_EXTENSION_MAP.items()]) - - -def get_from_data(data, filename=None, default=None): - """Tries to determine the mime type from the given data.""" - if data.startswith('\xff\xd8\xff'): - return 'image/jpeg' - elif data.startswith('\x89PNG\x0d\x0a\x1a\x0a'): - return 'image/png' - elif data.startswith('GIF87a') or data.startswith('GIF89a'): - return 'image/gif' - elif data.startswith('MM\x00*') or data.startswith('II*\x00'): - return 'image/tiff' - elif filename: - return get_from_filename(filename, default) - else: - return default - - -def get_from_filename(filename, default=None): - """Tries to determine the mime type from the given filename.""" - name, ext = os.path.splitext(os.path.basename(filename)) - return EXTENSION_MIME_TYPE_MAP.get(ext, default) - - -def get_extension(mimetype, default=None): - """Returns the file extension for a given mime type.""" - return MIME_TYPE_EXTENSION_MAP.get(mimetype, default) From d70b1a518a02f9f0de12f91d35b0c09ddb9442e9 Mon Sep 17 00:00:00 2001 From: Laurent Monin Date: Thu, 15 May 2014 17:28:11 +0200 Subject: [PATCH 151/212] support_types=False is the default, unneeded --- picard/formats/apev2.py | 1 - picard/formats/mp4.py | 1 - picard/formats/vorbis.py | 1 - 3 files changed, 3 deletions(-) diff --git a/picard/formats/apev2.py b/picard/formats/apev2.py index e10d97474..369116504 100644 --- a/picard/formats/apev2.py +++ b/picard/formats/apev2.py @@ -68,7 +68,6 @@ class APEv2File(File): TagCoverArtImage( file=filename, tag=origname, - support_types=False, data=data, ) ) diff --git a/picard/formats/mp4.py b/picard/formats/mp4.py index 6a6f3643f..7bada5edd 100644 --- a/picard/formats/mp4.py +++ b/picard/formats/mp4.py @@ -149,7 +149,6 @@ class MP4File(File): TagCoverArtImage( file=filename, tag=name, - support_types=False, data=value, ) ) diff --git a/picard/formats/vorbis.py b/picard/formats/vorbis.py index 56e9d8e17..79a478a18 100644 --- a/picard/formats/vorbis.py +++ b/picard/formats/vorbis.py @@ -143,7 +143,6 @@ class VCommentFile(File): TagCoverArtImage( file=filename, tag='COVERART', - support_types=False, data=base64.standard_b64decode(data) ) ) From fe62ec7c1e24d84710e7d6c159c35c7478898668 Mon Sep 17 00:00:00 2001 From: Laurent Monin Date: Fri, 16 May 2014 15:40:23 +0200 Subject: [PATCH 152/212] imageinfo.IdentifyError -> imageinfo.IdentificationError --- picard/coverart.py | 2 +- picard/formats/apev2.py | 2 +- picard/formats/asf.py | 2 +- picard/formats/id3.py | 2 +- picard/formats/mp4.py | 2 +- picard/formats/vorbis.py | 6 +++--- picard/ui/coverartbox.py | 2 +- picard/util/imageinfo.py | 8 ++++---- test/test_utils.py | 6 +++--- 9 files changed, 16 insertions(+), 16 deletions(-) diff --git a/picard/coverart.py b/picard/coverart.py index 366391187..f4be56c80 100644 --- a/picard/coverart.py +++ b/picard/coverart.py @@ -218,7 +218,7 @@ class CoverArt: # It doesn't make sense to store/download more images if we can't # save them in the temporary folder, abort. return - except imageinfo.IdentifyError as e: + except imageinfo.IdentificationError as e: self.album.error_append(unicode(e)) self._download_next_in_queue() diff --git a/picard/formats/apev2.py b/picard/formats/apev2.py index 369116504..a354539aa 100644 --- a/picard/formats/apev2.py +++ b/picard/formats/apev2.py @@ -71,7 +71,7 @@ class APEv2File(File): data=data, ) ) - except imageinfo.IdentifyError as e: + except imageinfo.IdentificationError as e: log.error('Cannot load image from %r: %s' % (filename, e)) diff --git a/picard/formats/asf.py b/picard/formats/asf.py index 432774061..20840cde4 100644 --- a/picard/formats/asf.py +++ b/picard/formats/asf.py @@ -155,7 +155,7 @@ class ASFFile(File): data=data, ) ) - except imageinfo.IdentifyError as e: + except imageinfo.IdentificationError as e: log.error('Cannot load image from %r: %s' % (filename, e)) continue diff --git a/picard/formats/id3.py b/picard/formats/id3.py index 62c144940..a1afb4b65 100644 --- a/picard/formats/id3.py +++ b/picard/formats/id3.py @@ -275,7 +275,7 @@ class ID3File(File): data=frame.data, ) ) - except imageinfo.IdentifyError as e: + except imageinfo.IdentificationError as e: log.error('Cannot load image from %r: %s' % (filename, e)) elif frameid == 'POPM': # Rating in ID3 ranges from 0 to 255, normalize this to the range 0 to 5 diff --git a/picard/formats/mp4.py b/picard/formats/mp4.py index 7bada5edd..07be35a43 100644 --- a/picard/formats/mp4.py +++ b/picard/formats/mp4.py @@ -152,7 +152,7 @@ class MP4File(File): data=value, ) ) - except imageinfo.IdentifyError as e: + except imageinfo.IdentificationError as e: log.error('Cannot load image from %r: %s' % (filename, e)) self._info(metadata, file) diff --git a/picard/formats/vorbis.py b/picard/formats/vorbis.py index 79a478a18..b685fb3b1 100644 --- a/picard/formats/vorbis.py +++ b/picard/formats/vorbis.py @@ -110,7 +110,7 @@ class VCommentFile(File): data=image.data, ) ) - except imageinfo.IdentifyError as e: + except imageinfo.IdentificationError as e: log.error('Cannot load image from %r: %s' % (filename, e)) continue elif name in self.__translate: @@ -131,7 +131,7 @@ class VCommentFile(File): data=image.data, ) ) - except imageinfo.IdentifyError as e: + except imageinfo.IdentificationError as e: log.error('Cannot load image from %r: %s' % (filename, e)) # Read the unofficial COVERART tags, for backward compatibillity only @@ -146,7 +146,7 @@ class VCommentFile(File): data=base64.standard_b64decode(data) ) ) - except imageinfo.IdentifyError as e: + except imageinfo.IdentificationError as e: log.error('Cannot load image from %r: %s' % (filename, e)) except KeyError: pass diff --git a/picard/ui/coverartbox.py b/picard/ui/coverartbox.py index 571699fdc..4e0a82a69 100644 --- a/picard/ui/coverartbox.py +++ b/picard/ui/coverartbox.py @@ -189,7 +189,7 @@ class CoverArtBox(QtGui.QGroupBox): url=url.toString(), data=data ) - except imageinfo.IdentifyError as e: + except imageinfo.IdentificationError as e: log.warning("Can't load image: %s" % unicode(e)) return pixmap = QtGui.QPixmap() diff --git a/picard/util/imageinfo.py b/picard/util/imageinfo.py index 18a1cdb4d..3ce2f1dfd 100644 --- a/picard/util/imageinfo.py +++ b/picard/util/imageinfo.py @@ -21,7 +21,7 @@ import StringIO import struct -class IdentifyError(Exception): +class IdentificationError(Exception): pass @@ -33,14 +33,14 @@ def identify(data): - mimetype - extension - data length - It will raise 'IdentifyError' if: + It will raise 'IdentificationError' if: - not enough data (< 16 bytes) - format isn't recognized """ datalen = len(data) if datalen < 16: - raise IdentifyError('Not enough data') + raise IdentificationError('Not enough data') w = -1 h = -1 @@ -90,7 +90,7 @@ def identify(data): pass else: - raise IdentifyError('Unrecognized image data') + raise IdentificationError('Unrecognized image data') assert(w != -1) assert(h != -1) assert(mime != '') diff --git a/test/test_utils.py b/test/test_utils.py index 9f2560ff4..c9a5e4433 100644 --- a/test/test_utils.py +++ b/test/test_utils.py @@ -202,11 +202,11 @@ class ImageInfoTest(unittest.TestCase): ) def test_not_enough_data(self): - self.assertRaises(imageinfo.IdentifyError, imageinfo.identify, "x") + self.assertRaises(imageinfo.IdentificationError, imageinfo.identify, "x") def test_invalid_data(self): - self.assertRaises(imageinfo.IdentifyError, imageinfo.identify, "x" * 20) + self.assertRaises(imageinfo.IdentificationError, imageinfo.identify, "x" * 20) def test_invalid_png_data(self): data = '\x89PNG\x0D\x0A\x1A\x0A' + "x" * 20 - self.assertRaises(imageinfo.IdentifyError, imageinfo.identify, data) + self.assertRaises(imageinfo.IdentificationError, imageinfo.identify, data) From dc6e150d452400e2b0e7675b26e9bc985fef1820 Mon Sep 17 00:00:00 2001 From: Laurent Monin Date: Fri, 16 May 2014 15:47:24 +0200 Subject: [PATCH 153/212] imageinfo: differentiate each failure case Add exceptions (subclassing IdentificationError): - NotEnoughData - UnrecognizedFormat Add corresponding test code. --- picard/util/imageinfo.py | 12 ++++++++++-- test/test_utils.py | 3 +++ 2 files changed, 13 insertions(+), 2 deletions(-) diff --git a/picard/util/imageinfo.py b/picard/util/imageinfo.py index 3ce2f1dfd..8d0c3998d 100644 --- a/picard/util/imageinfo.py +++ b/picard/util/imageinfo.py @@ -25,6 +25,14 @@ class IdentificationError(Exception): pass +class NotEnoughData(IdentificationError): + pass + + +class UnrecognizedFormat(IdentificationError): + pass + + def identify(data): """Parse data for jpg, gif, png metadata If successfully recognized, it returns a tuple with: @@ -40,7 +48,7 @@ def identify(data): datalen = len(data) if datalen < 16: - raise IdentificationError('Not enough data') + raise NotEnoughData('Not enough data') w = -1 h = -1 @@ -90,7 +98,7 @@ def identify(data): pass else: - raise IdentificationError('Unrecognized image data') + raise UnrecognizedFormat('Unrecognized image data') assert(w != -1) assert(h != -1) assert(mime != '') diff --git a/test/test_utils.py b/test/test_utils.py index c9a5e4433..0493b1292 100644 --- a/test/test_utils.py +++ b/test/test_utils.py @@ -203,10 +203,13 @@ class ImageInfoTest(unittest.TestCase): def test_not_enough_data(self): self.assertRaises(imageinfo.IdentificationError, imageinfo.identify, "x") + self.assertRaises(imageinfo.NotEnoughData, imageinfo.identify, "x") def test_invalid_data(self): self.assertRaises(imageinfo.IdentificationError, imageinfo.identify, "x" * 20) + self.assertRaises(imageinfo.UnrecognizedFormat, imageinfo.identify, "x" * 20) def test_invalid_png_data(self): data = '\x89PNG\x0D\x0A\x1A\x0A' + "x" * 20 self.assertRaises(imageinfo.IdentificationError, imageinfo.identify, data) + self.assertRaises(imageinfo.UnrecognizedFormat, imageinfo.identify, data) From 332ae6757ee420b55f3fb98712a284b85045078a Mon Sep 17 00:00:00 2001 From: Laurent Monin Date: Fri, 16 May 2014 15:55:02 +0200 Subject: [PATCH 154/212] imageinfo: replace assert() with exception raise Exception UnexpectedError may be raised if for some reason data parsing fails. --- picard/util/imageinfo.py | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/picard/util/imageinfo.py b/picard/util/imageinfo.py index 8d0c3998d..59c1966ee 100644 --- a/picard/util/imageinfo.py +++ b/picard/util/imageinfo.py @@ -33,6 +33,10 @@ class UnrecognizedFormat(IdentificationError): pass +class UnexpectedError(IdentificationError): + pass + + def identify(data): """Parse data for jpg, gif, png metadata If successfully recognized, it returns a tuple with: @@ -99,8 +103,10 @@ def identify(data): else: raise UnrecognizedFormat('Unrecognized image data') - assert(w != -1) - assert(h != -1) - assert(mime != '') - assert(extension != '') + + # this shouldn't happen + if w == -1 or h == -1 or mime == '' or extension == '': + raise UnexpectedError("Unexpected error: w=%d h=%d mime=%s extension=%s" + % (w, h, mime, extension)) + return (int(w), int(h), mime, extension, datalen) From aadd248087405a7b66ba7475a95dc764e20692e3 Mon Sep 17 00:00:00 2001 From: Laurent Monin Date: Fri, 16 May 2014 15:58:58 +0200 Subject: [PATCH 155/212] CoverArtImage.maintype -> @property --- picard/coverartimage.py | 3 ++- picard/formats/asf.py | 2 +- picard/formats/id3.py | 2 +- picard/formats/vorbis.py | 2 +- 4 files changed, 5 insertions(+), 4 deletions(-) diff --git a/picard/coverartimage.py b/picard/coverartimage.py index f0d6c17af..0819c264c 100644 --- a/picard/coverartimage.py +++ b/picard/coverartimage.py @@ -169,6 +169,7 @@ class CoverArtImage: self.datahash = m.hexdigest() store_data_for_hash(self.datahash, data, suffix=self.extension) + @property def maintype(self): return self.types[0] @@ -201,7 +202,7 @@ class CoverArtImage: log.debug("Using the custom file name %s", self.filename) filename = self.filename elif config.setting["caa_image_type_as_filename"]: - filename = self.maintype() + filename = self.maintype log.debug("Make filename from types: %r -> %r", self.types, filename) else: log.debug("Using default file name %s", diff --git a/picard/formats/asf.py b/picard/formats/asf.py index 20840cde4..473ba061b 100644 --- a/picard/formats/asf.py +++ b/picard/formats/asf.py @@ -183,7 +183,7 @@ class ASFFile(File): if not save_this_image_to_tags(image): continue tag_data = pack_image(image.mimetype, image.data, - image_type_as_id3_num(image.maintype()), + image_type_as_id3_num(image.maintype), image.comment) cover.append(ASFByteArrayAttribute(tag_data)) if cover: diff --git a/picard/formats/id3.py b/picard/formats/id3.py index a1afb4b65..6bea596e9 100644 --- a/picard/formats/id3.py +++ b/picard/formats/id3.py @@ -342,7 +342,7 @@ class ID3File(File): counters[desc] += 1 tags.add(id3.APIC(encoding=0, mime=image.mimetype, - type=image_type_as_id3_num(image.maintype()), + type=image_type_as_id3_num(image.maintype), desc=desctag, data=image.data)) diff --git a/picard/formats/vorbis.py b/picard/formats/vorbis.py index b685fb3b1..9087939e7 100644 --- a/picard/formats/vorbis.py +++ b/picard/formats/vorbis.py @@ -207,7 +207,7 @@ class VCommentFile(File): picture.data = image.data picture.mime = image.mimetype picture.desc = image.comment - picture.type = image_type_as_id3_num(image.maintype()) + picture.type = image_type_as_id3_num(image.maintype) if self._File == mutagen.flac.FLAC: file.add_picture(picture) else: From fc59e6d40e4f77d02dffaa04f613db0a9008b85b Mon Sep 17 00:00:00 2001 From: Laurent Monin Date: Fri, 16 May 2014 16:00:23 +0200 Subject: [PATCH 156/212] CoverArtImage.set_data(): fix up comment No ref counter anymore. --- picard/coverartimage.py | 2 -- 1 file changed, 2 deletions(-) diff --git a/picard/coverartimage.py b/picard/coverartimage.py index 0819c264c..2f3d728f4 100644 --- a/picard/coverartimage.py +++ b/picard/coverartimage.py @@ -158,8 +158,6 @@ class CoverArtImage: def set_data(self, data, filename=None): """Store image data in a file, if data already exists in such file it will be re-used and no file write occurs - A reference counter is handling case where more than one - cover art image are using the same data. """ (self.width, self.height, self.mimetype, self.extension, self.datalength) = imageinfo.identify(data) From 1431e3b32daba9241ec641bbfee7de5f50ba3b7c Mon Sep 17 00:00:00 2001 From: Laurent Monin Date: Fri, 16 May 2014 16:19:24 +0200 Subject: [PATCH 157/212] Remove unused imports --- picard/coverart.py | 3 +-- picard/coverartimage.py | 6 ++---- picard/formats/id3.py | 2 +- picard/metadata.py | 15 --------------- 4 files changed, 4 insertions(+), 22 deletions(-) diff --git a/picard/coverart.py b/picard/coverart.py index f4be56c80..2556de8bd 100644 --- a/picard/coverart.py +++ b/picard/coverart.py @@ -23,14 +23,13 @@ # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. import json -import re import traceback from functools import partial from picard import config, log from picard.util import parse_amazon_url, imageinfo from picard.const import CAA_HOST, CAA_PORT from picard.coverartimage import CoverArtImage, CaaCoverArtImage -from PyQt4.QtCore import QUrl, QObject +from PyQt4.QtCore import QObject # amazon image file names are unique on all servers and constructed like # ..[SML]ZZZZZZZ.jpg diff --git a/picard/coverartimage.py b/picard/coverartimage.py index 2f3d728f4..ae4fee7f5 100644 --- a/picard/coverartimage.py +++ b/picard/coverartimage.py @@ -21,16 +21,14 @@ # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. -import os.path +import os import shutil import sys import tempfile -import traceback from collections import defaultdict from functools import partial from hashlib import md5 -from os import fdopen, unlink from PyQt4.QtCore import QUrl, QObject, QMutex from picard import config, log from picard.util import ( @@ -80,7 +78,7 @@ def store_data_for_hash(datahash, data, prefix='picard', suffix=''): return filename (fd, filename) = tempfile.mkstemp(prefix=prefix, suffix=suffix) QObject.tagger.register_cleanup(partial(delete_file_for_hash, datahash)) - with fdopen(fd, "wb") as imagefile: + with os.fdopen(fd, "wb") as imagefile: imagefile.write(data) set_filename_for_hash(datahash, filename) diff --git a/picard/formats/id3.py b/picard/formats/id3.py index 6bea596e9..076bb7545 100644 --- a/picard/formats/id3.py +++ b/picard/formats/id3.py @@ -25,7 +25,7 @@ from collections import defaultdict from mutagen import id3 from picard import config, log from picard.coverartimage import TagCoverArtImage -from picard.metadata import Metadata, save_this_image_to_tags, MULTI_VALUED_JOINER +from picard.metadata import Metadata, save_this_image_to_tags from picard.file import File from picard.formats.mutagenext import compatid3 from picard.util import encode_filename, sanitize_date diff --git a/picard/metadata.py b/picard/metadata.py index ebceb54f3..11731a110 100644 --- a/picard/metadata.py +++ b/picard/metadata.py @@ -17,27 +17,12 @@ # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, # USA. -import os.path -import shutil -import sys -import tempfile -import traceback - - -from hashlib import md5 -from os import fdopen, unlink from PyQt4.QtCore import QObject from picard import config, log from picard.plugin import PluginFunctions, PluginPriority from picard.similarity import similarity2 from picard.util import ( - encode_filename, linear_combination_of_weights, - replace_win32_incompat, -) -from picard.util.textencoding import ( - replace_non_ascii, - unaccent, ) from picard.mbxml import artist_credit_from_node From 1f9b49c656aed51e2e562d0c86610af97dea94d5 Mon Sep 17 00:00:00 2001 From: Laurent Monin Date: Fri, 16 May 2014 17:25:53 +0200 Subject: [PATCH 158/212] imageinfo.identify(): improve description about exceptions --- picard/util/imageinfo.py | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/picard/util/imageinfo.py b/picard/util/imageinfo.py index 59c1966ee..8aea38724 100644 --- a/picard/util/imageinfo.py +++ b/picard/util/imageinfo.py @@ -45,9 +45,11 @@ def identify(data): - mimetype - extension - data length - It will raise 'IdentificationError' if: - - not enough data (< 16 bytes) - - format isn't recognized + Exceptions: + - `NotEnoughData` if data has less than 16 bytes. + - `UnrecognizedFormat` if data isn't recognized as a known format. + - `UnexpectedError` if unhandled cases (shouldn't happen). + - `IdentificationError` is parent class for all preceding exceptions. """ datalen = len(data) From 0d8e1d31a348fccf11981f57b6f74754d5832213 Mon Sep 17 00:00:00 2001 From: Laurent Monin Date: Fri, 16 May 2014 17:30:04 +0200 Subject: [PATCH 159/212] Metadata.append_image(): remove useless assert() --- picard/metadata.py | 1 - 1 file changed, 1 deletion(-) diff --git a/picard/metadata.py b/picard/metadata.py index 11731a110..07e79727a 100644 --- a/picard/metadata.py +++ b/picard/metadata.py @@ -55,7 +55,6 @@ class Metadata(dict): self.length = 0 def append_image(self, coverartimage): - assert(coverartimage is not None) self.images.append(coverartimage) def remove_image(self, index): From 32b014f4b8eec41bf4a03192d4ca6e32248f3a71 Mon Sep 17 00:00:00 2001 From: Laurent Monin Date: Fri, 16 May 2014 20:32:29 +0200 Subject: [PATCH 160/212] Replace save_this_image_to_tags() with Metadata.images_to_be_saved_to_tags It simplifies code, and it fixes the code, using is_front_image() instead of is_front. --- picard/formats/apev2.py | 6 ++---- picard/formats/asf.py | 6 ++---- picard/formats/id3.py | 9 ++++----- picard/formats/mp4.py | 6 ++---- picard/formats/vorbis.py | 9 ++++----- picard/metadata.py | 12 ++++++------ 6 files changed, 20 insertions(+), 28 deletions(-) diff --git a/picard/formats/apev2.py b/picard/formats/apev2.py index a354539aa..95560994a 100644 --- a/picard/formats/apev2.py +++ b/picard/formats/apev2.py @@ -26,7 +26,7 @@ import mutagenext.tak from picard import config, log from picard.coverartimage import TagCoverArtImage from picard.file import File -from picard.metadata import Metadata, save_this_image_to_tags +from picard.metadata import Metadata from picard.util import encode_filename, sanitize_date, imageinfo from os.path import isfile @@ -157,9 +157,7 @@ class APEv2File(File): for name, values in temp.items(): tags[str(name)] = values if config.setting['save_images_to_tags']: - for image in metadata.images: - if not save_this_image_to_tags(image): - continue + for image in metadata.images_to_be_saved_to_tags: cover_filename = 'Cover Art (Front)' cover_filename += image.extension tags['Cover Art (Front)'] = mutagen.apev2.APEValue(cover_filename + '\0' + image.data, mutagen.apev2.BINARY) diff --git a/picard/formats/asf.py b/picard/formats/asf.py index 473ba061b..ee14bbb32 100644 --- a/picard/formats/asf.py +++ b/picard/formats/asf.py @@ -22,7 +22,7 @@ from picard.coverartimage import TagCoverArtImage from picard.file import File from picard.formats.id3 import types_and_front, image_type_as_id3_num from picard.util import encode_filename, imageinfo -from picard.metadata import Metadata, save_this_image_to_tags +from picard.metadata import Metadata from mutagen.asf import ASF, ASFByteArrayAttribute import struct @@ -179,9 +179,7 @@ class ASFFile(File): file.tags.clear() if config.setting['save_images_to_tags']: cover = [] - for image in metadata.images: - if not save_this_image_to_tags(image): - continue + for image in metadata.images_to_be_saved_to_tags: tag_data = pack_image(image.mimetype, image.data, image_type_as_id3_num(image.maintype), image.comment) diff --git a/picard/formats/id3.py b/picard/formats/id3.py index 076bb7545..8c2ae7c2d 100644 --- a/picard/formats/id3.py +++ b/picard/formats/id3.py @@ -25,7 +25,7 @@ from collections import defaultdict from mutagen import id3 from picard import config, log from picard.coverartimage import TagCoverArtImage -from picard.metadata import Metadata, save_this_image_to_tags +from picard.metadata import Metadata from picard.file import File from picard.formats.mutagenext import compatid3 from picard.util import encode_filename, sanitize_date @@ -301,7 +301,8 @@ class ID3File(File): if config.setting['clear_existing_tags']: tags.clear() - if config.setting['save_images_to_tags'] and metadata.images: + if (config.setting['save_images_to_tags'] + and metadata.images_to_be_saved_to_tags): tags.delall('APIC') if config.setting['write_id3v1']: @@ -330,10 +331,8 @@ class ID3File(File): # impossible to save two images, even of different types, without # any description. counters = defaultdict(lambda: 0) - for image in metadata.images: + for image in metadata.images_to_be_saved_to_tags: desc = desctag = image.comment - if not save_this_image_to_tags(image): - continue if counters[desc] > 0: if desc: desctag = "%s (%i)" % (desc, counters[desc]) diff --git a/picard/formats/mp4.py b/picard/formats/mp4.py index 07be35a43..d81fc871e 100644 --- a/picard/formats/mp4.py +++ b/picard/formats/mp4.py @@ -21,7 +21,7 @@ from mutagen.mp4 import MP4, MP4Cover from picard import config, log from picard.coverartimage import TagCoverArtImage from picard.file import File -from picard.metadata import Metadata, save_this_image_to_tags +from picard.metadata import Metadata from picard.util import encode_filename @@ -201,9 +201,7 @@ class MP4File(File): if config.setting['save_images_to_tags']: covr = [] - for image in metadata.images: - if not save_this_image_to_tags(image): - continue + for image in metadata.images_to_be_saved_to_tags: if image.mimetype == "image/jpeg": covr.append(MP4Cover(image.data, MP4Cover.FORMAT_JPEG)) elif image.mimetype == "image/png": diff --git a/picard/formats/vorbis.py b/picard/formats/vorbis.py index 9087939e7..da5fd54ff 100644 --- a/picard/formats/vorbis.py +++ b/picard/formats/vorbis.py @@ -34,7 +34,7 @@ from picard import config, log from picard.coverartimage import TagCoverArtImage from picard.file import File from picard.formats.id3 import types_and_front, image_type_as_id3_num -from picard.metadata import Metadata, save_this_image_to_tags +from picard.metadata import Metadata from picard.util import encode_filename, sanitize_date @@ -163,7 +163,8 @@ class VCommentFile(File): file.tags.clear() if self._File == mutagen.flac.FLAC and ( config.setting["clear_existing_tags"] or - (config.setting['save_images_to_tags'] and metadata.images)): + (config.setting['save_images_to_tags'] and + metadata.images_to_be_saved_to_tags)): file.clear_pictures() tags = {} for name, value in metadata.items(): @@ -200,9 +201,7 @@ class VCommentFile(File): tags.setdefault(u"DISCTOTAL", []).append(metadata["totaldiscs"]) if config.setting['save_images_to_tags']: - for image in metadata.images: - if not save_this_image_to_tags(image): - continue + for image in metadata.images_to_be_saved_to_tags: picture = mutagen.flac.Picture() picture.data = image.data picture.mime = image.mimetype diff --git a/picard/metadata.py b/picard/metadata.py index 07e79727a..95e441516 100644 --- a/picard/metadata.py +++ b/picard/metadata.py @@ -29,12 +29,6 @@ from picard.mbxml import artist_credit_from_node MULTI_VALUED_JOINER = '; ' -def save_this_image_to_tags(image): - if not config.setting["save_only_front_images_to_tags"]: - return True - return image.is_front - - class Metadata(dict): """List of metadata items with dict-like access.""" @@ -57,6 +51,12 @@ class Metadata(dict): def append_image(self, coverartimage): self.images.append(coverartimage) + @property + def images_to_be_saved_to_tags(self): + if not config.setting["save_only_front_images_to_tags"]: + return self.images + return [img for img in self.images if img.is_front_image()] + def remove_image(self, index): self.images.pop(index) From 9966908668efff60ff40553c7b6bfcd464ffaa8f Mon Sep 17 00:00:00 2001 From: Laurent Monin Date: Fri, 16 May 2014 20:37:49 +0200 Subject: [PATCH 161/212] Initialize CoverArtImage.is_front to None, and don't specify default type - is_front is used when one set "front" explicitly (CAA does it) - types is now empty by default - rely on is_front_image() to handle various cases - if support_types is False, is_front_image() will default to True --- picard/coverartimage.py | 19 +++++++++---------- 1 file changed, 9 insertions(+), 10 deletions(-) diff --git a/picard/coverartimage.py b/picard/coverartimage.py index ae4fee7f5..4225d3815 100644 --- a/picard/coverartimage.py +++ b/picard/coverartimage.py @@ -94,11 +94,10 @@ def get_data_for_hash(datahash): class CoverArtImage: support_types = False - # consider all images as front if types aren't supported by provider - is_front = True + is_front = None sourceprefix = "URL" - def __init__(self, url=None, types=[u'front'], comment='', + def __init__(self, url=None, types=[], comment='', data=None): if url is not None: self.parse_url(url) @@ -126,11 +125,11 @@ class CoverArtImage: return u"%s" % self.sourceprefix def is_front_image(self): - # CAA has a flag for "front" image, use it in priority - if self.is_front: + if self.is_front is not None: + return self.is_front + if u'front' in self.types: return True - # no caa front flag, use type instead - return u'front' in self.types + return (self.support_types == False) def __repr__(self): p = [] @@ -245,21 +244,21 @@ class CoverArtImage: class CaaCoverArtImage(CoverArtImage): - is_front = False support_types = True sourceprefix = u"CAA" class TagCoverArtImage(CoverArtImage): - def __init__(self, file, tag=None, types=[u'front'], is_front=True, + def __init__(self, file, tag=None, types=[], is_front=None, support_types=False, comment='', data=None): CoverArtImage.__init__(self, url=None, types=types, comment=comment, data=data) self.sourcefile = file self.tag = tag - self.is_front = is_front self.support_types = support_types + if is_front is not None: + self.is_front = is_front @property def source(self): From 07bcbb1abe0e5df0eeb7f1bfb36fae9c73b2bdb8 Mon Sep 17 00:00:00 2001 From: Laurent Monin Date: Fri, 16 May 2014 20:38:32 +0200 Subject: [PATCH 162/212] CoverArtImage.maintype defaults to 'front' if is_front is set or no type set --- picard/coverartimage.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/picard/coverartimage.py b/picard/coverartimage.py index 4225d3815..823aeeab2 100644 --- a/picard/coverartimage.py +++ b/picard/coverartimage.py @@ -166,6 +166,8 @@ class CoverArtImage: @property def maintype(self): + if self.is_front_image() or not self.types: + return u'front' return self.types[0] def _make_image_filename(self, filename, dirname, metadata): From e3c5e4b4c78ca6347cd26fda4f3936ba2f32ef0b Mon Sep 17 00:00:00 2001 From: Laurent Monin Date: Fri, 16 May 2014 20:38:57 +0200 Subject: [PATCH 163/212] Improve __repr__() outputs --- picard/coverartimage.py | 22 ++++++++++++++++++++-- 1 file changed, 20 insertions(+), 2 deletions(-) diff --git a/picard/coverartimage.py b/picard/coverartimage.py index 823aeeab2..436307678 100644 --- a/picard/coverartimage.py +++ b/picard/coverartimage.py @@ -135,7 +135,10 @@ class CoverArtImage: p = [] if self.url is not None: p.append("url=%r" % self.url.toString()) - p.append("types=%r" % self.types) + if self.types: + p.append("types=%r" % self.types) + if self.is_front is not None: + p.append("is_front=%r" % self.is_front) if self.comment: p.append("comment=%r" % self.comment) return "%s(%s)" % (self.__class__.__name__, ", ".join(p)) @@ -144,7 +147,8 @@ class CoverArtImage: p = [u'Image'] if self.url is not None: p.append(u"from %s" % self.url.toString()) - p.append(u"of type %s" % u','.join(self.types)) + if self.types: + p.append(u"of type %s" % u','.join(self.types)) if self.comment: p.append(u"and comment '%s'" % self.comment) return u' '.join(p) @@ -265,3 +269,17 @@ class TagCoverArtImage(CoverArtImage): @property def source(self): return u'Tag %s from %s' % (self.tag if self.tag else '', self.sourcefile) + + def __repr__(self): + p = [] + p.append('%r' % self.sourcefile) + if self.tag is not None: + p.append("tag=%r" % self.tag) + if self.types: + p.append("types=%r" % self.types) + if self.is_front is not None: + p.append("is_front=%r" % self.is_front) + p.append('support_types=%r' % self.support_types) + if self.comment: + p.append("comment=%r" % self.comment) + return "%s(%s)" % (self.__class__.__name__, ", ".join(p)) From a5827926ac0df75b7ab452d1d1b74be19319fd38 Mon Sep 17 00:00:00 2001 From: Laurent Monin Date: Fri, 16 May 2014 20:40:50 +0200 Subject: [PATCH 164/212] Improve tests for cover art types - add tests according to save_only_front_images_to_tags - some formats cannot save more than one image - some formats have no type --- test/test_formats.py | 181 +++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 176 insertions(+), 5 deletions(-) diff --git a/test/test_formats.py b/test/test_formats.py index 01039aed4..144c3750e 100644 --- a/test/test_formats.py +++ b/test/test_formats.py @@ -1,3 +1,4 @@ +# -*- coding: utf-8 -*- import os.path import picard.formats import unittest @@ -6,7 +7,7 @@ import shutil from PyQt4 import QtCore from picard import config, log -from picard.coverartimage import CoverArtImage +from picard.coverartimage import CoverArtImage, TagCoverArtImage from picard.metadata import Metadata from tempfile import mkstemp @@ -71,7 +72,7 @@ class FormatsTest(unittest.TestCase): fd, self.filename = mkstemp(suffix=os.path.splitext(self.original)[1]) os.close(fd) shutil.copy(self.original, self.filename) - config.setting = settings + config.setting = settings.copy() QtCore.QObject.tagger = FakeTagger() def tearDown(self): @@ -505,6 +506,9 @@ class WavPackTest(FormatsTest): #'show': 'Foo', } +cover_settings = { + 'save_only_front_images_to_tags': True, +} class TestCoverArt(unittest.TestCase): def setUp(self): @@ -513,15 +517,24 @@ class TestCoverArt(unittest.TestCase): with open(os.path.join('test', 'data', 'mb.png'), 'rb') as f: self.pngdata = f.read() - def _set_up(self, original): + def _common_set_up(self, extra=None): + config.setting = settings.copy() + if extra is not None: + config.setting.update(extra) + QtCore.QObject.tagger = FakeTagger() + + def _set_up(self, original, extra=None): fd, self.filename = mkstemp(suffix=os.path.splitext(original)[1]) os.close(fd) shutil.copy(original, self.filename) - QtCore.QObject.tagger = FakeTagger() + self._common_set_up(extra) + + def _common_tear_down(self): + QtCore.QObject.tagger.run_cleanup() def _tear_down(self): - QtCore.QObject.tagger.run_cleanup() os.unlink(self.filename) + self._common_tear_down() def test_coverartimage(self): tests = { @@ -579,6 +592,57 @@ class TestCoverArt(unittest.TestCase): def test_flac(self): self._test_cover_art(os.path.join('test', 'data', 'test.flac')) + + # test for multiple images added to files, some types don't accept more than + # one, and there is no guarantee that order is preserved + def test_asf_types(self): + self._test_cover_art_types(os.path.join('test', 'data', 'test.wma'), + set('abcdefg'[:])) + + def test_ape_types(self): + self._test_cover_art_types(os.path.join('test', 'data', 'test.wv'), + set('a')) + + def test_mp3_types(self): + self._test_cover_art_types(os.path.join('test', 'data', 'test.mp3'), + set('abcdefg'[:])) + + def test_mp4_types(self): + self._test_cover_art_types(os.path.join('test', 'data', 'test.m4a'), + set('abcdefg'[:])) + + def test_ogg_types(self): + self._test_cover_art_types(os.path.join('test', 'data', 'test.ogg'), + set('abcdefg'[:])) + + def test_flac_types(self): + self._test_cover_art_types(os.path.join('test', 'data', 'test.flac'), + set('abcdefg'[:])) + + def test_asf_types_only_front(self): + self._test_cover_art_types_only_front(os.path.join('test', 'data', 'test.wma'), + set('acdfg'[:])) + + def test_ape_types_only_front(self): + self._test_cover_art_types_only_front(os.path.join('test', 'data', 'test.wv'), + set('a')) + + def test_mp3_types_only_front(self): + self._test_cover_art_types_only_front(os.path.join('test', 'data', 'test.mp3'), + set('acdfg'[:])) + + def test_mp4_types_only_front(self): + self._test_cover_art_types_only_front(os.path.join('test', 'data', 'test.m4a'), + set('acdfg'[:])) + + def test_ogg_types_only_front(self): + self._test_cover_art_types_only_front(os.path.join('test', 'data', 'test.ogg'), + set('acdfg'[:])) + + def test_flac_types_only_front(self): + self._test_cover_art_types_only_front(os.path.join('test', 'data', 'test.flac'), + set('acdfg'[:])) + def _test_cover_art(self, filename): self._set_up(filename) try: @@ -612,3 +676,110 @@ class TestCoverArt(unittest.TestCase): self.assertEqual(image.data, imgdata) finally: self._tear_down() + + def _cover_metadata(self): + imgdata = self.jpegdata + metadata = Metadata() + metadata.append_image( + TagCoverArtImage( + file='a', + tag='a', + data=imgdata+'a', + support_types=True, + types=[u'front','booklet'], + ) + ) + metadata.append_image( + TagCoverArtImage( + file='b', + tag='b', + data=imgdata+'b', + support_types=True, + types=[u'back'], + ) + ) + metadata.append_image( + TagCoverArtImage( + file='c', + tag='c', + data=imgdata+'c', + support_types=True, + types=[u'front'], + ) + ) + metadata.append_image( + TagCoverArtImage( + file='d', + tag='d', + data=imgdata+'d', + ) + ) + metadata.append_image( + TagCoverArtImage( + file='e', + tag='e', + data=imgdata+'e', + is_front=False + ) + ) + metadata.append_image( + TagCoverArtImage( + file='f', + tag='f', + data=imgdata+'f', + types=[u'front'] + ) + ) + metadata.append_image( + TagCoverArtImage( + file='g', + tag='g', + data=imgdata+'g', + types=[u'back'], + is_front=True + ) + ) + return metadata + + def test_is_front_image(self): + self._common_set_up() + try: + m = self._cover_metadata() + front_images = set('acdfg'[:]) + found = set() + for img in m.images: + if img.is_front_image(): + found.add(img.tag) + self.assertEqual(front_images, found) + finally: + self._common_tear_down() + + def _test_cover_art_types(self, filename, expect): + self._set_up(filename) + try: + f = picard.formats.open(self.filename) + f._save(self.filename, self._cover_metadata()) + + f = picard.formats.open(self.filename) + loaded_metadata = f._load(self.filename) + found = set() + for n, image in enumerate(loaded_metadata.images): + found.add(image.data[-1]) + self.assertEqual(expect, found) + finally: + self._tear_down() + + def _test_cover_art_types_only_front(self, filename, expect): + self._set_up(filename, { 'save_only_front_images_to_tags': True } ) + try: + f = picard.formats.open(self.filename) + f._save(self.filename, self._cover_metadata()) + + f = picard.formats.open(self.filename) + loaded_metadata = f._load(self.filename) + found = set() + for n, image in enumerate(loaded_metadata.images): + found.add(image.data[-1]) + self.assertEqual(expect, found) + finally: + self._tear_down() From f911beac838214a1cf263292b4b77bd10fc8e745 Mon Sep 17 00:00:00 2001 From: Laurent Monin Date: Fri, 16 May 2014 20:49:49 +0200 Subject: [PATCH 165/212] Add missing import --- picard/formats/vorbis.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/picard/formats/vorbis.py b/picard/formats/vorbis.py index da5fd54ff..f5dc6e08a 100644 --- a/picard/formats/vorbis.py +++ b/picard/formats/vorbis.py @@ -35,7 +35,7 @@ from picard.coverartimage import TagCoverArtImage from picard.file import File from picard.formats.id3 import types_and_front, image_type_as_id3_num from picard.metadata import Metadata -from picard.util import encode_filename, sanitize_date +from picard.util import encode_filename, sanitize_date, imageinfo class VCommentFile(File): From 68f246a20d2f6120006ee7e250de4260d03223cd Mon Sep 17 00:00:00 2001 From: Laurent Monin Date: Fri, 16 May 2014 20:51:55 +0200 Subject: [PATCH 166/212] Use is_front_image() instead of is_front --- picard/ui/coverartbox.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/picard/ui/coverartbox.py b/picard/ui/coverartbox.py index 4e0a82a69..dbfc6f834 100644 --- a/picard/ui/coverartbox.py +++ b/picard/ui/coverartbox.py @@ -124,7 +124,7 @@ class CoverArtBox(QtGui.QGroupBox): data = None if metadata and metadata.images: for image in metadata.images: - if image.is_front: + if image.is_front_image(): data = image break else: From c37f740a30c4a0527b9fcb1f4e1dcb41bd332fa2 Mon Sep 17 00:00:00 2001 From: Laurent Monin Date: Fri, 16 May 2014 20:53:10 +0200 Subject: [PATCH 167/212] types_and_front() -> types_from_id3(), setting is_front isn't require anymore --- picard/formats/asf.py | 6 ++---- picard/formats/id3.py | 10 +++------- picard/formats/vorbis.py | 10 +++------- 3 files changed, 8 insertions(+), 18 deletions(-) diff --git a/picard/formats/asf.py b/picard/formats/asf.py index ee14bbb32..e0fbb33ea 100644 --- a/picard/formats/asf.py +++ b/picard/formats/asf.py @@ -20,7 +20,7 @@ from picard import config, log from picard.coverartimage import TagCoverArtImage from picard.file import File -from picard.formats.id3 import types_and_front, image_type_as_id3_num +from picard.formats.id3 import types_from_id3, image_type_as_id3_num from picard.util import encode_filename, imageinfo from picard.metadata import Metadata from mutagen.asf import ASF, ASFByteArrayAttribute @@ -142,14 +142,12 @@ class ASFFile(File): if name == 'WM/Picture': for image in values: (mime, data, type, description) = unpack_image(image.value) - types, is_front = types_and_front(type) try: metadata.append_image( TagCoverArtImage( file=filename, tag=name, - types=types, - is_front=is_front, + types=types_from_id3(type), comment=description, support_types=True, data=data, diff --git a/picard/formats/id3.py b/picard/formats/id3.py index 8c2ae7c2d..6815a91a1 100644 --- a/picard/formats/id3.py +++ b/picard/formats/id3.py @@ -93,10 +93,8 @@ def image_type_as_id3_num(texttype): return __ID3_IMAGE_TYPE_MAP.get(texttype, 0) -def types_and_front(id3type): - imgtype = image_type_from_id3_num(id3type) - is_front = imgtype == 'front' - return [unicode(imgtype)], is_front +def types_from_id3(id3type): + return [unicode(image_type_from_id3_num(id3type))] class ID3File(File): @@ -262,14 +260,12 @@ class ID3File(File): else: log.error("Invalid %s value '%s' dropped in %r", frameid, frame.text[0], filename) elif frameid == 'APIC': - types, is_front = types_and_front(frame.type) try: metadata.append_image( TagCoverArtImage( file=filename, tag=frameid, - types=types, - is_front=is_front, + types=types_from_id3(frame.type), comment=frame.desc, support_types=True, data=frame.data, diff --git a/picard/formats/vorbis.py b/picard/formats/vorbis.py index f5dc6e08a..02d252e43 100644 --- a/picard/formats/vorbis.py +++ b/picard/formats/vorbis.py @@ -33,7 +33,7 @@ except ImportError: from picard import config, log from picard.coverartimage import TagCoverArtImage from picard.file import File -from picard.formats.id3 import types_and_front, image_type_as_id3_num +from picard.formats.id3 import types_from_id3, image_type_as_id3_num from picard.metadata import Metadata from picard.util import encode_filename, sanitize_date, imageinfo @@ -97,14 +97,12 @@ class VCommentFile(File): name = "totaldiscs" elif name == "metadata_block_picture": image = mutagen.flac.Picture(base64.standard_b64decode(value)) - types, is_front = types_and_front(image.type) try: metadata.append_image( TagCoverArtImage( file=filename, tag=name, - types=types, - is_front=is_front, + types=types_from_id3(image.type), comment=image.desc, support_types=True, data=image.data, @@ -118,14 +116,12 @@ class VCommentFile(File): metadata.add(name, value) if self._File == mutagen.flac.FLAC: for image in file.pictures: - types, is_front = types_and_front(image.type) try: metadata.append_image( TagCoverArtImage( file=filename, tag='FLAC/PICTURE', - types=types, - is_front=is_front, + types=types_from_id3(image.type), comment=image.desc, support_types=True, data=image.data, From cc27ac0bbac67112844dd2f3608421089143fe1e Mon Sep 17 00:00:00 2001 From: Laurent Monin Date: Fri, 16 May 2014 22:37:53 +0200 Subject: [PATCH 168/212] Add helper CoverArtImage.types_as_string() to format types for display --- picard/coverart.py | 4 ++-- picard/coverartimage.py | 13 +++++++++++++ picard/ui/infodialog.py | 2 +- 3 files changed, 16 insertions(+), 3 deletions(-) diff --git a/picard/coverart.py b/picard/coverart.py index 2556de8bd..820d85507 100644 --- a/picard/coverart.py +++ b/picard/coverart.py @@ -194,7 +194,7 @@ class CoverArt: self._message( N_("Cover art of type '%(type)s' downloaded for %(albumid)s from %(host)s"), { - 'type': ','.join(coverartimage.types), + 'type': coverartimage.types_as_string(), 'albumid': self.album.id, 'host': coverartimage.host } @@ -348,7 +348,7 @@ class CoverArt: self._message( N_("Downloading cover art of type '%(type)s' for %(albumid)s from %(host)s ..."), { - 'type': ','.join(coverartimage.types), + 'type': coverartimage.types_as_string(), 'albumid': self.album.id, 'host': coverartimage.host } diff --git a/picard/coverartimage.py b/picard/coverartimage.py index 436307678..b2f05bd4d 100644 --- a/picard/coverartimage.py +++ b/picard/coverartimage.py @@ -31,6 +31,7 @@ from functools import partial from hashlib import md5 from PyQt4.QtCore import QUrl, QObject, QMutex from picard import config, log +from picard.coverartarchive import translate_caa_type from picard.util import ( encode_filename, replace_win32_incompat, @@ -248,6 +249,18 @@ class CoverArtImage: def tempfile_filename(self): return get_filename_from_hash(self.datahash) + def types_as_string(self, translate=True, separator=', '): + if self.types: + types = self.types + elif self.is_front_image(): + types = [u'front'] + else: + types = [u'-'] + if translate: + types = [translate_caa_type(type) for type in types] + return separator.join(types) + + class CaaCoverArtImage(CoverArtImage): support_types = True diff --git a/picard/ui/infodialog.py b/picard/ui/infodialog.py index 97ac89f59..4063bfb3a 100644 --- a/picard/ui/infodialog.py +++ b/picard/ui/infodialog.py @@ -68,7 +68,7 @@ class InfoDialog(PicardDialog): bytes2human.binary(size), pixmap.width(), pixmap.height(), - ','.join([translate_caa_type(t) for t in image.types]) + image.types_as_string() ) if image.comment: s += u"\n%s" % image.comment From 6d7029f955ada8aa63e82e3d52c719fbcb8b0b0b Mon Sep 17 00:00:00 2001 From: Laurent Monin Date: Fri, 16 May 2014 22:58:55 +0200 Subject: [PATCH 169/212] Return 'front' as main type if at least one type is 'front' --- picard/coverartimage.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/picard/coverartimage.py b/picard/coverartimage.py index b2f05bd4d..6729f7881 100644 --- a/picard/coverartimage.py +++ b/picard/coverartimage.py @@ -171,7 +171,7 @@ class CoverArtImage: @property def maintype(self): - if self.is_front_image() or not self.types: + if self.is_front_image() or not self.types or u'front' in self.types: return u'front' return self.types[0] From 454b11225e801678d7c1d599786e8b3fac1a09b4 Mon Sep 17 00:00:00 2001 From: Laurent Monin Date: Fri, 16 May 2014 22:59:11 +0200 Subject: [PATCH 170/212] Tidy up. --- picard/coverartimage.py | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/picard/coverartimage.py b/picard/coverartimage.py index 6729f7881..a81000579 100644 --- a/picard/coverartimage.py +++ b/picard/coverartimage.py @@ -98,8 +98,7 @@ class CoverArtImage: is_front = None sourceprefix = "URL" - def __init__(self, url=None, types=[], comment='', - data=None): + def __init__(self, url=None, types=[], comment='', data=None): if url is not None: self.parse_url(url) else: From 0d25a8d9615858d0a33f66f24acf9da7d5107112 Mon Sep 17 00:00:00 2001 From: Laurent Monin Date: Fri, 16 May 2014 23:00:58 +0200 Subject: [PATCH 171/212] TagCoverArtImage.source(): better display if no tag was set --- picard/coverartimage.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/picard/coverartimage.py b/picard/coverartimage.py index a81000579..a4f42a791 100644 --- a/picard/coverartimage.py +++ b/picard/coverartimage.py @@ -280,7 +280,10 @@ class TagCoverArtImage(CoverArtImage): @property def source(self): - return u'Tag %s from %s' % (self.tag if self.tag else '', self.sourcefile) + if self.tag: + return u'Tag %s from %s' % (self.tag, self.sourcefile) + else: + return u'File %s' % (self.sourcefile) def __repr__(self): p = [] From c14e8339c2f122c4f925a46e78296e7bd8c67301 Mon Sep 17 00:00:00 2001 From: Laurent Monin Date: Fri, 16 May 2014 23:01:11 +0200 Subject: [PATCH 172/212] Add few comments --- picard/coverartimage.py | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/picard/coverartimage.py b/picard/coverartimage.py index a4f42a791..954185a81 100644 --- a/picard/coverartimage.py +++ b/picard/coverartimage.py @@ -94,7 +94,12 @@ def get_data_for_hash(datahash): class CoverArtImage: + # Indicate if types are provided by the source, ie. CAA or certain file + # formats may have types associated with cover art, but some other sources + # don't provide such information support_types = False + # `is_front` has to be explicitely set, it is used to handle CAA is_front + # indicator is_front = None sourceprefix = "URL" @@ -125,6 +130,13 @@ class CoverArtImage: return u"%s" % self.sourceprefix def is_front_image(self): + """Indicates if image is considered as a 'front' image. + It depends on few things: + - if `is_front` was set, it is used over anything else + - if `types` was set, search for 'front' in it + - if `support_types` is False, default to True for any image + - if `support_types` is True, default to False for any image + """ if self.is_front is not None: return self.is_front if u'front' in self.types: @@ -170,8 +182,14 @@ class CoverArtImage: @property def maintype(self): + """Returns one type only, even for images having more than one type set. + This is mostly used when saving cover art to tags because most formats + don't support multiple types for one image. + Images coming from CAA can have multiple types (ie. 'front, booklet'). + """ if self.is_front_image() or not self.types or u'front' in self.types: return u'front' + # TODO: do something better than randomly using the first in the list return self.types[0] def _make_image_filename(self, filename, dirname, metadata): From 83e45ec77dfa42c641b68b1ca48e7ee5c95deb1a Mon Sep 17 00:00:00 2001 From: Laurent Monin Date: Fri, 16 May 2014 23:06:42 +0200 Subject: [PATCH 173/212] Minor change in test. --- test/test_formats.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/test_formats.py b/test/test_formats.py index 144c3750e..a4194c8db 100644 --- a/test/test_formats.py +++ b/test/test_formats.py @@ -686,7 +686,7 @@ class TestCoverArt(unittest.TestCase): tag='a', data=imgdata+'a', support_types=True, - types=[u'front','booklet'], + types=[u'booklet', u'front'], ) ) metadata.append_image( From f13574bb98687dbd9a39dde17055d649e48ba570 Mon Sep 17 00:00:00 2001 From: Laurent Monin Date: Mon, 19 May 2014 16:28:32 +0200 Subject: [PATCH 174/212] Remove unused CoverArtImage.filename and associated code --- picard/coverartimage.py | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/picard/coverartimage.py b/picard/coverartimage.py index 954185a81..aaef89df5 100644 --- a/picard/coverartimage.py +++ b/picard/coverartimage.py @@ -168,13 +168,12 @@ class CoverArtImage: def __str__(self): return unicode(self).encode('utf-8') - def set_data(self, data, filename=None): + def set_data(self, data): """Store image data in a file, if data already exists in such file it will be re-used and no file write occurs """ (self.width, self.height, self.mimetype, self.extension, self.datalength) = imageinfo.identify(data) - self.filename = filename m = md5() m.update(data) self.datahash = m.hexdigest() @@ -217,10 +216,7 @@ class CoverArtImage: images with that filename were already saved in `dirname`. """ assert(self.tempfile_filename is not None) - if self.filename is not None: - log.debug("Using the custom file name %s", self.filename) - filename = self.filename - elif config.setting["caa_image_type_as_filename"]: + if config.setting["caa_image_type_as_filename"]: filename = self.maintype log.debug("Make filename from types: %r -> %r", self.types, filename) else: From 1ed5af2bc78f0a2201e08fef670cca9b558c7098 Mon Sep 17 00:00:00 2001 From: Laurent Monin Date: Mon, 19 May 2014 17:03:19 +0200 Subject: [PATCH 175/212] Reduce code redundancy, introduce _next_filename() and _is_write_needed() --- picard/coverartimage.py | 32 ++++++++++++++++++++------------ 1 file changed, 20 insertions(+), 12 deletions(-) diff --git a/picard/coverartimage.py b/picard/coverartimage.py index aaef89df5..abfc27b72 100644 --- a/picard/coverartimage.py +++ b/picard/coverartimage.py @@ -227,30 +227,38 @@ class CoverArtImage: overwrite = config.setting["save_images_overwrite"] ext = self.extension - image_filename = filename - if counters[filename] > 0: - image_filename = "%s (%d)" % (filename, counters[filename]) - counters[filename] = counters[filename] + 1 + image_filename = self._next_filename(filename, counters) while os.path.exists(image_filename + ext) and not overwrite: - if os.path.getsize(image_filename + ext) == self.datalength: - log.debug("Identical file size, not saving %r", image_filename) + if not self._is_write_needed(image_filename + ext): break - image_filename = "%s (%d)" % (filename, counters[filename]) - counters[filename] = counters[filename] + 1 + image_filename = self._next_filename(filename, counters) else: new_filename = image_filename + ext # Even if overwrite is enabled we don't need to write the same # image multiple times - if (os.path.exists(new_filename) and - os.path.getsize(new_filename) == self.datalength): - log.debug("Identical file size, not saving %r", image_filename) - return + if not self._is_write_needed(new_filename): + return log.debug("Saving cover images to %r", image_filename) new_dirname = os.path.dirname(image_filename) if not os.path.isdir(new_dirname): os.makedirs(new_dirname) shutil.copyfile(self.tempfile_filename, new_filename) + def _next_filename(self, filename, counters): + if counters[filename]: + new_filename = "%s (%d)" % (filename, counters[filename]) + else: + new_filename = filename + counters[filename] += 1 + return new_filename + + def _is_write_needed(self, filename): + if (os.path.exists(filename) + and os.path.getsize(filename) == self.datalength): + log.debug("Identical file size, not saving %r", filename) + return False + return True + @property def data(self): """Reads the data from the temporary file created for this image. May From 03ff7f95016367ccece22258925705e33e2906d5 Mon Sep 17 00:00:00 2001 From: Laurent Monin Date: Mon, 19 May 2014 17:09:15 +0200 Subject: [PATCH 176/212] Cleanup debug messages --- picard/coverartimage.py | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/picard/coverartimage.py b/picard/coverartimage.py index abfc27b72..c0bb70ca9 100644 --- a/picard/coverartimage.py +++ b/picard/coverartimage.py @@ -218,11 +218,10 @@ class CoverArtImage: assert(self.tempfile_filename is not None) if config.setting["caa_image_type_as_filename"]: filename = self.maintype - log.debug("Make filename from types: %r -> %r", self.types, filename) + log.debug("Make cover filename from types: %r -> %r", self.types, filename) else: - log.debug("Using default file name %s", - config.setting["cover_image_filename"]) filename = config.setting["cover_image_filename"] + log.debug("Using default cover image filename %r", filename) filename = self._make_image_filename(filename, dirname, metadata) overwrite = config.setting["save_images_overwrite"] @@ -238,8 +237,8 @@ class CoverArtImage: # image multiple times if not self._is_write_needed(new_filename): return - log.debug("Saving cover images to %r", image_filename) - new_dirname = os.path.dirname(image_filename) + log.debug("Saving cover image to %r", new_filename) + new_dirname = os.path.dirname(new_filename) if not os.path.isdir(new_dirname): os.makedirs(new_dirname) shutil.copyfile(self.tempfile_filename, new_filename) From 7e96801c9391c5d0ea1d013f08d162ab1b2c0eb2 Mon Sep 17 00:00:00 2001 From: Sophist Date: Mon, 19 May 2014 18:50:22 +0100 Subject: [PATCH 177/212] Add ntpath to include list for py2app in the hope (since I don;t have a Mac and cannot test this) that this fixes the error reported in (PICARD-607)[http://tickets.musicbrainz.org/browse/PICARD-607]. --- setup.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/setup.py b/setup.py index 15c34c547..9faa61747 100755 --- a/setup.py +++ b/setup.py @@ -63,7 +63,7 @@ if do_py2app: 'iconfile' : 'picard.icns', 'frameworks' : ['libiconv.2.dylib', 'libdiscid.0.dylib'], 'resources' : ['locale'], - 'includes' : ['json', 'sip', 'PyQt4'] + [e.name for e in ext_modules], + 'includes' : ['json', 'sip', 'PyQt4', 'ntpath'] + [e.name for e in ext_modules], 'excludes' : exclude_modules + py2app_exclude_modules, 'plist' : { 'CFBundleName' : 'MusicBrainz Picard', 'CFBundleGetInfoString' : 'Picard, the next generation MusicBrainz tagger (see http://musicbrainz.org/doc/MusicBrainz_Picard)', From 9e764cb73ed8c6ef0fcd1cf22964f2a533aa2440 Mon Sep 17 00:00:00 2001 From: Laurent Monin Date: Tue, 20 May 2014 15:01:39 +0200 Subject: [PATCH 178/212] Indentation fixes. --- setup.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/setup.py b/setup.py index 9faa61747..370b36120 100755 --- a/setup.py +++ b/setup.py @@ -174,7 +174,7 @@ class picard_install_locales(Command): ('install_locales', 'install_dir'), ('force', 'force'), ('skip_build', 'skip_build'), - ) + ) def run(self): if not self.skip_build: @@ -342,7 +342,7 @@ class picard_build_ui(Command): else: for uifile, pyfile in ui_files(): if newer(uifile, pyfile): - compile_ui(uifile, pyfile) + compile_ui(uifile, pyfile) from resources import compile, makeqrc makeqrc.main() @@ -448,8 +448,8 @@ except ImportError: def _get_option_name(obj): """Returns the name of the option for specified Command object""" for name, klass in obj.distribution.cmdclass.iteritems(): - if obj.__class__ == klass: - return name + if obj.__class__ == klass: + return name raise Exception("No such command class") From c7ce593941e2be9a14d84bb8122447a0c8a2f161 Mon Sep 17 00:00:00 2001 From: Laurent Monin Date: Mon, 19 May 2014 17:46:12 +0200 Subject: [PATCH 179/212] Introduce exceptions CoverArtImageIOError and CoverArtImageIdentificationError - hide imageinfo exceptions - hide io/filesystem exceptions - those may change in future, callers don't need to know details --- picard/coverart.py | 10 ++++++---- picard/coverartimage.py | 30 +++++++++++++++++++++++++----- picard/formats/apev2.py | 6 +++--- picard/formats/asf.py | 6 +++--- picard/formats/id3.py | 4 ++-- picard/formats/mp4.py | 4 ++-- picard/formats/vorbis.py | 10 +++++----- picard/ui/coverartbox.py | 6 +++--- 8 files changed, 49 insertions(+), 27 deletions(-) diff --git a/picard/coverart.py b/picard/coverart.py index 820d85507..e5a6557c1 100644 --- a/picard/coverart.py +++ b/picard/coverart.py @@ -26,9 +26,11 @@ import json import traceback from functools import partial from picard import config, log -from picard.util import parse_amazon_url, imageinfo +from picard.util import parse_amazon_url from picard.const import CAA_HOST, CAA_PORT -from picard.coverartimage import CoverArtImage, CaaCoverArtImage +from picard.coverartimage import (CoverArtImage, CaaCoverArtImage, + CoverArtImageIOError, + CoverArtImageIdentificationError) from PyQt4.QtCore import QObject # amazon image file names are unique on all servers and constructed like @@ -211,13 +213,13 @@ class CoverArt: if not self.front_image_found: self.front_image_found = coverartimage.is_front_image() - except (IOError, OSError) as e: + except CoverArtImageIOError as e: self.album.error_append(unicode(e)) self.album._finalize_loading(error=True) # It doesn't make sense to store/download more images if we can't # save them in the temporary folder, abort. return - except imageinfo.IdentificationError as e: + except CoverArtImageIdentificationError as e: self.album.error_append(unicode(e)) self._download_next_in_queue() diff --git a/picard/coverartimage.py b/picard/coverartimage.py index c0bb70ca9..f0794890f 100644 --- a/picard/coverartimage.py +++ b/picard/coverartimage.py @@ -92,6 +92,18 @@ def get_data_for_hash(datahash): return imagefile.read() +class CoverArtImageError(Exception): + pass + + +class CoverArtImageIOError(CoverArtImageError): + pass + + +class CoverArtImageIdentificationError(CoverArtImageError): + pass + + class CoverArtImage: # Indicate if types are provided by the source, ie. CAA or certain file @@ -177,7 +189,12 @@ class CoverArtImage: m = md5() m.update(data) self.datahash = m.hexdigest() - store_data_for_hash(self.datahash, data, suffix=self.extension) + try: + store_data_for_hash(self.datahash, data, suffix=self.extension) + except imageinfo.IdentificationError as e: + raise CoverArtImageIdentificationError(e) + except (OSError, IOError) as e: + raise CoverArtImageIOError(e) @property def maintype(self): @@ -238,10 +255,13 @@ class CoverArtImage: if not self._is_write_needed(new_filename): return log.debug("Saving cover image to %r", new_filename) - new_dirname = os.path.dirname(new_filename) - if not os.path.isdir(new_dirname): - os.makedirs(new_dirname) - shutil.copyfile(self.tempfile_filename, new_filename) + try: + new_dirname = os.path.dirname(new_filename) + if not os.path.isdir(new_dirname): + os.makedirs(new_dirname) + shutil.copyfile(self.tempfile_filename, new_filename) + except (OSError, IOError) as e: + raise CoverArtImageIOError(e) def _next_filename(self, filename, counters): if counters[filename]: diff --git a/picard/formats/apev2.py b/picard/formats/apev2.py index 95560994a..9275c0da0 100644 --- a/picard/formats/apev2.py +++ b/picard/formats/apev2.py @@ -24,10 +24,10 @@ import mutagen.wavpack import mutagen.optimfrog import mutagenext.tak from picard import config, log -from picard.coverartimage import TagCoverArtImage +from picard.coverartimage import TagCoverArtImage, CoverArtImageError from picard.file import File from picard.metadata import Metadata -from picard.util import encode_filename, sanitize_date, imageinfo +from picard.util import encode_filename, sanitize_date from os.path import isfile @@ -71,7 +71,7 @@ class APEv2File(File): data=data, ) ) - except imageinfo.IdentificationError as e: + except CoverArtImageError as e: log.error('Cannot load image from %r: %s' % (filename, e)) diff --git a/picard/formats/asf.py b/picard/formats/asf.py index e0fbb33ea..073dfab5d 100644 --- a/picard/formats/asf.py +++ b/picard/formats/asf.py @@ -18,10 +18,10 @@ # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. from picard import config, log -from picard.coverartimage import TagCoverArtImage +from picard.coverartimage import TagCoverArtImage, CoverArtImageError from picard.file import File from picard.formats.id3 import types_from_id3, image_type_as_id3_num -from picard.util import encode_filename, imageinfo +from picard.util import encode_filename from picard.metadata import Metadata from mutagen.asf import ASF, ASFByteArrayAttribute import struct @@ -153,7 +153,7 @@ class ASFFile(File): data=data, ) ) - except imageinfo.IdentificationError as e: + except CoverArtImageError as e: log.error('Cannot load image from %r: %s' % (filename, e)) continue diff --git a/picard/formats/id3.py b/picard/formats/id3.py index 6815a91a1..ca03d8516 100644 --- a/picard/formats/id3.py +++ b/picard/formats/id3.py @@ -24,7 +24,7 @@ import re from collections import defaultdict from mutagen import id3 from picard import config, log -from picard.coverartimage import TagCoverArtImage +from picard.coverartimage import TagCoverArtImage, CoverArtImageError from picard.metadata import Metadata from picard.file import File from picard.formats.mutagenext import compatid3 @@ -271,7 +271,7 @@ class ID3File(File): data=frame.data, ) ) - except imageinfo.IdentificationError as e: + except CoverArtImageError as e: log.error('Cannot load image from %r: %s' % (filename, e)) elif frameid == 'POPM': # Rating in ID3 ranges from 0 to 255, normalize this to the range 0 to 5 diff --git a/picard/formats/mp4.py b/picard/formats/mp4.py index d81fc871e..26b17d57b 100644 --- a/picard/formats/mp4.py +++ b/picard/formats/mp4.py @@ -19,7 +19,7 @@ from mutagen.mp4 import MP4, MP4Cover from picard import config, log -from picard.coverartimage import TagCoverArtImage +from picard.coverartimage import TagCoverArtImage, CoverArtImageError from picard.file import File from picard.metadata import Metadata from picard.util import encode_filename @@ -152,7 +152,7 @@ class MP4File(File): data=value, ) ) - except imageinfo.IdentificationError as e: + except CoverArtImageError as e: log.error('Cannot load image from %r: %s' % (filename, e)) self._info(metadata, file) diff --git a/picard/formats/vorbis.py b/picard/formats/vorbis.py index 02d252e43..91481286e 100644 --- a/picard/formats/vorbis.py +++ b/picard/formats/vorbis.py @@ -31,11 +31,11 @@ except ImportError: OggOpus = None with_opus = False from picard import config, log -from picard.coverartimage import TagCoverArtImage +from picard.coverartimage import TagCoverArtImage, CoverArtImageError from picard.file import File from picard.formats.id3 import types_from_id3, image_type_as_id3_num from picard.metadata import Metadata -from picard.util import encode_filename, sanitize_date, imageinfo +from picard.util import encode_filename, sanitize_date class VCommentFile(File): @@ -108,7 +108,7 @@ class VCommentFile(File): data=image.data, ) ) - except imageinfo.IdentificationError as e: + except CoverArtImageError as e: log.error('Cannot load image from %r: %s' % (filename, e)) continue elif name in self.__translate: @@ -127,7 +127,7 @@ class VCommentFile(File): data=image.data, ) ) - except imageinfo.IdentificationError as e: + except CoverArtImageError as e: log.error('Cannot load image from %r: %s' % (filename, e)) # Read the unofficial COVERART tags, for backward compatibillity only @@ -142,7 +142,7 @@ class VCommentFile(File): data=base64.standard_b64decode(data) ) ) - except imageinfo.IdentificationError as e: + except CoverArtImageError as e: log.error('Cannot load image from %r: %s' % (filename, e)) except KeyError: pass diff --git a/picard/ui/coverartbox.py b/picard/ui/coverartbox.py index dbfc6f834..bbd601d11 100644 --- a/picard/ui/coverartbox.py +++ b/picard/ui/coverartbox.py @@ -22,10 +22,10 @@ from functools import partial from PyQt4 import QtCore, QtGui, QtNetwork from picard import config, log from picard.album import Album -from picard.coverartimage import CoverArtImage +from picard.coverartimage import CoverArtImage, CoverArtImageError from picard.track import Track from picard.file import File -from picard.util import webbrowser2, encode_filename, imageinfo +from picard.util import webbrowser2, encode_filename class ActiveLabel(QtGui.QLabel): @@ -189,7 +189,7 @@ class CoverArtBox(QtGui.QGroupBox): url=url.toString(), data=data ) - except imageinfo.IdentificationError as e: + except CoverArtImageError as e: log.warning("Can't load image: %s" % unicode(e)) return pixmap = QtGui.QPixmap() From 9e2a91d203cbe8fd5a7e5df04d7d3b4ed5cb22a7 Mon Sep 17 00:00:00 2001 From: Laurent Monin Date: Mon, 19 May 2014 19:50:05 +0200 Subject: [PATCH 180/212] Re-add dummy load to ensure test images are > 64kb As said in comment, size was increased to catch a bug in mutagen, so better to keep it. --- test/test_formats.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/test/test_formats.py b/test/test_formats.py index a4194c8db..6d1c86c1b 100644 --- a/test/test_formats.py +++ b/test/test_formats.py @@ -651,11 +651,11 @@ class TestCoverArt(unittest.TestCase): tests = { 'jpg': { 'mime': 'image/jpeg', - 'data': self.jpegdata + 'data': self.jpegdata + "a" * 1024 * 128 }, 'png': { 'mime': 'image/png', - 'data': self.pngdata + 'data': self.pngdata + "a" * 1024 * 128 }, } for t in tests: From a07825fd8581737b804ace1889c5a07f850c4427 Mon Sep 17 00:00:00 2001 From: Laurent Monin Date: Mon, 19 May 2014 23:20:53 +0200 Subject: [PATCH 181/212] Improve debugging messages --- picard/coverart.py | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/picard/coverart.py b/picard/coverart.py index e5a6557c1..a0596cfe4 100644 --- a/picard/coverart.py +++ b/picard/coverart.py @@ -199,9 +199,10 @@ class CoverArt: 'type': coverartimage.types_as_string(), 'albumid': self.album.id, 'host': coverartimage.host - } + }, + echo=None ) - + log.debug("Cover art image downloaded: %r" % coverartimage) try: coverartimage.set_data(data) self.metadata.append_image(coverartimage) @@ -353,8 +354,10 @@ class CoverArt: 'type': coverartimage.types_as_string(), 'albumid': self.album.id, 'host': coverartimage.host - } + }, + echo=None ) + log.debug("Downloading %r" % coverartimage) self._xmlws_download( coverartimage.host, coverartimage.port, From 2e7caa5a2c1b47a33592dbe75c81e0af768fa678 Mon Sep 17 00:00:00 2001 From: Laurent Monin Date: Mon, 19 May 2014 23:43:50 +0200 Subject: [PATCH 182/212] Fix up set_data() --- picard/coverartimage.py | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/picard/coverartimage.py b/picard/coverartimage.py index f0794890f..cfef2b436 100644 --- a/picard/coverartimage.py +++ b/picard/coverartimage.py @@ -184,17 +184,19 @@ class CoverArtImage: """Store image data in a file, if data already exists in such file it will be re-used and no file write occurs """ - (self.width, self.height, self.mimetype, self.extension, - self.datalength) = imageinfo.identify(data) - m = md5() - m.update(data) - self.datahash = m.hexdigest() + self.datahash = None try: - store_data_for_hash(self.datahash, data, suffix=self.extension) + (self.width, self.height, self.mimetype, self.extension, + self.datalength) = imageinfo.identify(data) + m = md5() + m.update(data) + datahash = m.hexdigest() + store_data_for_hash(datahash, data, suffix=self.extension) except imageinfo.IdentificationError as e: raise CoverArtImageIdentificationError(e) except (OSError, IOError) as e: raise CoverArtImageIOError(e) + self.datahash = datahash @property def maintype(self): From 7e1902fdec824cd9f4fc36f5fde8babe76b60d03 Mon Sep 17 00:00:00 2001 From: Laurent Monin Date: Mon, 19 May 2014 23:54:22 +0200 Subject: [PATCH 183/212] Output more infos about downloaded image in debug mode --- picard/coverart.py | 7 ++++++- picard/coverartimage.py | 10 ++++++++++ 2 files changed, 16 insertions(+), 1 deletion(-) diff --git a/picard/coverart.py b/picard/coverart.py index a0596cfe4..ad1d6c31e 100644 --- a/picard/coverart.py +++ b/picard/coverart.py @@ -202,9 +202,14 @@ class CoverArt: }, echo=None ) - log.debug("Cover art image downloaded: %r" % coverartimage) try: coverartimage.set_data(data) + log.debug("Cover art image downloaded: %r [%s]" % + ( + coverartimage, + coverartimage.imageinfo_as_string() + ) + ) self.metadata.append_image(coverartimage) for track in self.album._new_tracks: track.metadata.append_image(coverartimage) diff --git a/picard/coverartimage.py b/picard/coverartimage.py index cfef2b436..fdda6124a 100644 --- a/picard/coverartimage.py +++ b/picard/coverartimage.py @@ -155,6 +155,16 @@ class CoverArtImage: return True return (self.support_types == False) + def imageinfo_as_string(self): + if self.datahash is None: + return "" + return "w=%d h=%d mime=%s ext=%s datalen=%d file=%s" % (self.width, + self.height, + self.mimetype, + self.extension, + self.datalength, + get_filename_from_hash(self.datahash)) + def __repr__(self): p = [] if self.url is not None: From c0de7d95c978e16955ecea3e5ef896387f5a7600 Mon Sep 17 00:00:00 2001 From: Laurent Monin Date: Tue, 20 May 2014 14:56:38 +0200 Subject: [PATCH 184/212] PEP8 fixes --- picard/coverartimage.py | 5 ++-- picard/formats/asf.py | 2 +- picard/formats/mp4.py | 3 ++- picard/formats/vorbis.py | 6 +++-- picard/util/imageinfo.py | 6 +++-- test/test_formats.py | 49 +++++++++++++++++++++++----------------- test/test_utils.py | 18 ++++++++++----- 7 files changed, 54 insertions(+), 35 deletions(-) diff --git a/picard/coverartimage.py b/picard/coverartimage.py index fdda6124a..b8810d328 100644 --- a/picard/coverartimage.py +++ b/picard/coverartimage.py @@ -247,7 +247,8 @@ class CoverArtImage: assert(self.tempfile_filename is not None) if config.setting["caa_image_type_as_filename"]: filename = self.maintype - log.debug("Make cover filename from types: %r -> %r", self.types, filename) + log.debug("Make cover filename from types: %r -> %r", + self.types, filename) else: filename = config.setting["cover_image_filename"] log.debug("Using default cover image filename %r", filename) @@ -285,7 +286,7 @@ class CoverArtImage: def _is_write_needed(self, filename): if (os.path.exists(filename) - and os.path.getsize(filename) == self.datalength): + and os.path.getsize(filename) == self.datalength): log.debug("Identical file size, not saving %r", filename) return False return True diff --git a/picard/formats/asf.py b/picard/formats/asf.py index 073dfab5d..4d8060639 100644 --- a/picard/formats/asf.py +++ b/picard/formats/asf.py @@ -155,7 +155,7 @@ class ASFFile(File): ) except CoverArtImageError as e: log.error('Cannot load image from %r: %s' % - (filename, e)) + (filename, e)) continue elif name not in self.__RTRANS: continue diff --git a/picard/formats/mp4.py b/picard/formats/mp4.py index 26b17d57b..cd918694b 100644 --- a/picard/formats/mp4.py +++ b/picard/formats/mp4.py @@ -153,7 +153,8 @@ class MP4File(File): ) ) except CoverArtImageError as e: - log.error('Cannot load image from %r: %s' % (filename, e)) + log.error('Cannot load image from %r: %s' % + (filename, e)) self._info(metadata, file) return metadata diff --git a/picard/formats/vorbis.py b/picard/formats/vorbis.py index 91481286e..235d7417a 100644 --- a/picard/formats/vorbis.py +++ b/picard/formats/vorbis.py @@ -109,7 +109,8 @@ class VCommentFile(File): ) ) except CoverArtImageError as e: - log.error('Cannot load image from %r: %s' % (filename, e)) + log.error('Cannot load image from %r: %s' % + (filename, e)) continue elif name in self.__translate: name = self.__translate[name] @@ -143,7 +144,8 @@ class VCommentFile(File): ) ) except CoverArtImageError as e: - log.error('Cannot load image from %r: %s' % (filename, e)) + log.error('Cannot load image from %r: %s' % + (filename, e)) except KeyError: pass self._info(metadata, file) diff --git a/picard/util/imageinfo.py b/picard/util/imageinfo.py index 8aea38724..df5ad1c89 100644 --- a/picard/util/imageinfo.py +++ b/picard/util/imageinfo.py @@ -82,8 +82,10 @@ def identify(data): b = jpeg.read(1) try: while (b and ord(b) != 0xDA): # Start Of Scan (SOS) - while (ord(b) != 0xFF): b = jpeg.read(1) - while (ord(b) == 0xFF): b = jpeg.read(1) + while (ord(b) != 0xFF): + b = jpeg.read(1) + while (ord(b) == 0xFF): + b = jpeg.read(1) if ord(b) in (0xC0, 0xC1, 0xC2, 0xC5, 0xC6, 0xC7, 0xC9, 0xCA, 0xCB, 0xCD, 0xCE, 0xCF): jpeg.read(2) # parameter length (2 bytes) diff --git a/test/test_formats.py b/test/test_formats.py index 6d1c86c1b..e664ef4ba 100644 --- a/test/test_formats.py +++ b/test/test_formats.py @@ -510,7 +510,9 @@ cover_settings = { 'save_only_front_images_to_tags': True, } + class TestCoverArt(unittest.TestCase): + def setUp(self): with open(os.path.join('test', 'data', 'mb.jpg'), 'rb') as f: self.jpegdata = f.read() @@ -592,7 +594,6 @@ class TestCoverArt(unittest.TestCase): def test_flac(self): self._test_cover_art(os.path.join('test', 'data', 'test.flac')) - # test for multiple images added to files, some types don't accept more than # one, and there is no guarantee that order is preserved def test_asf_types(self): @@ -620,28 +621,34 @@ class TestCoverArt(unittest.TestCase): set('abcdefg'[:])) def test_asf_types_only_front(self): - self._test_cover_art_types_only_front(os.path.join('test', 'data', 'test.wma'), - set('acdfg'[:])) + self._test_cover_art_types_only_front( + os.path.join('test', 'data', 'test.wma'), + set('acdfg'[:])) def test_ape_types_only_front(self): - self._test_cover_art_types_only_front(os.path.join('test', 'data', 'test.wv'), - set('a')) + self._test_cover_art_types_only_front( + os.path.join('test', 'data', 'test.wv'), + set('a')) def test_mp3_types_only_front(self): - self._test_cover_art_types_only_front(os.path.join('test', 'data', 'test.mp3'), - set('acdfg'[:])) + self._test_cover_art_types_only_front( + os.path.join('test', 'data', 'test.mp3'), + set('acdfg'[:])) def test_mp4_types_only_front(self): - self._test_cover_art_types_only_front(os.path.join('test', 'data', 'test.m4a'), - set('acdfg'[:])) + self._test_cover_art_types_only_front( + os.path.join('test', 'data', 'test.m4a'), + set('acdfg'[:])) def test_ogg_types_only_front(self): - self._test_cover_art_types_only_front(os.path.join('test', 'data', 'test.ogg'), - set('acdfg'[:])) + self._test_cover_art_types_only_front( + os.path.join('test', 'data', 'test.ogg'), + set('acdfg'[:])) def test_flac_types_only_front(self): - self._test_cover_art_types_only_front(os.path.join('test', 'data', 'test.flac'), - set('acdfg'[:])) + self._test_cover_art_types_only_front( + os.path.join('test', 'data', 'test.flac'), + set('acdfg'[:])) def _test_cover_art(self, filename): self._set_up(filename) @@ -684,7 +691,7 @@ class TestCoverArt(unittest.TestCase): TagCoverArtImage( file='a', tag='a', - data=imgdata+'a', + data=imgdata + 'a', support_types=True, types=[u'booklet', u'front'], ) @@ -693,7 +700,7 @@ class TestCoverArt(unittest.TestCase): TagCoverArtImage( file='b', tag='b', - data=imgdata+'b', + data=imgdata + 'b', support_types=True, types=[u'back'], ) @@ -702,7 +709,7 @@ class TestCoverArt(unittest.TestCase): TagCoverArtImage( file='c', tag='c', - data=imgdata+'c', + data=imgdata + 'c', support_types=True, types=[u'front'], ) @@ -711,14 +718,14 @@ class TestCoverArt(unittest.TestCase): TagCoverArtImage( file='d', tag='d', - data=imgdata+'d', + data=imgdata + 'd', ) ) metadata.append_image( TagCoverArtImage( file='e', tag='e', - data=imgdata+'e', + data=imgdata + 'e', is_front=False ) ) @@ -726,7 +733,7 @@ class TestCoverArt(unittest.TestCase): TagCoverArtImage( file='f', tag='f', - data=imgdata+'f', + data=imgdata + 'f', types=[u'front'] ) ) @@ -734,7 +741,7 @@ class TestCoverArt(unittest.TestCase): TagCoverArtImage( file='g', tag='g', - data=imgdata+'g', + data=imgdata + 'g', types=[u'back'], is_front=True ) @@ -770,7 +777,7 @@ class TestCoverArt(unittest.TestCase): self._tear_down() def _test_cover_art_types_only_front(self, filename, expect): - self._set_up(filename, { 'save_only_front_images_to_tags': True } ) + self._set_up(filename, {'save_only_front_images_to_tags': True}) try: f = picard.formats.open(self.filename) f._save(self.filename, self._cover_metadata()) diff --git a/test/test_utils.py b/test/test_utils.py index 0493b1292..1b580aae5 100644 --- a/test/test_utils.py +++ b/test/test_utils.py @@ -172,6 +172,7 @@ class AlbumArtistFromPathTest(unittest.TestCase): from picard.util import imageinfo + class ImageInfoTest(unittest.TestCase): def test_gif(self): @@ -189,7 +190,7 @@ class ImageInfoTest(unittest.TestCase): with open(file, 'rb') as f: self.assertEqual( imageinfo.identify(f.read()), - (140, 96, 'image/png','.png', 15692) + (140, 96, 'image/png', '.png', 15692) ) def test_jpeg(self): @@ -202,14 +203,19 @@ class ImageInfoTest(unittest.TestCase): ) def test_not_enough_data(self): - self.assertRaises(imageinfo.IdentificationError, imageinfo.identify, "x") + self.assertRaises(imageinfo.IdentificationError, + imageinfo.identify, "x") self.assertRaises(imageinfo.NotEnoughData, imageinfo.identify, "x") def test_invalid_data(self): - self.assertRaises(imageinfo.IdentificationError, imageinfo.identify, "x" * 20) - self.assertRaises(imageinfo.UnrecognizedFormat, imageinfo.identify, "x" * 20) + self.assertRaises(imageinfo.IdentificationError, + imageinfo.identify, "x" * 20) + self.assertRaises(imageinfo.UnrecognizedFormat, + imageinfo.identify, "x" * 20) def test_invalid_png_data(self): data = '\x89PNG\x0D\x0A\x1A\x0A' + "x" * 20 - self.assertRaises(imageinfo.IdentificationError, imageinfo.identify, data) - self.assertRaises(imageinfo.UnrecognizedFormat, imageinfo.identify, data) + self.assertRaises(imageinfo.IdentificationError, + imageinfo.identify, data) + self.assertRaises(imageinfo.UnrecognizedFormat, + imageinfo.identify, data) From fb4088adddb398c557119ac8cef178b690a6c654 Mon Sep 17 00:00:00 2001 From: Laurent Monin Date: Wed, 21 May 2014 15:42:43 +0200 Subject: [PATCH 185/212] Move test for save_images_to_tags option to metadata.images_to_be_saved_to_tags --- picard/formats/apev2.py | 15 +++++++-------- picard/formats/asf.py | 17 ++++++++--------- picard/formats/id3.py | 40 +++++++++++++++++++--------------------- picard/formats/mp4.py | 17 ++++++++--------- picard/formats/vorbis.py | 33 ++++++++++++++++----------------- picard/metadata.py | 2 ++ 6 files changed, 60 insertions(+), 64 deletions(-) diff --git a/picard/formats/apev2.py b/picard/formats/apev2.py index 9275c0da0..cd80486ec 100644 --- a/picard/formats/apev2.py +++ b/picard/formats/apev2.py @@ -119,7 +119,7 @@ class APEv2File(File): tags = mutagen.apev2.APEv2() if config.setting["clear_existing_tags"]: tags.clear() - elif config.setting['save_images_to_tags'] and metadata.images: + elif metadata.images_to_be_saved_to_tags: for name, value in tags.items(): if name.lower().startswith('cover art') and value.kind == mutagen.apev2.BINARY: del tags[name] @@ -156,13 +156,12 @@ class APEv2File(File): temp.setdefault(name, []).append(value) for name, values in temp.items(): tags[str(name)] = values - if config.setting['save_images_to_tags']: - for image in metadata.images_to_be_saved_to_tags: - cover_filename = 'Cover Art (Front)' - cover_filename += image.extension - tags['Cover Art (Front)'] = mutagen.apev2.APEValue(cover_filename + '\0' + image.data, mutagen.apev2.BINARY) - break # can't save more than one item with the same name - # (mp3tags does this, but it's against the specs) + for image in metadata.images_to_be_saved_to_tags: + cover_filename = 'Cover Art (Front)' + cover_filename += image.extension + tags['Cover Art (Front)'] = mutagen.apev2.APEValue(cover_filename + '\0' + image.data, mutagen.apev2.BINARY) + break # can't save more than one item with the same name + # (mp3tags does this, but it's against the specs) tags.save(encode_filename(filename)) diff --git a/picard/formats/asf.py b/picard/formats/asf.py index 4d8060639..092b53c32 100644 --- a/picard/formats/asf.py +++ b/picard/formats/asf.py @@ -175,15 +175,14 @@ class ASFFile(File): if config.setting['clear_existing_tags']: file.tags.clear() - if config.setting['save_images_to_tags']: - cover = [] - for image in metadata.images_to_be_saved_to_tags: - tag_data = pack_image(image.mimetype, image.data, - image_type_as_id3_num(image.maintype), - image.comment) - cover.append(ASFByteArrayAttribute(tag_data)) - if cover: - file.tags['WM/Picture'] = cover + cover = [] + for image in metadata.images_to_be_saved_to_tags: + tag_data = pack_image(image.mimetype, image.data, + image_type_as_id3_num(image.maintype), + image.comment) + cover.append(ASFByteArrayAttribute(tag_data)) + if cover: + file.tags['WM/Picture'] = cover for name, values in metadata.rawitems(): if name.startswith('lyrics:'): diff --git a/picard/formats/id3.py b/picard/formats/id3.py index ca03d8516..5d51bc0fa 100644 --- a/picard/formats/id3.py +++ b/picard/formats/id3.py @@ -297,8 +297,7 @@ class ID3File(File): if config.setting['clear_existing_tags']: tags.clear() - if (config.setting['save_images_to_tags'] - and metadata.images_to_be_saved_to_tags): + if metadata.images_to_be_saved_to_tags: tags.delall('APIC') if config.setting['write_id3v1']: @@ -321,25 +320,24 @@ class ID3File(File): text = metadata['discnumber'] tags.add(id3.TPOS(encoding=0, text=text)) - if config.setting['save_images_to_tags']: - # This is necessary because mutagens HashKey for APIC frames only - # includes the FrameID (APIC) and description - it's basically - # impossible to save two images, even of different types, without - # any description. - counters = defaultdict(lambda: 0) - for image in metadata.images_to_be_saved_to_tags: - desc = desctag = image.comment - if counters[desc] > 0: - if desc: - desctag = "%s (%i)" % (desc, counters[desc]) - else: - desctag = "(%i)" % counters[desc] - counters[desc] += 1 - tags.add(id3.APIC(encoding=0, - mime=image.mimetype, - type=image_type_as_id3_num(image.maintype), - desc=desctag, - data=image.data)) + # This is necessary because mutagens HashKey for APIC frames only + # includes the FrameID (APIC) and description - it's basically + # impossible to save two images, even of different types, without + # any description. + counters = defaultdict(lambda: 0) + for image in metadata.images_to_be_saved_to_tags: + desc = desctag = image.comment + if counters[desc] > 0: + if desc: + desctag = "%s (%i)" % (desc, counters[desc]) + else: + desctag = "(%i)" % counters[desc] + counters[desc] += 1 + tags.add(id3.APIC(encoding=0, + mime=image.mimetype, + type=image_type_as_id3_num(image.maintype), + desc=desctag, + data=image.data)) tmcl = mutagen.id3.TMCL(encoding=encoding, people=[]) tipl = mutagen.id3.TIPL(encoding=encoding, people=[]) diff --git a/picard/formats/mp4.py b/picard/formats/mp4.py index cd918694b..caf098c40 100644 --- a/picard/formats/mp4.py +++ b/picard/formats/mp4.py @@ -200,15 +200,14 @@ class MP4File(File): else: file.tags["disk"] = [(int(metadata["discnumber"]), 0)] - if config.setting['save_images_to_tags']: - covr = [] - for image in metadata.images_to_be_saved_to_tags: - if image.mimetype == "image/jpeg": - covr.append(MP4Cover(image.data, MP4Cover.FORMAT_JPEG)) - elif image.mimetype == "image/png": - covr.append(MP4Cover(image.data, MP4Cover.FORMAT_PNG)) - if covr: - file.tags["covr"] = covr + covr = [] + for image in metadata.images_to_be_saved_to_tags: + if image.mimetype == "image/jpeg": + covr.append(MP4Cover(image.data, MP4Cover.FORMAT_JPEG)) + elif image.mimetype == "image/png": + covr.append(MP4Cover(image.data, MP4Cover.FORMAT_PNG)) + if covr: + file.tags["covr"] = covr file.save() diff --git a/picard/formats/vorbis.py b/picard/formats/vorbis.py index 235d7417a..2ffc54198 100644 --- a/picard/formats/vorbis.py +++ b/picard/formats/vorbis.py @@ -154,15 +154,14 @@ class VCommentFile(File): def _save(self, filename, metadata): """Save metadata to the file.""" log.debug("Saving file %r", filename) + is_flac = self._File == mutagen.flac.FLAC file = self._File(encode_filename(filename)) if file.tags is None: file.add_tags() if config.setting["clear_existing_tags"]: file.tags.clear() - if self._File == mutagen.flac.FLAC and ( - config.setting["clear_existing_tags"] or - (config.setting['save_images_to_tags'] and - metadata.images_to_be_saved_to_tags)): + if (is_flac and (config.setting["clear_existing_tags"] or + metadata.images_to_be_saved_to_tags)): file.clear_pictures() tags = {} for name, value in metadata.items(): @@ -198,21 +197,21 @@ class VCommentFile(File): if "totaldiscs" in metadata: tags.setdefault(u"DISCTOTAL", []).append(metadata["totaldiscs"]) - if config.setting['save_images_to_tags']: - for image in metadata.images_to_be_saved_to_tags: - picture = mutagen.flac.Picture() - picture.data = image.data - picture.mime = image.mimetype - picture.desc = image.comment - picture.type = image_type_as_id3_num(image.maintype) - if self._File == mutagen.flac.FLAC: - file.add_picture(picture) - else: - tags.setdefault(u"METADATA_BLOCK_PICTURE", []).append( - base64.standard_b64encode(picture.write())) + for image in metadata.images_to_be_saved_to_tags: + picture = mutagen.flac.Picture() + picture.data = image.data + picture.mime = image.mimetype + picture.desc = image.comment + picture.type = image_type_as_id3_num(image.maintype) + if self._File == mutagen.flac.FLAC: + file.add_picture(picture) + else: + tags.setdefault(u"METADATA_BLOCK_PICTURE", []).append( + base64.standard_b64encode(picture.write())) + file.tags.update(tags) kwargs = {} - if self._File == mutagen.flac.FLAC and config.setting["remove_id3_from_flac"]: + if is_flac and config.setting["remove_id3_from_flac"]: kwargs["deleteid3"] = True try: file.save(**kwargs) diff --git a/picard/metadata.py b/picard/metadata.py index 95e441516..a1d64b666 100644 --- a/picard/metadata.py +++ b/picard/metadata.py @@ -53,6 +53,8 @@ class Metadata(dict): @property def images_to_be_saved_to_tags(self): + if not config.setting["save_images_to_tags"]: + return () if not config.setting["save_only_front_images_to_tags"]: return self.images return [img for img in self.images if img.is_front_image()] From f3cfd55fb479f4dd8e82f6aa5c09bd02067443e6 Mon Sep 17 00:00:00 2001 From: Laurent Monin Date: Wed, 21 May 2014 15:53:18 +0200 Subject: [PATCH 186/212] Drop index/enumerate(), unused now --- picard/formats/vorbis.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/picard/formats/vorbis.py b/picard/formats/vorbis.py index 2ffc54198..47e3fffa9 100644 --- a/picard/formats/vorbis.py +++ b/picard/formats/vorbis.py @@ -134,7 +134,7 @@ class VCommentFile(File): # Read the unofficial COVERART tags, for backward compatibillity only if not "metadata_block_picture" in file.tags: try: - for index, data in enumerate(file["COVERART"]): + for data in file["COVERART"]: try: metadata.append_image( TagCoverArtImage( From 2c52ecf13eac5ffbc4a0226c16b1de1aa8e20172 Mon Sep 17 00:00:00 2001 From: Laurent Monin Date: Wed, 21 May 2014 16:22:49 +0200 Subject: [PATCH 187/212] store_data_for_hash(): always return filename + add debug --- picard/coverartimage.py | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/picard/coverartimage.py b/picard/coverartimage.py index b8810d328..b00111bcb 100644 --- a/picard/coverartimage.py +++ b/picard/coverartimage.py @@ -75,14 +75,14 @@ def delete_file_for_hash(datahash): def store_data_for_hash(datahash, data, prefix='picard', suffix=''): filename = get_filename_from_hash(datahash) - if filename is not None: - return filename - (fd, filename) = tempfile.mkstemp(prefix=prefix, suffix=suffix) - QObject.tagger.register_cleanup(partial(delete_file_for_hash, datahash)) - with os.fdopen(fd, "wb") as imagefile: - imagefile.write(data) - set_filename_for_hash(datahash, filename) - + if filename is None: + (fd, filename) = tempfile.mkstemp(prefix=prefix, suffix=suffix) + QObject.tagger.register_cleanup(partial(delete_file_for_hash, datahash)) + with os.fdopen(fd, "wb") as imagefile: + imagefile.write(data) + set_filename_for_hash(datahash, filename) + log.debug("Saving image data %s to %r" % (datahash, filename)) + return filename def get_data_for_hash(datahash): filename = get_filename_from_hash(datahash) From 016cb3e00930dcf09746f560ec04f50197c7351e Mon Sep 17 00:00:00 2001 From: Laurent Monin Date: Wed, 21 May 2014 16:28:51 +0200 Subject: [PATCH 188/212] Simplify image data/hash code --- picard/coverartimage.py | 107 ++++++++++++++++++++-------------------- 1 file changed, 54 insertions(+), 53 deletions(-) diff --git a/picard/coverartimage.py b/picard/coverartimage.py index b00111bcb..c1d5fa0bd 100644 --- a/picard/coverartimage.py +++ b/picard/coverartimage.py @@ -26,8 +26,6 @@ import shutil import sys import tempfile -from collections import defaultdict -from functools import partial from hashlib import md5 from PyQt4.QtCore import QUrl, QObject, QMutex from picard import config, log @@ -43,53 +41,56 @@ from picard.util.textencoding import ( ) -datafiles = defaultdict(lambda: None) -datafile_mutex = QMutex(QMutex.Recursive) +_datafiles = dict() +_datafile_mutex = QMutex(QMutex.Recursive) -def get_filename_from_hash(datahash): - datafile_mutex.lock() - filename = datafiles[datahash] - datafile_mutex.unlock() - return filename +class DataHash: + def __init__(self, data, prefix='picard', suffix=''): + self._filename = None + _datafile_mutex.lock() + try: + m = md5() + m.update(data) + self._hash = m.hexdigest() + if self._hash not in _datafiles: + (fd, self._filename) = tempfile.mkstemp(prefix=prefix, suffix=suffix) + QObject.tagger.register_cleanup(self.delete_file) + with os.fdopen(fd, "wb") as imagefile: + imagefile.write(data) + _datafiles[self._hash] = self._filename + log.debug("Saving image data %s to %r" % (self._hash, self._filename)) + else: + self._filename = _datafiles[self._hash] + finally: + _datafile_mutex.unlock() -def set_filename_for_hash(datahash, filename): - datafile_mutex.lock() - datafiles[datahash] = filename - datafile_mutex.unlock() + def delete_file(self): + if self._filename: + try: + os.unlink(self._filename) + except: + pass + else: + _datafile_mutex.lock() + try: + self._filename = None + del _datafiles[self._hash] + self._hash = None + finally: + _datafile_mutex.unlock() - -def delete_file_for_hash(datahash): - filename = get_filename_from_hash(datahash) - if filename is None: - return - try: - os.unlink(filename) - except: - pass - datafile_mutex.lock() - del datafiles[datahash] - datafile_mutex.unlock() - - -def store_data_for_hash(datahash, data, prefix='picard', suffix=''): - filename = get_filename_from_hash(datahash) - if filename is None: - (fd, filename) = tempfile.mkstemp(prefix=prefix, suffix=suffix) - QObject.tagger.register_cleanup(partial(delete_file_for_hash, datahash)) - with os.fdopen(fd, "wb") as imagefile: - imagefile.write(data) - set_filename_for_hash(datahash, filename) - log.debug("Saving image data %s to %r" % (datahash, filename)) - return filename - -def get_data_for_hash(datahash): - filename = get_filename_from_hash(datahash) - if filename is None: + @property + def data(self): + if self._filename: + with open(self._filename, "rb") as imagefile: + return imagefile.read() return None - with open(filename, "rb") as imagefile: - return imagefile.read() + + @property + def filename(self): + return self._filename class CoverArtImageError(Exception): @@ -163,7 +164,7 @@ class CoverArtImage: self.mimetype, self.extension, self.datalength, - get_filename_from_hash(self.datahash)) + self.tempfile_filename) def __repr__(self): p = [] @@ -194,19 +195,20 @@ class CoverArtImage: """Store image data in a file, if data already exists in such file it will be re-used and no file write occurs """ - self.datahash = None + if self.datahash: + self.datahash.delete_file() + self.datahash = None + try: (self.width, self.height, self.mimetype, self.extension, self.datalength) = imageinfo.identify(data) - m = md5() - m.update(data) - datahash = m.hexdigest() - store_data_for_hash(datahash, data, suffix=self.extension) except imageinfo.IdentificationError as e: raise CoverArtImageIdentificationError(e) + + try: + self.datahash = DataHash(data, suffix=self.extension) except (OSError, IOError) as e: raise CoverArtImageIOError(e) - self.datahash = datahash @property def maintype(self): @@ -244,7 +246,6 @@ class CoverArtImage: :counters: A dictionary mapping filenames to the amount of how many images with that filename were already saved in `dirname`. """ - assert(self.tempfile_filename is not None) if config.setting["caa_image_type_as_filename"]: filename = self.maintype log.debug("Make cover filename from types: %r -> %r", @@ -296,11 +297,11 @@ class CoverArtImage: """Reads the data from the temporary file created for this image. May raise IOErrors or OSErrors. """ - return get_data_for_hash(self.datahash) + return self.datahash.data @property def tempfile_filename(self): - return get_filename_from_hash(self.datahash) + return self.datahash.filename def types_as_string(self, translate=True, separator=', '): if self.types: From 2d1a1005d938a758306523aa7a74e21444e8cdc1 Mon Sep 17 00:00:00 2001 From: Laurent Monin Date: Thu, 22 May 2014 18:03:40 +0200 Subject: [PATCH 189/212] Code cleanup, ease debugging --- picard/formats/apev2.py | 14 +++++----- picard/formats/asf.py | 19 +++++++------- picard/formats/id3.py | 26 +++++++++---------- picard/formats/mp4.py | 12 ++++----- picard/formats/vorbis.py | 55 ++++++++++++++++++++-------------------- 5 files changed, 63 insertions(+), 63 deletions(-) diff --git a/picard/formats/apev2.py b/picard/formats/apev2.py index cd80486ec..afd8e1d84 100644 --- a/picard/formats/apev2.py +++ b/picard/formats/apev2.py @@ -62,18 +62,18 @@ class APEv2File(File): for origname, values in file.tags.items(): if origname.lower().startswith("cover art") and values.kind == mutagen.apev2.BINARY: if '\0' in values.value: + descr, data = values.value.split('\0', 1) try: - descr, data = values.value.split('\0', 1) - metadata.append_image( - TagCoverArtImage( - file=filename, - tag=origname, - data=data, - ) + coverartimage = TagCoverArtImage( + file=filename, + tag=origname, + data=data, ) except CoverArtImageError as e: log.error('Cannot load image from %r: %s' % (filename, e)) + else: + metadata.append_image(coverartimage) # skip EXTERNAL and BINARY values if values.kind != mutagen.apev2.TEXT: diff --git a/picard/formats/asf.py b/picard/formats/asf.py index 092b53c32..691a84ad0 100644 --- a/picard/formats/asf.py +++ b/picard/formats/asf.py @@ -143,19 +143,20 @@ class ASFFile(File): for image in values: (mime, data, type, description) = unpack_image(image.value) try: - metadata.append_image( - TagCoverArtImage( - file=filename, - tag=name, - types=types_from_id3(type), - comment=description, - support_types=True, - data=data, - ) + coverartimage = TagCoverArtImage( + file=filename, + tag=name, + types=types_from_id3(type), + comment=description, + support_types=True, + data=data, ) except CoverArtImageError as e: log.error('Cannot load image from %r: %s' % (filename, e)) + else: + metadata.append_image(coverartimage) + continue elif name not in self.__RTRANS: continue diff --git a/picard/formats/id3.py b/picard/formats/id3.py index 5d51bc0fa..a31351a62 100644 --- a/picard/formats/id3.py +++ b/picard/formats/id3.py @@ -261,18 +261,18 @@ class ID3File(File): log.error("Invalid %s value '%s' dropped in %r", frameid, frame.text[0], filename) elif frameid == 'APIC': try: - metadata.append_image( - TagCoverArtImage( - file=filename, - tag=frameid, - types=types_from_id3(frame.type), - comment=frame.desc, - support_types=True, - data=frame.data, - ) + coverartimage = TagCoverArtImage( + file=filename, + tag=frameid, + types=types_from_id3(frame.type), + comment=frame.desc, + support_types=True, + data=frame.data, ) except CoverArtImageError as e: log.error('Cannot load image from %r: %s' % (filename, e)) + else: + metadata.append_image(coverartimage) elif frameid == 'POPM': # Rating in ID3 ranges from 0 to 255, normalize this to the range 0 to 5 if frame.email == config.setting['rating_user_email']: @@ -334,10 +334,10 @@ class ID3File(File): desctag = "(%i)" % counters[desc] counters[desc] += 1 tags.add(id3.APIC(encoding=0, - mime=image.mimetype, - type=image_type_as_id3_num(image.maintype), - desc=desctag, - data=image.data)) + mime=image.mimetype, + type=image_type_as_id3_num(image.maintype), + desc=desctag, + data=image.data)) tmcl = mutagen.id3.TMCL(encoding=encoding, people=[]) tipl = mutagen.id3.TIPL(encoding=encoding, people=[]) diff --git a/picard/formats/mp4.py b/picard/formats/mp4.py index caf098c40..708c96ad0 100644 --- a/picard/formats/mp4.py +++ b/picard/formats/mp4.py @@ -145,16 +145,16 @@ class MP4File(File): value.FORMAT_PNG): continue try: - metadata.append_image( - TagCoverArtImage( - file=filename, - tag=name, - data=value, - ) + coverartimage = TagCoverArtImage( + file=filename, + tag=name, + data=value, ) except CoverArtImageError as e: log.error('Cannot load image from %r: %s' % (filename, e)) + else: + metadata.append_image(coverartimage) self._info(metadata, file) return metadata diff --git a/picard/formats/vorbis.py b/picard/formats/vorbis.py index 47e3fffa9..c78489a1f 100644 --- a/picard/formats/vorbis.py +++ b/picard/formats/vorbis.py @@ -98,19 +98,19 @@ class VCommentFile(File): elif name == "metadata_block_picture": image = mutagen.flac.Picture(base64.standard_b64decode(value)) try: - metadata.append_image( - TagCoverArtImage( - file=filename, - tag=name, - types=types_from_id3(image.type), - comment=image.desc, - support_types=True, - data=image.data, - ) + coverartimage = TagCoverArtImage( + file=filename, + tag=name, + types=types_from_id3(image.type), + comment=image.desc, + support_types=True, + data=image.data, ) except CoverArtImageError as e: - log.error('Cannot load image from %r: %s' % - (filename, e)) + log.error('Cannot load image from %r: %s' % (filename, e)) + else: + metadata.append_image(coverartimage) + continue elif name in self.__translate: name = self.__translate[name] @@ -118,34 +118,33 @@ class VCommentFile(File): if self._File == mutagen.flac.FLAC: for image in file.pictures: try: - metadata.append_image( - TagCoverArtImage( - file=filename, - tag='FLAC/PICTURE', - types=types_from_id3(image.type), - comment=image.desc, - support_types=True, - data=image.data, - ) + coverartimage = TagCoverArtImage( + file=filename, + tag='FLAC/PICTURE', + types=types_from_id3(image.type), + comment=image.desc, + support_types=True, + data=image.data, ) except CoverArtImageError as e: log.error('Cannot load image from %r: %s' % (filename, e)) + else: + metadata.append_image(coverartimage) # Read the unofficial COVERART tags, for backward compatibillity only if not "metadata_block_picture" in file.tags: try: for data in file["COVERART"]: try: - metadata.append_image( - TagCoverArtImage( - file=filename, - tag='COVERART', - data=base64.standard_b64decode(data) - ) + coverartimage = TagCoverArtImage( + file=filename, + tag='COVERART', + data=base64.standard_b64decode(data) ) except CoverArtImageError as e: - log.error('Cannot load image from %r: %s' % - (filename, e)) + log.error('Cannot load image from %r: %s' % (filename, e)) + else: + metadata.append_image(coverartimage) except KeyError: pass self._info(metadata, file) From 25b5d7b9b704c546c9dd66f215572b72ff6c544c Mon Sep 17 00:00:00 2001 From: Laurent Monin Date: Sat, 24 May 2014 18:42:53 +0200 Subject: [PATCH 190/212] Update translations --- po/attributes/da.po | 863 ++++++++------- po/attributes/de.po | 122 +- po/attributes/el.po | 112 +- po/attributes/en_CA.po | 112 +- po/attributes/en_GB.po | 112 +- po/attributes/eo.po | 112 +- po/attributes/es.po | 112 +- po/attributes/et.po | 114 +- po/attributes/fi.po | 112 +- po/attributes/fr.po | 116 +- po/attributes/hr.po | 2404 ++++++++++++++++++++++++++++++++++++++++ po/attributes/it.po | 114 +- po/attributes/ja.po | 112 +- po/attributes/nb.po | 727 ++++++------ po/attributes/nl.po | 114 +- po/attributes/pl.po | 112 +- po/attributes/pt_BR.po | 112 +- po/attributes/ro.po | 112 +- po/attributes/ru.po | 252 +++-- po/attributes/sk.po | 112 +- po/attributes/sv.po | 112 +- po/attributes/tr.po | 112 +- po/attributes/zh_CN.po | 112 +- po/bg.po | 8 +- po/ca.po | 8 +- po/countries/hr.po | 1304 ++++++++++++++++++++++ po/countries/tr.po | 179 +-- po/cs.po | 8 +- po/cy.po | 8 +- po/da.po | 84 +- po/de.po | 150 +-- po/el.po | 8 +- po/en_CA.po | 8 +- po/en_GB.po | 8 +- po/eo.po | 8 +- po/es.po | 20 +- po/et.po | 140 +-- po/fi.po | 8 +- po/fo.po | 8 +- po/fr.po | 10 +- po/fy.po | 8 +- po/gl.po | 8 +- po/he.po | 8 +- po/hu.po | 8 +- po/id.po | 8 +- po/is.po | 8 +- po/it.po | 8 +- po/ja.po | 8 +- po/ko.po | 8 +- po/mr.po | 8 +- po/nb.po | 109 +- po/nl.po | 40 +- po/oc.po | 8 +- po/picard.pot | 88 +- po/pl.po | 8 +- po/pt.po | 8 +- po/pt_BR.po | 8 +- po/ro.po | 8 +- po/ru.po | 68 +- po/sk.po | 8 +- po/sl.po | 8 +- po/sv.po | 8 +- po/te.po | 8 +- po/tr.po | 133 +-- po/uk.po | 8 +- po/zh_CN.po | 8 +- 66 files changed, 7526 insertions(+), 1441 deletions(-) create mode 100644 po/attributes/hr.po create mode 100644 po/countries/hr.po diff --git a/po/attributes/da.po b/po/attributes/da.po index a856337b0..07c1e7460 100644 --- a/po/attributes/da.po +++ b/po/attributes/da.po @@ -1,10 +1,11 @@ # # Translators: # Frederik "Freso" S. Olesen , 2012 +# Frederik "Freso" S. Olesen , 2014 msgid "" msgstr "" "Project-Id-Version: MusicBrainz\n" -"PO-Revision-Date: 2014-04-17 03:31+0000\n" +"PO-Revision-Date: 2014-05-20 19:03+0000\n" "Last-Translator: Ian McEwen \n" "Language-Team: Danish (http://www.transifex.com/projects/p/musicbrainz/language/da/)\n" "MIME-Version: 1.0\n" @@ -36,77 +37,82 @@ msgstr "8cm CD" #: DB:medium_format/name:40 msgctxt "medium_format" msgid "8cm CD+G" -msgstr "" +msgstr "8cm CD+G" #: DB:work_attribute_type_allowed_value/value:28 msgctxt "work_attribute_type_allowed_value" msgid "A major" -msgstr "" +msgstr "A-dur" #: DB:work_attribute_type_allowed_value/value:29 msgctxt "work_attribute_type_allowed_value" msgid "A minor" -msgstr "" +msgstr "A-mol" #: DB:work_attribute_type_allowed_value/value:26 msgctxt "work_attribute_type_allowed_value" msgid "A-flat major" -msgstr "" +msgstr "Aes-dur" #: DB:work_attribute_type_allowed_value/value:27 msgctxt "work_attribute_type_allowed_value" msgid "A-flat minor" -msgstr "" +msgstr "Aes-mol" #: DB:work_attribute_type_allowed_value/value:30 msgctxt "work_attribute_type_allowed_value" msgid "A-sharp minor" -msgstr "" +msgstr "Ais-mol" #: DB:work_attribute_type/name:13 msgctxt "work_attribute_type" msgid "APRA ID" -msgstr "" +msgstr "APRA-id" #: DB:work_attribute_type/name:6 msgctxt "work_attribute_type" msgid "ASCAP ID" -msgstr "" +msgstr "ASCAP-id" #: DB:release_group_primary_type/name:1 msgctxt "release_group_primary_type" msgid "Album" +msgstr "album" + +#: DB:series_ordering_type/description:2 +msgctxt "series_ordering_type" +msgid "Allows for manually setting the position of each item in the series." msgstr "" #: DB:work_attribute_type_allowed_value/value:40 msgctxt "work_attribute_type_allowed_value" msgid "Amṛtavarṣiṇi" -msgstr "" +msgstr "Amṛtavarṣiṇi" #: DB:work_attribute_type_allowed_value/value:39 msgctxt "work_attribute_type_allowed_value" msgid "Amṛtavāhiṇi" -msgstr "" +msgstr "Amṛtavāhiṇi" #: DB:area_alias_type/name:1 msgctxt "alias_type" msgid "Area name" -msgstr "" +msgstr "områdenavn" #: DB:work_type/name:1 msgctxt "work_type" msgid "Aria" -msgstr "" +msgstr "arie" #: DB:artist_alias_type/name:1 msgctxt "alias_type" msgid "Artist name" -msgstr "" +msgstr "kunstnernavn" #: DB:work_attribute_type_allowed_value/value:44 msgctxt "work_attribute_type_allowed_value" msgid "Asāvēri" -msgstr "" +msgstr "Asāvēri" #: DB:work_type/name:25 msgctxt "work_type" @@ -116,12 +122,17 @@ msgstr "" #: DB:release_group_secondary_type/name:5 msgctxt "release_group_secondary_type" msgid "Audiobook" -msgstr "Lydbog" +msgstr "lydbog" + +#: DB:series_ordering_type/name:1 +msgctxt "series_ordering_type" +msgid "Automatic" +msgstr "" #: DB:work_attribute_type_allowed_value/value:45 msgctxt "work_attribute_type_allowed_value" msgid "Aṭāna" -msgstr "" +msgstr "Aṭāna" #: DB:work_attribute_type_allowed_value/value:289 msgctxt "work_attribute_type_allowed_value" @@ -131,12 +142,12 @@ msgstr "" #: DB:work_attribute_type_allowed_value/value:33 msgctxt "work_attribute_type_allowed_value" msgid "B major" -msgstr "" +msgstr "H-dur" #: DB:work_attribute_type_allowed_value/value:34 msgctxt "work_attribute_type_allowed_value" msgid "B minor" -msgstr "" +msgstr "H-mol" #: DB:work_attribute_type_allowed_value/value:31 msgctxt "work_attribute_type_allowed_value" @@ -151,37 +162,37 @@ msgstr "" #: DB:work_attribute_type/name:7 msgctxt "work_attribute_type" msgid "BMI ID" -msgstr "" +msgstr "BMI-id" #: DB:cover_art_archive.art_type/name:2 msgctxt "cover_art_type" msgid "Back" -msgstr "Bagside" +msgstr "bagside" #: DB:work_attribute_type_allowed_value/value:47 msgctxt "work_attribute_type_allowed_value" msgid "Bahudāri" -msgstr "" +msgstr "Bahudāri" #: DB:work_attribute_type_allowed_value/value:48 msgctxt "work_attribute_type_allowed_value" msgid "Balahaṁsa" -msgstr "" +msgstr "Balahaṁsa" #: DB:work_type/name:2 msgctxt "work_type" msgid "Ballet" -msgstr "" +msgstr "ballet" #: DB:work_attribute_type_allowed_value/value:49 msgctxt "work_attribute_type_allowed_value" msgid "Bauḷi" -msgstr "" +msgstr "Bauḷi" #: DB:work_attribute_type_allowed_value/value:51 msgctxt "work_attribute_type_allowed_value" msgid "Behāg" -msgstr "" +msgstr "Behāg" #: DB:work_type/name:26 msgctxt "work_type" @@ -196,42 +207,42 @@ msgstr "Betamax" #: DB:work_attribute_type_allowed_value/value:52 msgctxt "work_attribute_type_allowed_value" msgid "Bhairavi" -msgstr "" +msgstr "Bhairavi" #: DB:work_attribute_type_allowed_value/value:53 msgctxt "work_attribute_type_allowed_value" msgid "Bhavāni" -msgstr "" +msgstr "Bhavāni" #: DB:work_attribute_type_allowed_value/value:54 msgctxt "work_attribute_type_allowed_value" msgid "Bhāvapriya" -msgstr "" +msgstr "Bhāvapriya" #: DB:work_attribute_type_allowed_value/value:55 msgctxt "work_attribute_type_allowed_value" msgid "Bhīmpalāsi" -msgstr "" +msgstr "Bhīmpalāsi" #: DB:work_attribute_type_allowed_value/value:56 msgctxt "work_attribute_type_allowed_value" msgid "Bhōga sāvēri" -msgstr "" +msgstr "Bhōga sāvēri" #: DB:work_attribute_type_allowed_value/value:57 msgctxt "work_attribute_type_allowed_value" msgid "Bhūpāḷaṁ" -msgstr "" +msgstr "Bhūpāḷaṁ" #: DB:work_attribute_type_allowed_value/value:58 msgctxt "work_attribute_type_allowed_value" msgid "Bhūṣāvaḷi" -msgstr "" +msgstr "Bhūṣāvaḷi" #: DB:work_attribute_type_allowed_value/value:59 msgctxt "work_attribute_type_allowed_value" msgid "Bilahari" -msgstr "" +msgstr "Bilahari" #: DB:medium_format/name:20 msgctxt "medium_format" @@ -241,12 +252,12 @@ msgstr "Blu-ray" #: DB:medium_format/name:35 msgctxt "medium_format" msgid "Blu-spec CD" -msgstr "" +msgstr "Blu-spec CD" #: DB:release_packaging/name:9 msgctxt "release_packaging" msgid "Book" -msgstr "" +msgstr "bog" #: DB:cover_art_archive.art_type/name:3 msgctxt "cover_art_type" @@ -271,52 +282,52 @@ msgstr "" #: DB:work_attribute_type_allowed_value/value:62 msgctxt "work_attribute_type_allowed_value" msgid "Budamanōhari" -msgstr "" +msgstr "Budamanōhari" #: DB:work_attribute_type_allowed_value/value:46 msgctxt "work_attribute_type_allowed_value" msgid "Bāgēśrī" -msgstr "" +msgstr "Bāgēśrī" #: DB:work_attribute_type_allowed_value/value:50 msgctxt "work_attribute_type_allowed_value" msgid "Bēgaḍa" -msgstr "" +msgstr "Bēgaḍa" #: DB:work_attribute_type_allowed_value/value:60 msgctxt "work_attribute_type_allowed_value" msgid "Bṛndāvana sāranga" -msgstr "" +msgstr "Bṛndāvana sāranga" #: DB:work_attribute_type_allowed_value/value:61 msgctxt "work_attribute_type_allowed_value" msgid "Bṛndāvani" -msgstr "" +msgstr "Bṛndāvani" #: DB:work_attribute_type_allowed_value/value:2 msgctxt "work_attribute_type_allowed_value" msgid "C major" -msgstr "" +msgstr "C-dur" #: DB:work_attribute_type_allowed_value/value:3 msgctxt "work_attribute_type_allowed_value" msgid "C minor" -msgstr "" +msgstr "C-mol" #: DB:work_attribute_type_allowed_value/value:1 msgctxt "work_attribute_type_allowed_value" msgid "C-flat major" -msgstr "" +msgstr "Ces-dur" #: DB:work_attribute_type_allowed_value/value:4 msgctxt "work_attribute_type_allowed_value" msgid "C-sharp major" -msgstr "" +msgstr "Cis-dur" #: DB:work_attribute_type_allowed_value/value:5 msgctxt "work_attribute_type_allowed_value" msgid "C-sharp minor" -msgstr "" +msgstr "Cis-mol" #: DB:medium_format/name:1 msgctxt "medium_format" @@ -326,7 +337,7 @@ msgstr "CD" #: DB:medium_format/name:39 msgctxt "medium_format" msgid "CD+G" -msgstr "" +msgstr "CD+G" #: DB:medium_format/name:33 msgctxt "medium_format" @@ -336,22 +347,22 @@ msgstr "CD-R" #: DB:work_attribute_type_allowed_value/value:63 msgctxt "work_attribute_type_allowed_value" msgid "Cakravākaṁ" -msgstr "" +msgstr "Cakravākaṁ" #: DB:work_attribute_type_allowed_value/value:64 msgctxt "work_attribute_type_allowed_value" msgid "Candrajyōti" -msgstr "" +msgstr "Candrajyōti" #: DB:work_attribute_type_allowed_value/value:65 msgctxt "work_attribute_type_allowed_value" msgid "Candrakauns" -msgstr "" +msgstr "Candrakauns" #: DB:work_type/name:3 msgctxt "work_type" msgid "Cantata" -msgstr "" +msgstr "kantate" #: DB:release_packaging/name:4 msgctxt "release_packaging" @@ -366,22 +377,27 @@ msgstr "" #: DB:work_attribute_type_allowed_value/value:66 msgctxt "work_attribute_type_allowed_value" msgid "Carturdaśa rāgamālika" -msgstr "" +msgstr "Carturdaśa rāgamālika" #: DB:medium_format/name:8 msgctxt "medium_format" msgid "Cassette" -msgstr "Kassette" +msgstr "kassette" #: DB:release_packaging/name:8 msgctxt "release_packaging" msgid "Cassette Case" msgstr "" +#: DB:series_type/name:5 +msgctxt "series_type" +msgid "Catalogue" +msgstr "" + #: DB:work_attribute_type_allowed_value/value:291 msgctxt "work_attribute_type_allowed_value" msgid "Caturaśra-jāti jhaṁpe" -msgstr "" +msgstr "Caturaśra-jāti jhaṁpe" #: DB:work_attribute_type_allowed_value/value:70 msgctxt "work_attribute_type_allowed_value" @@ -391,12 +407,12 @@ msgstr "" #: DB:artist_type/name:4 msgctxt "artist_type" msgid "Character" -msgstr "" +msgstr "figur" #: DB:artist_type/name:6 msgctxt "artist_type" msgid "Choir" -msgstr "" +msgstr "kor" #: DB:work_attribute_type_allowed_value/value:71 msgctxt "work_attribute_type_allowed_value" @@ -411,22 +427,22 @@ msgstr "" #: DB:area_type/name:3 msgctxt "area_type" msgid "City" -msgstr "" +msgstr "by" #: DB:release_group_secondary_type/name:1 msgctxt "release_group_secondary_type" msgid "Compilation" -msgstr "" +msgstr "opsamling" #: DB:work_type/name:4 msgctxt "work_type" msgid "Concerto" -msgstr "" +msgstr "koncert" #: DB:area_type/name:1 msgctxt "area_type" msgid "Country" -msgstr "" +msgstr "land" #: DB:work_attribute_type_allowed_value/value:67 msgctxt "work_attribute_type_allowed_value" @@ -441,42 +457,42 @@ msgstr "" #: DB:work_attribute_type_allowed_value/value:69 msgctxt "work_attribute_type_allowed_value" msgid "Cāyātarangiṇi" -msgstr "" +msgstr "Cāyātarangiṇi" #: DB:work_attribute_type_allowed_value/value:8 msgctxt "work_attribute_type_allowed_value" msgid "D major" -msgstr "" +msgstr "D-dur" #: DB:work_attribute_type_allowed_value/value:9 msgctxt "work_attribute_type_allowed_value" msgid "D minor" -msgstr "" +msgstr "D-mol" #: DB:work_attribute_type_allowed_value/value:6 msgctxt "work_attribute_type_allowed_value" msgid "D-flat major" -msgstr "" +msgstr "Dis-dur" #: DB:work_attribute_type_allowed_value/value:7 msgctxt "work_attribute_type_allowed_value" msgid "D-flat minor" -msgstr "" +msgstr "Des-mol" #: DB:work_attribute_type_allowed_value/value:10 msgctxt "work_attribute_type_allowed_value" msgid "D-sharp minor" -msgstr "" +msgstr "Dis-mol" #: DB:medium_format/name:11 msgctxt "medium_format" msgid "DAT" -msgstr "" +msgstr "DAT" #: DB:medium_format/name:16 msgctxt "medium_format" msgid "DCC" -msgstr "" +msgstr "DCC" #: DB:release_group_secondary_type/name:8 msgctxt "release_group_secondary_type" @@ -501,47 +517,47 @@ msgstr "" #: DB:work_attribute_type_allowed_value/value:73 msgctxt "work_attribute_type_allowed_value" msgid "Darbār" -msgstr "" +msgstr "Darbār" #: DB:work_attribute_type_allowed_value/value:74 msgctxt "work_attribute_type_allowed_value" msgid "Darbārī kānaḍa" -msgstr "" +msgstr "Darbārī kānaḍa" #: DB:release_group_secondary_type/name:10 msgctxt "release_group_secondary_type" msgid "Demo" -msgstr "" +msgstr "demo" #: DB:work_attribute_type_allowed_value/value:79 msgctxt "work_attribute_type_allowed_value" msgid "Devāmṛtavarṣiṇi" -msgstr "" +msgstr "Devāmṛtavarṣiṇi" #: DB:work_attribute_type_allowed_value/value:80 msgctxt "work_attribute_type_allowed_value" msgid "Dhanaśrī" -msgstr "" +msgstr "Dhanaśrī" #: DB:work_attribute_type_allowed_value/value:81 msgctxt "work_attribute_type_allowed_value" msgid "Dhanyāsi" -msgstr "" +msgstr "Dhanyāsi" #: DB:work_attribute_type_allowed_value/value:82 msgctxt "work_attribute_type_allowed_value" msgid "Dharmāvati" -msgstr "" +msgstr "Dharmāvati" #: DB:work_attribute_type_allowed_value/value:285 msgctxt "work_attribute_type_allowed_value" msgid "Dhr̥va" -msgstr "" +msgstr "Dhr̥va" #: DB:work_attribute_type_allowed_value/value:83 msgctxt "work_attribute_type_allowed_value" msgid "Dhēnuka" -msgstr "" +msgstr "Dhēnuka" #: DB:release_packaging/name:3 msgctxt "release_packaging" @@ -551,7 +567,7 @@ msgstr "" #: DB:medium_format/name:12 msgctxt "medium_format" msgid "Digital Media" -msgstr "" +msgstr "digitalt medie" #: DB:release_packaging/name:13 msgctxt "release_packaging" @@ -561,117 +577,122 @@ msgstr "" #: DB:label_type/name:1 msgctxt "label_type" msgid "Distributor" -msgstr "" +msgstr "distributør" #: DB:area_type/name:5 msgctxt "area_type" msgid "District" -msgstr "" +msgstr "distrikt" #: DB:medium_format/name:4 msgctxt "medium_format" msgid "DualDisc" -msgstr "" +msgstr "DualDisc" #: DB:work_attribute_type_allowed_value/value:86 msgctxt "work_attribute_type_allowed_value" msgid "Durga" -msgstr "" +msgstr "Durga" #: DB:work_attribute_type_allowed_value/value:87 msgctxt "work_attribute_type_allowed_value" msgid "Dvijāvanti" -msgstr "" +msgstr "Dvijāvanti" #: DB:work_attribute_type_allowed_value/value:76 msgctxt "work_attribute_type_allowed_value" msgid "Dēvagāndhāri" -msgstr "" +msgstr "Dēvagāndhāri" #: DB:work_attribute_type_allowed_value/value:77 msgctxt "work_attribute_type_allowed_value" msgid "Dēvakriya" -msgstr "" +msgstr "Dēvakriya" #: DB:work_attribute_type_allowed_value/value:78 msgctxt "work_attribute_type_allowed_value" msgid "Dēvamanōhari" -msgstr "" +msgstr "Dēvamanōhari" #: DB:work_attribute_type_allowed_value/value:75 msgctxt "work_attribute_type_allowed_value" msgid "Dēś" -msgstr "" +msgstr "Dēś" #: DB:work_attribute_type_allowed_value/value:292 msgctxt "work_attribute_type_allowed_value" msgid "Dēśādi" -msgstr "" +msgstr "Dēśādi" #: DB:work_attribute_type_allowed_value/value:84 msgctxt "work_attribute_type_allowed_value" msgid "Dīpakaṁ" -msgstr "" +msgstr "Dīpakaṁ" #: DB:work_attribute_type_allowed_value/value:85 msgctxt "work_attribute_type_allowed_value" msgid "Dīpāḷi" -msgstr "" +msgstr "Dīpāḷi" #: DB:work_attribute_type_allowed_value/value:13 msgctxt "work_attribute_type_allowed_value" msgid "E major" -msgstr "" +msgstr "E-dur" #: DB:work_attribute_type_allowed_value/value:14 msgctxt "work_attribute_type_allowed_value" msgid "E minor" -msgstr "" +msgstr "E-mol" #: DB:work_attribute_type_allowed_value/value:11 msgctxt "work_attribute_type_allowed_value" msgid "E-flat major" -msgstr "" +msgstr "Es-dur" #: DB:work_attribute_type_allowed_value/value:12 msgctxt "work_attribute_type_allowed_value" msgid "E-flat minor" -msgstr "" +msgstr "Es-mol" #: DB:work_attribute_type_allowed_value/value:15 msgctxt "work_attribute_type_allowed_value" msgid "E-sharp minor" -msgstr "" +msgstr "Eis-mol" #: DB:release_group_primary_type/name:3 msgctxt "release_group_primary_type" msgid "EP" msgstr "EP" +#: DB:instrument_type/name:4 +msgctxt "instrument_type" +msgid "Electronic instrument" +msgstr "" + #: DB:work_attribute_type_allowed_value/value:17 msgctxt "work_attribute_type_allowed_value" msgid "F major" -msgstr "" +msgstr "F-dur" #: DB:work_attribute_type_allowed_value/value:18 msgctxt "work_attribute_type_allowed_value" msgid "F minor" -msgstr "" +msgstr "F-mol" #: DB:work_attribute_type_allowed_value/value:16 msgctxt "work_attribute_type_allowed_value" msgid "F-flat major" -msgstr "" +msgstr "Fes-dur" #: DB:work_attribute_type_allowed_value/value:19 msgctxt "work_attribute_type_allowed_value" msgid "F-sharp major" -msgstr "" +msgstr "Fis-dur" #: DB:work_attribute_type_allowed_value/value:20 msgctxt "work_attribute_type_allowed_value" msgid "F-sharp minor" -msgstr "" +msgstr "Fis-mol" #: DB:release_packaging/name:10 msgctxt "release_packaging" @@ -686,57 +707,57 @@ msgstr "" #: DB:area_alias_type/name:2 msgctxt "alias_type" msgid "Formal name" -msgstr "" +msgstr "formelt navn" #: DB:cover_art_archive.art_type/name:1 msgctxt "cover_art_type" msgid "Front" -msgstr "Forside" +msgstr "forside" #: DB:work_attribute_type_allowed_value/value:22 msgctxt "work_attribute_type_allowed_value" msgid "G major" -msgstr "" +msgstr "G-dur" #: DB:work_attribute_type_allowed_value/value:23 msgctxt "work_attribute_type_allowed_value" msgid "G minor" -msgstr "" +msgstr "G-mol" #: DB:work_attribute_type_allowed_value/value:21 msgctxt "work_attribute_type_allowed_value" msgid "G-flat major" -msgstr "" +msgstr "Ges-dur" #: DB:work_attribute_type_allowed_value/value:24 msgctxt "work_attribute_type_allowed_value" msgid "G-sharp major" -msgstr "" +msgstr "Gis-dur" #: DB:work_attribute_type_allowed_value/value:25 msgctxt "work_attribute_type_allowed_value" msgid "G-sharp minor" -msgstr "" +msgstr "Gis-mol" #: DB:work_attribute_type/name:9 msgctxt "work_attribute_type" msgid "GEMA ID" -msgstr "" +msgstr "GEMA-id" #: DB:work_attribute_type_allowed_value/value:88 msgctxt "work_attribute_type_allowed_value" msgid "Gamakakriya" -msgstr "" +msgstr "Gamakakriya" #: DB:work_attribute_type_allowed_value/value:89 msgctxt "work_attribute_type_allowed_value" msgid "Gamakakriya/Pūrvīkaḷyāṇi" -msgstr "" +msgstr "Gamakakriya/Pūrvīkaḷyāṇi" #: DB:work_attribute_type_allowed_value/value:95 msgctxt "work_attribute_type_allowed_value" msgid "Garuḍadhvani" -msgstr "" +msgstr "Garuḍadhvani" #: DB:release_packaging/name:12 msgctxt "release_packaging" @@ -746,67 +767,67 @@ msgstr "" #: DB:work_attribute_type_allowed_value/value:99 msgctxt "work_attribute_type_allowed_value" msgid "Gaurīmanōhari" -msgstr "" +msgstr "Gaurīmanōhari" #: DB:work_attribute_type_allowed_value/value:96 msgctxt "work_attribute_type_allowed_value" msgid "Gauḍa malhār" -msgstr "" +msgstr "Gauḍa malhār" #: DB:work_attribute_type_allowed_value/value:97 msgctxt "work_attribute_type_allowed_value" msgid "Gauḷa" -msgstr "" +msgstr "Gauḷa" #: DB:work_attribute_type_allowed_value/value:98 msgctxt "work_attribute_type_allowed_value" msgid "Gauḷipantu" -msgstr "" +msgstr "Gauḷipantu" #: DB:work_attribute_type_allowed_value/value:90 msgctxt "work_attribute_type_allowed_value" msgid "Gaṁbhīra nāṭa" -msgstr "" +msgstr "Gaṁbhīra nāṭa" #: DB:work_attribute_type_allowed_value/value:91 msgctxt "work_attribute_type_allowed_value" msgid "Gaṁbhīra vāṇi" -msgstr "" +msgstr "Gaṁbhīra vāṇi" #: DB:work_attribute_type_allowed_value/value:100 msgctxt "work_attribute_type_allowed_value" msgid "Ghanṭa" -msgstr "" +msgstr "Ghanṭa" #: DB:artist_type/name:2 msgctxt "artist_type" msgid "Group" -msgstr "Gruppe" +msgstr "gruppe" #: DB:work_attribute_type_allowed_value/value:102 msgctxt "work_attribute_type_allowed_value" msgid "Gurjāri" -msgstr "" +msgstr "Gurjāri" #: DB:work_attribute_type_allowed_value/value:92 msgctxt "work_attribute_type_allowed_value" msgid "Gānamūrti" -msgstr "" +msgstr "Gānamūrti" #: DB:work_attribute_type_allowed_value/value:93 msgctxt "work_attribute_type_allowed_value" msgid "Gānavāridhi" -msgstr "" +msgstr "Gānavāridhi" #: DB:work_attribute_type_allowed_value/value:94 msgctxt "work_attribute_type_allowed_value" msgid "Gāngēyabhūṣaṇi" -msgstr "" +msgstr "Gāngēyabhūṣaṇi" #: DB:work_attribute_type_allowed_value/value:101 msgctxt "work_attribute_type_allowed_value" msgid "Gōpikāvasantaṁ" -msgstr "" +msgstr "Gōpikāvasantaṁ" #: DB:medium_format/name:17 msgctxt "medium_format" @@ -821,52 +842,52 @@ msgstr "HDCD" #: DB:medium_format/name:37 msgctxt "medium_format" msgid "HQCD" -msgstr "" +msgstr "HQCD" #: DB:work_attribute_type_allowed_value/value:104 msgctxt "work_attribute_type_allowed_value" msgid "Hamsadhvani" -msgstr "" +msgstr "Hamsadhvani" #: DB:work_attribute_type_allowed_value/value:107 msgctxt "work_attribute_type_allowed_value" msgid "Hamsavinōdini" -msgstr "" +msgstr "Hamsavinōdini" #: DB:work_attribute_type_allowed_value/value:103 msgctxt "work_attribute_type_allowed_value" msgid "Hamīr kaḷyaṇi" -msgstr "" +msgstr "Hamīr kaḷyaṇi" #: DB:work_attribute_type_allowed_value/value:108 msgctxt "work_attribute_type_allowed_value" msgid "Harikāmbhōji" -msgstr "" +msgstr "Harikāmbhōji" #: DB:work_attribute_type_allowed_value/value:105 msgctxt "work_attribute_type_allowed_value" msgid "Haṁsanādaṁ" -msgstr "" +msgstr "Haṁsanādaṁ" #: DB:work_attribute_type_allowed_value/value:106 msgctxt "work_attribute_type_allowed_value" msgid "Haṁsānandi" -msgstr "" +msgstr "Haṁsānandi" #: DB:work_attribute_type_allowed_value/value:112 msgctxt "work_attribute_type_allowed_value" msgid "Hindustān gāndhāri" -msgstr "" +msgstr "Hindustān gāndhāri" #: DB:work_attribute_type_allowed_value/value:110 msgctxt "work_attribute_type_allowed_value" msgid "Hindōḷa vasantaṁ" -msgstr "" +msgstr "Hindōḷa vasantaṁ" #: DB:work_attribute_type_allowed_value/value:111 msgctxt "work_attribute_type_allowed_value" msgid "Hindōḷaṁ" -msgstr "" +msgstr "Hindōḷaṁ" #: DB:label_type/name:2 msgctxt "label_type" @@ -876,7 +897,7 @@ msgstr "" #: DB:work_attribute_type_allowed_value/value:113 msgctxt "work_attribute_type_allowed_value" msgid "Hussēnī" -msgstr "" +msgstr "Hussēnī" #: DB:medium_format/name:38 msgctxt "medium_format" @@ -886,16 +907,46 @@ msgstr "" #: DB:work_attribute_type_allowed_value/value:109 msgctxt "work_attribute_type_allowed_value" msgid "Hēmavati" -msgstr "" +msgstr "Hēmavati" #: DB:label_type/name:9 msgctxt "label_type" msgid "Imprint" msgstr "" +#: DB:series_type/description:5 +msgctxt "series_type" +msgid "Indicates that the series is a work catalogue." +msgstr "" + +#: DB:series_type/description:3 +msgctxt "series_type" +msgid "Indicates that the series is of recordings." +msgstr "" + +#: DB:series_type/description:1 +msgctxt "series_type" +msgid "Indicates that the series is of release groups." +msgstr "" + +#: DB:series_type/description:2 +msgctxt "series_type" +msgid "Indicates that the series is of releases." +msgstr "" + +#: DB:series_type/description:4 +msgctxt "series_type" +msgid "Indicates that the series is of works." +msgstr "" + #: DB:place_type/name:5 msgctxt "place_type" msgid "Indoor arena" +msgstr "Indendørs arena" + +#: DB:instrument_alias_type/name:1 +msgctxt "alias_type" +msgid "Instrument name" msgstr "" #: DB:release_group_secondary_type/name:4 @@ -906,32 +957,32 @@ msgstr "Interview" #: DB:work_attribute_type/name:3 msgctxt "work_attribute_type" msgid "JASRAC ID" -msgstr "" +msgstr "JASRAC-id" #: DB:work_attribute_type_allowed_value/value:114 msgctxt "work_attribute_type_allowed_value" msgid "Jaganmōhini" -msgstr "" +msgstr "Jaganmōhini" #: DB:work_attribute_type_allowed_value/value:115 msgctxt "work_attribute_type_allowed_value" msgid "Janaranjani" -msgstr "" +msgstr "Janaranjani" #: DB:work_attribute_type_allowed_value/value:116 msgctxt "work_attribute_type_allowed_value" msgid "Jaya manōhari" -msgstr "" +msgstr "Jaya manōhari" #: DB:work_attribute_type_allowed_value/value:117 msgctxt "work_attribute_type_allowed_value" msgid "Jayantasēna" -msgstr "" +msgstr "Jayantasēna" #: DB:work_attribute_type_allowed_value/value:118 msgctxt "work_attribute_type_allowed_value" msgid "Jayantaśrī" -msgstr "" +msgstr "Jayantaśrī" #: DB:release_packaging/name:1 msgctxt "release_packaging" @@ -941,122 +992,122 @@ msgstr "" #: DB:work_attribute_type_allowed_value/value:119 msgctxt "work_attribute_type_allowed_value" msgid "Jhankāradhvani" -msgstr "" +msgstr "Jhankāradhvani" #: DB:work_attribute_type_allowed_value/value:120 msgctxt "work_attribute_type_allowed_value" msgid "Jingala" -msgstr "" +msgstr "Jingala" #: DB:work_attribute_type_allowed_value/value:124 msgctxt "work_attribute_type_allowed_value" msgid "Jyōti svarūpiṇi" -msgstr "" +msgstr "Jyōti svarūpiṇi" #: DB:work_attribute_type_allowed_value/value:121 msgctxt "work_attribute_type_allowed_value" msgid "Jōg" -msgstr "" +msgstr "Jōg" #: DB:work_attribute_type_allowed_value/value:122 msgctxt "work_attribute_type_allowed_value" msgid "Jōgiya" -msgstr "" +msgstr "Jōgiya" #: DB:work_attribute_type_allowed_value/value:123 msgctxt "work_attribute_type_allowed_value" msgid "Jōnpuri" -msgstr "" +msgstr "Jōnpuri" #: DB:work_attribute_type/name:11 msgctxt "work_attribute_type" msgid "KOMCA ID" -msgstr "" +msgstr "KOMCA-id" #: DB:work_attribute_type_allowed_value/value:128 msgctxt "work_attribute_type_allowed_value" msgid "Kalgaḍa" -msgstr "" +msgstr "Kalgaḍa" #: DB:work_attribute_type_allowed_value/value:130 msgctxt "work_attribute_type_allowed_value" msgid "Kalyāṇi" -msgstr "" +msgstr "Kalyāṇi" #: DB:work_attribute_type_allowed_value/value:127 msgctxt "work_attribute_type_allowed_value" msgid "Kalāvati" -msgstr "" +msgstr "Kalāvati" #: DB:work_attribute_type_allowed_value/value:131 msgctxt "work_attribute_type_allowed_value" msgid "Kamalāmanōhari" -msgstr "" +msgstr "Kamalāmanōhari" #: DB:work_attribute_type_allowed_value/value:133 msgctxt "work_attribute_type_allowed_value" msgid "Kamās" -msgstr "" +msgstr "Kamās" #: DB:work_attribute_type_allowed_value/value:137 msgctxt "work_attribute_type_allowed_value" msgid "Kannaḍa gaula" -msgstr "" +msgstr "Kannaḍa gaula" #: DB:work_attribute_type_allowed_value/value:141 msgctxt "work_attribute_type_allowed_value" msgid "Karaharapriya" -msgstr "" +msgstr "Karaharapriya" #: DB:work_attribute_type_allowed_value/value:142 msgctxt "work_attribute_type_allowed_value" msgid "Karṇaranjani" -msgstr "" +msgstr "Karṇaranjani" #: DB:work_attribute_type_allowed_value/value:143 msgctxt "work_attribute_type_allowed_value" msgid "Karṇāṭaka behāg" -msgstr "" +msgstr "Karṇāṭaka behāg" #: DB:work_attribute_type_allowed_value/value:144 msgctxt "work_attribute_type_allowed_value" msgid "Karṇāṭaka dēvagāndhāri" -msgstr "" +msgstr "Karṇāṭaka dēvagāndhāri" #: DB:work_attribute_type_allowed_value/value:145 msgctxt "work_attribute_type_allowed_value" msgid "Karṇāṭaka kāpi" -msgstr "" +msgstr "Karṇāṭaka kāpi" #: DB:work_attribute_type_allowed_value/value:146 msgctxt "work_attribute_type_allowed_value" msgid "Karṇāṭaka śudda sāvēri" -msgstr "" +msgstr "Karṇāṭaka śudda sāvēri" #: DB:work_attribute_type_allowed_value/value:147 msgctxt "work_attribute_type_allowed_value" msgid "Kathanakutūhalaṁ" -msgstr "" +msgstr "Kathanakutūhalaṁ" #: DB:work_attribute_type_allowed_value/value:129 msgctxt "work_attribute_type_allowed_value" msgid "Kaḷyāṇa vasantaṁ" -msgstr "" +msgstr "Kaḷyāṇa vasantaṁ" #: DB:work_attribute_type_allowed_value/value:125 msgctxt "work_attribute_type_allowed_value" msgid "Kaḷā sāvēri" -msgstr "" +msgstr "Kaḷā sāvēri" #: DB:work_attribute_type_allowed_value/value:126 msgctxt "work_attribute_type_allowed_value" msgid "Kaḷānidhi" -msgstr "" +msgstr "Kaḷānidhi" #: DB:work_attribute_type_allowed_value/value:150 msgctxt "work_attribute_type_allowed_value" msgid "Kedāraṁ" -msgstr "" +msgstr "Kedāraṁ" #: DB:release_packaging/name:6 msgctxt "release_packaging" @@ -1066,132 +1117,132 @@ msgstr "" #: DB:work_attribute_type/name:1 msgctxt "work_attribute_type" msgid "Key" -msgstr "" +msgstr "toneart" #: DB:work_attribute_type_allowed_value/value:282 msgctxt "work_attribute_type_allowed_value" msgid "Khaṇḍa chāpu" -msgstr "" +msgstr "Khaṇḍa chāpu" #: DB:work_attribute_type_allowed_value/value:293 msgctxt "work_attribute_type_allowed_value" msgid "Khaṇḍa-jāti tripuṭa" -msgstr "" +msgstr "Khaṇḍa-jāti tripuṭa" #: DB:work_attribute_type_allowed_value/value:294 msgctxt "work_attribute_type_allowed_value" msgid "Khaṇḍa-jāti ēka" -msgstr "" +msgstr "Khaṇḍa-jāti ēka" #: DB:work_attribute_type_allowed_value/value:155 msgctxt "work_attribute_type_allowed_value" msgid "Kuntalavarāḷi" -msgstr "" +msgstr "Kuntalavarāḷi" #: DB:work_attribute_type_allowed_value/value:156 msgctxt "work_attribute_type_allowed_value" msgid "Kurinji" -msgstr "" +msgstr "Kurinji" #: DB:work_attribute_type_allowed_value/value:132 msgctxt "work_attribute_type_allowed_value" msgid "Kāmaranjani" -msgstr "" +msgstr "Kāmaranjani" #: DB:work_attribute_type_allowed_value/value:134 msgctxt "work_attribute_type_allowed_value" msgid "Kāmavardani/Pantuvarāḷi" -msgstr "" +msgstr "Kāmavardani/Pantuvarāḷi" #: DB:work_attribute_type_allowed_value/value:136 msgctxt "work_attribute_type_allowed_value" msgid "Kānaḍa" -msgstr "" +msgstr "Kānaḍa" #: DB:work_attribute_type_allowed_value/value:138 msgctxt "work_attribute_type_allowed_value" msgid "Kāntāmaṇi" -msgstr "" +msgstr "Kāntāmaṇi" #: DB:work_attribute_type_allowed_value/value:139 msgctxt "work_attribute_type_allowed_value" msgid "Kāpi" -msgstr "" +msgstr "Kāpi" #: DB:work_attribute_type_allowed_value/value:140 msgctxt "work_attribute_type_allowed_value" msgid "Kāpi nārāyaṇi" -msgstr "" +msgstr "Kāpi nārāyaṇi" #: DB:work_attribute_type_allowed_value/value:148 msgctxt "work_attribute_type_allowed_value" msgid "Kāvaḍicindu" -msgstr "" +msgstr "Kāvaḍicindu" #: DB:work_attribute_type_allowed_value/value:135 msgctxt "work_attribute_type_allowed_value" msgid "Kāṁbhōji" -msgstr "" +msgstr "Kāṁbhōji" #: DB:work_attribute_type_allowed_value/value:149 msgctxt "work_attribute_type_allowed_value" msgid "Kēdāragauḷa" -msgstr "" +msgstr "Kēdāragauḷa" #: DB:work_attribute_type_allowed_value/value:152 msgctxt "work_attribute_type_allowed_value" msgid "Kīravāṇi" -msgstr "" +msgstr "Kīravāṇi" #: DB:work_attribute_type_allowed_value/value:151 msgctxt "work_attribute_type_allowed_value" msgid "Kīraṇāvaḷi" -msgstr "" +msgstr "Kīraṇāvaḷi" #: DB:work_attribute_type_allowed_value/value:153 msgctxt "work_attribute_type_allowed_value" msgid "Kōkiladhvani" -msgstr "" +msgstr "Kōkiladhvani" #: DB:work_attribute_type_allowed_value/value:154 msgctxt "work_attribute_type_allowed_value" msgid "Kōkilapriya" -msgstr "" +msgstr "Kōkilapriya" #: DB:label_alias_type/name:1 msgctxt "alias_type" msgid "Label name" -msgstr "" +msgstr "selskabsnavn" #: DB:work_attribute_type_allowed_value/value:157 msgctxt "work_attribute_type_allowed_value" msgid "Lalita" -msgstr "" +msgstr "Lalita" #: DB:work_attribute_type_allowed_value/value:158 msgctxt "work_attribute_type_allowed_value" msgid "Lalita pancamaṁ" -msgstr "" +msgstr "Lalita pancamaṁ" #: DB:medium_format/name:5 msgctxt "medium_format" msgid "LaserDisc" -msgstr "" +msgstr "LaserDisc" #: DB:work_attribute_type_allowed_value/value:159 msgctxt "work_attribute_type_allowed_value" msgid "Latāngi" -msgstr "" +msgstr "Latāngi" #: DB:work_attribute_type_allowed_value/value:160 msgctxt "work_attribute_type_allowed_value" msgid "Lavāngi" -msgstr "" +msgstr "Lavāngi" #: DB:artist_alias_type/name:2 msgctxt "alias_type" msgid "Legal name" -msgstr "Juridisk navn" +msgstr "juridisk navn" #: DB:cover_art_archive.art_type/name:12 msgctxt "cover_art_type" @@ -1201,47 +1252,47 @@ msgstr "" #: DB:release_group_secondary_type/name:6 msgctxt "release_group_secondary_type" msgid "Live" -msgstr "" +msgstr "live" #: DB:work_attribute_type_allowed_value/value:161 msgctxt "work_attribute_type_allowed_value" msgid "Madhyamā varāḷi" -msgstr "" +msgstr "Madhyamā varāḷi" #: DB:work_attribute_type_allowed_value/value:162 msgctxt "work_attribute_type_allowed_value" msgid "Madhyamāvati" -msgstr "" +msgstr "Madhyamāvati" #: DB:work_attribute_type_allowed_value/value:295 msgctxt "work_attribute_type_allowed_value" msgid "Madhyādi" -msgstr "" +msgstr "Madhyādi" #: DB:work_type/name:7 msgctxt "work_type" msgid "Madrigal" -msgstr "" +msgstr "madrigal" #: DB:work_attribute_type_allowed_value/value:163 msgctxt "work_attribute_type_allowed_value" msgid "Maduvanti" -msgstr "" +msgstr "Maduvanti" #: DB:work_attribute_type_allowed_value/value:296 msgctxt "work_attribute_type_allowed_value" msgid "Mahālakṣmi" -msgstr "" +msgstr "Mahālakṣmi" #: DB:work_attribute_type_allowed_value/value:164 msgctxt "work_attribute_type_allowed_value" msgid "Malahari" -msgstr "" +msgstr "Malahari" #: DB:work_attribute_type_allowed_value/value:166 msgctxt "work_attribute_type_allowed_value" msgid "Malayamārutaṁ" -msgstr "" +msgstr "Malayamārutaṁ" #: DB:gender/name:1 msgctxt "gender" @@ -1251,47 +1302,52 @@ msgstr "" #: DB:work_attribute_type_allowed_value/value:168 msgctxt "work_attribute_type_allowed_value" msgid "Mandāri" +msgstr "Mandāri" + +#: DB:series_ordering_type/name:2 +msgctxt "series_ordering_type" +msgid "Manual" msgstr "" #: DB:work_attribute_type_allowed_value/value:172 msgctxt "work_attribute_type_allowed_value" msgid "Manōranjani" -msgstr "" +msgstr "Manōranjani" #: DB:work_type/name:8 msgctxt "work_type" msgid "Mass" -msgstr "" +msgstr "messe" #: DB:work_attribute_type_allowed_value/value:175 msgctxt "work_attribute_type_allowed_value" msgid "Mayūra sāvēri" -msgstr "" +msgstr "Mayūra sāvēri" #: DB:work_attribute_type_allowed_value/value:170 msgctxt "work_attribute_type_allowed_value" msgid "Maṇirangu" -msgstr "" +msgstr "Maṇirangu" #: DB:work_attribute_type_allowed_value/value:286 msgctxt "work_attribute_type_allowed_value" msgid "Maṭhya" -msgstr "" +msgstr "Maṭhya" #: DB:cover_art_archive.art_type/name:4 msgctxt "cover_art_type" msgid "Medium" -msgstr "Medie" +msgstr "medie" #: DB:work_attribute_type_allowed_value/value:176 msgctxt "work_attribute_type_allowed_value" msgid "Meghamalhar" -msgstr "" +msgstr "Meghamalhar" #: DB:medium_format/name:6 msgctxt "medium_format" msgid "MiniDisc" -msgstr "" +msgstr "MiniDisc" #: DB:release_group_secondary_type/name:9 msgctxt "release_group_secondary_type" @@ -1301,132 +1357,132 @@ msgstr "" #: DB:work_attribute_type_allowed_value/value:281 msgctxt "work_attribute_type_allowed_value" msgid "Miśra chāpu" -msgstr "" +msgstr "Miśra chāpu" #: DB:work_attribute_type_allowed_value/value:177 msgctxt "work_attribute_type_allowed_value" msgid "Miśra khamāj" -msgstr "" +msgstr "Miśra khamāj" #: DB:work_attribute_type_allowed_value/value:178 msgctxt "work_attribute_type_allowed_value" msgid "Miśra pahāḍi" -msgstr "" +msgstr "Miśra pahāḍi" #: DB:work_attribute_type_allowed_value/value:180 msgctxt "work_attribute_type_allowed_value" msgid "Miśra yaman" -msgstr "" +msgstr "Miśra yaman" #: DB:work_attribute_type_allowed_value/value:179 msgctxt "work_attribute_type_allowed_value" msgid "Miśra śivaranjani" -msgstr "" +msgstr "Miśra śivaranjani" #: DB:work_attribute_type_allowed_value/value:287 msgctxt "work_attribute_type_allowed_value" msgid "Miśra-jāti jhaṁpe" -msgstr "" +msgstr "Miśra-jāti jhaṁpe" #: DB:work_attribute_type_allowed_value/value:297 msgctxt "work_attribute_type_allowed_value" msgid "Miśra-jāti rūpaka" -msgstr "" +msgstr "Miśra-jāti rūpaka" #: DB:work_type/name:9 msgctxt "work_type" msgid "Motet" -msgstr "" +msgstr "motet" #: DB:work_attribute_type_allowed_value/value:183 msgctxt "work_attribute_type_allowed_value" msgid "Mukhāri" -msgstr "" +msgstr "Mukhāri" #: DB:area_type/name:4 msgctxt "area_type" msgid "Municipality" -msgstr "" +msgstr "kommune" #: DB:work_attribute_type/name:12 msgctxt "work_attribute_type" msgid "MÜST ID" -msgstr "" +msgstr "MÜST-id" #: DB:work_attribute_type_allowed_value/value:167 msgctxt "work_attribute_type_allowed_value" msgid "Mānavati" -msgstr "" +msgstr "Mānavati" #: DB:work_attribute_type_allowed_value/value:171 msgctxt "work_attribute_type_allowed_value" msgid "Mānji" -msgstr "" +msgstr "Mānji" #: DB:work_attribute_type_allowed_value/value:169 msgctxt "work_attribute_type_allowed_value" msgid "Mānḍu" -msgstr "" +msgstr "Mānḍu" #: DB:work_attribute_type_allowed_value/value:173 msgctxt "work_attribute_type_allowed_value" msgid "Mārgahindōḷaṁ" -msgstr "" +msgstr "Mārgahindōḷaṁ" #: DB:work_attribute_type_allowed_value/value:174 msgctxt "work_attribute_type_allowed_value" msgid "Māyāmāḷavagauḷa" -msgstr "" +msgstr "Māyāmāḷavagauḷa" #: DB:work_attribute_type_allowed_value/value:165 msgctxt "work_attribute_type_allowed_value" msgid "Māḷavi" -msgstr "" +msgstr "Māḷavi" #: DB:work_attribute_type_allowed_value/value:181 msgctxt "work_attribute_type_allowed_value" msgid "Mōhan kaḷyāṇi" -msgstr "" +msgstr "Mōhan kaḷyāṇi" #: DB:work_attribute_type_allowed_value/value:182 msgctxt "work_attribute_type_allowed_value" msgid "Mōhanaṁ" -msgstr "" +msgstr "Mōhanaṁ" #: DB:work_attribute_type_allowed_value/value:196 msgctxt "work_attribute_type_allowed_value" msgid "Navarasa kannaḍa" -msgstr "" +msgstr "Navarasa kannaḍa" #: DB:work_attribute_type_allowed_value/value:195 msgctxt "work_attribute_type_allowed_value" msgid "Navarāgamālika" -msgstr "" +msgstr "Navarāgamālika" #: DB:work_attribute_type_allowed_value/value:197 msgctxt "work_attribute_type_allowed_value" msgid "Navrōj" -msgstr "" +msgstr "Navrōj" #: DB:work_attribute_type_allowed_value/value:187 msgctxt "work_attribute_type_allowed_value" msgid "Naḷinakānti" -msgstr "" +msgstr "Naḷinakānti" #: DB:work_attribute_type_allowed_value/value:191 msgctxt "work_attribute_type_allowed_value" msgid "Naṭabhairavi" -msgstr "" +msgstr "Naṭabhairavi" #: DB:work_attribute_type_allowed_value/value:194 msgctxt "work_attribute_type_allowed_value" msgid "Naṭanārāyaṇi" -msgstr "" +msgstr "Naṭanārāyaṇi" #: DB:work_attribute_type_allowed_value/value:200 msgctxt "work_attribute_type_allowed_value" msgid "Nirōṣita" -msgstr "" +msgstr "Nirōṣita" #: DB:release_packaging/name:7 msgctxt "release_packaging" @@ -1436,57 +1492,57 @@ msgstr "" #: DB:work_attribute_type_allowed_value/value:184 msgctxt "work_attribute_type_allowed_value" msgid "Nādanāmakriya" -msgstr "" +msgstr "Nādanāmakriya" #: DB:work_attribute_type_allowed_value/value:185 msgctxt "work_attribute_type_allowed_value" msgid "Nāga gāndhāri" -msgstr "" +msgstr "Nāga gāndhāri" #: DB:work_attribute_type_allowed_value/value:186 msgctxt "work_attribute_type_allowed_value" msgid "Nāgasvarāvaḷi" -msgstr "" +msgstr "Nāgasvarāvaḷi" #: DB:work_attribute_type_allowed_value/value:188 msgctxt "work_attribute_type_allowed_value" msgid "Nārāyaṇi" -msgstr "" +msgstr "Nārāyaṇi" #: DB:work_attribute_type_allowed_value/value:189 msgctxt "work_attribute_type_allowed_value" msgid "Nāsikabhūṣaṇi" -msgstr "" +msgstr "Nāsikabhūṣaṇi" #: DB:work_attribute_type_allowed_value/value:198 msgctxt "work_attribute_type_allowed_value" msgid "Nāyaki" -msgstr "" +msgstr "Nāyaki" #: DB:work_attribute_type_allowed_value/value:190 msgctxt "work_attribute_type_allowed_value" msgid "Nāṭa" -msgstr "" +msgstr "Nāṭa" #: DB:work_attribute_type_allowed_value/value:192 msgctxt "work_attribute_type_allowed_value" msgid "Nāṭakapriya" -msgstr "" +msgstr "Nāṭakapriya" #: DB:work_attribute_type_allowed_value/value:193 msgctxt "work_attribute_type_allowed_value" msgid "Nāṭakurinji" -msgstr "" +msgstr "Nāṭakurinji" #: DB:work_attribute_type_allowed_value/value:199 msgctxt "work_attribute_type_allowed_value" msgid "Nīlāṁbari" -msgstr "" +msgstr "Nīlāṁbari" #: DB:cover_art_archive.art_type/name:5 msgctxt "cover_art_type" msgid "Obi" -msgstr "" +msgstr "obi" #: DB:release_status/name:1 msgctxt "release_status" @@ -1496,22 +1552,22 @@ msgstr "Officiel" #: DB:work_type/name:10 msgctxt "work_type" msgid "Opera" -msgstr "" +msgstr "opera" #: DB:work_type/name:24 msgctxt "work_type" msgid "Operetta" -msgstr "" +msgstr "operette" #: DB:work_type/name:11 msgctxt "work_type" msgid "Oratorio" -msgstr "" +msgstr "oratorium" #: DB:artist_type/name:5 msgctxt "artist_type" msgid "Orchestra" -msgstr "" +msgstr "orkester" #: DB:label_type/name:4 msgctxt "label_type" @@ -1526,7 +1582,7 @@ msgstr "" #: DB:place_type/name:3 msgctxt "place_type" msgid "Other" -msgstr "" +msgstr "andet" #: DB:release_group_primary_type/name:11 msgctxt "release_group_primary_type" @@ -1551,32 +1607,42 @@ msgstr "" #: DB:cover_art_archive.art_type/name:8 msgctxt "cover_art_type" msgid "Other" -msgstr "Andet" +msgstr "andet" + +#: DB:instrument_type/name:5 +msgctxt "instrument_type" +msgid "Other instrument" +msgstr "" #: DB:work_type/name:12 msgctxt "work_type" msgid "Overture" -msgstr "" +msgstr "ouverture" #: DB:work_attribute_type_allowed_value/value:203 msgctxt "work_attribute_type_allowed_value" msgid "Paras" -msgstr "" +msgstr "Paras" #: DB:work_type/name:13 msgctxt "work_type" msgid "Partita" -msgstr "" +msgstr "partita" #: DB:work_attribute_type_allowed_value/value:204 msgctxt "work_attribute_type_allowed_value" msgid "Paṭdīp" +msgstr "Paṭdīp" + +#: DB:instrument_type/name:3 +msgctxt "instrument_type" +msgid "Percussion instrument" msgstr "" #: DB:artist_type/name:1 msgctxt "artist_type" msgid "Person" -msgstr "" +msgstr "person" #: DB:medium_format/name:15 msgctxt "medium_format" @@ -1586,17 +1652,17 @@ msgstr "" #: DB:place_alias_type/name:1 msgctxt "alias_type" msgid "Place name" -msgstr "" +msgstr "stednavn" #: DB:work_type/name:21 msgctxt "work_type" msgid "Poem" -msgstr "" +msgstr "digt" #: DB:cover_art_archive.art_type/name:11 msgctxt "cover_art_type" msgid "Poster" -msgstr "" +msgstr "plakat" #: DB:label_type/name:3 msgctxt "label_type" @@ -1611,12 +1677,12 @@ msgstr "" #: DB:work_type/name:23 msgctxt "work_type" msgid "Prose" -msgstr "" +msgstr "prosa" #: DB:release_status/name:4 msgctxt "release_status" msgid "Pseudo-Release" -msgstr "" +msgstr "pseudo-udgivelse" #: DB:label_type/name:7 msgctxt "label_type" @@ -1626,77 +1692,92 @@ msgstr "" #: DB:work_attribute_type_allowed_value/value:205 msgctxt "work_attribute_type_allowed_value" msgid "Puṇṇāgavarāḷi" -msgstr "" +msgstr "Puṇṇāgavarāḷi" #: DB:work_attribute_type_allowed_value/value:209 msgctxt "work_attribute_type_allowed_value" msgid "Puṣpalatika" -msgstr "" +msgstr "Puṣpalatika" #: DB:work_attribute_type_allowed_value/value:202 msgctxt "work_attribute_type_allowed_value" msgid "Pālamanjari" -msgstr "" +msgstr "Pālamanjari" #: DB:work_attribute_type_allowed_value/value:201 msgctxt "work_attribute_type_allowed_value" msgid "Pāḍi" -msgstr "" +msgstr "Pāḍi" #: DB:work_attribute_type_allowed_value/value:208 msgctxt "work_attribute_type_allowed_value" msgid "Pūrvi" -msgstr "" +msgstr "Pūrvi" #: DB:work_attribute_type_allowed_value/value:206 msgctxt "work_attribute_type_allowed_value" msgid "Pūrṇa ṣaḍjaṁ" -msgstr "" +msgstr "Pūrṇa ṣaḍjaṁ" #: DB:work_attribute_type_allowed_value/value:207 msgctxt "work_attribute_type_allowed_value" msgid "Pūrṇacandrika" -msgstr "" +msgstr "Pūrṇacandrika" #: DB:work_type/name:14 msgctxt "work_type" msgid "Quartet" -msgstr "" +msgstr "kvartet" #: DB:work_attribute_type_allowed_value/value:215 msgctxt "work_attribute_type_allowed_value" msgid "Ranjani" -msgstr "" +msgstr "Ranjani" #: DB:work_attribute_type_allowed_value/value:216 msgctxt "work_attribute_type_allowed_value" msgid "Rasikapriya" -msgstr "" +msgstr "Rasikapriya" #: DB:work_attribute_type_allowed_value/value:217 msgctxt "work_attribute_type_allowed_value" msgid "Ratipati priya" -msgstr "" +msgstr "Ratipati priya" #: DB:work_attribute_type_allowed_value/value:218 msgctxt "work_attribute_type_allowed_value" msgid "Ravicandrika" +msgstr "Ravicandrika" + +#: DB:series_type/name:3 +msgctxt "series_type" +msgid "Recording" msgstr "" #: DB:medium_format/name:10 msgctxt "medium_format" msgid "Reel-to-reel" -msgstr "" +msgstr "spolebånd" #: DB:label_type/name:6 msgctxt "label_type" msgid "Reissue Production" msgstr "" +#: DB:series_type/name:2 +msgctxt "series_type" +msgid "Release" +msgstr "" + +#: DB:series_type/name:1 +msgctxt "series_type" +msgid "Release group" +msgstr "" + #: DB:release_group_secondary_type/name:7 msgctxt "release_group_secondary_type" msgid "Remix" -msgstr "Remix" +msgstr "remix" #: DB:label_type/name:8 msgctxt "label_type" @@ -1706,7 +1787,7 @@ msgstr "" #: DB:work_attribute_type_allowed_value/value:222 msgctxt "work_attribute_type_allowed_value" msgid "Rudrapriya" -msgstr "" +msgstr "Rudrapriya" #: DB:work_attribute_type/name:4 msgctxt "work_attribute_type" @@ -1716,134 +1797,140 @@ msgstr "" #: DB:work_attribute_type_allowed_value/value:210 msgctxt "work_attribute_type_allowed_value" msgid "Rāgamālika" -msgstr "" +msgstr "Rāgamālika" #: DB:work_attribute_type_allowed_value/value:211 msgctxt "work_attribute_type_allowed_value" msgid "Rāgavinōdini" -msgstr "" +msgstr "Rāgavinōdini" #: DB:work_attribute_type_allowed_value/value:212 msgctxt "work_attribute_type_allowed_value" msgid "Rāgēśrī" -msgstr "" +msgstr "Rāgēśrī" #: DB:work_attribute_type_allowed_value/value:213 msgctxt "work_attribute_type_allowed_value" msgid "Rāma manōhari" -msgstr "" +msgstr "Rāma manōhari" #: DB:work_attribute_type_allowed_value/value:214 msgctxt "work_attribute_type_allowed_value" msgid "Rāmapriya" -msgstr "" +msgstr "Rāmapriya" #: DB:work_attribute_type_allowed_value/value:219 msgctxt "work_attribute_type_allowed_value" msgid "Rēvagupti" -msgstr "" +msgstr "Rēvagupti" #: DB:work_attribute_type_allowed_value/value:220 msgctxt "work_attribute_type_allowed_value" msgid "Rēvati" -msgstr "" +msgstr "Rēvati" #: DB:work_attribute_type_allowed_value/value:221 msgctxt "work_attribute_type_allowed_value" msgid "Rītigauḷa" -msgstr "" +msgstr "Rītigauḷa" #: DB:work_attribute_type_allowed_value/value:280 msgctxt "work_attribute_type_allowed_value" msgid "Rūpaka" -msgstr "" +msgstr "Rūpaka" #: DB:medium_format/name:3 msgctxt "medium_format" msgid "SACD" -msgstr "" +msgstr "SACD" #: DB:work_attribute_type/name:8 msgctxt "work_attribute_type" msgid "SESAC ID" -msgstr "" +msgstr "SESAC-id" #: DB:medium_format/name:36 msgctxt "medium_format" msgid "SHM-CD" -msgstr "" +msgstr "SHM-CD" #: DB:work_attribute_type/name:10 msgctxt "work_attribute_type" msgid "SOCAN ID" -msgstr "" +msgstr "SOCAN-id" #: DB:medium_format/name:23 msgctxt "medium_format" msgid "SVCD" -msgstr "" +msgstr "SVCD" #: DB:work_attribute_type_allowed_value/value:223 msgctxt "work_attribute_type_allowed_value" msgid "Sahānā" -msgstr "" +msgstr "Sahānā" #: DB:work_attribute_type_allowed_value/value:231 msgctxt "work_attribute_type_allowed_value" msgid "Sarasvati" -msgstr "" +msgstr "Sarasvati" #: DB:work_attribute_type_allowed_value/value:232 msgctxt "work_attribute_type_allowed_value" msgid "Sarasvatī manōhari" -msgstr "" +msgstr "Sarasvatī manōhari" #: DB:work_attribute_type_allowed_value/value:230 msgctxt "work_attribute_type_allowed_value" msgid "Sarasāngi" -msgstr "" +msgstr "Sarasāngi" #: DB:work_attribute_type_allowed_value/value:233 msgctxt "work_attribute_type_allowed_value" msgid "Saurāṣtraṁ" -msgstr "" +msgstr "Saurāṣtraṁ" #: DB:artist_alias_type/name:3 DB:label_alias_type/name:2 #: DB:place_alias_type/name:2 DB:work_alias_type/name:2 -#: DB:area_alias_type/name:3 +#: DB:area_alias_type/name:3 DB:instrument_alias_type/name:2 +#: DB:series_alias_type/name:2 msgctxt "alias_type" msgid "Search hint" -msgstr "Søgetip" +msgstr "søgetip" #: DB:work_attribute_type_allowed_value/value:235 msgctxt "work_attribute_type_allowed_value" msgid "Sencuruṭṭi" +msgstr "Sencuruṭṭi" + +#: DB:series_alias_type/name:1 +msgctxt "alias_type" +msgid "Series name" msgstr "" #: DB:work_attribute_type_allowed_value/value:236 msgctxt "work_attribute_type_allowed_value" msgid "Simhavāhini" -msgstr "" +msgstr "Simhavāhini" #: DB:work_attribute_type_allowed_value/value:237 msgctxt "work_attribute_type_allowed_value" msgid "Simhēndra madhyamaṁ" -msgstr "" +msgstr "Simhēndra madhyamaṁ" #: DB:work_attribute_type_allowed_value/value:238 msgctxt "work_attribute_type_allowed_value" msgid "Sindhubhairavi" -msgstr "" +msgstr "Sindhubhairavi" #: DB:work_attribute_type_allowed_value/value:239 msgctxt "work_attribute_type_allowed_value" msgid "Sindhumandāri" -msgstr "" +msgstr "Sindhumandāri" #: DB:release_group_primary_type/name:2 msgctxt "release_group_primary_type" msgid "Single" -msgstr "Single" +msgstr "single" #: DB:release_packaging/name:2 msgctxt "release_packaging" @@ -1858,16 +1945,23 @@ msgstr "" #: DB:work_type/name:5 msgctxt "work_type" msgid "Sonata" -msgstr "" +msgstr "sonate" #: DB:work_type/name:17 msgctxt "work_type" msgid "Song" -msgstr "Sang" +msgstr "sang" #: DB:work_type/name:15 msgctxt "work_type" msgid "Song-cycle" +msgstr "sangcyklus" + +#: DB:series_ordering_type/description:1 +msgctxt "series_ordering_type" +msgid "" +"Sorts the items in the series automatically by their number attributes, " +"using a natural sort order." msgstr "" #: DB:work_type/name:22 @@ -1883,62 +1977,67 @@ msgstr "" #: DB:cover_art_archive.art_type/name:6 msgctxt "cover_art_type" msgid "Spine" -msgstr "" +msgstr "ryg" #: DB:release_group_secondary_type/name:3 msgctxt "release_group_secondary_type" msgid "Spokenword" -msgstr "" +msgstr "spokenword" #: DB:place_type/name:4 msgctxt "place_type" msgid "Stadium" -msgstr "" +msgstr "stadion" #: DB:cover_art_archive.art_type/name:10 msgctxt "cover_art_type" msgid "Sticker" +msgstr "klistermærke" + +#: DB:instrument_type/name:2 +msgctxt "instrument_type" +msgid "String instrument" msgstr "" #: DB:place_type/name:1 msgctxt "place_type" msgid "Studio" -msgstr "" +msgstr "studie" #: DB:area_type/name:2 msgctxt "area_type" msgid "Subdivision" -msgstr "" +msgstr "underafdeling" #: DB:work_attribute_type_allowed_value/value:244 msgctxt "work_attribute_type_allowed_value" msgid "Sucaritra" -msgstr "" +msgstr "Sucaritra" #: DB:work_type/name:6 msgctxt "work_type" msgid "Suite" -msgstr "" +msgstr "suite" #: DB:work_attribute_type_allowed_value/value:250 msgctxt "work_attribute_type_allowed_value" msgid "Sumanēśaranjani" -msgstr "" +msgstr "Sumanēśaranjani" #: DB:work_attribute_type_allowed_value/value:251 msgctxt "work_attribute_type_allowed_value" msgid "Sunādavinōdini" -msgstr "" +msgstr "Sunādavinōdini" #: DB:work_attribute_type_allowed_value/value:252 msgctxt "work_attribute_type_allowed_value" msgid "Suraṭi" -msgstr "" +msgstr "Suraṭi" #: DB:work_attribute_type_allowed_value/value:253 msgctxt "work_attribute_type_allowed_value" msgid "Svararanjani" -msgstr "" +msgstr "Svararanjani" #: DB:work_type/name:18 msgctxt "work_type" @@ -1948,52 +2047,52 @@ msgstr "" #: DB:work_type/name:16 msgctxt "work_type" msgid "Symphony" -msgstr "Symfoni" +msgstr "symfoni" #: DB:work_attribute_type_allowed_value/value:224 msgctxt "work_attribute_type_allowed_value" msgid "Sālaga bhairavi" -msgstr "" +msgstr "Sālaga bhairavi" #: DB:work_attribute_type_allowed_value/value:225 msgctxt "work_attribute_type_allowed_value" msgid "Sāma" -msgstr "" +msgstr "Sāma" #: DB:work_attribute_type_allowed_value/value:229 msgctxt "work_attribute_type_allowed_value" msgid "Sāranga" -msgstr "" +msgstr "Sāranga" #: DB:work_attribute_type_allowed_value/value:228 msgctxt "work_attribute_type_allowed_value" msgid "Sārāmati" -msgstr "" +msgstr "Sārāmati" #: DB:work_attribute_type_allowed_value/value:234 msgctxt "work_attribute_type_allowed_value" msgid "Sāvēri" -msgstr "" +msgstr "Sāvēri" #: DB:work_attribute_type_allowed_value/value:255 msgctxt "work_attribute_type_allowed_value" msgid "Tanarūpi" -msgstr "" +msgstr "Tanarūpi" #: DB:work_attribute_type_allowed_value/value:256 msgctxt "work_attribute_type_allowed_value" msgid "Tillāng" -msgstr "" +msgstr "Tillāng" #: DB:work_attribute_type_allowed_value/value:288 msgctxt "work_attribute_type_allowed_value" msgid "Tiśra-jāti tripuṭa" -msgstr "" +msgstr "Tiśra-jāti tripuṭa" #: DB:work_attribute_type_allowed_value/value:284 msgctxt "work_attribute_type_allowed_value" msgid "Tiśra-jāti ēka" -msgstr "" +msgstr "Tiśra-jāti ēka" #: DB:cover_art_archive.art_type/name:7 msgctxt "cover_art_type" @@ -2013,12 +2112,12 @@ msgstr "" #: DB:work_attribute_type_allowed_value/value:257 msgctxt "work_attribute_type_allowed_value" msgid "Tōḍi" -msgstr "" +msgstr "Tōḍi" #: DB:medium_format/name:28 msgctxt "medium_format" msgid "UMD" -msgstr "" +msgstr "UMD" #: DB:medium_format/name:26 msgctxt "medium_format" @@ -2028,12 +2127,12 @@ msgstr "" #: DB:work_attribute_type_allowed_value/value:258 msgctxt "work_attribute_type_allowed_value" msgid "Udaya ravicandrika" -msgstr "" +msgstr "Udaya ravicandrika" #: DB:medium_format/name:22 msgctxt "medium_format" msgid "VCD" -msgstr "" +msgstr "VCD" #: DB:medium_format/name:21 msgctxt "medium_format" @@ -2043,107 +2142,107 @@ msgstr "VHS" #: DB:work_attribute_type_allowed_value/value:261 msgctxt "work_attribute_type_allowed_value" msgid "Vakuḷābharaṇaṁ" -msgstr "" +msgstr "Vakuḷābharaṇaṁ" #: DB:work_attribute_type_allowed_value/value:262 msgctxt "work_attribute_type_allowed_value" msgid "Valaji" -msgstr "" +msgstr "Valaji" #: DB:work_attribute_type_allowed_value/value:263 msgctxt "work_attribute_type_allowed_value" msgid "Vandanadhāriṇi" -msgstr "" +msgstr "Vandanadhāriṇi" #: DB:work_attribute_type_allowed_value/value:265 msgctxt "work_attribute_type_allowed_value" msgid "Varamu" -msgstr "" +msgstr "Varamu" #: DB:work_attribute_type_allowed_value/value:264 msgctxt "work_attribute_type_allowed_value" msgid "Varāḷi" -msgstr "" +msgstr "Varāḷi" #: DB:work_attribute_type_allowed_value/value:266 msgctxt "work_attribute_type_allowed_value" msgid "Varṇarūpini" -msgstr "" +msgstr "Varṇarūpini" #: DB:work_attribute_type_allowed_value/value:267 msgctxt "work_attribute_type_allowed_value" msgid "Vasanta" -msgstr "" +msgstr "Vasanta" #: DB:work_attribute_type_allowed_value/value:268 msgctxt "work_attribute_type_allowed_value" msgid "Vasanta varāḷi" -msgstr "" +msgstr "Vasanta varāḷi" #: DB:work_attribute_type_allowed_value/value:269 msgctxt "work_attribute_type_allowed_value" msgid "Vasantabhairavi" -msgstr "" +msgstr "Vasantabhairavi" #: DB:place_type/name:2 msgctxt "place_type" msgid "Venue" -msgstr "" +msgstr "spillested" #: DB:medium_format/name:32 msgctxt "medium_format" msgid "Videotape" -msgstr "Videobånd" +msgstr "videobånd" #: DB:work_attribute_type_allowed_value/value:273 msgctxt "work_attribute_type_allowed_value" msgid "Vijayanagari" -msgstr "" +msgstr "Vijayanagari" #: DB:work_attribute_type_allowed_value/value:274 msgctxt "work_attribute_type_allowed_value" msgid "Vijayasarasvati" -msgstr "" +msgstr "Vijayasarasvati" #: DB:work_attribute_type_allowed_value/value:275 msgctxt "work_attribute_type_allowed_value" msgid "Vijayaśrī" -msgstr "" +msgstr "Vijayaśrī" #: DB:medium_format/name:7 msgctxt "medium_format" msgid "Vinyl" -msgstr "Vinyl" +msgstr "vinyl" #: DB:work_attribute_type_allowed_value/value:259 msgctxt "work_attribute_type_allowed_value" msgid "Vācaspati" -msgstr "" +msgstr "Vācaspati" #: DB:work_attribute_type_allowed_value/value:260 msgctxt "work_attribute_type_allowed_value" msgid "Vāgadīśvari" -msgstr "" +msgstr "Vāgadīśvari" #: DB:work_attribute_type_allowed_value/value:270 msgctxt "work_attribute_type_allowed_value" msgid "Vāsanti" -msgstr "" +msgstr "Vāsanti" #: DB:work_attribute_type_allowed_value/value:271 msgctxt "work_attribute_type_allowed_value" msgid "Vēgavāhiṇi" -msgstr "" +msgstr "Vēgavāhiṇi" #: DB:work_attribute_type_allowed_value/value:272 msgctxt "work_attribute_type_allowed_value" msgid "Vēlāvali" -msgstr "" +msgstr "Vēlāvali" #: DB:work_attribute_type_allowed_value/value:276 msgctxt "work_attribute_type_allowed_value" msgid "Vīra vasantaṁ" -msgstr "" +msgstr "Vīra vasantaṁ" #: DB:cover_art_archive.art_type/name:13 msgctxt "cover_art_type" @@ -2153,144 +2252,154 @@ msgstr "" #: DB:medium_format/name:14 msgctxt "medium_format" msgid "Wax Cylinder" +msgstr "voksrulle" + +#: DB:instrument_type/name:1 +msgctxt "instrument_type" +msgid "Wind instrument" +msgstr "" + +#: DB:series_type/name:4 +msgctxt "series_type" +msgid "Work" msgstr "" #: DB:work_alias_type/name:1 msgctxt "alias_type" msgid "Work name" -msgstr "" +msgstr "værknavn" #: DB:work_attribute_type_allowed_value/value:277 msgctxt "work_attribute_type_allowed_value" msgid "Yadukula kāṁbōji" -msgstr "" +msgstr "Yadukula kāṁbōji" #: DB:work_attribute_type_allowed_value/value:278 msgctxt "work_attribute_type_allowed_value" msgid "Yamuna kalyāṇi" -msgstr "" +msgstr "Yamuna kalyāṇi" #: DB:work_type/name:19 msgctxt "work_type" msgid "Zarzuela" -msgstr "" +msgstr "zarzuela" #: DB:medium_format/name:27 msgctxt "medium_format" msgid "slotMusic" -msgstr "" +msgstr "slotMusic" #: DB:work_type/name:20 msgctxt "work_type" msgid "Étude" -msgstr "" +msgstr "etude" #: DB:work_attribute_type_allowed_value/value:35 msgctxt "work_attribute_type_allowed_value" msgid "Ābhēri" -msgstr "" +msgstr "Ābhēri" #: DB:work_attribute_type_allowed_value/value:36 msgctxt "work_attribute_type_allowed_value" msgid "Ābhōgi" -msgstr "" +msgstr "Ābhōgi" #: DB:work_attribute_type_allowed_value/value:279 msgctxt "work_attribute_type_allowed_value" msgid "Ādi" -msgstr "" +msgstr "Ādi" #: DB:work_attribute_type_allowed_value/value:290 msgctxt "work_attribute_type_allowed_value" msgid "Ādi (Tiśra naḍe)" -msgstr "" +msgstr "Ādi (Tiśra naḍe)" #: DB:work_attribute_type_allowed_value/value:37 msgctxt "work_attribute_type_allowed_value" msgid "Āhir bhairav" -msgstr "" +msgstr "Āhir bhairav" #: DB:work_attribute_type_allowed_value/value:38 msgctxt "work_attribute_type_allowed_value" msgid "Āhiri" -msgstr "" +msgstr "Āhiri" #: DB:work_attribute_type_allowed_value/value:41 msgctxt "work_attribute_type_allowed_value" msgid "Ānandabhairavi" -msgstr "" +msgstr "Ānandabhairavi" #: DB:work_attribute_type_allowed_value/value:42 msgctxt "work_attribute_type_allowed_value" msgid "Āndōḷika" -msgstr "" +msgstr "Āndōḷika" #: DB:work_attribute_type_allowed_value/value:43 msgctxt "work_attribute_type_allowed_value" msgid "Ārabhi" -msgstr "" +msgstr "Ārabhi" #: DB:work_attribute_type_allowed_value/value:283 msgctxt "work_attribute_type_allowed_value" msgid "Ēka" -msgstr "" +msgstr "Ēka" #: DB:work_attribute_type_allowed_value/value:226 msgctxt "work_attribute_type_allowed_value" msgid "Śankarābharaṇaṁ" -msgstr "" +msgstr "Śankarābharaṇaṁ" #: DB:work_attribute_type_allowed_value/value:240 msgctxt "work_attribute_type_allowed_value" msgid "Śivaranjani" -msgstr "" +msgstr "Śivaranjani" #: DB:work_attribute_type_allowed_value/value:241 msgctxt "work_attribute_type_allowed_value" msgid "Śrī" -msgstr "" +msgstr "Śrī" #: DB:work_attribute_type_allowed_value/value:242 msgctxt "work_attribute_type_allowed_value" msgid "Śrīranjani" -msgstr "" +msgstr "Śrīranjani" #: DB:work_attribute_type_allowed_value/value:243 msgctxt "work_attribute_type_allowed_value" msgid "Śubhapantuvarāḷi" -msgstr "" +msgstr "Śubhapantuvarāḷi" #: DB:work_attribute_type_allowed_value/value:245 msgctxt "work_attribute_type_allowed_value" msgid "Śudda sārang" -msgstr "" +msgstr "Śudda sārang" #: DB:work_attribute_type_allowed_value/value:246 msgctxt "work_attribute_type_allowed_value" msgid "Śudda sāvēri" -msgstr "" +msgstr "Śudda sāvēri" #: DB:work_attribute_type_allowed_value/value:247 msgctxt "work_attribute_type_allowed_value" msgid "Śuddadhanyāsi" -msgstr "" +msgstr "Śuddadhanyāsi" #: DB:work_attribute_type_allowed_value/value:248 msgctxt "work_attribute_type_allowed_value" msgid "Śuddasīmantini" -msgstr "" +msgstr "Śuddasīmantini" #: DB:work_attribute_type_allowed_value/value:254 msgctxt "work_attribute_type_allowed_value" msgid "Śyāṁ kaḷyāṇ" -msgstr "" +msgstr "Śyāṁ kaḷyāṇ" #: DB:work_attribute_type_allowed_value/value:249 msgctxt "work_attribute_type_allowed_value" msgid "Śūḷiṇi" -msgstr "" +msgstr "Śūḷiṇi" #: DB:work_attribute_type_allowed_value/value:227 msgctxt "work_attribute_type_allowed_value" msgid "Ṣanmukhapriya" -msgstr "" +msgstr "Ṣanmukhapriya" diff --git a/po/attributes/de.po b/po/attributes/de.po index f50a4732e..aa503c9e5 100644 --- a/po/attributes/de.po +++ b/po/attributes/de.po @@ -19,8 +19,8 @@ msgid "" msgstr "" "Project-Id-Version: MusicBrainz\n" -"PO-Revision-Date: 2014-04-25 17:13+0000\n" -"Last-Translator: nikki\n" +"PO-Revision-Date: 2014-05-20 19:03+0000\n" +"Last-Translator: Ian McEwen \n" "Language-Team: German (http://www.transifex.com/projects/p/musicbrainz/language/de/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -93,6 +93,11 @@ msgctxt "release_group_primary_type" msgid "Album" msgstr "Album" +#: DB:series_ordering_type/description:2 +msgctxt "series_ordering_type" +msgid "Allows for manually setting the position of each item in the series." +msgstr "Erlaubt es, die Position jedes Elements in der Serie manuell zu setzen." + #: DB:work_attribute_type_allowed_value/value:40 msgctxt "work_attribute_type_allowed_value" msgid "Amṛtavarṣiṇi" @@ -133,6 +138,11 @@ msgctxt "release_group_secondary_type" msgid "Audiobook" msgstr "Hörbuch" +#: DB:series_ordering_type/name:1 +msgctxt "series_ordering_type" +msgid "Automatic" +msgstr "Automatisch" + #: DB:work_attribute_type_allowed_value/value:45 msgctxt "work_attribute_type_allowed_value" msgid "Aṭāna" @@ -393,6 +403,11 @@ msgctxt "release_packaging" msgid "Cassette Case" msgstr "Kassettenhülle" +#: DB:series_type/name:5 +msgctxt "series_type" +msgid "Catalogue" +msgstr "" + #: DB:work_attribute_type_allowed_value/value:291 msgctxt "work_attribute_type_allowed_value" msgid "Caturaśra-jāti jhaṁpe" @@ -571,7 +586,7 @@ msgstr "Digitales Medium" #: DB:release_packaging/name:13 msgctxt "release_packaging" msgid "Discbox Slider" -msgstr "" +msgstr "Discbox-Slider" #: DB:label_type/name:1 msgctxt "label_type" @@ -663,6 +678,11 @@ msgctxt "release_group_primary_type" msgid "EP" msgstr "EP" +#: DB:instrument_type/name:4 +msgctxt "instrument_type" +msgid "Electronic instrument" +msgstr "Elektronisches Instrument" + #: DB:work_attribute_type_allowed_value/value:17 msgctxt "work_attribute_type_allowed_value" msgid "F major" @@ -691,7 +711,7 @@ msgstr "fis-Moll" #: DB:release_packaging/name:10 msgctxt "release_packaging" msgid "Fatbox" -msgstr "" +msgstr "Fatbox" #: DB:gender/name:2 msgctxt "gender" @@ -756,7 +776,7 @@ msgstr "Garuḍadhvani" #: DB:release_packaging/name:12 msgctxt "release_packaging" msgid "Gatefold Cover" -msgstr "" +msgstr "Gatefold-Cover" #: DB:work_attribute_type_allowed_value/value:99 msgctxt "work_attribute_type_allowed_value" @@ -908,10 +928,40 @@ msgctxt "label_type" msgid "Imprint" msgstr "Imprint" +#: DB:series_type/description:5 +msgctxt "series_type" +msgid "Indicates that the series is a work catalogue." +msgstr "" + +#: DB:series_type/description:3 +msgctxt "series_type" +msgid "Indicates that the series is of recordings." +msgstr "Gibt an, dass die Serie aus Aufnahmen besteht." + +#: DB:series_type/description:1 +msgctxt "series_type" +msgid "Indicates that the series is of release groups." +msgstr "Gibt an, dass die Serie aus Veröffentlichungsgruppen besteht." + +#: DB:series_type/description:2 +msgctxt "series_type" +msgid "Indicates that the series is of releases." +msgstr "Gibt an, dass die Serie aus Veröffentlichungen besteht." + +#: DB:series_type/description:4 +msgctxt "series_type" +msgid "Indicates that the series is of works." +msgstr "Gibt an, dass die Serie aus Werken besteht." + #: DB:place_type/name:5 msgctxt "place_type" msgid "Indoor arena" -msgstr "" +msgstr "Veranstaltungshalle" + +#: DB:instrument_alias_type/name:1 +msgctxt "alias_type" +msgid "Instrument name" +msgstr "Instrumentenname" #: DB:release_group_secondary_type/name:4 msgctxt "release_group_secondary_type" @@ -1268,6 +1318,11 @@ msgctxt "work_attribute_type_allowed_value" msgid "Mandāri" msgstr "Mandāri" +#: DB:series_ordering_type/name:2 +msgctxt "series_ordering_type" +msgid "Manual" +msgstr "Manuell" + #: DB:work_attribute_type_allowed_value/value:172 msgctxt "work_attribute_type_allowed_value" msgid "Manōranjani" @@ -1568,6 +1623,11 @@ msgctxt "cover_art_type" msgid "Other" msgstr "Anderes" +#: DB:instrument_type/name:5 +msgctxt "instrument_type" +msgid "Other instrument" +msgstr "Anderes Instrument" + #: DB:work_type/name:12 msgctxt "work_type" msgid "Overture" @@ -1588,6 +1648,11 @@ msgctxt "work_attribute_type_allowed_value" msgid "Paṭdīp" msgstr "Paṭdīp" +#: DB:instrument_type/name:3 +msgctxt "instrument_type" +msgid "Percussion instrument" +msgstr "Schlaginstrument" + #: DB:artist_type/name:1 msgctxt "artist_type" msgid "Person" @@ -1698,6 +1763,11 @@ msgctxt "work_attribute_type_allowed_value" msgid "Ravicandrika" msgstr "Ravicandrika" +#: DB:series_type/name:3 +msgctxt "series_type" +msgid "Recording" +msgstr "Aufnahme" + #: DB:medium_format/name:10 msgctxt "medium_format" msgid "Reel-to-reel" @@ -1708,6 +1778,16 @@ msgctxt "label_type" msgid "Reissue Production" msgstr "Neuaufleger" +#: DB:series_type/name:2 +msgctxt "series_type" +msgid "Release" +msgstr "Veröffentlichung" + +#: DB:series_type/name:1 +msgctxt "series_type" +msgid "Release group" +msgstr "Veröffentlichungsgruppe" + #: DB:release_group_secondary_type/name:7 msgctxt "release_group_secondary_type" msgid "Remix" @@ -1825,7 +1905,8 @@ msgstr "Saurāṣtraṁ" #: DB:artist_alias_type/name:3 DB:label_alias_type/name:2 #: DB:place_alias_type/name:2 DB:work_alias_type/name:2 -#: DB:area_alias_type/name:3 +#: DB:area_alias_type/name:3 DB:instrument_alias_type/name:2 +#: DB:series_alias_type/name:2 msgctxt "alias_type" msgid "Search hint" msgstr "Suchverbesserung" @@ -1835,6 +1916,11 @@ msgctxt "work_attribute_type_allowed_value" msgid "Sencuruṭṭi" msgstr "Sencuruṭṭi" +#: DB:series_alias_type/name:1 +msgctxt "alias_type" +msgid "Series name" +msgstr "Serienname" + #: DB:work_attribute_type_allowed_value/value:236 msgctxt "work_attribute_type_allowed_value" msgid "Simhavāhini" @@ -1885,6 +1971,13 @@ msgctxt "work_type" msgid "Song-cycle" msgstr "Liederzyklus" +#: DB:series_ordering_type/description:1 +msgctxt "series_ordering_type" +msgid "" +"Sorts the items in the series automatically by their number attributes, " +"using a natural sort order." +msgstr "Sortiert die Elemente in der Serie automatisch nach ihren Nummer-Attributen in der natürlichen Sortierreihenfolge." + #: DB:work_type/name:22 msgctxt "work_type" msgid "Soundtrack" @@ -1915,6 +2008,11 @@ msgctxt "cover_art_type" msgid "Sticker" msgstr "Aufkleber" +#: DB:instrument_type/name:2 +msgctxt "instrument_type" +msgid "String instrument" +msgstr "Saiteninstrument" + #: DB:place_type/name:1 msgctxt "place_type" msgid "Studio" @@ -2170,6 +2268,16 @@ msgctxt "medium_format" msgid "Wax Cylinder" msgstr "Wachszylinder" +#: DB:instrument_type/name:1 +msgctxt "instrument_type" +msgid "Wind instrument" +msgstr "Blasinstrument" + +#: DB:series_type/name:4 +msgctxt "series_type" +msgid "Work" +msgstr "Werk" + #: DB:work_alias_type/name:1 msgctxt "alias_type" msgid "Work name" diff --git a/po/attributes/el.po b/po/attributes/el.po index ee37a93a9..ae0242752 100644 --- a/po/attributes/el.po +++ b/po/attributes/el.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: MusicBrainz\n" -"PO-Revision-Date: 2014-04-17 03:31+0000\n" +"PO-Revision-Date: 2014-05-20 19:03+0000\n" "Last-Translator: Ian McEwen \n" "Language-Team: Greek (http://www.transifex.com/projects/p/musicbrainz/language/el/)\n" "MIME-Version: 1.0\n" @@ -82,6 +82,11 @@ msgctxt "release_group_primary_type" msgid "Album" msgstr "Δίσκος" +#: DB:series_ordering_type/description:2 +msgctxt "series_ordering_type" +msgid "Allows for manually setting the position of each item in the series." +msgstr "" + #: DB:work_attribute_type_allowed_value/value:40 msgctxt "work_attribute_type_allowed_value" msgid "Amṛtavarṣiṇi" @@ -122,6 +127,11 @@ msgctxt "release_group_secondary_type" msgid "Audiobook" msgstr "Βιβλίο ήχου" +#: DB:series_ordering_type/name:1 +msgctxt "series_ordering_type" +msgid "Automatic" +msgstr "" + #: DB:work_attribute_type_allowed_value/value:45 msgctxt "work_attribute_type_allowed_value" msgid "Aṭāna" @@ -382,6 +392,11 @@ msgctxt "release_packaging" msgid "Cassette Case" msgstr "" +#: DB:series_type/name:5 +msgctxt "series_type" +msgid "Catalogue" +msgstr "" + #: DB:work_attribute_type_allowed_value/value:291 msgctxt "work_attribute_type_allowed_value" msgid "Caturaśra-jāti jhaṁpe" @@ -652,6 +667,11 @@ msgctxt "release_group_primary_type" msgid "EP" msgstr "EP" +#: DB:instrument_type/name:4 +msgctxt "instrument_type" +msgid "Electronic instrument" +msgstr "" + #: DB:work_attribute_type_allowed_value/value:17 msgctxt "work_attribute_type_allowed_value" msgid "F major" @@ -897,11 +917,41 @@ msgctxt "label_type" msgid "Imprint" msgstr "" +#: DB:series_type/description:5 +msgctxt "series_type" +msgid "Indicates that the series is a work catalogue." +msgstr "" + +#: DB:series_type/description:3 +msgctxt "series_type" +msgid "Indicates that the series is of recordings." +msgstr "" + +#: DB:series_type/description:1 +msgctxt "series_type" +msgid "Indicates that the series is of release groups." +msgstr "" + +#: DB:series_type/description:2 +msgctxt "series_type" +msgid "Indicates that the series is of releases." +msgstr "" + +#: DB:series_type/description:4 +msgctxt "series_type" +msgid "Indicates that the series is of works." +msgstr "" + #: DB:place_type/name:5 msgctxt "place_type" msgid "Indoor arena" msgstr "" +#: DB:instrument_alias_type/name:1 +msgctxt "alias_type" +msgid "Instrument name" +msgstr "" + #: DB:release_group_secondary_type/name:4 msgctxt "release_group_secondary_type" msgid "Interview" @@ -1257,6 +1307,11 @@ msgctxt "work_attribute_type_allowed_value" msgid "Mandāri" msgstr "" +#: DB:series_ordering_type/name:2 +msgctxt "series_ordering_type" +msgid "Manual" +msgstr "" + #: DB:work_attribute_type_allowed_value/value:172 msgctxt "work_attribute_type_allowed_value" msgid "Manōranjani" @@ -1557,6 +1612,11 @@ msgctxt "cover_art_type" msgid "Other" msgstr "Άλλο" +#: DB:instrument_type/name:5 +msgctxt "instrument_type" +msgid "Other instrument" +msgstr "" + #: DB:work_type/name:12 msgctxt "work_type" msgid "Overture" @@ -1577,6 +1637,11 @@ msgctxt "work_attribute_type_allowed_value" msgid "Paṭdīp" msgstr "" +#: DB:instrument_type/name:3 +msgctxt "instrument_type" +msgid "Percussion instrument" +msgstr "" + #: DB:artist_type/name:1 msgctxt "artist_type" msgid "Person" @@ -1687,6 +1752,11 @@ msgctxt "work_attribute_type_allowed_value" msgid "Ravicandrika" msgstr "" +#: DB:series_type/name:3 +msgctxt "series_type" +msgid "Recording" +msgstr "" + #: DB:medium_format/name:10 msgctxt "medium_format" msgid "Reel-to-reel" @@ -1697,6 +1767,16 @@ msgctxt "label_type" msgid "Reissue Production" msgstr "Παραγωγή επανακυκλοφορίας" +#: DB:series_type/name:2 +msgctxt "series_type" +msgid "Release" +msgstr "" + +#: DB:series_type/name:1 +msgctxt "series_type" +msgid "Release group" +msgstr "" + #: DB:release_group_secondary_type/name:7 msgctxt "release_group_secondary_type" msgid "Remix" @@ -1814,7 +1894,8 @@ msgstr "" #: DB:artist_alias_type/name:3 DB:label_alias_type/name:2 #: DB:place_alias_type/name:2 DB:work_alias_type/name:2 -#: DB:area_alias_type/name:3 +#: DB:area_alias_type/name:3 DB:instrument_alias_type/name:2 +#: DB:series_alias_type/name:2 msgctxt "alias_type" msgid "Search hint" msgstr "Συμβουλή αναζήτησης" @@ -1824,6 +1905,11 @@ msgctxt "work_attribute_type_allowed_value" msgid "Sencuruṭṭi" msgstr "" +#: DB:series_alias_type/name:1 +msgctxt "alias_type" +msgid "Series name" +msgstr "" + #: DB:work_attribute_type_allowed_value/value:236 msgctxt "work_attribute_type_allowed_value" msgid "Simhavāhini" @@ -1874,6 +1960,13 @@ msgctxt "work_type" msgid "Song-cycle" msgstr "Κύκλος τραγουδιών" +#: DB:series_ordering_type/description:1 +msgctxt "series_ordering_type" +msgid "" +"Sorts the items in the series automatically by their number attributes, " +"using a natural sort order." +msgstr "" + #: DB:work_type/name:22 msgctxt "work_type" msgid "Soundtrack" @@ -1904,6 +1997,11 @@ msgctxt "cover_art_type" msgid "Sticker" msgstr "Αυτοκόλλητο" +#: DB:instrument_type/name:2 +msgctxt "instrument_type" +msgid "String instrument" +msgstr "" + #: DB:place_type/name:1 msgctxt "place_type" msgid "Studio" @@ -2159,6 +2257,16 @@ msgctxt "medium_format" msgid "Wax Cylinder" msgstr "Κύλινδρος κεριού" +#: DB:instrument_type/name:1 +msgctxt "instrument_type" +msgid "Wind instrument" +msgstr "" + +#: DB:series_type/name:4 +msgctxt "series_type" +msgid "Work" +msgstr "" + #: DB:work_alias_type/name:1 msgctxt "alias_type" msgid "Work name" diff --git a/po/attributes/en_CA.po b/po/attributes/en_CA.po index 8361adfe2..ab6987034 100644 --- a/po/attributes/en_CA.po +++ b/po/attributes/en_CA.po @@ -6,7 +6,7 @@ msgid "" msgstr "" "Project-Id-Version: MusicBrainz\n" -"PO-Revision-Date: 2014-04-17 03:31+0000\n" +"PO-Revision-Date: 2014-05-20 19:03+0000\n" "Last-Translator: Ian McEwen \n" "Language-Team: English (Canada) (http://www.transifex.com/projects/p/musicbrainz/language/en_CA/)\n" "MIME-Version: 1.0\n" @@ -80,6 +80,11 @@ msgctxt "release_group_primary_type" msgid "Album" msgstr "Album" +#: DB:series_ordering_type/description:2 +msgctxt "series_ordering_type" +msgid "Allows for manually setting the position of each item in the series." +msgstr "" + #: DB:work_attribute_type_allowed_value/value:40 msgctxt "work_attribute_type_allowed_value" msgid "Amṛtavarṣiṇi" @@ -120,6 +125,11 @@ msgctxt "release_group_secondary_type" msgid "Audiobook" msgstr "Audiobook" +#: DB:series_ordering_type/name:1 +msgctxt "series_ordering_type" +msgid "Automatic" +msgstr "" + #: DB:work_attribute_type_allowed_value/value:45 msgctxt "work_attribute_type_allowed_value" msgid "Aṭāna" @@ -380,6 +390,11 @@ msgctxt "release_packaging" msgid "Cassette Case" msgstr "Cassette Case" +#: DB:series_type/name:5 +msgctxt "series_type" +msgid "Catalogue" +msgstr "" + #: DB:work_attribute_type_allowed_value/value:291 msgctxt "work_attribute_type_allowed_value" msgid "Caturaśra-jāti jhaṁpe" @@ -650,6 +665,11 @@ msgctxt "release_group_primary_type" msgid "EP" msgstr "EP" +#: DB:instrument_type/name:4 +msgctxt "instrument_type" +msgid "Electronic instrument" +msgstr "" + #: DB:work_attribute_type_allowed_value/value:17 msgctxt "work_attribute_type_allowed_value" msgid "F major" @@ -895,11 +915,41 @@ msgctxt "label_type" msgid "Imprint" msgstr "" +#: DB:series_type/description:5 +msgctxt "series_type" +msgid "Indicates that the series is a work catalogue." +msgstr "" + +#: DB:series_type/description:3 +msgctxt "series_type" +msgid "Indicates that the series is of recordings." +msgstr "" + +#: DB:series_type/description:1 +msgctxt "series_type" +msgid "Indicates that the series is of release groups." +msgstr "" + +#: DB:series_type/description:2 +msgctxt "series_type" +msgid "Indicates that the series is of releases." +msgstr "" + +#: DB:series_type/description:4 +msgctxt "series_type" +msgid "Indicates that the series is of works." +msgstr "" + #: DB:place_type/name:5 msgctxt "place_type" msgid "Indoor arena" msgstr "" +#: DB:instrument_alias_type/name:1 +msgctxt "alias_type" +msgid "Instrument name" +msgstr "" + #: DB:release_group_secondary_type/name:4 msgctxt "release_group_secondary_type" msgid "Interview" @@ -1255,6 +1305,11 @@ msgctxt "work_attribute_type_allowed_value" msgid "Mandāri" msgstr "" +#: DB:series_ordering_type/name:2 +msgctxt "series_ordering_type" +msgid "Manual" +msgstr "" + #: DB:work_attribute_type_allowed_value/value:172 msgctxt "work_attribute_type_allowed_value" msgid "Manōranjani" @@ -1555,6 +1610,11 @@ msgctxt "cover_art_type" msgid "Other" msgstr "Other" +#: DB:instrument_type/name:5 +msgctxt "instrument_type" +msgid "Other instrument" +msgstr "" + #: DB:work_type/name:12 msgctxt "work_type" msgid "Overture" @@ -1575,6 +1635,11 @@ msgctxt "work_attribute_type_allowed_value" msgid "Paṭdīp" msgstr "" +#: DB:instrument_type/name:3 +msgctxt "instrument_type" +msgid "Percussion instrument" +msgstr "" + #: DB:artist_type/name:1 msgctxt "artist_type" msgid "Person" @@ -1685,6 +1750,11 @@ msgctxt "work_attribute_type_allowed_value" msgid "Ravicandrika" msgstr "" +#: DB:series_type/name:3 +msgctxt "series_type" +msgid "Recording" +msgstr "" + #: DB:medium_format/name:10 msgctxt "medium_format" msgid "Reel-to-reel" @@ -1695,6 +1765,16 @@ msgctxt "label_type" msgid "Reissue Production" msgstr "Reissue Production" +#: DB:series_type/name:2 +msgctxt "series_type" +msgid "Release" +msgstr "" + +#: DB:series_type/name:1 +msgctxt "series_type" +msgid "Release group" +msgstr "" + #: DB:release_group_secondary_type/name:7 msgctxt "release_group_secondary_type" msgid "Remix" @@ -1812,7 +1892,8 @@ msgstr "" #: DB:artist_alias_type/name:3 DB:label_alias_type/name:2 #: DB:place_alias_type/name:2 DB:work_alias_type/name:2 -#: DB:area_alias_type/name:3 +#: DB:area_alias_type/name:3 DB:instrument_alias_type/name:2 +#: DB:series_alias_type/name:2 msgctxt "alias_type" msgid "Search hint" msgstr "Search hint" @@ -1822,6 +1903,11 @@ msgctxt "work_attribute_type_allowed_value" msgid "Sencuruṭṭi" msgstr "" +#: DB:series_alias_type/name:1 +msgctxt "alias_type" +msgid "Series name" +msgstr "" + #: DB:work_attribute_type_allowed_value/value:236 msgctxt "work_attribute_type_allowed_value" msgid "Simhavāhini" @@ -1872,6 +1958,13 @@ msgctxt "work_type" msgid "Song-cycle" msgstr "Song-cycle" +#: DB:series_ordering_type/description:1 +msgctxt "series_ordering_type" +msgid "" +"Sorts the items in the series automatically by their number attributes, " +"using a natural sort order." +msgstr "" + #: DB:work_type/name:22 msgctxt "work_type" msgid "Soundtrack" @@ -1902,6 +1995,11 @@ msgctxt "cover_art_type" msgid "Sticker" msgstr "Sticker" +#: DB:instrument_type/name:2 +msgctxt "instrument_type" +msgid "String instrument" +msgstr "" + #: DB:place_type/name:1 msgctxt "place_type" msgid "Studio" @@ -2157,6 +2255,16 @@ msgctxt "medium_format" msgid "Wax Cylinder" msgstr "Wax Cylinder" +#: DB:instrument_type/name:1 +msgctxt "instrument_type" +msgid "Wind instrument" +msgstr "" + +#: DB:series_type/name:4 +msgctxt "series_type" +msgid "Work" +msgstr "" + #: DB:work_alias_type/name:1 msgctxt "alias_type" msgid "Work name" diff --git a/po/attributes/en_GB.po b/po/attributes/en_GB.po index 3cbdf17f8..cc1dc959e 100644 --- a/po/attributes/en_GB.po +++ b/po/attributes/en_GB.po @@ -4,7 +4,7 @@ msgid "" msgstr "" "Project-Id-Version: MusicBrainz\n" -"PO-Revision-Date: 2014-04-17 03:31+0000\n" +"PO-Revision-Date: 2014-05-20 19:03+0000\n" "Last-Translator: Ian McEwen \n" "Language-Team: English (United Kingdom) (http://www.transifex.com/projects/p/musicbrainz/language/en_GB/)\n" "MIME-Version: 1.0\n" @@ -78,6 +78,11 @@ msgctxt "release_group_primary_type" msgid "Album" msgstr "Album" +#: DB:series_ordering_type/description:2 +msgctxt "series_ordering_type" +msgid "Allows for manually setting the position of each item in the series." +msgstr "" + #: DB:work_attribute_type_allowed_value/value:40 msgctxt "work_attribute_type_allowed_value" msgid "Amṛtavarṣiṇi" @@ -118,6 +123,11 @@ msgctxt "release_group_secondary_type" msgid "Audiobook" msgstr "Audiobook" +#: DB:series_ordering_type/name:1 +msgctxt "series_ordering_type" +msgid "Automatic" +msgstr "" + #: DB:work_attribute_type_allowed_value/value:45 msgctxt "work_attribute_type_allowed_value" msgid "Aṭāna" @@ -378,6 +388,11 @@ msgctxt "release_packaging" msgid "Cassette Case" msgstr "" +#: DB:series_type/name:5 +msgctxt "series_type" +msgid "Catalogue" +msgstr "" + #: DB:work_attribute_type_allowed_value/value:291 msgctxt "work_attribute_type_allowed_value" msgid "Caturaśra-jāti jhaṁpe" @@ -648,6 +663,11 @@ msgctxt "release_group_primary_type" msgid "EP" msgstr "EP" +#: DB:instrument_type/name:4 +msgctxt "instrument_type" +msgid "Electronic instrument" +msgstr "" + #: DB:work_attribute_type_allowed_value/value:17 msgctxt "work_attribute_type_allowed_value" msgid "F major" @@ -893,11 +913,41 @@ msgctxt "label_type" msgid "Imprint" msgstr "" +#: DB:series_type/description:5 +msgctxt "series_type" +msgid "Indicates that the series is a work catalogue." +msgstr "" + +#: DB:series_type/description:3 +msgctxt "series_type" +msgid "Indicates that the series is of recordings." +msgstr "" + +#: DB:series_type/description:1 +msgctxt "series_type" +msgid "Indicates that the series is of release groups." +msgstr "" + +#: DB:series_type/description:2 +msgctxt "series_type" +msgid "Indicates that the series is of releases." +msgstr "" + +#: DB:series_type/description:4 +msgctxt "series_type" +msgid "Indicates that the series is of works." +msgstr "" + #: DB:place_type/name:5 msgctxt "place_type" msgid "Indoor arena" msgstr "" +#: DB:instrument_alias_type/name:1 +msgctxt "alias_type" +msgid "Instrument name" +msgstr "" + #: DB:release_group_secondary_type/name:4 msgctxt "release_group_secondary_type" msgid "Interview" @@ -1253,6 +1303,11 @@ msgctxt "work_attribute_type_allowed_value" msgid "Mandāri" msgstr "" +#: DB:series_ordering_type/name:2 +msgctxt "series_ordering_type" +msgid "Manual" +msgstr "" + #: DB:work_attribute_type_allowed_value/value:172 msgctxt "work_attribute_type_allowed_value" msgid "Manōranjani" @@ -1553,6 +1608,11 @@ msgctxt "cover_art_type" msgid "Other" msgstr "Other" +#: DB:instrument_type/name:5 +msgctxt "instrument_type" +msgid "Other instrument" +msgstr "" + #: DB:work_type/name:12 msgctxt "work_type" msgid "Overture" @@ -1573,6 +1633,11 @@ msgctxt "work_attribute_type_allowed_value" msgid "Paṭdīp" msgstr "" +#: DB:instrument_type/name:3 +msgctxt "instrument_type" +msgid "Percussion instrument" +msgstr "" + #: DB:artist_type/name:1 msgctxt "artist_type" msgid "Person" @@ -1683,6 +1748,11 @@ msgctxt "work_attribute_type_allowed_value" msgid "Ravicandrika" msgstr "" +#: DB:series_type/name:3 +msgctxt "series_type" +msgid "Recording" +msgstr "" + #: DB:medium_format/name:10 msgctxt "medium_format" msgid "Reel-to-reel" @@ -1693,6 +1763,16 @@ msgctxt "label_type" msgid "Reissue Production" msgstr "Reissue Production" +#: DB:series_type/name:2 +msgctxt "series_type" +msgid "Release" +msgstr "" + +#: DB:series_type/name:1 +msgctxt "series_type" +msgid "Release group" +msgstr "" + #: DB:release_group_secondary_type/name:7 msgctxt "release_group_secondary_type" msgid "Remix" @@ -1810,7 +1890,8 @@ msgstr "" #: DB:artist_alias_type/name:3 DB:label_alias_type/name:2 #: DB:place_alias_type/name:2 DB:work_alias_type/name:2 -#: DB:area_alias_type/name:3 +#: DB:area_alias_type/name:3 DB:instrument_alias_type/name:2 +#: DB:series_alias_type/name:2 msgctxt "alias_type" msgid "Search hint" msgstr "Search hint" @@ -1820,6 +1901,11 @@ msgctxt "work_attribute_type_allowed_value" msgid "Sencuruṭṭi" msgstr "" +#: DB:series_alias_type/name:1 +msgctxt "alias_type" +msgid "Series name" +msgstr "" + #: DB:work_attribute_type_allowed_value/value:236 msgctxt "work_attribute_type_allowed_value" msgid "Simhavāhini" @@ -1870,6 +1956,13 @@ msgctxt "work_type" msgid "Song-cycle" msgstr "Song-cycle" +#: DB:series_ordering_type/description:1 +msgctxt "series_ordering_type" +msgid "" +"Sorts the items in the series automatically by their number attributes, " +"using a natural sort order." +msgstr "" + #: DB:work_type/name:22 msgctxt "work_type" msgid "Soundtrack" @@ -1900,6 +1993,11 @@ msgctxt "cover_art_type" msgid "Sticker" msgstr "Sticker" +#: DB:instrument_type/name:2 +msgctxt "instrument_type" +msgid "String instrument" +msgstr "" + #: DB:place_type/name:1 msgctxt "place_type" msgid "Studio" @@ -2155,6 +2253,16 @@ msgctxt "medium_format" msgid "Wax Cylinder" msgstr "Wax Cylinder" +#: DB:instrument_type/name:1 +msgctxt "instrument_type" +msgid "Wind instrument" +msgstr "" + +#: DB:series_type/name:4 +msgctxt "series_type" +msgid "Work" +msgstr "" + #: DB:work_alias_type/name:1 msgctxt "alias_type" msgid "Work name" diff --git a/po/attributes/eo.po b/po/attributes/eo.po index fc771f8d4..631034ce1 100644 --- a/po/attributes/eo.po +++ b/po/attributes/eo.po @@ -5,7 +5,7 @@ msgid "" msgstr "" "Project-Id-Version: MusicBrainz\n" -"PO-Revision-Date: 2014-04-17 03:31+0000\n" +"PO-Revision-Date: 2014-05-20 19:03+0000\n" "Last-Translator: Ian McEwen \n" "Language-Team: Esperanto (http://www.transifex.com/projects/p/musicbrainz/language/eo/)\n" "MIME-Version: 1.0\n" @@ -79,6 +79,11 @@ msgctxt "release_group_primary_type" msgid "Album" msgstr "Albumo" +#: DB:series_ordering_type/description:2 +msgctxt "series_ordering_type" +msgid "Allows for manually setting the position of each item in the series." +msgstr "" + #: DB:work_attribute_type_allowed_value/value:40 msgctxt "work_attribute_type_allowed_value" msgid "Amṛtavarṣiṇi" @@ -119,6 +124,11 @@ msgctxt "release_group_secondary_type" msgid "Audiobook" msgstr "Aŭdlibro" +#: DB:series_ordering_type/name:1 +msgctxt "series_ordering_type" +msgid "Automatic" +msgstr "" + #: DB:work_attribute_type_allowed_value/value:45 msgctxt "work_attribute_type_allowed_value" msgid "Aṭāna" @@ -379,6 +389,11 @@ msgctxt "release_packaging" msgid "Cassette Case" msgstr "" +#: DB:series_type/name:5 +msgctxt "series_type" +msgid "Catalogue" +msgstr "" + #: DB:work_attribute_type_allowed_value/value:291 msgctxt "work_attribute_type_allowed_value" msgid "Caturaśra-jāti jhaṁpe" @@ -649,6 +664,11 @@ msgctxt "release_group_primary_type" msgid "EP" msgstr "EP" +#: DB:instrument_type/name:4 +msgctxt "instrument_type" +msgid "Electronic instrument" +msgstr "" + #: DB:work_attribute_type_allowed_value/value:17 msgctxt "work_attribute_type_allowed_value" msgid "F major" @@ -894,11 +914,41 @@ msgctxt "label_type" msgid "Imprint" msgstr "" +#: DB:series_type/description:5 +msgctxt "series_type" +msgid "Indicates that the series is a work catalogue." +msgstr "" + +#: DB:series_type/description:3 +msgctxt "series_type" +msgid "Indicates that the series is of recordings." +msgstr "" + +#: DB:series_type/description:1 +msgctxt "series_type" +msgid "Indicates that the series is of release groups." +msgstr "" + +#: DB:series_type/description:2 +msgctxt "series_type" +msgid "Indicates that the series is of releases." +msgstr "" + +#: DB:series_type/description:4 +msgctxt "series_type" +msgid "Indicates that the series is of works." +msgstr "" + #: DB:place_type/name:5 msgctxt "place_type" msgid "Indoor arena" msgstr "" +#: DB:instrument_alias_type/name:1 +msgctxt "alias_type" +msgid "Instrument name" +msgstr "" + #: DB:release_group_secondary_type/name:4 msgctxt "release_group_secondary_type" msgid "Interview" @@ -1254,6 +1304,11 @@ msgctxt "work_attribute_type_allowed_value" msgid "Mandāri" msgstr "" +#: DB:series_ordering_type/name:2 +msgctxt "series_ordering_type" +msgid "Manual" +msgstr "" + #: DB:work_attribute_type_allowed_value/value:172 msgctxt "work_attribute_type_allowed_value" msgid "Manōranjani" @@ -1554,6 +1609,11 @@ msgctxt "cover_art_type" msgid "Other" msgstr "" +#: DB:instrument_type/name:5 +msgctxt "instrument_type" +msgid "Other instrument" +msgstr "" + #: DB:work_type/name:12 msgctxt "work_type" msgid "Overture" @@ -1574,6 +1634,11 @@ msgctxt "work_attribute_type_allowed_value" msgid "Paṭdīp" msgstr "" +#: DB:instrument_type/name:3 +msgctxt "instrument_type" +msgid "Percussion instrument" +msgstr "" + #: DB:artist_type/name:1 msgctxt "artist_type" msgid "Person" @@ -1684,6 +1749,11 @@ msgctxt "work_attribute_type_allowed_value" msgid "Ravicandrika" msgstr "" +#: DB:series_type/name:3 +msgctxt "series_type" +msgid "Recording" +msgstr "" + #: DB:medium_format/name:10 msgctxt "medium_format" msgid "Reel-to-reel" @@ -1694,6 +1764,16 @@ msgctxt "label_type" msgid "Reissue Production" msgstr "Reeldona Produktado" +#: DB:series_type/name:2 +msgctxt "series_type" +msgid "Release" +msgstr "" + +#: DB:series_type/name:1 +msgctxt "series_type" +msgid "Release group" +msgstr "" + #: DB:release_group_secondary_type/name:7 msgctxt "release_group_secondary_type" msgid "Remix" @@ -1811,7 +1891,8 @@ msgstr "" #: DB:artist_alias_type/name:3 DB:label_alias_type/name:2 #: DB:place_alias_type/name:2 DB:work_alias_type/name:2 -#: DB:area_alias_type/name:3 +#: DB:area_alias_type/name:3 DB:instrument_alias_type/name:2 +#: DB:series_alias_type/name:2 msgctxt "alias_type" msgid "Search hint" msgstr "Serĉasistado" @@ -1821,6 +1902,11 @@ msgctxt "work_attribute_type_allowed_value" msgid "Sencuruṭṭi" msgstr "" +#: DB:series_alias_type/name:1 +msgctxt "alias_type" +msgid "Series name" +msgstr "" + #: DB:work_attribute_type_allowed_value/value:236 msgctxt "work_attribute_type_allowed_value" msgid "Simhavāhini" @@ -1871,6 +1957,13 @@ msgctxt "work_type" msgid "Song-cycle" msgstr "Kant-ciklo" +#: DB:series_ordering_type/description:1 +msgctxt "series_ordering_type" +msgid "" +"Sorts the items in the series automatically by their number attributes, " +"using a natural sort order." +msgstr "" + #: DB:work_type/name:22 msgctxt "work_type" msgid "Soundtrack" @@ -1901,6 +1994,11 @@ msgctxt "cover_art_type" msgid "Sticker" msgstr "" +#: DB:instrument_type/name:2 +msgctxt "instrument_type" +msgid "String instrument" +msgstr "" + #: DB:place_type/name:1 msgctxt "place_type" msgid "Studio" @@ -2156,6 +2254,16 @@ msgctxt "medium_format" msgid "Wax Cylinder" msgstr "Vaksa cilindro" +#: DB:instrument_type/name:1 +msgctxt "instrument_type" +msgid "Wind instrument" +msgstr "" + +#: DB:series_type/name:4 +msgctxt "series_type" +msgid "Work" +msgstr "" + #: DB:work_alias_type/name:1 msgctxt "alias_type" msgid "Work name" diff --git a/po/attributes/es.po b/po/attributes/es.po index e15d25125..d4e0ca5e5 100644 --- a/po/attributes/es.po +++ b/po/attributes/es.po @@ -18,7 +18,7 @@ msgid "" msgstr "" "Project-Id-Version: MusicBrainz\n" -"PO-Revision-Date: 2014-04-17 03:31+0000\n" +"PO-Revision-Date: 2014-05-20 19:03+0000\n" "Last-Translator: Ian McEwen \n" "Language-Team: Spanish (http://www.transifex.com/projects/p/musicbrainz/language/es/)\n" "MIME-Version: 1.0\n" @@ -92,6 +92,11 @@ msgctxt "release_group_primary_type" msgid "Album" msgstr "Álbum" +#: DB:series_ordering_type/description:2 +msgctxt "series_ordering_type" +msgid "Allows for manually setting the position of each item in the series." +msgstr "" + #: DB:work_attribute_type_allowed_value/value:40 msgctxt "work_attribute_type_allowed_value" msgid "Amṛtavarṣiṇi" @@ -132,6 +137,11 @@ msgctxt "release_group_secondary_type" msgid "Audiobook" msgstr "Audiolibro" +#: DB:series_ordering_type/name:1 +msgctxt "series_ordering_type" +msgid "Automatic" +msgstr "" + #: DB:work_attribute_type_allowed_value/value:45 msgctxt "work_attribute_type_allowed_value" msgid "Aṭāna" @@ -392,6 +402,11 @@ msgctxt "release_packaging" msgid "Cassette Case" msgstr "Caja de cinta" +#: DB:series_type/name:5 +msgctxt "series_type" +msgid "Catalogue" +msgstr "" + #: DB:work_attribute_type_allowed_value/value:291 msgctxt "work_attribute_type_allowed_value" msgid "Caturaśra-jāti jhaṁpe" @@ -662,6 +677,11 @@ msgctxt "release_group_primary_type" msgid "EP" msgstr "EP" +#: DB:instrument_type/name:4 +msgctxt "instrument_type" +msgid "Electronic instrument" +msgstr "" + #: DB:work_attribute_type_allowed_value/value:17 msgctxt "work_attribute_type_allowed_value" msgid "F major" @@ -907,11 +927,41 @@ msgctxt "label_type" msgid "Imprint" msgstr "" +#: DB:series_type/description:5 +msgctxt "series_type" +msgid "Indicates that the series is a work catalogue." +msgstr "" + +#: DB:series_type/description:3 +msgctxt "series_type" +msgid "Indicates that the series is of recordings." +msgstr "" + +#: DB:series_type/description:1 +msgctxt "series_type" +msgid "Indicates that the series is of release groups." +msgstr "" + +#: DB:series_type/description:2 +msgctxt "series_type" +msgid "Indicates that the series is of releases." +msgstr "" + +#: DB:series_type/description:4 +msgctxt "series_type" +msgid "Indicates that the series is of works." +msgstr "" + #: DB:place_type/name:5 msgctxt "place_type" msgid "Indoor arena" msgstr "" +#: DB:instrument_alias_type/name:1 +msgctxt "alias_type" +msgid "Instrument name" +msgstr "" + #: DB:release_group_secondary_type/name:4 msgctxt "release_group_secondary_type" msgid "Interview" @@ -1267,6 +1317,11 @@ msgctxt "work_attribute_type_allowed_value" msgid "Mandāri" msgstr "" +#: DB:series_ordering_type/name:2 +msgctxt "series_ordering_type" +msgid "Manual" +msgstr "" + #: DB:work_attribute_type_allowed_value/value:172 msgctxt "work_attribute_type_allowed_value" msgid "Manōranjani" @@ -1567,6 +1622,11 @@ msgctxt "cover_art_type" msgid "Other" msgstr "Otro" +#: DB:instrument_type/name:5 +msgctxt "instrument_type" +msgid "Other instrument" +msgstr "" + #: DB:work_type/name:12 msgctxt "work_type" msgid "Overture" @@ -1587,6 +1647,11 @@ msgctxt "work_attribute_type_allowed_value" msgid "Paṭdīp" msgstr "" +#: DB:instrument_type/name:3 +msgctxt "instrument_type" +msgid "Percussion instrument" +msgstr "" + #: DB:artist_type/name:1 msgctxt "artist_type" msgid "Person" @@ -1697,6 +1762,11 @@ msgctxt "work_attribute_type_allowed_value" msgid "Ravicandrika" msgstr "" +#: DB:series_type/name:3 +msgctxt "series_type" +msgid "Recording" +msgstr "" + #: DB:medium_format/name:10 msgctxt "medium_format" msgid "Reel-to-reel" @@ -1707,6 +1777,16 @@ msgctxt "label_type" msgid "Reissue Production" msgstr "Producción de reediciones" +#: DB:series_type/name:2 +msgctxt "series_type" +msgid "Release" +msgstr "" + +#: DB:series_type/name:1 +msgctxt "series_type" +msgid "Release group" +msgstr "" + #: DB:release_group_secondary_type/name:7 msgctxt "release_group_secondary_type" msgid "Remix" @@ -1824,7 +1904,8 @@ msgstr "" #: DB:artist_alias_type/name:3 DB:label_alias_type/name:2 #: DB:place_alias_type/name:2 DB:work_alias_type/name:2 -#: DB:area_alias_type/name:3 +#: DB:area_alias_type/name:3 DB:instrument_alias_type/name:2 +#: DB:series_alias_type/name:2 msgctxt "alias_type" msgid "Search hint" msgstr "Ayuda de búsqueda" @@ -1834,6 +1915,11 @@ msgctxt "work_attribute_type_allowed_value" msgid "Sencuruṭṭi" msgstr "" +#: DB:series_alias_type/name:1 +msgctxt "alias_type" +msgid "Series name" +msgstr "" + #: DB:work_attribute_type_allowed_value/value:236 msgctxt "work_attribute_type_allowed_value" msgid "Simhavāhini" @@ -1884,6 +1970,13 @@ msgctxt "work_type" msgid "Song-cycle" msgstr "Ciclo de canciones" +#: DB:series_ordering_type/description:1 +msgctxt "series_ordering_type" +msgid "" +"Sorts the items in the series automatically by their number attributes, " +"using a natural sort order." +msgstr "" + #: DB:work_type/name:22 msgctxt "work_type" msgid "Soundtrack" @@ -1914,6 +2007,11 @@ msgctxt "cover_art_type" msgid "Sticker" msgstr "Pegatina" +#: DB:instrument_type/name:2 +msgctxt "instrument_type" +msgid "String instrument" +msgstr "" + #: DB:place_type/name:1 msgctxt "place_type" msgid "Studio" @@ -2169,6 +2267,16 @@ msgctxt "medium_format" msgid "Wax Cylinder" msgstr "Cilindro de fonógrafo" +#: DB:instrument_type/name:1 +msgctxt "instrument_type" +msgid "Wind instrument" +msgstr "" + +#: DB:series_type/name:4 +msgctxt "series_type" +msgid "Work" +msgstr "" + #: DB:work_alias_type/name:1 msgctxt "alias_type" msgid "Work name" diff --git a/po/attributes/et.po b/po/attributes/et.po index e36df5159..1777b1861 100644 --- a/po/attributes/et.po +++ b/po/attributes/et.po @@ -4,8 +4,8 @@ msgid "" msgstr "" "Project-Id-Version: MusicBrainz\n" -"PO-Revision-Date: 2014-04-17 17:07+0000\n" -"Last-Translator: Mihkel Tõnnov \n" +"PO-Revision-Date: 2014-05-20 19:03+0000\n" +"Last-Translator: Ian McEwen \n" "Language-Team: Estonian (http://www.transifex.com/projects/p/musicbrainz/language/et/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -78,6 +78,11 @@ msgctxt "release_group_primary_type" msgid "Album" msgstr "album" +#: DB:series_ordering_type/description:2 +msgctxt "series_ordering_type" +msgid "Allows for manually setting the position of each item in the series." +msgstr "Lubab seeria iga elemendi järjestuse käsitsi määrata." + #: DB:work_attribute_type_allowed_value/value:40 msgctxt "work_attribute_type_allowed_value" msgid "Amṛtavarṣiṇi" @@ -118,6 +123,11 @@ msgctxt "release_group_secondary_type" msgid "Audiobook" msgstr "heliraamat" +#: DB:series_ordering_type/name:1 +msgctxt "series_ordering_type" +msgid "Automatic" +msgstr "automaatne" + #: DB:work_attribute_type_allowed_value/value:45 msgctxt "work_attribute_type_allowed_value" msgid "Aṭāna" @@ -378,6 +388,11 @@ msgctxt "release_packaging" msgid "Cassette Case" msgstr "kassetikarp" +#: DB:series_type/name:5 +msgctxt "series_type" +msgid "Catalogue" +msgstr "" + #: DB:work_attribute_type_allowed_value/value:291 msgctxt "work_attribute_type_allowed_value" msgid "Caturaśra-jāti jhaṁpe" @@ -648,6 +663,11 @@ msgctxt "release_group_primary_type" msgid "EP" msgstr "EP" +#: DB:instrument_type/name:4 +msgctxt "instrument_type" +msgid "Electronic instrument" +msgstr "Elektrooniline pill" + #: DB:work_attribute_type_allowed_value/value:17 msgctxt "work_attribute_type_allowed_value" msgid "F major" @@ -893,11 +913,41 @@ msgctxt "label_type" msgid "Imprint" msgstr "imprint" +#: DB:series_type/description:5 +msgctxt "series_type" +msgid "Indicates that the series is a work catalogue." +msgstr "" + +#: DB:series_type/description:3 +msgctxt "series_type" +msgid "Indicates that the series is of recordings." +msgstr "Määrab, et seeria koosneb salvestistest." + +#: DB:series_type/description:1 +msgctxt "series_type" +msgid "Indicates that the series is of release groups." +msgstr "Määrab, et seeria koosneb väljalaskerühmadest." + +#: DB:series_type/description:2 +msgctxt "series_type" +msgid "Indicates that the series is of releases." +msgstr "Määrab, et seeria koosneb väljalasetest." + +#: DB:series_type/description:4 +msgctxt "series_type" +msgid "Indicates that the series is of works." +msgstr "Määrab, et seeria koosneb teostest." + #: DB:place_type/name:5 msgctxt "place_type" msgid "Indoor arena" msgstr "sisehall" +#: DB:instrument_alias_type/name:1 +msgctxt "alias_type" +msgid "Instrument name" +msgstr "instrumendi nimi" + #: DB:release_group_secondary_type/name:4 msgctxt "release_group_secondary_type" msgid "Interview" @@ -1253,6 +1303,11 @@ msgctxt "work_attribute_type_allowed_value" msgid "Mandāri" msgstr "Mandāri" +#: DB:series_ordering_type/name:2 +msgctxt "series_ordering_type" +msgid "Manual" +msgstr "käsitsi" + #: DB:work_attribute_type_allowed_value/value:172 msgctxt "work_attribute_type_allowed_value" msgid "Manōranjani" @@ -1553,6 +1608,11 @@ msgctxt "cover_art_type" msgid "Other" msgstr "muu" +#: DB:instrument_type/name:5 +msgctxt "instrument_type" +msgid "Other instrument" +msgstr "Muu pill" + #: DB:work_type/name:12 msgctxt "work_type" msgid "Overture" @@ -1573,6 +1633,11 @@ msgctxt "work_attribute_type_allowed_value" msgid "Paṭdīp" msgstr "Paṭdīp" +#: DB:instrument_type/name:3 +msgctxt "instrument_type" +msgid "Percussion instrument" +msgstr "Löökpill" + #: DB:artist_type/name:1 msgctxt "artist_type" msgid "Person" @@ -1683,6 +1748,11 @@ msgctxt "work_attribute_type_allowed_value" msgid "Ravicandrika" msgstr "Ravicandrika" +#: DB:series_type/name:3 +msgctxt "series_type" +msgid "Recording" +msgstr "salvestis" + #: DB:medium_format/name:10 msgctxt "medium_format" msgid "Reel-to-reel" @@ -1693,6 +1763,16 @@ msgctxt "label_type" msgid "Reissue Production" msgstr "kordusväljaannete tootmine" +#: DB:series_type/name:2 +msgctxt "series_type" +msgid "Release" +msgstr "väljalase" + +#: DB:series_type/name:1 +msgctxt "series_type" +msgid "Release group" +msgstr "väljalaskerühm" + #: DB:release_group_secondary_type/name:7 msgctxt "release_group_secondary_type" msgid "Remix" @@ -1810,7 +1890,8 @@ msgstr "Saurāṣtraṁ" #: DB:artist_alias_type/name:3 DB:label_alias_type/name:2 #: DB:place_alias_type/name:2 DB:work_alias_type/name:2 -#: DB:area_alias_type/name:3 +#: DB:area_alias_type/name:3 DB:instrument_alias_type/name:2 +#: DB:series_alias_type/name:2 msgctxt "alias_type" msgid "Search hint" msgstr "otsinguvihje" @@ -1820,6 +1901,11 @@ msgctxt "work_attribute_type_allowed_value" msgid "Sencuruṭṭi" msgstr "Sencuruṭṭi" +#: DB:series_alias_type/name:1 +msgctxt "alias_type" +msgid "Series name" +msgstr "seeria pealkiri" + #: DB:work_attribute_type_allowed_value/value:236 msgctxt "work_attribute_type_allowed_value" msgid "Simhavāhini" @@ -1870,6 +1956,13 @@ msgctxt "work_type" msgid "Song-cycle" msgstr "laulutsükkel" +#: DB:series_ordering_type/description:1 +msgctxt "series_ordering_type" +msgid "" +"Sorts the items in the series automatically by their number attributes, " +"using a natural sort order." +msgstr "Seeria elemendid järjestatakse automaatselt nende järjekorranumbri järgi, kasutades loomulikku sortimisjärjestust." + #: DB:work_type/name:22 msgctxt "work_type" msgid "Soundtrack" @@ -1900,6 +1993,11 @@ msgctxt "cover_art_type" msgid "Sticker" msgstr "kleeps" +#: DB:instrument_type/name:2 +msgctxt "instrument_type" +msgid "String instrument" +msgstr "Keelpill" + #: DB:place_type/name:1 msgctxt "place_type" msgid "Studio" @@ -2155,6 +2253,16 @@ msgctxt "medium_format" msgid "Wax Cylinder" msgstr "vaharull" +#: DB:instrument_type/name:1 +msgctxt "instrument_type" +msgid "Wind instrument" +msgstr "Õhkpill" + +#: DB:series_type/name:4 +msgctxt "series_type" +msgid "Work" +msgstr "teos" + #: DB:work_alias_type/name:1 msgctxt "alias_type" msgid "Work name" diff --git a/po/attributes/fi.po b/po/attributes/fi.po index 5fc2580bd..849a4c2de 100644 --- a/po/attributes/fi.po +++ b/po/attributes/fi.po @@ -12,7 +12,7 @@ msgid "" msgstr "" "Project-Id-Version: MusicBrainz\n" -"PO-Revision-Date: 2014-04-17 03:31+0000\n" +"PO-Revision-Date: 2014-05-20 19:03+0000\n" "Last-Translator: Ian McEwen \n" "Language-Team: Finnish (http://www.transifex.com/projects/p/musicbrainz/language/fi/)\n" "MIME-Version: 1.0\n" @@ -86,6 +86,11 @@ msgctxt "release_group_primary_type" msgid "Album" msgstr "Albumi" +#: DB:series_ordering_type/description:2 +msgctxt "series_ordering_type" +msgid "Allows for manually setting the position of each item in the series." +msgstr "" + #: DB:work_attribute_type_allowed_value/value:40 msgctxt "work_attribute_type_allowed_value" msgid "Amṛtavarṣiṇi" @@ -126,6 +131,11 @@ msgctxt "release_group_secondary_type" msgid "Audiobook" msgstr "Äänikirja" +#: DB:series_ordering_type/name:1 +msgctxt "series_ordering_type" +msgid "Automatic" +msgstr "" + #: DB:work_attribute_type_allowed_value/value:45 msgctxt "work_attribute_type_allowed_value" msgid "Aṭāna" @@ -386,6 +396,11 @@ msgctxt "release_packaging" msgid "Cassette Case" msgstr "Kasettikotelo" +#: DB:series_type/name:5 +msgctxt "series_type" +msgid "Catalogue" +msgstr "" + #: DB:work_attribute_type_allowed_value/value:291 msgctxt "work_attribute_type_allowed_value" msgid "Caturaśra-jāti jhaṁpe" @@ -656,6 +671,11 @@ msgctxt "release_group_primary_type" msgid "EP" msgstr "EP" +#: DB:instrument_type/name:4 +msgctxt "instrument_type" +msgid "Electronic instrument" +msgstr "" + #: DB:work_attribute_type_allowed_value/value:17 msgctxt "work_attribute_type_allowed_value" msgid "F major" @@ -901,11 +921,41 @@ msgctxt "label_type" msgid "Imprint" msgstr "Valmistajamerkki" +#: DB:series_type/description:5 +msgctxt "series_type" +msgid "Indicates that the series is a work catalogue." +msgstr "" + +#: DB:series_type/description:3 +msgctxt "series_type" +msgid "Indicates that the series is of recordings." +msgstr "" + +#: DB:series_type/description:1 +msgctxt "series_type" +msgid "Indicates that the series is of release groups." +msgstr "" + +#: DB:series_type/description:2 +msgctxt "series_type" +msgid "Indicates that the series is of releases." +msgstr "" + +#: DB:series_type/description:4 +msgctxt "series_type" +msgid "Indicates that the series is of works." +msgstr "" + #: DB:place_type/name:5 msgctxt "place_type" msgid "Indoor arena" msgstr "" +#: DB:instrument_alias_type/name:1 +msgctxt "alias_type" +msgid "Instrument name" +msgstr "" + #: DB:release_group_secondary_type/name:4 msgctxt "release_group_secondary_type" msgid "Interview" @@ -1261,6 +1311,11 @@ msgctxt "work_attribute_type_allowed_value" msgid "Mandāri" msgstr "" +#: DB:series_ordering_type/name:2 +msgctxt "series_ordering_type" +msgid "Manual" +msgstr "" + #: DB:work_attribute_type_allowed_value/value:172 msgctxt "work_attribute_type_allowed_value" msgid "Manōranjani" @@ -1561,6 +1616,11 @@ msgctxt "cover_art_type" msgid "Other" msgstr "Muu" +#: DB:instrument_type/name:5 +msgctxt "instrument_type" +msgid "Other instrument" +msgstr "" + #: DB:work_type/name:12 msgctxt "work_type" msgid "Overture" @@ -1581,6 +1641,11 @@ msgctxt "work_attribute_type_allowed_value" msgid "Paṭdīp" msgstr "" +#: DB:instrument_type/name:3 +msgctxt "instrument_type" +msgid "Percussion instrument" +msgstr "" + #: DB:artist_type/name:1 msgctxt "artist_type" msgid "Person" @@ -1691,6 +1756,11 @@ msgctxt "work_attribute_type_allowed_value" msgid "Ravicandrika" msgstr "" +#: DB:series_type/name:3 +msgctxt "series_type" +msgid "Recording" +msgstr "" + #: DB:medium_format/name:10 msgctxt "medium_format" msgid "Reel-to-reel" @@ -1701,6 +1771,16 @@ msgctxt "label_type" msgid "Reissue Production" msgstr "Uudelleenjulkaisutuotanto" +#: DB:series_type/name:2 +msgctxt "series_type" +msgid "Release" +msgstr "" + +#: DB:series_type/name:1 +msgctxt "series_type" +msgid "Release group" +msgstr "" + #: DB:release_group_secondary_type/name:7 msgctxt "release_group_secondary_type" msgid "Remix" @@ -1818,7 +1898,8 @@ msgstr "" #: DB:artist_alias_type/name:3 DB:label_alias_type/name:2 #: DB:place_alias_type/name:2 DB:work_alias_type/name:2 -#: DB:area_alias_type/name:3 +#: DB:area_alias_type/name:3 DB:instrument_alias_type/name:2 +#: DB:series_alias_type/name:2 msgctxt "alias_type" msgid "Search hint" msgstr "Hakuvihje" @@ -1828,6 +1909,11 @@ msgctxt "work_attribute_type_allowed_value" msgid "Sencuruṭṭi" msgstr "" +#: DB:series_alias_type/name:1 +msgctxt "alias_type" +msgid "Series name" +msgstr "" + #: DB:work_attribute_type_allowed_value/value:236 msgctxt "work_attribute_type_allowed_value" msgid "Simhavāhini" @@ -1878,6 +1964,13 @@ msgctxt "work_type" msgid "Song-cycle" msgstr "Laulusarja" +#: DB:series_ordering_type/description:1 +msgctxt "series_ordering_type" +msgid "" +"Sorts the items in the series automatically by their number attributes, " +"using a natural sort order." +msgstr "" + #: DB:work_type/name:22 msgctxt "work_type" msgid "Soundtrack" @@ -1908,6 +2001,11 @@ msgctxt "cover_art_type" msgid "Sticker" msgstr "Tarra" +#: DB:instrument_type/name:2 +msgctxt "instrument_type" +msgid "String instrument" +msgstr "" + #: DB:place_type/name:1 msgctxt "place_type" msgid "Studio" @@ -2163,6 +2261,16 @@ msgctxt "medium_format" msgid "Wax Cylinder" msgstr "Fonografisylinteri" +#: DB:instrument_type/name:1 +msgctxt "instrument_type" +msgid "Wind instrument" +msgstr "" + +#: DB:series_type/name:4 +msgctxt "series_type" +msgid "Work" +msgstr "" + #: DB:work_alias_type/name:1 msgctxt "alias_type" msgid "Work name" diff --git a/po/attributes/fr.po b/po/attributes/fr.po index ae6cad0ba..4799f9acd 100644 --- a/po/attributes/fr.po +++ b/po/attributes/fr.po @@ -17,7 +17,7 @@ msgid "" msgstr "" "Project-Id-Version: MusicBrainz\n" -"PO-Revision-Date: 2014-04-17 03:36+0000\n" +"PO-Revision-Date: 2014-05-21 13:40+0000\n" "Last-Translator: Alain-Olivier Breysse\n" "Language-Team: French (http://www.transifex.com/projects/p/musicbrainz/language/fr/)\n" "MIME-Version: 1.0\n" @@ -91,6 +91,11 @@ msgctxt "release_group_primary_type" msgid "Album" msgstr "Album" +#: DB:series_ordering_type/description:2 +msgctxt "series_ordering_type" +msgid "Allows for manually setting the position of each item in the series." +msgstr "Permet de définir manuellement la position de chaque élément dans la série." + #: DB:work_attribute_type_allowed_value/value:40 msgctxt "work_attribute_type_allowed_value" msgid "Amṛtavarṣiṇi" @@ -131,6 +136,11 @@ msgctxt "release_group_secondary_type" msgid "Audiobook" msgstr "Livre audio" +#: DB:series_ordering_type/name:1 +msgctxt "series_ordering_type" +msgid "Automatic" +msgstr "Automatique" + #: DB:work_attribute_type_allowed_value/value:45 msgctxt "work_attribute_type_allowed_value" msgid "Aṭāna" @@ -391,6 +401,11 @@ msgctxt "release_packaging" msgid "Cassette Case" msgstr "Boîtier de cassette" +#: DB:series_type/name:5 +msgctxt "series_type" +msgid "Catalogue" +msgstr "Catalogue" + #: DB:work_attribute_type_allowed_value/value:291 msgctxt "work_attribute_type_allowed_value" msgid "Caturaśra-jāti jhaṁpe" @@ -564,7 +579,7 @@ msgstr "Digipak" #: DB:medium_format/name:12 msgctxt "medium_format" msgid "Digital Media" -msgstr "Média numérique" +msgstr "Support numérique" #: DB:release_packaging/name:13 msgctxt "release_packaging" @@ -661,6 +676,11 @@ msgctxt "release_group_primary_type" msgid "EP" msgstr "EP" +#: DB:instrument_type/name:4 +msgctxt "instrument_type" +msgid "Electronic instrument" +msgstr "Instrument électronique" + #: DB:work_attribute_type_allowed_value/value:17 msgctxt "work_attribute_type_allowed_value" msgid "F major" @@ -906,11 +926,41 @@ msgctxt "label_type" msgid "Imprint" msgstr "Marque d'éditeur" +#: DB:series_type/description:5 +msgctxt "series_type" +msgid "Indicates that the series is a work catalogue." +msgstr "Indique que la série est un catalogue d’œuvres." + +#: DB:series_type/description:3 +msgctxt "series_type" +msgid "Indicates that the series is of recordings." +msgstr "Indique que c'est une série d'enregistrements." + +#: DB:series_type/description:1 +msgctxt "series_type" +msgid "Indicates that the series is of release groups." +msgstr "Indique que c'est une série de groupes de parution." + +#: DB:series_type/description:2 +msgctxt "series_type" +msgid "Indicates that the series is of releases." +msgstr "Indique que c'est une série de parutions." + +#: DB:series_type/description:4 +msgctxt "series_type" +msgid "Indicates that the series is of works." +msgstr "Indique que c'est une série d’œuvres." + #: DB:place_type/name:5 msgctxt "place_type" msgid "Indoor arena" msgstr "Stade couvert" +#: DB:instrument_alias_type/name:1 +msgctxt "alias_type" +msgid "Instrument name" +msgstr "Nom de l'instrument" + #: DB:release_group_secondary_type/name:4 msgctxt "release_group_secondary_type" msgid "Interview" @@ -1266,6 +1316,11 @@ msgctxt "work_attribute_type_allowed_value" msgid "Mandāri" msgstr "Mandāri" +#: DB:series_ordering_type/name:2 +msgctxt "series_ordering_type" +msgid "Manual" +msgstr "Manuel" + #: DB:work_attribute_type_allowed_value/value:172 msgctxt "work_attribute_type_allowed_value" msgid "Manōranjani" @@ -1294,7 +1349,7 @@ msgstr "Maṭhya" #: DB:cover_art_archive.art_type/name:4 msgctxt "cover_art_type" msgid "Medium" -msgstr "Milieu" +msgstr "Support" #: DB:work_attribute_type_allowed_value/value:176 msgctxt "work_attribute_type_allowed_value" @@ -1566,6 +1621,11 @@ msgctxt "cover_art_type" msgid "Other" msgstr "Autre" +#: DB:instrument_type/name:5 +msgctxt "instrument_type" +msgid "Other instrument" +msgstr "Autre instrument" + #: DB:work_type/name:12 msgctxt "work_type" msgid "Overture" @@ -1586,6 +1646,11 @@ msgctxt "work_attribute_type_allowed_value" msgid "Paṭdīp" msgstr "Paṭdīp" +#: DB:instrument_type/name:3 +msgctxt "instrument_type" +msgid "Percussion instrument" +msgstr "Instrument de percussion" + #: DB:artist_type/name:1 msgctxt "artist_type" msgid "Person" @@ -1696,6 +1761,11 @@ msgctxt "work_attribute_type_allowed_value" msgid "Ravicandrika" msgstr "Ravicandrika" +#: DB:series_type/name:3 +msgctxt "series_type" +msgid "Recording" +msgstr "Enregistrement" + #: DB:medium_format/name:10 msgctxt "medium_format" msgid "Reel-to-reel" @@ -1706,6 +1776,16 @@ msgctxt "label_type" msgid "Reissue Production" msgstr "Production de réédition" +#: DB:series_type/name:2 +msgctxt "series_type" +msgid "Release" +msgstr "Parution" + +#: DB:series_type/name:1 +msgctxt "series_type" +msgid "Release group" +msgstr "Groupe de parution" + #: DB:release_group_secondary_type/name:7 msgctxt "release_group_secondary_type" msgid "Remix" @@ -1823,7 +1903,8 @@ msgstr "Saurāṣtraṁ" #: DB:artist_alias_type/name:3 DB:label_alias_type/name:2 #: DB:place_alias_type/name:2 DB:work_alias_type/name:2 -#: DB:area_alias_type/name:3 +#: DB:area_alias_type/name:3 DB:instrument_alias_type/name:2 +#: DB:series_alias_type/name:2 msgctxt "alias_type" msgid "Search hint" msgstr "Indice de recherche" @@ -1833,6 +1914,11 @@ msgctxt "work_attribute_type_allowed_value" msgid "Sencuruṭṭi" msgstr "Sencuruṭṭi" +#: DB:series_alias_type/name:1 +msgctxt "alias_type" +msgid "Series name" +msgstr "Nom de la série" + #: DB:work_attribute_type_allowed_value/value:236 msgctxt "work_attribute_type_allowed_value" msgid "Simhavāhini" @@ -1883,6 +1969,13 @@ msgctxt "work_type" msgid "Song-cycle" msgstr "Série de chansons" +#: DB:series_ordering_type/description:1 +msgctxt "series_ordering_type" +msgid "" +"Sorts the items in the series automatically by their number attributes, " +"using a natural sort order." +msgstr "Trie les éléments de la série automatiquement par leurs attributs de numéro, en utilisant un ordre de tri naturel." + #: DB:work_type/name:22 msgctxt "work_type" msgid "Soundtrack" @@ -1913,6 +2006,11 @@ msgctxt "cover_art_type" msgid "Sticker" msgstr "Autocollant" +#: DB:instrument_type/name:2 +msgctxt "instrument_type" +msgid "String instrument" +msgstr "Instruments à cordes" + #: DB:place_type/name:1 msgctxt "place_type" msgid "Studio" @@ -2168,6 +2266,16 @@ msgctxt "medium_format" msgid "Wax Cylinder" msgstr "Cylindre de cire" +#: DB:instrument_type/name:1 +msgctxt "instrument_type" +msgid "Wind instrument" +msgstr "Instruments à vent" + +#: DB:series_type/name:4 +msgctxt "series_type" +msgid "Work" +msgstr "Œuvre" + #: DB:work_alias_type/name:1 msgctxt "alias_type" msgid "Work name" diff --git a/po/attributes/hr.po b/po/attributes/hr.po new file mode 100644 index 000000000..962471bd3 --- /dev/null +++ b/po/attributes/hr.po @@ -0,0 +1,2404 @@ +# +# Translators: +# Chris_Kay_083, 2014 +msgid "" +msgstr "" +"Project-Id-Version: MusicBrainz\n" +"PO-Revision-Date: 2014-05-20 19:03+0000\n" +"Last-Translator: Ian McEwen \n" +"Language-Team: Croatian (http://www.transifex.com/projects/p/musicbrainz/language/hr/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: hr\n" +"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n" + +#: DB:medium_format/name:30 +msgctxt "medium_format" +msgid "10\" Vinyl" +msgstr "10\" Vinil" + +#: DB:medium_format/name:31 +msgctxt "medium_format" +msgid "12\" Vinyl" +msgstr "12\" Vinil" + +#: DB:medium_format/name:29 +msgctxt "medium_format" +msgid "7\" Vinyl" +msgstr "7\" Vinil" + +#: DB:medium_format/name:34 +msgctxt "medium_format" +msgid "8cm CD" +msgstr "8cm CD" + +#: DB:medium_format/name:40 +msgctxt "medium_format" +msgid "8cm CD+G" +msgstr "8cm CD+G" + +#: DB:work_attribute_type_allowed_value/value:28 +msgctxt "work_attribute_type_allowed_value" +msgid "A major" +msgstr "A -dur" + +#: DB:work_attribute_type_allowed_value/value:29 +msgctxt "work_attribute_type_allowed_value" +msgid "A minor" +msgstr "A mol" + +#: DB:work_attribute_type_allowed_value/value:26 +msgctxt "work_attribute_type_allowed_value" +msgid "A-flat major" +msgstr "Ab-dur" + +#: DB:work_attribute_type_allowed_value/value:27 +msgctxt "work_attribute_type_allowed_value" +msgid "A-flat minor" +msgstr "Ab-mol" + +#: DB:work_attribute_type_allowed_value/value:30 +msgctxt "work_attribute_type_allowed_value" +msgid "A-sharp minor" +msgstr "A# mol" + +#: DB:work_attribute_type/name:13 +msgctxt "work_attribute_type" +msgid "APRA ID" +msgstr "" + +#: DB:work_attribute_type/name:6 +msgctxt "work_attribute_type" +msgid "ASCAP ID" +msgstr "" + +#: DB:release_group_primary_type/name:1 +msgctxt "release_group_primary_type" +msgid "Album" +msgstr "Album" + +#: DB:series_ordering_type/description:2 +msgctxt "series_ordering_type" +msgid "Allows for manually setting the position of each item in the series." +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:40 +msgctxt "work_attribute_type_allowed_value" +msgid "Amṛtavarṣiṇi" +msgstr "Amṛtavarṣiṇi" + +#: DB:work_attribute_type_allowed_value/value:39 +msgctxt "work_attribute_type_allowed_value" +msgid "Amṛtavāhiṇi" +msgstr "Amṛtavāhiṇi" + +#: DB:area_alias_type/name:1 +msgctxt "alias_type" +msgid "Area name" +msgstr "Ime područja" + +#: DB:work_type/name:1 +msgctxt "work_type" +msgid "Aria" +msgstr "Arija" + +#: DB:artist_alias_type/name:1 +msgctxt "alias_type" +msgid "Artist name" +msgstr "Ime umjetnika" + +#: DB:work_attribute_type_allowed_value/value:44 +msgctxt "work_attribute_type_allowed_value" +msgid "Asāvēri" +msgstr "Asāvēri" + +#: DB:work_type/name:25 +msgctxt "work_type" +msgid "Audio drama" +msgstr "Audio drama" + +#: DB:release_group_secondary_type/name:5 +msgctxt "release_group_secondary_type" +msgid "Audiobook" +msgstr "Audioknjiga" + +#: DB:series_ordering_type/name:1 +msgctxt "series_ordering_type" +msgid "Automatic" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:45 +msgctxt "work_attribute_type_allowed_value" +msgid "Aṭāna" +msgstr "Aṭāna" + +#: DB:work_attribute_type_allowed_value/value:289 +msgctxt "work_attribute_type_allowed_value" +msgid "Aṭṭa" +msgstr "Aṭṭa" + +#: DB:work_attribute_type_allowed_value/value:33 +msgctxt "work_attribute_type_allowed_value" +msgid "B major" +msgstr "B dur" + +#: DB:work_attribute_type_allowed_value/value:34 +msgctxt "work_attribute_type_allowed_value" +msgid "B minor" +msgstr "B-mol" + +#: DB:work_attribute_type_allowed_value/value:31 +msgctxt "work_attribute_type_allowed_value" +msgid "B-flat major" +msgstr "Bb-dur" + +#: DB:work_attribute_type_allowed_value/value:32 +msgctxt "work_attribute_type_allowed_value" +msgid "B-flat minor" +msgstr "Bb-mol" + +#: DB:work_attribute_type/name:7 +msgctxt "work_attribute_type" +msgid "BMI ID" +msgstr "" + +#: DB:cover_art_archive.art_type/name:2 +msgctxt "cover_art_type" +msgid "Back" +msgstr "Natrag" + +#: DB:work_attribute_type_allowed_value/value:47 +msgctxt "work_attribute_type_allowed_value" +msgid "Bahudāri" +msgstr "Bahudāri" + +#: DB:work_attribute_type_allowed_value/value:48 +msgctxt "work_attribute_type_allowed_value" +msgid "Balahaṁsa" +msgstr "Balahaṁsa" + +#: DB:work_type/name:2 +msgctxt "work_type" +msgid "Ballet" +msgstr "Balet" + +#: DB:work_attribute_type_allowed_value/value:49 +msgctxt "work_attribute_type_allowed_value" +msgid "Bauḷi" +msgstr "Bauḷi" + +#: DB:work_attribute_type_allowed_value/value:51 +msgctxt "work_attribute_type_allowed_value" +msgid "Behāg" +msgstr "Behāg" + +#: DB:work_type/name:26 +msgctxt "work_type" +msgid "Beijing opera" +msgstr "Pekinška opera" + +#: DB:medium_format/name:24 +msgctxt "medium_format" +msgid "Betamax" +msgstr "Betamax" + +#: DB:work_attribute_type_allowed_value/value:52 +msgctxt "work_attribute_type_allowed_value" +msgid "Bhairavi" +msgstr "Bhairavi" + +#: DB:work_attribute_type_allowed_value/value:53 +msgctxt "work_attribute_type_allowed_value" +msgid "Bhavāni" +msgstr "Bhavāni" + +#: DB:work_attribute_type_allowed_value/value:54 +msgctxt "work_attribute_type_allowed_value" +msgid "Bhāvapriya" +msgstr "Bhāvapriya" + +#: DB:work_attribute_type_allowed_value/value:55 +msgctxt "work_attribute_type_allowed_value" +msgid "Bhīmpalāsi" +msgstr "Bhīmpalāsi" + +#: DB:work_attribute_type_allowed_value/value:56 +msgctxt "work_attribute_type_allowed_value" +msgid "Bhōga sāvēri" +msgstr "Bhōga sāvēri" + +#: DB:work_attribute_type_allowed_value/value:57 +msgctxt "work_attribute_type_allowed_value" +msgid "Bhūpāḷaṁ" +msgstr "Bhūpāḷaṁ" + +#: DB:work_attribute_type_allowed_value/value:58 +msgctxt "work_attribute_type_allowed_value" +msgid "Bhūṣāvaḷi" +msgstr "Bhūṣāvaḷi" + +#: DB:work_attribute_type_allowed_value/value:59 +msgctxt "work_attribute_type_allowed_value" +msgid "Bilahari" +msgstr "Bilahari" + +#: DB:medium_format/name:20 +msgctxt "medium_format" +msgid "Blu-ray" +msgstr "Blu-ray" + +#: DB:medium_format/name:35 +msgctxt "medium_format" +msgid "Blu-spec CD" +msgstr "Blu-spec CD" + +#: DB:release_packaging/name:9 +msgctxt "release_packaging" +msgid "Book" +msgstr "Knjiga" + +#: DB:cover_art_archive.art_type/name:3 +msgctxt "cover_art_type" +msgid "Booklet" +msgstr "Knjižnica" + +#: DB:release_status/name:3 +msgctxt "release_status" +msgid "Bootleg" +msgstr "Bootleg" + +#: DB:label_type/name:5 +msgctxt "label_type" +msgid "Bootleg Production" +msgstr "Bootleg proizvodnja" + +#: DB:release_group_primary_type/name:12 +msgctxt "release_group_primary_type" +msgid "Broadcast" +msgstr "Emitiranje" + +#: DB:work_attribute_type_allowed_value/value:62 +msgctxt "work_attribute_type_allowed_value" +msgid "Budamanōhari" +msgstr "Budamanōhari" + +#: DB:work_attribute_type_allowed_value/value:46 +msgctxt "work_attribute_type_allowed_value" +msgid "Bāgēśrī" +msgstr "Bāgēśrī" + +#: DB:work_attribute_type_allowed_value/value:50 +msgctxt "work_attribute_type_allowed_value" +msgid "Bēgaḍa" +msgstr "Bēgaḍa" + +#: DB:work_attribute_type_allowed_value/value:60 +msgctxt "work_attribute_type_allowed_value" +msgid "Bṛndāvana sāranga" +msgstr "Bṛndāvana sāranga" + +#: DB:work_attribute_type_allowed_value/value:61 +msgctxt "work_attribute_type_allowed_value" +msgid "Bṛndāvani" +msgstr "Bṛndāvani" + +#: DB:work_attribute_type_allowed_value/value:2 +msgctxt "work_attribute_type_allowed_value" +msgid "C major" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:3 +msgctxt "work_attribute_type_allowed_value" +msgid "C minor" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:1 +msgctxt "work_attribute_type_allowed_value" +msgid "C-flat major" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:4 +msgctxt "work_attribute_type_allowed_value" +msgid "C-sharp major" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:5 +msgctxt "work_attribute_type_allowed_value" +msgid "C-sharp minor" +msgstr "" + +#: DB:medium_format/name:1 +msgctxt "medium_format" +msgid "CD" +msgstr "CD" + +#: DB:medium_format/name:39 +msgctxt "medium_format" +msgid "CD+G" +msgstr "CD+G" + +#: DB:medium_format/name:33 +msgctxt "medium_format" +msgid "CD-R" +msgstr "CD-R" + +#: DB:work_attribute_type_allowed_value/value:63 +msgctxt "work_attribute_type_allowed_value" +msgid "Cakravākaṁ" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:64 +msgctxt "work_attribute_type_allowed_value" +msgid "Candrajyōti" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:65 +msgctxt "work_attribute_type_allowed_value" +msgid "Candrakauns" +msgstr "" + +#: DB:work_type/name:3 +msgctxt "work_type" +msgid "Cantata" +msgstr "Kantata" + +#: DB:release_packaging/name:4 +msgctxt "release_packaging" +msgid "Cardboard/Paper Sleeve" +msgstr "Kartonski / papirni rukav" + +#: DB:medium_format/name:9 +msgctxt "medium_format" +msgid "Cartridge" +msgstr "Punjenje" + +#: DB:work_attribute_type_allowed_value/value:66 +msgctxt "work_attribute_type_allowed_value" +msgid "Carturdaśa rāgamālika" +msgstr "" + +#: DB:medium_format/name:8 +msgctxt "medium_format" +msgid "Cassette" +msgstr "Kazeta" + +#: DB:release_packaging/name:8 +msgctxt "release_packaging" +msgid "Cassette Case" +msgstr "Kutija za kazete" + +#: DB:series_type/name:5 +msgctxt "series_type" +msgid "Catalogue" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:291 +msgctxt "work_attribute_type_allowed_value" +msgid "Caturaśra-jāti jhaṁpe" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:70 +msgctxt "work_attribute_type_allowed_value" +msgid "Cencu kāmbhōji" +msgstr "" + +#: DB:artist_type/name:4 +msgctxt "artist_type" +msgid "Character" +msgstr "Osobina" + +#: DB:artist_type/name:6 +msgctxt "artist_type" +msgid "Choir" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:71 +msgctxt "work_attribute_type_allowed_value" +msgid "Cintāmaṇi" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:72 +msgctxt "work_attribute_type_allowed_value" +msgid "Cittaranjani" +msgstr "" + +#: DB:area_type/name:3 +msgctxt "area_type" +msgid "City" +msgstr "Grad" + +#: DB:release_group_secondary_type/name:1 +msgctxt "release_group_secondary_type" +msgid "Compilation" +msgstr "Kompilacija" + +#: DB:work_type/name:4 +msgctxt "work_type" +msgid "Concerto" +msgstr "Concerto" + +#: DB:area_type/name:1 +msgctxt "area_type" +msgid "Country" +msgstr "Država" + +#: DB:work_attribute_type_allowed_value/value:67 +msgctxt "work_attribute_type_allowed_value" +msgid "Cārukēśi" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:68 +msgctxt "work_attribute_type_allowed_value" +msgid "Cāyānāṭa" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:69 +msgctxt "work_attribute_type_allowed_value" +msgid "Cāyātarangiṇi" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:8 +msgctxt "work_attribute_type_allowed_value" +msgid "D major" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:9 +msgctxt "work_attribute_type_allowed_value" +msgid "D minor" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:6 +msgctxt "work_attribute_type_allowed_value" +msgid "D-flat major" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:7 +msgctxt "work_attribute_type_allowed_value" +msgid "D-flat minor" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:10 +msgctxt "work_attribute_type_allowed_value" +msgid "D-sharp minor" +msgstr "" + +#: DB:medium_format/name:11 +msgctxt "medium_format" +msgid "DAT" +msgstr "DAT" + +#: DB:medium_format/name:16 +msgctxt "medium_format" +msgid "DCC" +msgstr "DCC" + +#: DB:release_group_secondary_type/name:8 +msgctxt "release_group_secondary_type" +msgid "DJ-mix" +msgstr "DJ-mix" + +#: DB:medium_format/name:2 +msgctxt "medium_format" +msgid "DVD" +msgstr "DVD" + +#: DB:medium_format/name:18 +msgctxt "medium_format" +msgid "DVD-Audio" +msgstr "DVD - Audio" + +#: DB:medium_format/name:19 +msgctxt "medium_format" +msgid "DVD-Video" +msgstr "DVD - Video" + +#: DB:work_attribute_type_allowed_value/value:73 +msgctxt "work_attribute_type_allowed_value" +msgid "Darbār" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:74 +msgctxt "work_attribute_type_allowed_value" +msgid "Darbārī kānaḍa" +msgstr "" + +#: DB:release_group_secondary_type/name:10 +msgctxt "release_group_secondary_type" +msgid "Demo" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:79 +msgctxt "work_attribute_type_allowed_value" +msgid "Devāmṛtavarṣiṇi" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:80 +msgctxt "work_attribute_type_allowed_value" +msgid "Dhanaśrī" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:81 +msgctxt "work_attribute_type_allowed_value" +msgid "Dhanyāsi" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:82 +msgctxt "work_attribute_type_allowed_value" +msgid "Dharmāvati" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:285 +msgctxt "work_attribute_type_allowed_value" +msgid "Dhr̥va" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:83 +msgctxt "work_attribute_type_allowed_value" +msgid "Dhēnuka" +msgstr "" + +#: DB:release_packaging/name:3 +msgctxt "release_packaging" +msgid "Digipak" +msgstr "Digipak" + +#: DB:medium_format/name:12 +msgctxt "medium_format" +msgid "Digital Media" +msgstr "Digitalni medij" + +#: DB:release_packaging/name:13 +msgctxt "release_packaging" +msgid "Discbox Slider" +msgstr "Klizač za kutiju s diskovima" + +#: DB:label_type/name:1 +msgctxt "label_type" +msgid "Distributor" +msgstr "Distributer" + +#: DB:area_type/name:5 +msgctxt "area_type" +msgid "District" +msgstr "Okrug" + +#: DB:medium_format/name:4 +msgctxt "medium_format" +msgid "DualDisc" +msgstr "Dvostruki disk" + +#: DB:work_attribute_type_allowed_value/value:86 +msgctxt "work_attribute_type_allowed_value" +msgid "Durga" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:87 +msgctxt "work_attribute_type_allowed_value" +msgid "Dvijāvanti" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:76 +msgctxt "work_attribute_type_allowed_value" +msgid "Dēvagāndhāri" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:77 +msgctxt "work_attribute_type_allowed_value" +msgid "Dēvakriya" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:78 +msgctxt "work_attribute_type_allowed_value" +msgid "Dēvamanōhari" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:75 +msgctxt "work_attribute_type_allowed_value" +msgid "Dēś" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:292 +msgctxt "work_attribute_type_allowed_value" +msgid "Dēśādi" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:84 +msgctxt "work_attribute_type_allowed_value" +msgid "Dīpakaṁ" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:85 +msgctxt "work_attribute_type_allowed_value" +msgid "Dīpāḷi" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:13 +msgctxt "work_attribute_type_allowed_value" +msgid "E major" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:14 +msgctxt "work_attribute_type_allowed_value" +msgid "E minor" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:11 +msgctxt "work_attribute_type_allowed_value" +msgid "E-flat major" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:12 +msgctxt "work_attribute_type_allowed_value" +msgid "E-flat minor" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:15 +msgctxt "work_attribute_type_allowed_value" +msgid "E-sharp minor" +msgstr "" + +#: DB:release_group_primary_type/name:3 +msgctxt "release_group_primary_type" +msgid "EP" +msgstr "" + +#: DB:instrument_type/name:4 +msgctxt "instrument_type" +msgid "Electronic instrument" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:17 +msgctxt "work_attribute_type_allowed_value" +msgid "F major" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:18 +msgctxt "work_attribute_type_allowed_value" +msgid "F minor" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:16 +msgctxt "work_attribute_type_allowed_value" +msgid "F-flat major" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:19 +msgctxt "work_attribute_type_allowed_value" +msgid "F-sharp major" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:20 +msgctxt "work_attribute_type_allowed_value" +msgid "F-sharp minor" +msgstr "" + +#: DB:release_packaging/name:10 +msgctxt "release_packaging" +msgid "Fatbox" +msgstr "Debelakutija" + +#: DB:gender/name:2 +msgctxt "gender" +msgid "Female" +msgstr "Žena" + +#: DB:area_alias_type/name:2 +msgctxt "alias_type" +msgid "Formal name" +msgstr "Službeno ime" + +#: DB:cover_art_archive.art_type/name:1 +msgctxt "cover_art_type" +msgid "Front" +msgstr "Ispred" + +#: DB:work_attribute_type_allowed_value/value:22 +msgctxt "work_attribute_type_allowed_value" +msgid "G major" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:23 +msgctxt "work_attribute_type_allowed_value" +msgid "G minor" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:21 +msgctxt "work_attribute_type_allowed_value" +msgid "G-flat major" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:24 +msgctxt "work_attribute_type_allowed_value" +msgid "G-sharp major" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:25 +msgctxt "work_attribute_type_allowed_value" +msgid "G-sharp minor" +msgstr "" + +#: DB:work_attribute_type/name:9 +msgctxt "work_attribute_type" +msgid "GEMA ID" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:88 +msgctxt "work_attribute_type_allowed_value" +msgid "Gamakakriya" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:89 +msgctxt "work_attribute_type_allowed_value" +msgid "Gamakakriya/Pūrvīkaḷyāṇi" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:95 +msgctxt "work_attribute_type_allowed_value" +msgid "Garuḍadhvani" +msgstr "" + +#: DB:release_packaging/name:12 +msgctxt "release_packaging" +msgid "Gatefold Cover" +msgstr "Omot s preklopom" + +#: DB:work_attribute_type_allowed_value/value:99 +msgctxt "work_attribute_type_allowed_value" +msgid "Gaurīmanōhari" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:96 +msgctxt "work_attribute_type_allowed_value" +msgid "Gauḍa malhār" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:97 +msgctxt "work_attribute_type_allowed_value" +msgid "Gauḷa" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:98 +msgctxt "work_attribute_type_allowed_value" +msgid "Gauḷipantu" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:90 +msgctxt "work_attribute_type_allowed_value" +msgid "Gaṁbhīra nāṭa" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:91 +msgctxt "work_attribute_type_allowed_value" +msgid "Gaṁbhīra vāṇi" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:100 +msgctxt "work_attribute_type_allowed_value" +msgid "Ghanṭa" +msgstr "" + +#: DB:artist_type/name:2 +msgctxt "artist_type" +msgid "Group" +msgstr "Grupa" + +#: DB:work_attribute_type_allowed_value/value:102 +msgctxt "work_attribute_type_allowed_value" +msgid "Gurjāri" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:92 +msgctxt "work_attribute_type_allowed_value" +msgid "Gānamūrti" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:93 +msgctxt "work_attribute_type_allowed_value" +msgid "Gānavāridhi" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:94 +msgctxt "work_attribute_type_allowed_value" +msgid "Gāngēyabhūṣaṇi" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:101 +msgctxt "work_attribute_type_allowed_value" +msgid "Gōpikāvasantaṁ" +msgstr "" + +#: DB:medium_format/name:17 +msgctxt "medium_format" +msgid "HD-DVD" +msgstr "HD-DVD" + +#: DB:medium_format/name:25 +msgctxt "medium_format" +msgid "HDCD" +msgstr "HDCD" + +#: DB:medium_format/name:37 +msgctxt "medium_format" +msgid "HQCD" +msgstr "HQCD" + +#: DB:work_attribute_type_allowed_value/value:104 +msgctxt "work_attribute_type_allowed_value" +msgid "Hamsadhvani" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:107 +msgctxt "work_attribute_type_allowed_value" +msgid "Hamsavinōdini" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:103 +msgctxt "work_attribute_type_allowed_value" +msgid "Hamīr kaḷyaṇi" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:108 +msgctxt "work_attribute_type_allowed_value" +msgid "Harikāmbhōji" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:105 +msgctxt "work_attribute_type_allowed_value" +msgid "Haṁsanādaṁ" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:106 +msgctxt "work_attribute_type_allowed_value" +msgid "Haṁsānandi" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:112 +msgctxt "work_attribute_type_allowed_value" +msgid "Hindustān gāndhāri" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:110 +msgctxt "work_attribute_type_allowed_value" +msgid "Hindōḷa vasantaṁ" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:111 +msgctxt "work_attribute_type_allowed_value" +msgid "Hindōḷaṁ" +msgstr "" + +#: DB:label_type/name:2 +msgctxt "label_type" +msgid "Holding" +msgstr "Držanje" + +#: DB:work_attribute_type_allowed_value/value:113 +msgctxt "work_attribute_type_allowed_value" +msgid "Hussēnī" +msgstr "" + +#: DB:medium_format/name:38 +msgctxt "medium_format" +msgid "Hybrid SACD" +msgstr "Hibridni SACD" + +#: DB:work_attribute_type_allowed_value/value:109 +msgctxt "work_attribute_type_allowed_value" +msgid "Hēmavati" +msgstr "" + +#: DB:label_type/name:9 +msgctxt "label_type" +msgid "Imprint" +msgstr "Otisnuto" + +#: DB:series_type/description:5 +msgctxt "series_type" +msgid "Indicates that the series is a work catalogue." +msgstr "" + +#: DB:series_type/description:3 +msgctxt "series_type" +msgid "Indicates that the series is of recordings." +msgstr "" + +#: DB:series_type/description:1 +msgctxt "series_type" +msgid "Indicates that the series is of release groups." +msgstr "" + +#: DB:series_type/description:2 +msgctxt "series_type" +msgid "Indicates that the series is of releases." +msgstr "" + +#: DB:series_type/description:4 +msgctxt "series_type" +msgid "Indicates that the series is of works." +msgstr "" + +#: DB:place_type/name:5 +msgctxt "place_type" +msgid "Indoor arena" +msgstr "Unutarnja arena" + +#: DB:instrument_alias_type/name:1 +msgctxt "alias_type" +msgid "Instrument name" +msgstr "" + +#: DB:release_group_secondary_type/name:4 +msgctxt "release_group_secondary_type" +msgid "Interview" +msgstr "Intervju" + +#: DB:work_attribute_type/name:3 +msgctxt "work_attribute_type" +msgid "JASRAC ID" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:114 +msgctxt "work_attribute_type_allowed_value" +msgid "Jaganmōhini" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:115 +msgctxt "work_attribute_type_allowed_value" +msgid "Janaranjani" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:116 +msgctxt "work_attribute_type_allowed_value" +msgid "Jaya manōhari" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:117 +msgctxt "work_attribute_type_allowed_value" +msgid "Jayantasēna" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:118 +msgctxt "work_attribute_type_allowed_value" +msgid "Jayantaśrī" +msgstr "" + +#: DB:release_packaging/name:1 +msgctxt "release_packaging" +msgid "Jewel Case" +msgstr "Omot optočen draguljima" + +#: DB:work_attribute_type_allowed_value/value:119 +msgctxt "work_attribute_type_allowed_value" +msgid "Jhankāradhvani" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:120 +msgctxt "work_attribute_type_allowed_value" +msgid "Jingala" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:124 +msgctxt "work_attribute_type_allowed_value" +msgid "Jyōti svarūpiṇi" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:121 +msgctxt "work_attribute_type_allowed_value" +msgid "Jōg" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:122 +msgctxt "work_attribute_type_allowed_value" +msgid "Jōgiya" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:123 +msgctxt "work_attribute_type_allowed_value" +msgid "Jōnpuri" +msgstr "" + +#: DB:work_attribute_type/name:11 +msgctxt "work_attribute_type" +msgid "KOMCA ID" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:128 +msgctxt "work_attribute_type_allowed_value" +msgid "Kalgaḍa" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:130 +msgctxt "work_attribute_type_allowed_value" +msgid "Kalyāṇi" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:127 +msgctxt "work_attribute_type_allowed_value" +msgid "Kalāvati" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:131 +msgctxt "work_attribute_type_allowed_value" +msgid "Kamalāmanōhari" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:133 +msgctxt "work_attribute_type_allowed_value" +msgid "Kamās" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:137 +msgctxt "work_attribute_type_allowed_value" +msgid "Kannaḍa gaula" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:141 +msgctxt "work_attribute_type_allowed_value" +msgid "Karaharapriya" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:142 +msgctxt "work_attribute_type_allowed_value" +msgid "Karṇaranjani" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:143 +msgctxt "work_attribute_type_allowed_value" +msgid "Karṇāṭaka behāg" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:144 +msgctxt "work_attribute_type_allowed_value" +msgid "Karṇāṭaka dēvagāndhāri" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:145 +msgctxt "work_attribute_type_allowed_value" +msgid "Karṇāṭaka kāpi" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:146 +msgctxt "work_attribute_type_allowed_value" +msgid "Karṇāṭaka śudda sāvēri" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:147 +msgctxt "work_attribute_type_allowed_value" +msgid "Kathanakutūhalaṁ" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:129 +msgctxt "work_attribute_type_allowed_value" +msgid "Kaḷyāṇa vasantaṁ" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:125 +msgctxt "work_attribute_type_allowed_value" +msgid "Kaḷā sāvēri" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:126 +msgctxt "work_attribute_type_allowed_value" +msgid "Kaḷānidhi" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:150 +msgctxt "work_attribute_type_allowed_value" +msgid "Kedāraṁ" +msgstr "" + +#: DB:release_packaging/name:6 +msgctxt "release_packaging" +msgid "Keep Case" +msgstr "Zadrži kutiju" + +#: DB:work_attribute_type/name:1 +msgctxt "work_attribute_type" +msgid "Key" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:282 +msgctxt "work_attribute_type_allowed_value" +msgid "Khaṇḍa chāpu" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:293 +msgctxt "work_attribute_type_allowed_value" +msgid "Khaṇḍa-jāti tripuṭa" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:294 +msgctxt "work_attribute_type_allowed_value" +msgid "Khaṇḍa-jāti ēka" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:155 +msgctxt "work_attribute_type_allowed_value" +msgid "Kuntalavarāḷi" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:156 +msgctxt "work_attribute_type_allowed_value" +msgid "Kurinji" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:132 +msgctxt "work_attribute_type_allowed_value" +msgid "Kāmaranjani" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:134 +msgctxt "work_attribute_type_allowed_value" +msgid "Kāmavardani/Pantuvarāḷi" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:136 +msgctxt "work_attribute_type_allowed_value" +msgid "Kānaḍa" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:138 +msgctxt "work_attribute_type_allowed_value" +msgid "Kāntāmaṇi" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:139 +msgctxt "work_attribute_type_allowed_value" +msgid "Kāpi" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:140 +msgctxt "work_attribute_type_allowed_value" +msgid "Kāpi nārāyaṇi" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:148 +msgctxt "work_attribute_type_allowed_value" +msgid "Kāvaḍicindu" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:135 +msgctxt "work_attribute_type_allowed_value" +msgid "Kāṁbhōji" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:149 +msgctxt "work_attribute_type_allowed_value" +msgid "Kēdāragauḷa" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:152 +msgctxt "work_attribute_type_allowed_value" +msgid "Kīravāṇi" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:151 +msgctxt "work_attribute_type_allowed_value" +msgid "Kīraṇāvaḷi" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:153 +msgctxt "work_attribute_type_allowed_value" +msgid "Kōkiladhvani" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:154 +msgctxt "work_attribute_type_allowed_value" +msgid "Kōkilapriya" +msgstr "" + +#: DB:label_alias_type/name:1 +msgctxt "alias_type" +msgid "Label name" +msgstr "Ime izdavačke kuće" + +#: DB:work_attribute_type_allowed_value/value:157 +msgctxt "work_attribute_type_allowed_value" +msgid "Lalita" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:158 +msgctxt "work_attribute_type_allowed_value" +msgid "Lalita pancamaṁ" +msgstr "" + +#: DB:medium_format/name:5 +msgctxt "medium_format" +msgid "LaserDisc" +msgstr "Laserski disk" + +#: DB:work_attribute_type_allowed_value/value:159 +msgctxt "work_attribute_type_allowed_value" +msgid "Latāngi" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:160 +msgctxt "work_attribute_type_allowed_value" +msgid "Lavāngi" +msgstr "" + +#: DB:artist_alias_type/name:2 +msgctxt "alias_type" +msgid "Legal name" +msgstr "Legalno ime" + +#: DB:cover_art_archive.art_type/name:12 +msgctxt "cover_art_type" +msgid "Liner" +msgstr "Glazbeni tekst na omotu" + +#: DB:release_group_secondary_type/name:6 +msgctxt "release_group_secondary_type" +msgid "Live" +msgstr "Uživo" + +#: DB:work_attribute_type_allowed_value/value:161 +msgctxt "work_attribute_type_allowed_value" +msgid "Madhyamā varāḷi" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:162 +msgctxt "work_attribute_type_allowed_value" +msgid "Madhyamāvati" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:295 +msgctxt "work_attribute_type_allowed_value" +msgid "Madhyādi" +msgstr "" + +#: DB:work_type/name:7 +msgctxt "work_type" +msgid "Madrigal" +msgstr "Madrigal" + +#: DB:work_attribute_type_allowed_value/value:163 +msgctxt "work_attribute_type_allowed_value" +msgid "Maduvanti" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:296 +msgctxt "work_attribute_type_allowed_value" +msgid "Mahālakṣmi" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:164 +msgctxt "work_attribute_type_allowed_value" +msgid "Malahari" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:166 +msgctxt "work_attribute_type_allowed_value" +msgid "Malayamārutaṁ" +msgstr "" + +#: DB:gender/name:1 +msgctxt "gender" +msgid "Male" +msgstr "Muško" + +#: DB:work_attribute_type_allowed_value/value:168 +msgctxt "work_attribute_type_allowed_value" +msgid "Mandāri" +msgstr "" + +#: DB:series_ordering_type/name:2 +msgctxt "series_ordering_type" +msgid "Manual" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:172 +msgctxt "work_attribute_type_allowed_value" +msgid "Manōranjani" +msgstr "" + +#: DB:work_type/name:8 +msgctxt "work_type" +msgid "Mass" +msgstr "Masa" + +#: DB:work_attribute_type_allowed_value/value:175 +msgctxt "work_attribute_type_allowed_value" +msgid "Mayūra sāvēri" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:170 +msgctxt "work_attribute_type_allowed_value" +msgid "Maṇirangu" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:286 +msgctxt "work_attribute_type_allowed_value" +msgid "Maṭhya" +msgstr "" + +#: DB:cover_art_archive.art_type/name:4 +msgctxt "cover_art_type" +msgid "Medium" +msgstr "Umjerno" + +#: DB:work_attribute_type_allowed_value/value:176 +msgctxt "work_attribute_type_allowed_value" +msgid "Meghamalhar" +msgstr "" + +#: DB:medium_format/name:6 +msgctxt "medium_format" +msgid "MiniDisc" +msgstr "Minidisk" + +#: DB:release_group_secondary_type/name:9 +msgctxt "release_group_secondary_type" +msgid "Mixtape/Street" +msgstr "Mixkazeta/ Ulica" + +#: DB:work_attribute_type_allowed_value/value:281 +msgctxt "work_attribute_type_allowed_value" +msgid "Miśra chāpu" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:177 +msgctxt "work_attribute_type_allowed_value" +msgid "Miśra khamāj" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:178 +msgctxt "work_attribute_type_allowed_value" +msgid "Miśra pahāḍi" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:180 +msgctxt "work_attribute_type_allowed_value" +msgid "Miśra yaman" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:179 +msgctxt "work_attribute_type_allowed_value" +msgid "Miśra śivaranjani" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:287 +msgctxt "work_attribute_type_allowed_value" +msgid "Miśra-jāti jhaṁpe" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:297 +msgctxt "work_attribute_type_allowed_value" +msgid "Miśra-jāti rūpaka" +msgstr "" + +#: DB:work_type/name:9 +msgctxt "work_type" +msgid "Motet" +msgstr "Motet" + +#: DB:work_attribute_type_allowed_value/value:183 +msgctxt "work_attribute_type_allowed_value" +msgid "Mukhāri" +msgstr "" + +#: DB:area_type/name:4 +msgctxt "area_type" +msgid "Municipality" +msgstr "Grad" + +#: DB:work_attribute_type/name:12 +msgctxt "work_attribute_type" +msgid "MÜST ID" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:167 +msgctxt "work_attribute_type_allowed_value" +msgid "Mānavati" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:171 +msgctxt "work_attribute_type_allowed_value" +msgid "Mānji" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:169 +msgctxt "work_attribute_type_allowed_value" +msgid "Mānḍu" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:173 +msgctxt "work_attribute_type_allowed_value" +msgid "Mārgahindōḷaṁ" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:174 +msgctxt "work_attribute_type_allowed_value" +msgid "Māyāmāḷavagauḷa" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:165 +msgctxt "work_attribute_type_allowed_value" +msgid "Māḷavi" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:181 +msgctxt "work_attribute_type_allowed_value" +msgid "Mōhan kaḷyāṇi" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:182 +msgctxt "work_attribute_type_allowed_value" +msgid "Mōhanaṁ" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:196 +msgctxt "work_attribute_type_allowed_value" +msgid "Navarasa kannaḍa" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:195 +msgctxt "work_attribute_type_allowed_value" +msgid "Navarāgamālika" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:197 +msgctxt "work_attribute_type_allowed_value" +msgid "Navrōj" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:187 +msgctxt "work_attribute_type_allowed_value" +msgid "Naḷinakānti" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:191 +msgctxt "work_attribute_type_allowed_value" +msgid "Naṭabhairavi" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:194 +msgctxt "work_attribute_type_allowed_value" +msgid "Naṭanārāyaṇi" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:200 +msgctxt "work_attribute_type_allowed_value" +msgid "Nirōṣita" +msgstr "" + +#: DB:release_packaging/name:7 +msgctxt "release_packaging" +msgid "None" +msgstr "Nijedan" + +#: DB:work_attribute_type_allowed_value/value:184 +msgctxt "work_attribute_type_allowed_value" +msgid "Nādanāmakriya" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:185 +msgctxt "work_attribute_type_allowed_value" +msgid "Nāga gāndhāri" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:186 +msgctxt "work_attribute_type_allowed_value" +msgid "Nāgasvarāvaḷi" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:188 +msgctxt "work_attribute_type_allowed_value" +msgid "Nārāyaṇi" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:189 +msgctxt "work_attribute_type_allowed_value" +msgid "Nāsikabhūṣaṇi" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:198 +msgctxt "work_attribute_type_allowed_value" +msgid "Nāyaki" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:190 +msgctxt "work_attribute_type_allowed_value" +msgid "Nāṭa" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:192 +msgctxt "work_attribute_type_allowed_value" +msgid "Nāṭakapriya" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:193 +msgctxt "work_attribute_type_allowed_value" +msgid "Nāṭakurinji" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:199 +msgctxt "work_attribute_type_allowed_value" +msgid "Nīlāṁbari" +msgstr "" + +#: DB:cover_art_archive.art_type/name:5 +msgctxt "cover_art_type" +msgid "Obi" +msgstr "Obi" + +#: DB:release_status/name:1 +msgctxt "release_status" +msgid "Official" +msgstr "Službeni" + +#: DB:work_type/name:10 +msgctxt "work_type" +msgid "Opera" +msgstr "Opera" + +#: DB:work_type/name:24 +msgctxt "work_type" +msgid "Operetta" +msgstr "Opereta" + +#: DB:work_type/name:11 +msgctxt "work_type" +msgid "Oratorio" +msgstr "Oratorij" + +#: DB:artist_type/name:5 +msgctxt "artist_type" +msgid "Orchestra" +msgstr "" + +#: DB:label_type/name:4 +msgctxt "label_type" +msgid "Original Production" +msgstr "Orginalna produkcija" + +#: DB:artist_type/name:3 +msgctxt "artist_type" +msgid "Other" +msgstr "Drugi" + +#: DB:place_type/name:3 +msgctxt "place_type" +msgid "Other" +msgstr "Drugi" + +#: DB:release_group_primary_type/name:11 +msgctxt "release_group_primary_type" +msgid "Other" +msgstr "Drugi" + +#: DB:medium_format/name:13 +msgctxt "medium_format" +msgid "Other" +msgstr "Drugi" + +#: DB:release_packaging/name:5 +msgctxt "release_packaging" +msgid "Other" +msgstr "Drugi" + +#: DB:gender/name:3 +msgctxt "gender" +msgid "Other" +msgstr "Drugi" + +#: DB:cover_art_archive.art_type/name:8 +msgctxt "cover_art_type" +msgid "Other" +msgstr "Drugi" + +#: DB:instrument_type/name:5 +msgctxt "instrument_type" +msgid "Other instrument" +msgstr "" + +#: DB:work_type/name:12 +msgctxt "work_type" +msgid "Overture" +msgstr "Uvertira" + +#: DB:work_attribute_type_allowed_value/value:203 +msgctxt "work_attribute_type_allowed_value" +msgid "Paras" +msgstr "" + +#: DB:work_type/name:13 +msgctxt "work_type" +msgid "Partita" +msgstr "Partita" + +#: DB:work_attribute_type_allowed_value/value:204 +msgctxt "work_attribute_type_allowed_value" +msgid "Paṭdīp" +msgstr "" + +#: DB:instrument_type/name:3 +msgctxt "instrument_type" +msgid "Percussion instrument" +msgstr "" + +#: DB:artist_type/name:1 +msgctxt "artist_type" +msgid "Person" +msgstr "Osoba" + +#: DB:medium_format/name:15 +msgctxt "medium_format" +msgid "Piano Roll" +msgstr "Midi zapis klavira" + +#: DB:place_alias_type/name:1 +msgctxt "alias_type" +msgid "Place name" +msgstr "Ime mjesta" + +#: DB:work_type/name:21 +msgctxt "work_type" +msgid "Poem" +msgstr "Pjesma" + +#: DB:cover_art_archive.art_type/name:11 +msgctxt "cover_art_type" +msgid "Poster" +msgstr "Poster" + +#: DB:label_type/name:3 +msgctxt "label_type" +msgid "Production" +msgstr "Proizvodnja" + +#: DB:release_status/name:2 +msgctxt "release_status" +msgid "Promotion" +msgstr "Promocija" + +#: DB:work_type/name:23 +msgctxt "work_type" +msgid "Prose" +msgstr "Proza" + +#: DB:release_status/name:4 +msgctxt "release_status" +msgid "Pseudo-Release" +msgstr "Pseudo izdanje" + +#: DB:label_type/name:7 +msgctxt "label_type" +msgid "Publisher" +msgstr "Izdavač" + +#: DB:work_attribute_type_allowed_value/value:205 +msgctxt "work_attribute_type_allowed_value" +msgid "Puṇṇāgavarāḷi" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:209 +msgctxt "work_attribute_type_allowed_value" +msgid "Puṣpalatika" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:202 +msgctxt "work_attribute_type_allowed_value" +msgid "Pālamanjari" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:201 +msgctxt "work_attribute_type_allowed_value" +msgid "Pāḍi" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:208 +msgctxt "work_attribute_type_allowed_value" +msgid "Pūrvi" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:206 +msgctxt "work_attribute_type_allowed_value" +msgid "Pūrṇa ṣaḍjaṁ" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:207 +msgctxt "work_attribute_type_allowed_value" +msgid "Pūrṇacandrika" +msgstr "" + +#: DB:work_type/name:14 +msgctxt "work_type" +msgid "Quartet" +msgstr "Kvartet" + +#: DB:work_attribute_type_allowed_value/value:215 +msgctxt "work_attribute_type_allowed_value" +msgid "Ranjani" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:216 +msgctxt "work_attribute_type_allowed_value" +msgid "Rasikapriya" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:217 +msgctxt "work_attribute_type_allowed_value" +msgid "Ratipati priya" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:218 +msgctxt "work_attribute_type_allowed_value" +msgid "Ravicandrika" +msgstr "" + +#: DB:series_type/name:3 +msgctxt "series_type" +msgid "Recording" +msgstr "" + +#: DB:medium_format/name:10 +msgctxt "medium_format" +msgid "Reel-to-reel" +msgstr "Magnatska traka" + +#: DB:label_type/name:6 +msgctxt "label_type" +msgid "Reissue Production" +msgstr "Proizvodnja ponovnog izdanja" + +#: DB:series_type/name:2 +msgctxt "series_type" +msgid "Release" +msgstr "" + +#: DB:series_type/name:1 +msgctxt "series_type" +msgid "Release group" +msgstr "" + +#: DB:release_group_secondary_type/name:7 +msgctxt "release_group_secondary_type" +msgid "Remix" +msgstr "Remiks" + +#: DB:label_type/name:8 +msgctxt "label_type" +msgid "Rights Society" +msgstr "Društvo za autorska prava" + +#: DB:work_attribute_type_allowed_value/value:222 +msgctxt "work_attribute_type_allowed_value" +msgid "Rudrapriya" +msgstr "" + +#: DB:work_attribute_type/name:4 +msgctxt "work_attribute_type" +msgid "Rāga (Carnatic)" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:210 +msgctxt "work_attribute_type_allowed_value" +msgid "Rāgamālika" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:211 +msgctxt "work_attribute_type_allowed_value" +msgid "Rāgavinōdini" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:212 +msgctxt "work_attribute_type_allowed_value" +msgid "Rāgēśrī" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:213 +msgctxt "work_attribute_type_allowed_value" +msgid "Rāma manōhari" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:214 +msgctxt "work_attribute_type_allowed_value" +msgid "Rāmapriya" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:219 +msgctxt "work_attribute_type_allowed_value" +msgid "Rēvagupti" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:220 +msgctxt "work_attribute_type_allowed_value" +msgid "Rēvati" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:221 +msgctxt "work_attribute_type_allowed_value" +msgid "Rītigauḷa" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:280 +msgctxt "work_attribute_type_allowed_value" +msgid "Rūpaka" +msgstr "" + +#: DB:medium_format/name:3 +msgctxt "medium_format" +msgid "SACD" +msgstr "SACD" + +#: DB:work_attribute_type/name:8 +msgctxt "work_attribute_type" +msgid "SESAC ID" +msgstr "" + +#: DB:medium_format/name:36 +msgctxt "medium_format" +msgid "SHM-CD" +msgstr "SHM-CD" + +#: DB:work_attribute_type/name:10 +msgctxt "work_attribute_type" +msgid "SOCAN ID" +msgstr "" + +#: DB:medium_format/name:23 +msgctxt "medium_format" +msgid "SVCD" +msgstr "SVCD" + +#: DB:work_attribute_type_allowed_value/value:223 +msgctxt "work_attribute_type_allowed_value" +msgid "Sahānā" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:231 +msgctxt "work_attribute_type_allowed_value" +msgid "Sarasvati" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:232 +msgctxt "work_attribute_type_allowed_value" +msgid "Sarasvatī manōhari" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:230 +msgctxt "work_attribute_type_allowed_value" +msgid "Sarasāngi" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:233 +msgctxt "work_attribute_type_allowed_value" +msgid "Saurāṣtraṁ" +msgstr "" + +#: DB:artist_alias_type/name:3 DB:label_alias_type/name:2 +#: DB:place_alias_type/name:2 DB:work_alias_type/name:2 +#: DB:area_alias_type/name:3 DB:instrument_alias_type/name:2 +#: DB:series_alias_type/name:2 +msgctxt "alias_type" +msgid "Search hint" +msgstr "Pomoć pri pretrazi" + +#: DB:work_attribute_type_allowed_value/value:235 +msgctxt "work_attribute_type_allowed_value" +msgid "Sencuruṭṭi" +msgstr "" + +#: DB:series_alias_type/name:1 +msgctxt "alias_type" +msgid "Series name" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:236 +msgctxt "work_attribute_type_allowed_value" +msgid "Simhavāhini" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:237 +msgctxt "work_attribute_type_allowed_value" +msgid "Simhēndra madhyamaṁ" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:238 +msgctxt "work_attribute_type_allowed_value" +msgid "Sindhubhairavi" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:239 +msgctxt "work_attribute_type_allowed_value" +msgid "Sindhumandāri" +msgstr "" + +#: DB:release_group_primary_type/name:2 +msgctxt "release_group_primary_type" +msgid "Single" +msgstr "Singl" + +#: DB:release_packaging/name:2 +msgctxt "release_packaging" +msgid "Slim Jewel Case" +msgstr "Tanki omot optočen draguljima" + +#: DB:release_packaging/name:11 +msgctxt "release_packaging" +msgid "Snap Case" +msgstr "Omot koji se zatvara na pritisak" + +#: DB:work_type/name:5 +msgctxt "work_type" +msgid "Sonata" +msgstr "Sonata" + +#: DB:work_type/name:17 +msgctxt "work_type" +msgid "Song" +msgstr "Pjesme" + +#: DB:work_type/name:15 +msgctxt "work_type" +msgid "Song-cycle" +msgstr "Ciklus pjesme" + +#: DB:series_ordering_type/description:1 +msgctxt "series_ordering_type" +msgid "" +"Sorts the items in the series automatically by their number attributes, " +"using a natural sort order." +msgstr "" + +#: DB:work_type/name:22 +msgctxt "work_type" +msgid "Soundtrack" +msgstr "Soundtrack" + +#: DB:release_group_secondary_type/name:2 +msgctxt "release_group_secondary_type" +msgid "Soundtrack" +msgstr "Soundtrack" + +#: DB:cover_art_archive.art_type/name:6 +msgctxt "cover_art_type" +msgid "Spine" +msgstr "Kičma" + +#: DB:release_group_secondary_type/name:3 +msgctxt "release_group_secondary_type" +msgid "Spokenword" +msgstr "Govorena riječ" + +#: DB:place_type/name:4 +msgctxt "place_type" +msgid "Stadium" +msgstr "Stadion" + +#: DB:cover_art_archive.art_type/name:10 +msgctxt "cover_art_type" +msgid "Sticker" +msgstr "Naljepnica" + +#: DB:instrument_type/name:2 +msgctxt "instrument_type" +msgid "String instrument" +msgstr "" + +#: DB:place_type/name:1 +msgctxt "place_type" +msgid "Studio" +msgstr "Studio" + +#: DB:area_type/name:2 +msgctxt "area_type" +msgid "Subdivision" +msgstr "Potpodjela" + +#: DB:work_attribute_type_allowed_value/value:244 +msgctxt "work_attribute_type_allowed_value" +msgid "Sucaritra" +msgstr "" + +#: DB:work_type/name:6 +msgctxt "work_type" +msgid "Suite" +msgstr "Pratnja" + +#: DB:work_attribute_type_allowed_value/value:250 +msgctxt "work_attribute_type_allowed_value" +msgid "Sumanēśaranjani" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:251 +msgctxt "work_attribute_type_allowed_value" +msgid "Sunādavinōdini" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:252 +msgctxt "work_attribute_type_allowed_value" +msgid "Suraṭi" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:253 +msgctxt "work_attribute_type_allowed_value" +msgid "Svararanjani" +msgstr "" + +#: DB:work_type/name:18 +msgctxt "work_type" +msgid "Symphonic poem" +msgstr "Simfonijska pjesma" + +#: DB:work_type/name:16 +msgctxt "work_type" +msgid "Symphony" +msgstr "Simfonija" + +#: DB:work_attribute_type_allowed_value/value:224 +msgctxt "work_attribute_type_allowed_value" +msgid "Sālaga bhairavi" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:225 +msgctxt "work_attribute_type_allowed_value" +msgid "Sāma" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:229 +msgctxt "work_attribute_type_allowed_value" +msgid "Sāranga" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:228 +msgctxt "work_attribute_type_allowed_value" +msgid "Sārāmati" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:234 +msgctxt "work_attribute_type_allowed_value" +msgid "Sāvēri" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:255 +msgctxt "work_attribute_type_allowed_value" +msgid "Tanarūpi" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:256 +msgctxt "work_attribute_type_allowed_value" +msgid "Tillāng" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:288 +msgctxt "work_attribute_type_allowed_value" +msgid "Tiśra-jāti tripuṭa" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:284 +msgctxt "work_attribute_type_allowed_value" +msgid "Tiśra-jāti ēka" +msgstr "" + +#: DB:cover_art_archive.art_type/name:7 +msgctxt "cover_art_type" +msgid "Track" +msgstr "zvučni zapis" + +#: DB:cover_art_archive.art_type/name:9 +msgctxt "cover_art_type" +msgid "Tray" +msgstr "Pladanj" + +#: DB:work_attribute_type/name:5 +msgctxt "work_attribute_type" +msgid "Tāla (Carnatic)" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:257 +msgctxt "work_attribute_type_allowed_value" +msgid "Tōḍi" +msgstr "" + +#: DB:medium_format/name:28 +msgctxt "medium_format" +msgid "UMD" +msgstr "UMD" + +#: DB:medium_format/name:26 +msgctxt "medium_format" +msgid "USB Flash Drive" +msgstr "USB flash memorija" + +#: DB:work_attribute_type_allowed_value/value:258 +msgctxt "work_attribute_type_allowed_value" +msgid "Udaya ravicandrika" +msgstr "" + +#: DB:medium_format/name:22 +msgctxt "medium_format" +msgid "VCD" +msgstr "VCD" + +#: DB:medium_format/name:21 +msgctxt "medium_format" +msgid "VHS" +msgstr "VHS" + +#: DB:work_attribute_type_allowed_value/value:261 +msgctxt "work_attribute_type_allowed_value" +msgid "Vakuḷābharaṇaṁ" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:262 +msgctxt "work_attribute_type_allowed_value" +msgid "Valaji" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:263 +msgctxt "work_attribute_type_allowed_value" +msgid "Vandanadhāriṇi" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:265 +msgctxt "work_attribute_type_allowed_value" +msgid "Varamu" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:264 +msgctxt "work_attribute_type_allowed_value" +msgid "Varāḷi" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:266 +msgctxt "work_attribute_type_allowed_value" +msgid "Varṇarūpini" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:267 +msgctxt "work_attribute_type_allowed_value" +msgid "Vasanta" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:268 +msgctxt "work_attribute_type_allowed_value" +msgid "Vasanta varāḷi" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:269 +msgctxt "work_attribute_type_allowed_value" +msgid "Vasantabhairavi" +msgstr "" + +#: DB:place_type/name:2 +msgctxt "place_type" +msgid "Venue" +msgstr "Mjesto događanja" + +#: DB:medium_format/name:32 +msgctxt "medium_format" +msgid "Videotape" +msgstr "Videokazeta" + +#: DB:work_attribute_type_allowed_value/value:273 +msgctxt "work_attribute_type_allowed_value" +msgid "Vijayanagari" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:274 +msgctxt "work_attribute_type_allowed_value" +msgid "Vijayasarasvati" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:275 +msgctxt "work_attribute_type_allowed_value" +msgid "Vijayaśrī" +msgstr "" + +#: DB:medium_format/name:7 +msgctxt "medium_format" +msgid "Vinyl" +msgstr "Vinil" + +#: DB:work_attribute_type_allowed_value/value:259 +msgctxt "work_attribute_type_allowed_value" +msgid "Vācaspati" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:260 +msgctxt "work_attribute_type_allowed_value" +msgid "Vāgadīśvari" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:270 +msgctxt "work_attribute_type_allowed_value" +msgid "Vāsanti" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:271 +msgctxt "work_attribute_type_allowed_value" +msgid "Vēgavāhiṇi" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:272 +msgctxt "work_attribute_type_allowed_value" +msgid "Vēlāvali" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:276 +msgctxt "work_attribute_type_allowed_value" +msgid "Vīra vasantaṁ" +msgstr "" + +#: DB:cover_art_archive.art_type/name:13 +msgctxt "cover_art_type" +msgid "Watermark" +msgstr "" + +#: DB:medium_format/name:14 +msgctxt "medium_format" +msgid "Wax Cylinder" +msgstr "Voštani cilindar" + +#: DB:instrument_type/name:1 +msgctxt "instrument_type" +msgid "Wind instrument" +msgstr "" + +#: DB:series_type/name:4 +msgctxt "series_type" +msgid "Work" +msgstr "" + +#: DB:work_alias_type/name:1 +msgctxt "alias_type" +msgid "Work name" +msgstr "Radno ime" + +#: DB:work_attribute_type_allowed_value/value:277 +msgctxt "work_attribute_type_allowed_value" +msgid "Yadukula kāṁbōji" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:278 +msgctxt "work_attribute_type_allowed_value" +msgid "Yamuna kalyāṇi" +msgstr "" + +#: DB:work_type/name:19 +msgctxt "work_type" +msgid "Zarzuela" +msgstr "Zarzuela" + +#: DB:medium_format/name:27 +msgctxt "medium_format" +msgid "slotMusic" +msgstr "slotGlazba" + +#: DB:work_type/name:20 +msgctxt "work_type" +msgid "Étude" +msgstr "Etida" + +#: DB:work_attribute_type_allowed_value/value:35 +msgctxt "work_attribute_type_allowed_value" +msgid "Ābhēri" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:36 +msgctxt "work_attribute_type_allowed_value" +msgid "Ābhōgi" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:279 +msgctxt "work_attribute_type_allowed_value" +msgid "Ādi" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:290 +msgctxt "work_attribute_type_allowed_value" +msgid "Ādi (Tiśra naḍe)" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:37 +msgctxt "work_attribute_type_allowed_value" +msgid "Āhir bhairav" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:38 +msgctxt "work_attribute_type_allowed_value" +msgid "Āhiri" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:41 +msgctxt "work_attribute_type_allowed_value" +msgid "Ānandabhairavi" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:42 +msgctxt "work_attribute_type_allowed_value" +msgid "Āndōḷika" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:43 +msgctxt "work_attribute_type_allowed_value" +msgid "Ārabhi" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:283 +msgctxt "work_attribute_type_allowed_value" +msgid "Ēka" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:226 +msgctxt "work_attribute_type_allowed_value" +msgid "Śankarābharaṇaṁ" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:240 +msgctxt "work_attribute_type_allowed_value" +msgid "Śivaranjani" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:241 +msgctxt "work_attribute_type_allowed_value" +msgid "Śrī" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:242 +msgctxt "work_attribute_type_allowed_value" +msgid "Śrīranjani" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:243 +msgctxt "work_attribute_type_allowed_value" +msgid "Śubhapantuvarāḷi" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:245 +msgctxt "work_attribute_type_allowed_value" +msgid "Śudda sārang" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:246 +msgctxt "work_attribute_type_allowed_value" +msgid "Śudda sāvēri" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:247 +msgctxt "work_attribute_type_allowed_value" +msgid "Śuddadhanyāsi" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:248 +msgctxt "work_attribute_type_allowed_value" +msgid "Śuddasīmantini" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:254 +msgctxt "work_attribute_type_allowed_value" +msgid "Śyāṁ kaḷyāṇ" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:249 +msgctxt "work_attribute_type_allowed_value" +msgid "Śūḷiṇi" +msgstr "" + +#: DB:work_attribute_type_allowed_value/value:227 +msgctxt "work_attribute_type_allowed_value" +msgid "Ṣanmukhapriya" +msgstr "" diff --git a/po/attributes/it.po b/po/attributes/it.po index a6ac9d7ce..baa31c7c7 100644 --- a/po/attributes/it.po +++ b/po/attributes/it.po @@ -9,8 +9,8 @@ msgid "" msgstr "" "Project-Id-Version: MusicBrainz\n" -"PO-Revision-Date: 2014-04-17 05:16+0000\n" -"Last-Translator: Luca Salini \n" +"PO-Revision-Date: 2014-05-20 19:03+0000\n" +"Last-Translator: Ian McEwen \n" "Language-Team: Italian (http://www.transifex.com/projects/p/musicbrainz/language/it/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -83,6 +83,11 @@ msgctxt "release_group_primary_type" msgid "Album" msgstr "Album" +#: DB:series_ordering_type/description:2 +msgctxt "series_ordering_type" +msgid "Allows for manually setting the position of each item in the series." +msgstr "Permette di impostare manualmente la posizione di ogni elemento della serie." + #: DB:work_attribute_type_allowed_value/value:40 msgctxt "work_attribute_type_allowed_value" msgid "Amṛtavarṣiṇi" @@ -123,6 +128,11 @@ msgctxt "release_group_secondary_type" msgid "Audiobook" msgstr "Audiolibro" +#: DB:series_ordering_type/name:1 +msgctxt "series_ordering_type" +msgid "Automatic" +msgstr "Automatico" + #: DB:work_attribute_type_allowed_value/value:45 msgctxt "work_attribute_type_allowed_value" msgid "Aṭāna" @@ -383,6 +393,11 @@ msgctxt "release_packaging" msgid "Cassette Case" msgstr "Custodia per audiocassetta" +#: DB:series_type/name:5 +msgctxt "series_type" +msgid "Catalogue" +msgstr "" + #: DB:work_attribute_type_allowed_value/value:291 msgctxt "work_attribute_type_allowed_value" msgid "Caturaśra-jāti jhaṁpe" @@ -653,6 +668,11 @@ msgctxt "release_group_primary_type" msgid "EP" msgstr "EP" +#: DB:instrument_type/name:4 +msgctxt "instrument_type" +msgid "Electronic instrument" +msgstr "Strumento elettronico" + #: DB:work_attribute_type_allowed_value/value:17 msgctxt "work_attribute_type_allowed_value" msgid "F major" @@ -898,11 +918,41 @@ msgctxt "label_type" msgid "Imprint" msgstr "Casa discografica" +#: DB:series_type/description:5 +msgctxt "series_type" +msgid "Indicates that the series is a work catalogue." +msgstr "" + +#: DB:series_type/description:3 +msgctxt "series_type" +msgid "Indicates that the series is of recordings." +msgstr "Indica che si tratta di una serie di registrazioni." + +#: DB:series_type/description:1 +msgctxt "series_type" +msgid "Indicates that the series is of release groups." +msgstr "Indica che si tratta di una serie di gruppi di pubblicazioni." + +#: DB:series_type/description:2 +msgctxt "series_type" +msgid "Indicates that the series is of releases." +msgstr "Indica che si tratta di una serie di pubblicazioni." + +#: DB:series_type/description:4 +msgctxt "series_type" +msgid "Indicates that the series is of works." +msgstr "Indica che si tratta di una serie di opere." + #: DB:place_type/name:5 msgctxt "place_type" msgid "Indoor arena" msgstr "Arena coperta" +#: DB:instrument_alias_type/name:1 +msgctxt "alias_type" +msgid "Instrument name" +msgstr "Nome strumento" + #: DB:release_group_secondary_type/name:4 msgctxt "release_group_secondary_type" msgid "Interview" @@ -1258,6 +1308,11 @@ msgctxt "work_attribute_type_allowed_value" msgid "Mandāri" msgstr "Mandāri" +#: DB:series_ordering_type/name:2 +msgctxt "series_ordering_type" +msgid "Manual" +msgstr "Manuale" + #: DB:work_attribute_type_allowed_value/value:172 msgctxt "work_attribute_type_allowed_value" msgid "Manōranjani" @@ -1558,6 +1613,11 @@ msgctxt "cover_art_type" msgid "Other" msgstr "Altro" +#: DB:instrument_type/name:5 +msgctxt "instrument_type" +msgid "Other instrument" +msgstr "Altro strumento" + #: DB:work_type/name:12 msgctxt "work_type" msgid "Overture" @@ -1578,6 +1638,11 @@ msgctxt "work_attribute_type_allowed_value" msgid "Paṭdīp" msgstr "Paṭdīp" +#: DB:instrument_type/name:3 +msgctxt "instrument_type" +msgid "Percussion instrument" +msgstr "Strumento a percussione" + #: DB:artist_type/name:1 msgctxt "artist_type" msgid "Person" @@ -1688,6 +1753,11 @@ msgctxt "work_attribute_type_allowed_value" msgid "Ravicandrika" msgstr "Ravicandrika" +#: DB:series_type/name:3 +msgctxt "series_type" +msgid "Recording" +msgstr "Registrazione" + #: DB:medium_format/name:10 msgctxt "medium_format" msgid "Reel-to-reel" @@ -1698,6 +1768,16 @@ msgctxt "label_type" msgid "Reissue Production" msgstr "Produzione di riedizioni" +#: DB:series_type/name:2 +msgctxt "series_type" +msgid "Release" +msgstr "Pubblicazione" + +#: DB:series_type/name:1 +msgctxt "series_type" +msgid "Release group" +msgstr "Gruppo di pubblicazioni" + #: DB:release_group_secondary_type/name:7 msgctxt "release_group_secondary_type" msgid "Remix" @@ -1815,7 +1895,8 @@ msgstr "Saurāṣtraṁ" #: DB:artist_alias_type/name:3 DB:label_alias_type/name:2 #: DB:place_alias_type/name:2 DB:work_alias_type/name:2 -#: DB:area_alias_type/name:3 +#: DB:area_alias_type/name:3 DB:instrument_alias_type/name:2 +#: DB:series_alias_type/name:2 msgctxt "alias_type" msgid "Search hint" msgstr "Suggerimento per ricerca" @@ -1825,6 +1906,11 @@ msgctxt "work_attribute_type_allowed_value" msgid "Sencuruṭṭi" msgstr "Sencuruṭṭi" +#: DB:series_alias_type/name:1 +msgctxt "alias_type" +msgid "Series name" +msgstr "Nome serie" + #: DB:work_attribute_type_allowed_value/value:236 msgctxt "work_attribute_type_allowed_value" msgid "Simhavāhini" @@ -1875,6 +1961,13 @@ msgctxt "work_type" msgid "Song-cycle" msgstr "Ciclo di canzoni" +#: DB:series_ordering_type/description:1 +msgctxt "series_ordering_type" +msgid "" +"Sorts the items in the series automatically by their number attributes, " +"using a natural sort order." +msgstr "Ordina automaticamente gli elementi della serie in base al loro numero ordinale, utilizzando un ordinamento naturale." + #: DB:work_type/name:22 msgctxt "work_type" msgid "Soundtrack" @@ -1905,6 +1998,11 @@ msgctxt "cover_art_type" msgid "Sticker" msgstr "Adesivo" +#: DB:instrument_type/name:2 +msgctxt "instrument_type" +msgid "String instrument" +msgstr "Strumento a corda" + #: DB:place_type/name:1 msgctxt "place_type" msgid "Studio" @@ -2160,6 +2258,16 @@ msgctxt "medium_format" msgid "Wax Cylinder" msgstr "Cilindro fonografico" +#: DB:instrument_type/name:1 +msgctxt "instrument_type" +msgid "Wind instrument" +msgstr "Strumento ad aria" + +#: DB:series_type/name:4 +msgctxt "series_type" +msgid "Work" +msgstr "Opera" + #: DB:work_alias_type/name:1 msgctxt "alias_type" msgid "Work name" diff --git a/po/attributes/ja.po b/po/attributes/ja.po index f53a145f0..02eb6c80c 100644 --- a/po/attributes/ja.po +++ b/po/attributes/ja.po @@ -6,7 +6,7 @@ msgid "" msgstr "" "Project-Id-Version: MusicBrainz\n" -"PO-Revision-Date: 2014-04-17 03:31+0000\n" +"PO-Revision-Date: 2014-05-20 19:03+0000\n" "Last-Translator: Ian McEwen \n" "Language-Team: Japanese (http://www.transifex.com/projects/p/musicbrainz/language/ja/)\n" "MIME-Version: 1.0\n" @@ -80,6 +80,11 @@ msgctxt "release_group_primary_type" msgid "Album" msgstr "アルバム" +#: DB:series_ordering_type/description:2 +msgctxt "series_ordering_type" +msgid "Allows for manually setting the position of each item in the series." +msgstr "" + #: DB:work_attribute_type_allowed_value/value:40 msgctxt "work_attribute_type_allowed_value" msgid "Amṛtavarṣiṇi" @@ -120,6 +125,11 @@ msgctxt "release_group_secondary_type" msgid "Audiobook" msgstr "オーディオブック" +#: DB:series_ordering_type/name:1 +msgctxt "series_ordering_type" +msgid "Automatic" +msgstr "" + #: DB:work_attribute_type_allowed_value/value:45 msgctxt "work_attribute_type_allowed_value" msgid "Aṭāna" @@ -380,6 +390,11 @@ msgctxt "release_packaging" msgid "Cassette Case" msgstr "カセットケース" +#: DB:series_type/name:5 +msgctxt "series_type" +msgid "Catalogue" +msgstr "" + #: DB:work_attribute_type_allowed_value/value:291 msgctxt "work_attribute_type_allowed_value" msgid "Caturaśra-jāti jhaṁpe" @@ -650,6 +665,11 @@ msgctxt "release_group_primary_type" msgid "EP" msgstr "EP" +#: DB:instrument_type/name:4 +msgctxt "instrument_type" +msgid "Electronic instrument" +msgstr "" + #: DB:work_attribute_type_allowed_value/value:17 msgctxt "work_attribute_type_allowed_value" msgid "F major" @@ -895,11 +915,41 @@ msgctxt "label_type" msgid "Imprint" msgstr "" +#: DB:series_type/description:5 +msgctxt "series_type" +msgid "Indicates that the series is a work catalogue." +msgstr "" + +#: DB:series_type/description:3 +msgctxt "series_type" +msgid "Indicates that the series is of recordings." +msgstr "" + +#: DB:series_type/description:1 +msgctxt "series_type" +msgid "Indicates that the series is of release groups." +msgstr "" + +#: DB:series_type/description:2 +msgctxt "series_type" +msgid "Indicates that the series is of releases." +msgstr "" + +#: DB:series_type/description:4 +msgctxt "series_type" +msgid "Indicates that the series is of works." +msgstr "" + #: DB:place_type/name:5 msgctxt "place_type" msgid "Indoor arena" msgstr "" +#: DB:instrument_alias_type/name:1 +msgctxt "alias_type" +msgid "Instrument name" +msgstr "" + #: DB:release_group_secondary_type/name:4 msgctxt "release_group_secondary_type" msgid "Interview" @@ -1255,6 +1305,11 @@ msgctxt "work_attribute_type_allowed_value" msgid "Mandāri" msgstr "" +#: DB:series_ordering_type/name:2 +msgctxt "series_ordering_type" +msgid "Manual" +msgstr "" + #: DB:work_attribute_type_allowed_value/value:172 msgctxt "work_attribute_type_allowed_value" msgid "Manōranjani" @@ -1555,6 +1610,11 @@ msgctxt "cover_art_type" msgid "Other" msgstr "その他" +#: DB:instrument_type/name:5 +msgctxt "instrument_type" +msgid "Other instrument" +msgstr "" + #: DB:work_type/name:12 msgctxt "work_type" msgid "Overture" @@ -1575,6 +1635,11 @@ msgctxt "work_attribute_type_allowed_value" msgid "Paṭdīp" msgstr "" +#: DB:instrument_type/name:3 +msgctxt "instrument_type" +msgid "Percussion instrument" +msgstr "" + #: DB:artist_type/name:1 msgctxt "artist_type" msgid "Person" @@ -1685,6 +1750,11 @@ msgctxt "work_attribute_type_allowed_value" msgid "Ravicandrika" msgstr "" +#: DB:series_type/name:3 +msgctxt "series_type" +msgid "Recording" +msgstr "" + #: DB:medium_format/name:10 msgctxt "medium_format" msgid "Reel-to-reel" @@ -1695,6 +1765,16 @@ msgctxt "label_type" msgid "Reissue Production" msgstr "再販品" +#: DB:series_type/name:2 +msgctxt "series_type" +msgid "Release" +msgstr "" + +#: DB:series_type/name:1 +msgctxt "series_type" +msgid "Release group" +msgstr "" + #: DB:release_group_secondary_type/name:7 msgctxt "release_group_secondary_type" msgid "Remix" @@ -1812,7 +1892,8 @@ msgstr "" #: DB:artist_alias_type/name:3 DB:label_alias_type/name:2 #: DB:place_alias_type/name:2 DB:work_alias_type/name:2 -#: DB:area_alias_type/name:3 +#: DB:area_alias_type/name:3 DB:instrument_alias_type/name:2 +#: DB:series_alias_type/name:2 msgctxt "alias_type" msgid "Search hint" msgstr "検索ヒント" @@ -1822,6 +1903,11 @@ msgctxt "work_attribute_type_allowed_value" msgid "Sencuruṭṭi" msgstr "" +#: DB:series_alias_type/name:1 +msgctxt "alias_type" +msgid "Series name" +msgstr "" + #: DB:work_attribute_type_allowed_value/value:236 msgctxt "work_attribute_type_allowed_value" msgid "Simhavāhini" @@ -1872,6 +1958,13 @@ msgctxt "work_type" msgid "Song-cycle" msgstr "ソングサイクル" +#: DB:series_ordering_type/description:1 +msgctxt "series_ordering_type" +msgid "" +"Sorts the items in the series automatically by their number attributes, " +"using a natural sort order." +msgstr "" + #: DB:work_type/name:22 msgctxt "work_type" msgid "Soundtrack" @@ -1902,6 +1995,11 @@ msgctxt "cover_art_type" msgid "Sticker" msgstr "ステッカー" +#: DB:instrument_type/name:2 +msgctxt "instrument_type" +msgid "String instrument" +msgstr "" + #: DB:place_type/name:1 msgctxt "place_type" msgid "Studio" @@ -2157,6 +2255,16 @@ msgctxt "medium_format" msgid "Wax Cylinder" msgstr "ワックスシリンダー" +#: DB:instrument_type/name:1 +msgctxt "instrument_type" +msgid "Wind instrument" +msgstr "" + +#: DB:series_type/name:4 +msgctxt "series_type" +msgid "Work" +msgstr "" + #: DB:work_alias_type/name:1 msgctxt "alias_type" msgid "Work name" diff --git a/po/attributes/nb.po b/po/attributes/nb.po index ae575a5b5..344ec212c 100644 --- a/po/attributes/nb.po +++ b/po/attributes/nb.po @@ -1,10 +1,11 @@ # # Translators: # Zaphod Beeblebrox, 2012 +# Zaphod Beeblebrox, 2014 msgid "" msgstr "" "Project-Id-Version: MusicBrainz\n" -"PO-Revision-Date: 2014-04-17 03:31+0000\n" +"PO-Revision-Date: 2014-05-20 19:03+0000\n" "Last-Translator: Ian McEwen \n" "Language-Team: Norwegian Bokmål (http://www.transifex.com/projects/p/musicbrainz/language/nb/)\n" "MIME-Version: 1.0\n" @@ -41,12 +42,12 @@ msgstr "" #: DB:work_attribute_type_allowed_value/value:28 msgctxt "work_attribute_type_allowed_value" msgid "A major" -msgstr "" +msgstr "A dur" #: DB:work_attribute_type_allowed_value/value:29 msgctxt "work_attribute_type_allowed_value" msgid "A minor" -msgstr "" +msgstr "A moll" #: DB:work_attribute_type_allowed_value/value:26 msgctxt "work_attribute_type_allowed_value" @@ -78,15 +79,20 @@ msgctxt "release_group_primary_type" msgid "Album" msgstr "Album" +#: DB:series_ordering_type/description:2 +msgctxt "series_ordering_type" +msgid "Allows for manually setting the position of each item in the series." +msgstr "" + #: DB:work_attribute_type_allowed_value/value:40 msgctxt "work_attribute_type_allowed_value" msgid "Amṛtavarṣiṇi" -msgstr "" +msgstr "Amṛtavarṣiṇi" #: DB:work_attribute_type_allowed_value/value:39 msgctxt "work_attribute_type_allowed_value" msgid "Amṛtavāhiṇi" -msgstr "" +msgstr "Amṛtavāhiṇi" #: DB:area_alias_type/name:1 msgctxt "alias_type" @@ -106,7 +112,7 @@ msgstr "Artistnavn" #: DB:work_attribute_type_allowed_value/value:44 msgctxt "work_attribute_type_allowed_value" msgid "Asāvēri" -msgstr "" +msgstr "Asāvēri" #: DB:work_type/name:25 msgctxt "work_type" @@ -118,25 +124,30 @@ msgctxt "release_group_secondary_type" msgid "Audiobook" msgstr "Lydbok" +#: DB:series_ordering_type/name:1 +msgctxt "series_ordering_type" +msgid "Automatic" +msgstr "" + #: DB:work_attribute_type_allowed_value/value:45 msgctxt "work_attribute_type_allowed_value" msgid "Aṭāna" -msgstr "" +msgstr "Aṭāna" #: DB:work_attribute_type_allowed_value/value:289 msgctxt "work_attribute_type_allowed_value" msgid "Aṭṭa" -msgstr "" +msgstr "Aṭṭa" #: DB:work_attribute_type_allowed_value/value:33 msgctxt "work_attribute_type_allowed_value" msgid "B major" -msgstr "" +msgstr "B dur" #: DB:work_attribute_type_allowed_value/value:34 msgctxt "work_attribute_type_allowed_value" msgid "B minor" -msgstr "" +msgstr "B moll" #: DB:work_attribute_type_allowed_value/value:31 msgctxt "work_attribute_type_allowed_value" @@ -161,12 +172,12 @@ msgstr "Bakside" #: DB:work_attribute_type_allowed_value/value:47 msgctxt "work_attribute_type_allowed_value" msgid "Bahudāri" -msgstr "" +msgstr "Bahudāri" #: DB:work_attribute_type_allowed_value/value:48 msgctxt "work_attribute_type_allowed_value" msgid "Balahaṁsa" -msgstr "" +msgstr "Balahaṁsa" #: DB:work_type/name:2 msgctxt "work_type" @@ -176,12 +187,12 @@ msgstr "Ballett" #: DB:work_attribute_type_allowed_value/value:49 msgctxt "work_attribute_type_allowed_value" msgid "Bauḷi" -msgstr "" +msgstr "Bauḷi" #: DB:work_attribute_type_allowed_value/value:51 msgctxt "work_attribute_type_allowed_value" msgid "Behāg" -msgstr "" +msgstr "Behāg" #: DB:work_type/name:26 msgctxt "work_type" @@ -196,42 +207,42 @@ msgstr "Betamax" #: DB:work_attribute_type_allowed_value/value:52 msgctxt "work_attribute_type_allowed_value" msgid "Bhairavi" -msgstr "" +msgstr "Bhairavi" #: DB:work_attribute_type_allowed_value/value:53 msgctxt "work_attribute_type_allowed_value" msgid "Bhavāni" -msgstr "" +msgstr "Bhavāni" #: DB:work_attribute_type_allowed_value/value:54 msgctxt "work_attribute_type_allowed_value" msgid "Bhāvapriya" -msgstr "" +msgstr "Bhāvapriya" #: DB:work_attribute_type_allowed_value/value:55 msgctxt "work_attribute_type_allowed_value" msgid "Bhīmpalāsi" -msgstr "" +msgstr "Bhīmpalāsi" #: DB:work_attribute_type_allowed_value/value:56 msgctxt "work_attribute_type_allowed_value" msgid "Bhōga sāvēri" -msgstr "" +msgstr "Bhōga sāvēri" #: DB:work_attribute_type_allowed_value/value:57 msgctxt "work_attribute_type_allowed_value" msgid "Bhūpāḷaṁ" -msgstr "" +msgstr "Bhūpāḷaṁ" #: DB:work_attribute_type_allowed_value/value:58 msgctxt "work_attribute_type_allowed_value" msgid "Bhūṣāvaḷi" -msgstr "" +msgstr "Bhūṣāvaḷi" #: DB:work_attribute_type_allowed_value/value:59 msgctxt "work_attribute_type_allowed_value" msgid "Bilahari" -msgstr "" +msgstr "Bilahari" #: DB:medium_format/name:20 msgctxt "medium_format" @@ -246,7 +257,7 @@ msgstr "" #: DB:release_packaging/name:9 msgctxt "release_packaging" msgid "Book" -msgstr "" +msgstr "Bok" #: DB:cover_art_archive.art_type/name:3 msgctxt "cover_art_type" @@ -271,37 +282,37 @@ msgstr "" #: DB:work_attribute_type_allowed_value/value:62 msgctxt "work_attribute_type_allowed_value" msgid "Budamanōhari" -msgstr "" +msgstr "Budamanōhari" #: DB:work_attribute_type_allowed_value/value:46 msgctxt "work_attribute_type_allowed_value" msgid "Bāgēśrī" -msgstr "" +msgstr "Bāgēśrī" #: DB:work_attribute_type_allowed_value/value:50 msgctxt "work_attribute_type_allowed_value" msgid "Bēgaḍa" -msgstr "" +msgstr "Bēgaḍa" #: DB:work_attribute_type_allowed_value/value:60 msgctxt "work_attribute_type_allowed_value" msgid "Bṛndāvana sāranga" -msgstr "" +msgstr "Bṛndāvana sāranga" #: DB:work_attribute_type_allowed_value/value:61 msgctxt "work_attribute_type_allowed_value" msgid "Bṛndāvani" -msgstr "" +msgstr "Bṛndāvani" #: DB:work_attribute_type_allowed_value/value:2 msgctxt "work_attribute_type_allowed_value" msgid "C major" -msgstr "" +msgstr "C dur" #: DB:work_attribute_type_allowed_value/value:3 msgctxt "work_attribute_type_allowed_value" msgid "C minor" -msgstr "" +msgstr "C moll" #: DB:work_attribute_type_allowed_value/value:1 msgctxt "work_attribute_type_allowed_value" @@ -336,22 +347,22 @@ msgstr "CD-R" #: DB:work_attribute_type_allowed_value/value:63 msgctxt "work_attribute_type_allowed_value" msgid "Cakravākaṁ" -msgstr "" +msgstr "Cakravākaṁ" #: DB:work_attribute_type_allowed_value/value:64 msgctxt "work_attribute_type_allowed_value" msgid "Candrajyōti" -msgstr "" +msgstr "Candrajyōti" #: DB:work_attribute_type_allowed_value/value:65 msgctxt "work_attribute_type_allowed_value" msgid "Candrakauns" -msgstr "" +msgstr "Candrakauns" #: DB:work_type/name:3 msgctxt "work_type" msgid "Cantata" -msgstr "" +msgstr "Kantate" #: DB:release_packaging/name:4 msgctxt "release_packaging" @@ -366,7 +377,7 @@ msgstr "" #: DB:work_attribute_type_allowed_value/value:66 msgctxt "work_attribute_type_allowed_value" msgid "Carturdaśa rāgamālika" -msgstr "" +msgstr "Carturdaśa rāgamālika" #: DB:medium_format/name:8 msgctxt "medium_format" @@ -378,15 +389,20 @@ msgctxt "release_packaging" msgid "Cassette Case" msgstr "" +#: DB:series_type/name:5 +msgctxt "series_type" +msgid "Catalogue" +msgstr "" + #: DB:work_attribute_type_allowed_value/value:291 msgctxt "work_attribute_type_allowed_value" msgid "Caturaśra-jāti jhaṁpe" -msgstr "" +msgstr "Caturaśra-jāti jhaṁpe" #: DB:work_attribute_type_allowed_value/value:70 msgctxt "work_attribute_type_allowed_value" msgid "Cencu kāmbhōji" -msgstr "" +msgstr "Cencu kāmbhōji" #: DB:artist_type/name:4 msgctxt "artist_type" @@ -396,62 +412,62 @@ msgstr "" #: DB:artist_type/name:6 msgctxt "artist_type" msgid "Choir" -msgstr "" +msgstr "Kor" #: DB:work_attribute_type_allowed_value/value:71 msgctxt "work_attribute_type_allowed_value" msgid "Cintāmaṇi" -msgstr "" +msgstr "Cintāmaṇi" #: DB:work_attribute_type_allowed_value/value:72 msgctxt "work_attribute_type_allowed_value" msgid "Cittaranjani" -msgstr "" +msgstr "Cittaranjani" #: DB:area_type/name:3 msgctxt "area_type" msgid "City" -msgstr "" +msgstr "By" #: DB:release_group_secondary_type/name:1 msgctxt "release_group_secondary_type" msgid "Compilation" -msgstr "" +msgstr "Samlealbum" #: DB:work_type/name:4 msgctxt "work_type" msgid "Concerto" -msgstr "" +msgstr "Solokonsert" #: DB:area_type/name:1 msgctxt "area_type" msgid "Country" -msgstr "" +msgstr "Land" #: DB:work_attribute_type_allowed_value/value:67 msgctxt "work_attribute_type_allowed_value" msgid "Cārukēśi" -msgstr "" +msgstr "Cārukēśi" #: DB:work_attribute_type_allowed_value/value:68 msgctxt "work_attribute_type_allowed_value" msgid "Cāyānāṭa" -msgstr "" +msgstr "Cāyānāṭa" #: DB:work_attribute_type_allowed_value/value:69 msgctxt "work_attribute_type_allowed_value" msgid "Cāyātarangiṇi" -msgstr "" +msgstr "Cāyātarangiṇi" #: DB:work_attribute_type_allowed_value/value:8 msgctxt "work_attribute_type_allowed_value" msgid "D major" -msgstr "" +msgstr "D dur" #: DB:work_attribute_type_allowed_value/value:9 msgctxt "work_attribute_type_allowed_value" msgid "D minor" -msgstr "" +msgstr "D moll" #: DB:work_attribute_type_allowed_value/value:6 msgctxt "work_attribute_type_allowed_value" @@ -501,12 +517,12 @@ msgstr "DVD-Video" #: DB:work_attribute_type_allowed_value/value:73 msgctxt "work_attribute_type_allowed_value" msgid "Darbār" -msgstr "" +msgstr "Darbār" #: DB:work_attribute_type_allowed_value/value:74 msgctxt "work_attribute_type_allowed_value" msgid "Darbārī kānaḍa" -msgstr "" +msgstr "Darbārī kānaḍa" #: DB:release_group_secondary_type/name:10 msgctxt "release_group_secondary_type" @@ -516,32 +532,32 @@ msgstr "" #: DB:work_attribute_type_allowed_value/value:79 msgctxt "work_attribute_type_allowed_value" msgid "Devāmṛtavarṣiṇi" -msgstr "" +msgstr "Devāmṛtavarṣiṇi" #: DB:work_attribute_type_allowed_value/value:80 msgctxt "work_attribute_type_allowed_value" msgid "Dhanaśrī" -msgstr "" +msgstr "Dhanaśrī" #: DB:work_attribute_type_allowed_value/value:81 msgctxt "work_attribute_type_allowed_value" msgid "Dhanyāsi" -msgstr "" +msgstr "Dhanyāsi" #: DB:work_attribute_type_allowed_value/value:82 msgctxt "work_attribute_type_allowed_value" msgid "Dharmāvati" -msgstr "" +msgstr "Dharmāvati" #: DB:work_attribute_type_allowed_value/value:285 msgctxt "work_attribute_type_allowed_value" msgid "Dhr̥va" -msgstr "" +msgstr "Dhr̥va" #: DB:work_attribute_type_allowed_value/value:83 msgctxt "work_attribute_type_allowed_value" msgid "Dhēnuka" -msgstr "" +msgstr "Dhēnuka" #: DB:release_packaging/name:3 msgctxt "release_packaging" @@ -576,57 +592,57 @@ msgstr "DualDisc" #: DB:work_attribute_type_allowed_value/value:86 msgctxt "work_attribute_type_allowed_value" msgid "Durga" -msgstr "" +msgstr "Durga" #: DB:work_attribute_type_allowed_value/value:87 msgctxt "work_attribute_type_allowed_value" msgid "Dvijāvanti" -msgstr "" +msgstr "Dvijāvanti" #: DB:work_attribute_type_allowed_value/value:76 msgctxt "work_attribute_type_allowed_value" msgid "Dēvagāndhāri" -msgstr "" +msgstr "Dēvagāndhāri" #: DB:work_attribute_type_allowed_value/value:77 msgctxt "work_attribute_type_allowed_value" msgid "Dēvakriya" -msgstr "" +msgstr "Dēvakriya" #: DB:work_attribute_type_allowed_value/value:78 msgctxt "work_attribute_type_allowed_value" msgid "Dēvamanōhari" -msgstr "" +msgstr "Dēvamanōhari" #: DB:work_attribute_type_allowed_value/value:75 msgctxt "work_attribute_type_allowed_value" msgid "Dēś" -msgstr "" +msgstr "Dēś" #: DB:work_attribute_type_allowed_value/value:292 msgctxt "work_attribute_type_allowed_value" msgid "Dēśādi" -msgstr "" +msgstr "Dēśādi" #: DB:work_attribute_type_allowed_value/value:84 msgctxt "work_attribute_type_allowed_value" msgid "Dīpakaṁ" -msgstr "" +msgstr "Dīpakaṁ" #: DB:work_attribute_type_allowed_value/value:85 msgctxt "work_attribute_type_allowed_value" msgid "Dīpāḷi" -msgstr "" +msgstr "Dīpāḷi" #: DB:work_attribute_type_allowed_value/value:13 msgctxt "work_attribute_type_allowed_value" msgid "E major" -msgstr "" +msgstr "E dur" #: DB:work_attribute_type_allowed_value/value:14 msgctxt "work_attribute_type_allowed_value" msgid "E minor" -msgstr "" +msgstr "E moll" #: DB:work_attribute_type_allowed_value/value:11 msgctxt "work_attribute_type_allowed_value" @@ -648,15 +664,20 @@ msgctxt "release_group_primary_type" msgid "EP" msgstr "EP" +#: DB:instrument_type/name:4 +msgctxt "instrument_type" +msgid "Electronic instrument" +msgstr "" + #: DB:work_attribute_type_allowed_value/value:17 msgctxt "work_attribute_type_allowed_value" msgid "F major" -msgstr "" +msgstr "F dur" #: DB:work_attribute_type_allowed_value/value:18 msgctxt "work_attribute_type_allowed_value" msgid "F minor" -msgstr "" +msgstr "F moll" #: DB:work_attribute_type_allowed_value/value:16 msgctxt "work_attribute_type_allowed_value" @@ -696,12 +717,12 @@ msgstr "Forside" #: DB:work_attribute_type_allowed_value/value:22 msgctxt "work_attribute_type_allowed_value" msgid "G major" -msgstr "" +msgstr "G dur" #: DB:work_attribute_type_allowed_value/value:23 msgctxt "work_attribute_type_allowed_value" msgid "G minor" -msgstr "" +msgstr "G moll" #: DB:work_attribute_type_allowed_value/value:21 msgctxt "work_attribute_type_allowed_value" @@ -726,17 +747,17 @@ msgstr "" #: DB:work_attribute_type_allowed_value/value:88 msgctxt "work_attribute_type_allowed_value" msgid "Gamakakriya" -msgstr "" +msgstr "Gamakakriya" #: DB:work_attribute_type_allowed_value/value:89 msgctxt "work_attribute_type_allowed_value" msgid "Gamakakriya/Pūrvīkaḷyāṇi" -msgstr "" +msgstr "Gamakakriya/Pūrvīkaḷyāṇi" #: DB:work_attribute_type_allowed_value/value:95 msgctxt "work_attribute_type_allowed_value" msgid "Garuḍadhvani" -msgstr "" +msgstr "Garuḍadhvani" #: DB:release_packaging/name:12 msgctxt "release_packaging" @@ -746,37 +767,37 @@ msgstr "" #: DB:work_attribute_type_allowed_value/value:99 msgctxt "work_attribute_type_allowed_value" msgid "Gaurīmanōhari" -msgstr "" +msgstr "Gaurīmanōhari" #: DB:work_attribute_type_allowed_value/value:96 msgctxt "work_attribute_type_allowed_value" msgid "Gauḍa malhār" -msgstr "" +msgstr "Gauḍa malhār" #: DB:work_attribute_type_allowed_value/value:97 msgctxt "work_attribute_type_allowed_value" msgid "Gauḷa" -msgstr "" +msgstr "Gauḷa" #: DB:work_attribute_type_allowed_value/value:98 msgctxt "work_attribute_type_allowed_value" msgid "Gauḷipantu" -msgstr "" +msgstr "Gauḷipantu" #: DB:work_attribute_type_allowed_value/value:90 msgctxt "work_attribute_type_allowed_value" msgid "Gaṁbhīra nāṭa" -msgstr "" +msgstr "Gaṁbhīra nāṭa" #: DB:work_attribute_type_allowed_value/value:91 msgctxt "work_attribute_type_allowed_value" msgid "Gaṁbhīra vāṇi" -msgstr "" +msgstr "Gaṁbhīra vāṇi" #: DB:work_attribute_type_allowed_value/value:100 msgctxt "work_attribute_type_allowed_value" msgid "Ghanṭa" -msgstr "" +msgstr "Ghanṭa" #: DB:artist_type/name:2 msgctxt "artist_type" @@ -786,27 +807,27 @@ msgstr "Gruppe" #: DB:work_attribute_type_allowed_value/value:102 msgctxt "work_attribute_type_allowed_value" msgid "Gurjāri" -msgstr "" +msgstr "Gurjāri" #: DB:work_attribute_type_allowed_value/value:92 msgctxt "work_attribute_type_allowed_value" msgid "Gānamūrti" -msgstr "" +msgstr "Gānamūrti" #: DB:work_attribute_type_allowed_value/value:93 msgctxt "work_attribute_type_allowed_value" msgid "Gānavāridhi" -msgstr "" +msgstr "Gānavāridhi" #: DB:work_attribute_type_allowed_value/value:94 msgctxt "work_attribute_type_allowed_value" msgid "Gāngēyabhūṣaṇi" -msgstr "" +msgstr "Gāngēyabhūṣaṇi" #: DB:work_attribute_type_allowed_value/value:101 msgctxt "work_attribute_type_allowed_value" msgid "Gōpikāvasantaṁ" -msgstr "" +msgstr "Gōpikāvasantaṁ" #: DB:medium_format/name:17 msgctxt "medium_format" @@ -826,47 +847,47 @@ msgstr "" #: DB:work_attribute_type_allowed_value/value:104 msgctxt "work_attribute_type_allowed_value" msgid "Hamsadhvani" -msgstr "" +msgstr "Hamsadhvani" #: DB:work_attribute_type_allowed_value/value:107 msgctxt "work_attribute_type_allowed_value" msgid "Hamsavinōdini" -msgstr "" +msgstr "Hamsavinōdini" #: DB:work_attribute_type_allowed_value/value:103 msgctxt "work_attribute_type_allowed_value" msgid "Hamīr kaḷyaṇi" -msgstr "" +msgstr "Hamīr kaḷyaṇi" #: DB:work_attribute_type_allowed_value/value:108 msgctxt "work_attribute_type_allowed_value" msgid "Harikāmbhōji" -msgstr "" +msgstr "Harikāmbhōji" #: DB:work_attribute_type_allowed_value/value:105 msgctxt "work_attribute_type_allowed_value" msgid "Haṁsanādaṁ" -msgstr "" +msgstr "Haṁsanādaṁ" #: DB:work_attribute_type_allowed_value/value:106 msgctxt "work_attribute_type_allowed_value" msgid "Haṁsānandi" -msgstr "" +msgstr "Haṁsānandi" #: DB:work_attribute_type_allowed_value/value:112 msgctxt "work_attribute_type_allowed_value" msgid "Hindustān gāndhāri" -msgstr "" +msgstr "Hindustān gāndhāri" #: DB:work_attribute_type_allowed_value/value:110 msgctxt "work_attribute_type_allowed_value" msgid "Hindōḷa vasantaṁ" -msgstr "" +msgstr "Hindōḷa vasantaṁ" #: DB:work_attribute_type_allowed_value/value:111 msgctxt "work_attribute_type_allowed_value" msgid "Hindōḷaṁ" -msgstr "" +msgstr "Hindōḷaṁ" #: DB:label_type/name:2 msgctxt "label_type" @@ -876,7 +897,7 @@ msgstr "" #: DB:work_attribute_type_allowed_value/value:113 msgctxt "work_attribute_type_allowed_value" msgid "Hussēnī" -msgstr "" +msgstr "Hussēnī" #: DB:medium_format/name:38 msgctxt "medium_format" @@ -886,18 +907,48 @@ msgstr "" #: DB:work_attribute_type_allowed_value/value:109 msgctxt "work_attribute_type_allowed_value" msgid "Hēmavati" -msgstr "" +msgstr "Hēmavati" #: DB:label_type/name:9 msgctxt "label_type" msgid "Imprint" msgstr "" +#: DB:series_type/description:5 +msgctxt "series_type" +msgid "Indicates that the series is a work catalogue." +msgstr "" + +#: DB:series_type/description:3 +msgctxt "series_type" +msgid "Indicates that the series is of recordings." +msgstr "" + +#: DB:series_type/description:1 +msgctxt "series_type" +msgid "Indicates that the series is of release groups." +msgstr "" + +#: DB:series_type/description:2 +msgctxt "series_type" +msgid "Indicates that the series is of releases." +msgstr "" + +#: DB:series_type/description:4 +msgctxt "series_type" +msgid "Indicates that the series is of works." +msgstr "" + #: DB:place_type/name:5 msgctxt "place_type" msgid "Indoor arena" msgstr "" +#: DB:instrument_alias_type/name:1 +msgctxt "alias_type" +msgid "Instrument name" +msgstr "" + #: DB:release_group_secondary_type/name:4 msgctxt "release_group_secondary_type" msgid "Interview" @@ -906,32 +957,32 @@ msgstr "Intervju" #: DB:work_attribute_type/name:3 msgctxt "work_attribute_type" msgid "JASRAC ID" -msgstr "" +msgstr "JASRAC ID" #: DB:work_attribute_type_allowed_value/value:114 msgctxt "work_attribute_type_allowed_value" msgid "Jaganmōhini" -msgstr "" +msgstr "Jaganmōhini" #: DB:work_attribute_type_allowed_value/value:115 msgctxt "work_attribute_type_allowed_value" msgid "Janaranjani" -msgstr "" +msgstr "Janaranjani" #: DB:work_attribute_type_allowed_value/value:116 msgctxt "work_attribute_type_allowed_value" msgid "Jaya manōhari" -msgstr "" +msgstr "Jaya manōhari" #: DB:work_attribute_type_allowed_value/value:117 msgctxt "work_attribute_type_allowed_value" msgid "Jayantasēna" -msgstr "" +msgstr "Jayantasēna" #: DB:work_attribute_type_allowed_value/value:118 msgctxt "work_attribute_type_allowed_value" msgid "Jayantaśrī" -msgstr "" +msgstr "Jayantaśrī" #: DB:release_packaging/name:1 msgctxt "release_packaging" @@ -941,32 +992,32 @@ msgstr "" #: DB:work_attribute_type_allowed_value/value:119 msgctxt "work_attribute_type_allowed_value" msgid "Jhankāradhvani" -msgstr "" +msgstr "Jhankāradhvani" #: DB:work_attribute_type_allowed_value/value:120 msgctxt "work_attribute_type_allowed_value" msgid "Jingala" -msgstr "" +msgstr "Jingala" #: DB:work_attribute_type_allowed_value/value:124 msgctxt "work_attribute_type_allowed_value" msgid "Jyōti svarūpiṇi" -msgstr "" +msgstr "Jyōti svarūpiṇi" #: DB:work_attribute_type_allowed_value/value:121 msgctxt "work_attribute_type_allowed_value" msgid "Jōg" -msgstr "" +msgstr "Jōg" #: DB:work_attribute_type_allowed_value/value:122 msgctxt "work_attribute_type_allowed_value" msgid "Jōgiya" -msgstr "" +msgstr "Jōgiya" #: DB:work_attribute_type_allowed_value/value:123 msgctxt "work_attribute_type_allowed_value" msgid "Jōnpuri" -msgstr "" +msgstr "Jōnpuri" #: DB:work_attribute_type/name:11 msgctxt "work_attribute_type" @@ -976,202 +1027,202 @@ msgstr "" #: DB:work_attribute_type_allowed_value/value:128 msgctxt "work_attribute_type_allowed_value" msgid "Kalgaḍa" -msgstr "" +msgstr "Kalgaḍa" #: DB:work_attribute_type_allowed_value/value:130 msgctxt "work_attribute_type_allowed_value" msgid "Kalyāṇi" -msgstr "" +msgstr "Kalyāṇi" #: DB:work_attribute_type_allowed_value/value:127 msgctxt "work_attribute_type_allowed_value" msgid "Kalāvati" -msgstr "" +msgstr "Kalāvati" #: DB:work_attribute_type_allowed_value/value:131 msgctxt "work_attribute_type_allowed_value" msgid "Kamalāmanōhari" -msgstr "" +msgstr "Kamalāmanōhari" #: DB:work_attribute_type_allowed_value/value:133 msgctxt "work_attribute_type_allowed_value" msgid "Kamās" -msgstr "" +msgstr "Kamās" #: DB:work_attribute_type_allowed_value/value:137 msgctxt "work_attribute_type_allowed_value" msgid "Kannaḍa gaula" -msgstr "" +msgstr "Kannaḍa gaula" #: DB:work_attribute_type_allowed_value/value:141 msgctxt "work_attribute_type_allowed_value" msgid "Karaharapriya" -msgstr "" +msgstr "Karaharapriya" #: DB:work_attribute_type_allowed_value/value:142 msgctxt "work_attribute_type_allowed_value" msgid "Karṇaranjani" -msgstr "" +msgstr "Karṇaranjani" #: DB:work_attribute_type_allowed_value/value:143 msgctxt "work_attribute_type_allowed_value" msgid "Karṇāṭaka behāg" -msgstr "" +msgstr "Karṇāṭaka behāg" #: DB:work_attribute_type_allowed_value/value:144 msgctxt "work_attribute_type_allowed_value" msgid "Karṇāṭaka dēvagāndhāri" -msgstr "" +msgstr "Karṇāṭaka dēvagāndhāri" #: DB:work_attribute_type_allowed_value/value:145 msgctxt "work_attribute_type_allowed_value" msgid "Karṇāṭaka kāpi" -msgstr "" +msgstr "Karṇāṭaka kāpi" #: DB:work_attribute_type_allowed_value/value:146 msgctxt "work_attribute_type_allowed_value" msgid "Karṇāṭaka śudda sāvēri" -msgstr "" +msgstr "Karṇāṭaka śudda sāvēri" #: DB:work_attribute_type_allowed_value/value:147 msgctxt "work_attribute_type_allowed_value" msgid "Kathanakutūhalaṁ" -msgstr "" +msgstr "Kathanakutūhalaṁ" #: DB:work_attribute_type_allowed_value/value:129 msgctxt "work_attribute_type_allowed_value" msgid "Kaḷyāṇa vasantaṁ" -msgstr "" +msgstr "Kaḷyāṇa vasantaṁ" #: DB:work_attribute_type_allowed_value/value:125 msgctxt "work_attribute_type_allowed_value" msgid "Kaḷā sāvēri" -msgstr "" +msgstr "Kaḷā sāvēri" #: DB:work_attribute_type_allowed_value/value:126 msgctxt "work_attribute_type_allowed_value" msgid "Kaḷānidhi" -msgstr "" +msgstr "Kaḷānidhi" #: DB:work_attribute_type_allowed_value/value:150 msgctxt "work_attribute_type_allowed_value" msgid "Kedāraṁ" -msgstr "" +msgstr "Kedāraṁ" #: DB:release_packaging/name:6 msgctxt "release_packaging" msgid "Keep Case" -msgstr "" +msgstr "Keepcase" #: DB:work_attribute_type/name:1 msgctxt "work_attribute_type" msgid "Key" -msgstr "" +msgstr "Toneart" #: DB:work_attribute_type_allowed_value/value:282 msgctxt "work_attribute_type_allowed_value" msgid "Khaṇḍa chāpu" -msgstr "" +msgstr "Khaṇḍa chāpu" #: DB:work_attribute_type_allowed_value/value:293 msgctxt "work_attribute_type_allowed_value" msgid "Khaṇḍa-jāti tripuṭa" -msgstr "" +msgstr "Khaṇḍa-jāti tripuṭa" #: DB:work_attribute_type_allowed_value/value:294 msgctxt "work_attribute_type_allowed_value" msgid "Khaṇḍa-jāti ēka" -msgstr "" +msgstr "Khaṇḍa-jāti ēka" #: DB:work_attribute_type_allowed_value/value:155 msgctxt "work_attribute_type_allowed_value" msgid "Kuntalavarāḷi" -msgstr "" +msgstr "Kuntalavarāḷi" #: DB:work_attribute_type_allowed_value/value:156 msgctxt "work_attribute_type_allowed_value" msgid "Kurinji" -msgstr "" +msgstr "Kurinji" #: DB:work_attribute_type_allowed_value/value:132 msgctxt "work_attribute_type_allowed_value" msgid "Kāmaranjani" -msgstr "" +msgstr "Kāmaranjani" #: DB:work_attribute_type_allowed_value/value:134 msgctxt "work_attribute_type_allowed_value" msgid "Kāmavardani/Pantuvarāḷi" -msgstr "" +msgstr "Kāmavardani/Pantuvarāḷi" #: DB:work_attribute_type_allowed_value/value:136 msgctxt "work_attribute_type_allowed_value" msgid "Kānaḍa" -msgstr "" +msgstr "Kānaḍa" #: DB:work_attribute_type_allowed_value/value:138 msgctxt "work_attribute_type_allowed_value" msgid "Kāntāmaṇi" -msgstr "" +msgstr "Kāntāmaṇi" #: DB:work_attribute_type_allowed_value/value:139 msgctxt "work_attribute_type_allowed_value" msgid "Kāpi" -msgstr "" +msgstr "Kāpi" #: DB:work_attribute_type_allowed_value/value:140 msgctxt "work_attribute_type_allowed_value" msgid "Kāpi nārāyaṇi" -msgstr "" +msgstr "Kāpi nārāyaṇi" #: DB:work_attribute_type_allowed_value/value:148 msgctxt "work_attribute_type_allowed_value" msgid "Kāvaḍicindu" -msgstr "" +msgstr "Kāvaḍicindu" #: DB:work_attribute_type_allowed_value/value:135 msgctxt "work_attribute_type_allowed_value" msgid "Kāṁbhōji" -msgstr "" +msgstr "Kāṁbhōji" #: DB:work_attribute_type_allowed_value/value:149 msgctxt "work_attribute_type_allowed_value" msgid "Kēdāragauḷa" -msgstr "" +msgstr "Kēdāragauḷa" #: DB:work_attribute_type_allowed_value/value:152 msgctxt "work_attribute_type_allowed_value" msgid "Kīravāṇi" -msgstr "" +msgstr "Kīravāṇi" #: DB:work_attribute_type_allowed_value/value:151 msgctxt "work_attribute_type_allowed_value" msgid "Kīraṇāvaḷi" -msgstr "" +msgstr "Kīraṇāvaḷi" #: DB:work_attribute_type_allowed_value/value:153 msgctxt "work_attribute_type_allowed_value" msgid "Kōkiladhvani" -msgstr "" +msgstr "Kōkiladhvani" #: DB:work_attribute_type_allowed_value/value:154 msgctxt "work_attribute_type_allowed_value" msgid "Kōkilapriya" -msgstr "" +msgstr "Kōkilapriya" #: DB:label_alias_type/name:1 msgctxt "alias_type" msgid "Label name" -msgstr "" +msgstr "Plateselskapnavn " #: DB:work_attribute_type_allowed_value/value:157 msgctxt "work_attribute_type_allowed_value" msgid "Lalita" -msgstr "" +msgstr "Lalita" #: DB:work_attribute_type_allowed_value/value:158 msgctxt "work_attribute_type_allowed_value" msgid "Lalita pancamaṁ" -msgstr "" +msgstr "Lalita pancamaṁ" #: DB:medium_format/name:5 msgctxt "medium_format" @@ -1181,12 +1232,12 @@ msgstr "LaserDisc" #: DB:work_attribute_type_allowed_value/value:159 msgctxt "work_attribute_type_allowed_value" msgid "Latāngi" -msgstr "" +msgstr "Latāngi" #: DB:work_attribute_type_allowed_value/value:160 msgctxt "work_attribute_type_allowed_value" msgid "Lavāngi" -msgstr "" +msgstr "Lavāngi" #: DB:artist_alias_type/name:2 msgctxt "alias_type" @@ -1206,42 +1257,42 @@ msgstr "Live" #: DB:work_attribute_type_allowed_value/value:161 msgctxt "work_attribute_type_allowed_value" msgid "Madhyamā varāḷi" -msgstr "" +msgstr "Madhyamā varāḷi" #: DB:work_attribute_type_allowed_value/value:162 msgctxt "work_attribute_type_allowed_value" msgid "Madhyamāvati" -msgstr "" +msgstr "Madhyamāvati" #: DB:work_attribute_type_allowed_value/value:295 msgctxt "work_attribute_type_allowed_value" msgid "Madhyādi" -msgstr "" +msgstr "Madhyādi" #: DB:work_type/name:7 msgctxt "work_type" msgid "Madrigal" -msgstr "" +msgstr "Madrigal" #: DB:work_attribute_type_allowed_value/value:163 msgctxt "work_attribute_type_allowed_value" msgid "Maduvanti" -msgstr "" +msgstr "Maduvanti" #: DB:work_attribute_type_allowed_value/value:296 msgctxt "work_attribute_type_allowed_value" msgid "Mahālakṣmi" -msgstr "" +msgstr "Mahālakṣmi" #: DB:work_attribute_type_allowed_value/value:164 msgctxt "work_attribute_type_allowed_value" msgid "Malahari" -msgstr "" +msgstr "Malahari" #: DB:work_attribute_type_allowed_value/value:166 msgctxt "work_attribute_type_allowed_value" msgid "Malayamārutaṁ" -msgstr "" +msgstr "Malayamārutaṁ" #: DB:gender/name:1 msgctxt "gender" @@ -1251,32 +1302,37 @@ msgstr "" #: DB:work_attribute_type_allowed_value/value:168 msgctxt "work_attribute_type_allowed_value" msgid "Mandāri" +msgstr "Mandāri" + +#: DB:series_ordering_type/name:2 +msgctxt "series_ordering_type" +msgid "Manual" msgstr "" #: DB:work_attribute_type_allowed_value/value:172 msgctxt "work_attribute_type_allowed_value" msgid "Manōranjani" -msgstr "" +msgstr "Manōranjani" #: DB:work_type/name:8 msgctxt "work_type" msgid "Mass" -msgstr "" +msgstr "Messe" #: DB:work_attribute_type_allowed_value/value:175 msgctxt "work_attribute_type_allowed_value" msgid "Mayūra sāvēri" -msgstr "" +msgstr "Mayūra sāvēri" #: DB:work_attribute_type_allowed_value/value:170 msgctxt "work_attribute_type_allowed_value" msgid "Maṇirangu" -msgstr "" +msgstr "Maṇirangu" #: DB:work_attribute_type_allowed_value/value:286 msgctxt "work_attribute_type_allowed_value" msgid "Maṭhya" -msgstr "" +msgstr "Maṭhya" #: DB:cover_art_archive.art_type/name:4 msgctxt "cover_art_type" @@ -1286,7 +1342,7 @@ msgstr "Medie" #: DB:work_attribute_type_allowed_value/value:176 msgctxt "work_attribute_type_allowed_value" msgid "Meghamalhar" -msgstr "" +msgstr "Meghamalhar" #: DB:medium_format/name:6 msgctxt "medium_format" @@ -1301,47 +1357,47 @@ msgstr "" #: DB:work_attribute_type_allowed_value/value:281 msgctxt "work_attribute_type_allowed_value" msgid "Miśra chāpu" -msgstr "" +msgstr "Miśra chāpu" #: DB:work_attribute_type_allowed_value/value:177 msgctxt "work_attribute_type_allowed_value" msgid "Miśra khamāj" -msgstr "" +msgstr "Miśra khamāj" #: DB:work_attribute_type_allowed_value/value:178 msgctxt "work_attribute_type_allowed_value" msgid "Miśra pahāḍi" -msgstr "" +msgstr "Miśra pahāḍi" #: DB:work_attribute_type_allowed_value/value:180 msgctxt "work_attribute_type_allowed_value" msgid "Miśra yaman" -msgstr "" +msgstr "Miśra yaman" #: DB:work_attribute_type_allowed_value/value:179 msgctxt "work_attribute_type_allowed_value" msgid "Miśra śivaranjani" -msgstr "" +msgstr "Miśra śivaranjani" #: DB:work_attribute_type_allowed_value/value:287 msgctxt "work_attribute_type_allowed_value" msgid "Miśra-jāti jhaṁpe" -msgstr "" +msgstr "Miśra-jāti jhaṁpe" #: DB:work_attribute_type_allowed_value/value:297 msgctxt "work_attribute_type_allowed_value" msgid "Miśra-jāti rūpaka" -msgstr "" +msgstr "Miśra-jāti rūpaka" #: DB:work_type/name:9 msgctxt "work_type" msgid "Motet" -msgstr "" +msgstr "Motett" #: DB:work_attribute_type_allowed_value/value:183 msgctxt "work_attribute_type_allowed_value" msgid "Mukhāri" -msgstr "" +msgstr "Mukhāri" #: DB:area_type/name:4 msgctxt "area_type" @@ -1356,77 +1412,77 @@ msgstr "" #: DB:work_attribute_type_allowed_value/value:167 msgctxt "work_attribute_type_allowed_value" msgid "Mānavati" -msgstr "" +msgstr "Mānavati" #: DB:work_attribute_type_allowed_value/value:171 msgctxt "work_attribute_type_allowed_value" msgid "Mānji" -msgstr "" +msgstr "Mānji" #: DB:work_attribute_type_allowed_value/value:169 msgctxt "work_attribute_type_allowed_value" msgid "Mānḍu" -msgstr "" +msgstr "Mānḍu" #: DB:work_attribute_type_allowed_value/value:173 msgctxt "work_attribute_type_allowed_value" msgid "Mārgahindōḷaṁ" -msgstr "" +msgstr "Mārgahindōḷaṁ" #: DB:work_attribute_type_allowed_value/value:174 msgctxt "work_attribute_type_allowed_value" msgid "Māyāmāḷavagauḷa" -msgstr "" +msgstr "Māyāmāḷavagauḷa" #: DB:work_attribute_type_allowed_value/value:165 msgctxt "work_attribute_type_allowed_value" msgid "Māḷavi" -msgstr "" +msgstr "Māḷavi" #: DB:work_attribute_type_allowed_value/value:181 msgctxt "work_attribute_type_allowed_value" msgid "Mōhan kaḷyāṇi" -msgstr "" +msgstr "Mōhan kaḷyāṇi" #: DB:work_attribute_type_allowed_value/value:182 msgctxt "work_attribute_type_allowed_value" msgid "Mōhanaṁ" -msgstr "" +msgstr "Mōhanaṁ" #: DB:work_attribute_type_allowed_value/value:196 msgctxt "work_attribute_type_allowed_value" msgid "Navarasa kannaḍa" -msgstr "" +msgstr "Navarasa kannaḍa" #: DB:work_attribute_type_allowed_value/value:195 msgctxt "work_attribute_type_allowed_value" msgid "Navarāgamālika" -msgstr "" +msgstr "Navarāgamālika" #: DB:work_attribute_type_allowed_value/value:197 msgctxt "work_attribute_type_allowed_value" msgid "Navrōj" -msgstr "" +msgstr "Navrōj" #: DB:work_attribute_type_allowed_value/value:187 msgctxt "work_attribute_type_allowed_value" msgid "Naḷinakānti" -msgstr "" +msgstr "Naḷinakānti" #: DB:work_attribute_type_allowed_value/value:191 msgctxt "work_attribute_type_allowed_value" msgid "Naṭabhairavi" -msgstr "" +msgstr "Naṭabhairavi" #: DB:work_attribute_type_allowed_value/value:194 msgctxt "work_attribute_type_allowed_value" msgid "Naṭanārāyaṇi" -msgstr "" +msgstr "Naṭanārāyaṇi" #: DB:work_attribute_type_allowed_value/value:200 msgctxt "work_attribute_type_allowed_value" msgid "Nirōṣita" -msgstr "" +msgstr "Nirōṣita" #: DB:release_packaging/name:7 msgctxt "release_packaging" @@ -1436,52 +1492,52 @@ msgstr "Ingen" #: DB:work_attribute_type_allowed_value/value:184 msgctxt "work_attribute_type_allowed_value" msgid "Nādanāmakriya" -msgstr "" +msgstr "Nādanāmakriya" #: DB:work_attribute_type_allowed_value/value:185 msgctxt "work_attribute_type_allowed_value" msgid "Nāga gāndhāri" -msgstr "" +msgstr "Nāga gāndhāri" #: DB:work_attribute_type_allowed_value/value:186 msgctxt "work_attribute_type_allowed_value" msgid "Nāgasvarāvaḷi" -msgstr "" +msgstr "Nāgasvarāvaḷi" #: DB:work_attribute_type_allowed_value/value:188 msgctxt "work_attribute_type_allowed_value" msgid "Nārāyaṇi" -msgstr "" +msgstr "Nārāyaṇi" #: DB:work_attribute_type_allowed_value/value:189 msgctxt "work_attribute_type_allowed_value" msgid "Nāsikabhūṣaṇi" -msgstr "" +msgstr "Nāsikabhūṣaṇi" #: DB:work_attribute_type_allowed_value/value:198 msgctxt "work_attribute_type_allowed_value" msgid "Nāyaki" -msgstr "" +msgstr "Nāyaki" #: DB:work_attribute_type_allowed_value/value:190 msgctxt "work_attribute_type_allowed_value" msgid "Nāṭa" -msgstr "" +msgstr "Nāṭa" #: DB:work_attribute_type_allowed_value/value:192 msgctxt "work_attribute_type_allowed_value" msgid "Nāṭakapriya" -msgstr "" +msgstr "Nāṭakapriya" #: DB:work_attribute_type_allowed_value/value:193 msgctxt "work_attribute_type_allowed_value" msgid "Nāṭakurinji" -msgstr "" +msgstr "Nāṭakurinji" #: DB:work_attribute_type_allowed_value/value:199 msgctxt "work_attribute_type_allowed_value" msgid "Nīlāṁbari" -msgstr "" +msgstr "Nīlāṁbari" #: DB:cover_art_archive.art_type/name:5 msgctxt "cover_art_type" @@ -1501,17 +1557,17 @@ msgstr "Opera" #: DB:work_type/name:24 msgctxt "work_type" msgid "Operetta" -msgstr "" +msgstr "Operette" #: DB:work_type/name:11 msgctxt "work_type" msgid "Oratorio" -msgstr "" +msgstr "Oratorium" #: DB:artist_type/name:5 msgctxt "artist_type" msgid "Orchestra" -msgstr "" +msgstr "Orkester " #: DB:label_type/name:4 msgctxt "label_type" @@ -1546,31 +1602,41 @@ msgstr "Annet" #: DB:gender/name:3 msgctxt "gender" msgid "Other" -msgstr "" +msgstr "Annet" #: DB:cover_art_archive.art_type/name:8 msgctxt "cover_art_type" msgid "Other" msgstr "Annet" +#: DB:instrument_type/name:5 +msgctxt "instrument_type" +msgid "Other instrument" +msgstr "" + #: DB:work_type/name:12 msgctxt "work_type" msgid "Overture" -msgstr "" +msgstr "Ouverture" #: DB:work_attribute_type_allowed_value/value:203 msgctxt "work_attribute_type_allowed_value" msgid "Paras" -msgstr "" +msgstr "Paras" #: DB:work_type/name:13 msgctxt "work_type" msgid "Partita" -msgstr "" +msgstr "Partita" #: DB:work_attribute_type_allowed_value/value:204 msgctxt "work_attribute_type_allowed_value" msgid "Paṭdīp" +msgstr "Paṭdīp" + +#: DB:instrument_type/name:3 +msgctxt "instrument_type" +msgid "Percussion instrument" msgstr "" #: DB:artist_type/name:1 @@ -1586,12 +1652,12 @@ msgstr "Pianorull" #: DB:place_alias_type/name:1 msgctxt "alias_type" msgid "Place name" -msgstr "" +msgstr "Stedsnavn " #: DB:work_type/name:21 msgctxt "work_type" msgid "Poem" -msgstr "" +msgstr "Dikt" #: DB:cover_art_archive.art_type/name:11 msgctxt "cover_art_type" @@ -1626,37 +1692,37 @@ msgstr "" #: DB:work_attribute_type_allowed_value/value:205 msgctxt "work_attribute_type_allowed_value" msgid "Puṇṇāgavarāḷi" -msgstr "" +msgstr "Puṇṇāgavarāḷi" #: DB:work_attribute_type_allowed_value/value:209 msgctxt "work_attribute_type_allowed_value" msgid "Puṣpalatika" -msgstr "" +msgstr "Puṣpalatika" #: DB:work_attribute_type_allowed_value/value:202 msgctxt "work_attribute_type_allowed_value" msgid "Pālamanjari" -msgstr "" +msgstr "Pālamanjari" #: DB:work_attribute_type_allowed_value/value:201 msgctxt "work_attribute_type_allowed_value" msgid "Pāḍi" -msgstr "" +msgstr "Pāḍi" #: DB:work_attribute_type_allowed_value/value:208 msgctxt "work_attribute_type_allowed_value" msgid "Pūrvi" -msgstr "" +msgstr "Pūrvi" #: DB:work_attribute_type_allowed_value/value:206 msgctxt "work_attribute_type_allowed_value" msgid "Pūrṇa ṣaḍjaṁ" -msgstr "" +msgstr "Pūrṇa ṣaḍjaṁ" #: DB:work_attribute_type_allowed_value/value:207 msgctxt "work_attribute_type_allowed_value" msgid "Pūrṇacandrika" -msgstr "" +msgstr "Pūrṇacandrika" #: DB:work_type/name:14 msgctxt "work_type" @@ -1666,33 +1732,48 @@ msgstr "Kvartett" #: DB:work_attribute_type_allowed_value/value:215 msgctxt "work_attribute_type_allowed_value" msgid "Ranjani" -msgstr "" +msgstr "Ranjani" #: DB:work_attribute_type_allowed_value/value:216 msgctxt "work_attribute_type_allowed_value" msgid "Rasikapriya" -msgstr "" +msgstr "Rasikapriya" #: DB:work_attribute_type_allowed_value/value:217 msgctxt "work_attribute_type_allowed_value" msgid "Ratipati priya" -msgstr "" +msgstr "Ratipati priya" #: DB:work_attribute_type_allowed_value/value:218 msgctxt "work_attribute_type_allowed_value" msgid "Ravicandrika" +msgstr "Ravicandrika" + +#: DB:series_type/name:3 +msgctxt "series_type" +msgid "Recording" msgstr "" #: DB:medium_format/name:10 msgctxt "medium_format" msgid "Reel-to-reel" -msgstr "" +msgstr "Rullebånd" #: DB:label_type/name:6 msgctxt "label_type" msgid "Reissue Production" msgstr "" +#: DB:series_type/name:2 +msgctxt "series_type" +msgid "Release" +msgstr "" + +#: DB:series_type/name:1 +msgctxt "series_type" +msgid "Release group" +msgstr "" + #: DB:release_group_secondary_type/name:7 msgctxt "release_group_secondary_type" msgid "Remix" @@ -1706,57 +1787,57 @@ msgstr "" #: DB:work_attribute_type_allowed_value/value:222 msgctxt "work_attribute_type_allowed_value" msgid "Rudrapriya" -msgstr "" +msgstr "Rudrapriya" #: DB:work_attribute_type/name:4 msgctxt "work_attribute_type" msgid "Rāga (Carnatic)" -msgstr "" +msgstr "Raga (Karnatisk)" #: DB:work_attribute_type_allowed_value/value:210 msgctxt "work_attribute_type_allowed_value" msgid "Rāgamālika" -msgstr "" +msgstr "Rāgamālika" #: DB:work_attribute_type_allowed_value/value:211 msgctxt "work_attribute_type_allowed_value" msgid "Rāgavinōdini" -msgstr "" +msgstr "Rāgavinōdini" #: DB:work_attribute_type_allowed_value/value:212 msgctxt "work_attribute_type_allowed_value" msgid "Rāgēśrī" -msgstr "" +msgstr "Rāgēśrī" #: DB:work_attribute_type_allowed_value/value:213 msgctxt "work_attribute_type_allowed_value" msgid "Rāma manōhari" -msgstr "" +msgstr "Rāma manōhari" #: DB:work_attribute_type_allowed_value/value:214 msgctxt "work_attribute_type_allowed_value" msgid "Rāmapriya" -msgstr "" +msgstr "Rāmapriya" #: DB:work_attribute_type_allowed_value/value:219 msgctxt "work_attribute_type_allowed_value" msgid "Rēvagupti" -msgstr "" +msgstr "Rēvagupti" #: DB:work_attribute_type_allowed_value/value:220 msgctxt "work_attribute_type_allowed_value" msgid "Rēvati" -msgstr "" +msgstr "Rēvati" #: DB:work_attribute_type_allowed_value/value:221 msgctxt "work_attribute_type_allowed_value" msgid "Rītigauḷa" -msgstr "" +msgstr "Rītigauḷa" #: DB:work_attribute_type_allowed_value/value:280 msgctxt "work_attribute_type_allowed_value" msgid "Rūpaka" -msgstr "" +msgstr "Rūpaka" #: DB:medium_format/name:3 msgctxt "medium_format" @@ -1786,31 +1867,32 @@ msgstr "SVCD" #: DB:work_attribute_type_allowed_value/value:223 msgctxt "work_attribute_type_allowed_value" msgid "Sahānā" -msgstr "" +msgstr "Sahānā" #: DB:work_attribute_type_allowed_value/value:231 msgctxt "work_attribute_type_allowed_value" msgid "Sarasvati" -msgstr "" +msgstr "Sarasvati" #: DB:work_attribute_type_allowed_value/value:232 msgctxt "work_attribute_type_allowed_value" msgid "Sarasvatī manōhari" -msgstr "" +msgstr "Sarasvatī manōhari" #: DB:work_attribute_type_allowed_value/value:230 msgctxt "work_attribute_type_allowed_value" msgid "Sarasāngi" -msgstr "" +msgstr "Sarasāngi" #: DB:work_attribute_type_allowed_value/value:233 msgctxt "work_attribute_type_allowed_value" msgid "Saurāṣtraṁ" -msgstr "" +msgstr "Saurāṣtraṁ" #: DB:artist_alias_type/name:3 DB:label_alias_type/name:2 #: DB:place_alias_type/name:2 DB:work_alias_type/name:2 -#: DB:area_alias_type/name:3 +#: DB:area_alias_type/name:3 DB:instrument_alias_type/name:2 +#: DB:series_alias_type/name:2 msgctxt "alias_type" msgid "Search hint" msgstr "" @@ -1818,27 +1900,32 @@ msgstr "" #: DB:work_attribute_type_allowed_value/value:235 msgctxt "work_attribute_type_allowed_value" msgid "Sencuruṭṭi" +msgstr "Sencuruṭṭi" + +#: DB:series_alias_type/name:1 +msgctxt "alias_type" +msgid "Series name" msgstr "" #: DB:work_attribute_type_allowed_value/value:236 msgctxt "work_attribute_type_allowed_value" msgid "Simhavāhini" -msgstr "" +msgstr "Simhavāhini" #: DB:work_attribute_type_allowed_value/value:237 msgctxt "work_attribute_type_allowed_value" msgid "Simhēndra madhyamaṁ" -msgstr "" +msgstr "Simhēndra madhyamaṁ" #: DB:work_attribute_type_allowed_value/value:238 msgctxt "work_attribute_type_allowed_value" msgid "Sindhubhairavi" -msgstr "" +msgstr "Sindhubhairavi" #: DB:work_attribute_type_allowed_value/value:239 msgctxt "work_attribute_type_allowed_value" msgid "Sindhumandāri" -msgstr "" +msgstr "Sindhumandāri" #: DB:release_group_primary_type/name:2 msgctxt "release_group_primary_type" @@ -1858,7 +1945,7 @@ msgstr "" #: DB:work_type/name:5 msgctxt "work_type" msgid "Sonata" -msgstr "" +msgstr "Sonate" #: DB:work_type/name:17 msgctxt "work_type" @@ -1868,17 +1955,24 @@ msgstr "Sang" #: DB:work_type/name:15 msgctxt "work_type" msgid "Song-cycle" +msgstr "Sangsyklus" + +#: DB:series_ordering_type/description:1 +msgctxt "series_ordering_type" +msgid "" +"Sorts the items in the series automatically by their number attributes, " +"using a natural sort order." msgstr "" #: DB:work_type/name:22 msgctxt "work_type" msgid "Soundtrack" -msgstr "" +msgstr "Lydspor" #: DB:release_group_secondary_type/name:2 msgctxt "release_group_secondary_type" msgid "Soundtrack" -msgstr "" +msgstr "Lydspor" #: DB:cover_art_archive.art_type/name:6 msgctxt "cover_art_type" @@ -1900,10 +1994,15 @@ msgctxt "cover_art_type" msgid "Sticker" msgstr "Klistremerke" +#: DB:instrument_type/name:2 +msgctxt "instrument_type" +msgid "String instrument" +msgstr "" + #: DB:place_type/name:1 msgctxt "place_type" msgid "Studio" -msgstr "" +msgstr "Studio" #: DB:area_type/name:2 msgctxt "area_type" @@ -1913,37 +2012,37 @@ msgstr "" #: DB:work_attribute_type_allowed_value/value:244 msgctxt "work_attribute_type_allowed_value" msgid "Sucaritra" -msgstr "" +msgstr "Sucaritra" #: DB:work_type/name:6 msgctxt "work_type" msgid "Suite" -msgstr "" +msgstr "Suite" #: DB:work_attribute_type_allowed_value/value:250 msgctxt "work_attribute_type_allowed_value" msgid "Sumanēśaranjani" -msgstr "" +msgstr "Sumanēśaranjani" #: DB:work_attribute_type_allowed_value/value:251 msgctxt "work_attribute_type_allowed_value" msgid "Sunādavinōdini" -msgstr "" +msgstr "Sunādavinōdini" #: DB:work_attribute_type_allowed_value/value:252 msgctxt "work_attribute_type_allowed_value" msgid "Suraṭi" -msgstr "" +msgstr "Suraṭi" #: DB:work_attribute_type_allowed_value/value:253 msgctxt "work_attribute_type_allowed_value" msgid "Svararanjani" -msgstr "" +msgstr "Svararanjani" #: DB:work_type/name:18 msgctxt "work_type" msgid "Symphonic poem" -msgstr "" +msgstr "Tonedikt" #: DB:work_type/name:16 msgctxt "work_type" @@ -1953,47 +2052,47 @@ msgstr "Symfoni" #: DB:work_attribute_type_allowed_value/value:224 msgctxt "work_attribute_type_allowed_value" msgid "Sālaga bhairavi" -msgstr "" +msgstr "Sālaga bhairavi" #: DB:work_attribute_type_allowed_value/value:225 msgctxt "work_attribute_type_allowed_value" msgid "Sāma" -msgstr "" +msgstr "Sāma" #: DB:work_attribute_type_allowed_value/value:229 msgctxt "work_attribute_type_allowed_value" msgid "Sāranga" -msgstr "" +msgstr "Sāranga" #: DB:work_attribute_type_allowed_value/value:228 msgctxt "work_attribute_type_allowed_value" msgid "Sārāmati" -msgstr "" +msgstr "Sārāmati" #: DB:work_attribute_type_allowed_value/value:234 msgctxt "work_attribute_type_allowed_value" msgid "Sāvēri" -msgstr "" +msgstr "Sāvēri" #: DB:work_attribute_type_allowed_value/value:255 msgctxt "work_attribute_type_allowed_value" msgid "Tanarūpi" -msgstr "" +msgstr "Tanarūpi" #: DB:work_attribute_type_allowed_value/value:256 msgctxt "work_attribute_type_allowed_value" msgid "Tillāng" -msgstr "" +msgstr "Tillāng" #: DB:work_attribute_type_allowed_value/value:288 msgctxt "work_attribute_type_allowed_value" msgid "Tiśra-jāti tripuṭa" -msgstr "" +msgstr "Tiśra-jāti tripuṭa" #: DB:work_attribute_type_allowed_value/value:284 msgctxt "work_attribute_type_allowed_value" msgid "Tiśra-jāti ēka" -msgstr "" +msgstr "Tiśra-jāti ēka" #: DB:cover_art_archive.art_type/name:7 msgctxt "cover_art_type" @@ -2008,12 +2107,12 @@ msgstr "" #: DB:work_attribute_type/name:5 msgctxt "work_attribute_type" msgid "Tāla (Carnatic)" -msgstr "" +msgstr "Tāla (Carnatic)" #: DB:work_attribute_type_allowed_value/value:257 msgctxt "work_attribute_type_allowed_value" msgid "Tōḍi" -msgstr "" +msgstr "Tōḍi" #: DB:medium_format/name:28 msgctxt "medium_format" @@ -2028,7 +2127,7 @@ msgstr "USB Minnepinne" #: DB:work_attribute_type_allowed_value/value:258 msgctxt "work_attribute_type_allowed_value" msgid "Udaya ravicandrika" -msgstr "" +msgstr "Udaya ravicandrika" #: DB:medium_format/name:22 msgctxt "medium_format" @@ -2043,47 +2142,47 @@ msgstr "VHS" #: DB:work_attribute_type_allowed_value/value:261 msgctxt "work_attribute_type_allowed_value" msgid "Vakuḷābharaṇaṁ" -msgstr "" +msgstr "Vakuḷābharaṇaṁ" #: DB:work_attribute_type_allowed_value/value:262 msgctxt "work_attribute_type_allowed_value" msgid "Valaji" -msgstr "" +msgstr "Valaji" #: DB:work_attribute_type_allowed_value/value:263 msgctxt "work_attribute_type_allowed_value" msgid "Vandanadhāriṇi" -msgstr "" +msgstr "Vandanadhāriṇi" #: DB:work_attribute_type_allowed_value/value:265 msgctxt "work_attribute_type_allowed_value" msgid "Varamu" -msgstr "" +msgstr "Varamu" #: DB:work_attribute_type_allowed_value/value:264 msgctxt "work_attribute_type_allowed_value" msgid "Varāḷi" -msgstr "" +msgstr "Varāḷi" #: DB:work_attribute_type_allowed_value/value:266 msgctxt "work_attribute_type_allowed_value" msgid "Varṇarūpini" -msgstr "" +msgstr "Varṇarūpini" #: DB:work_attribute_type_allowed_value/value:267 msgctxt "work_attribute_type_allowed_value" msgid "Vasanta" -msgstr "" +msgstr "Vasanta" #: DB:work_attribute_type_allowed_value/value:268 msgctxt "work_attribute_type_allowed_value" msgid "Vasanta varāḷi" -msgstr "" +msgstr "Vasanta varāḷi" #: DB:work_attribute_type_allowed_value/value:269 msgctxt "work_attribute_type_allowed_value" msgid "Vasantabhairavi" -msgstr "" +msgstr "Vasantabhairavi" #: DB:place_type/name:2 msgctxt "place_type" @@ -2098,17 +2197,17 @@ msgstr "Video" #: DB:work_attribute_type_allowed_value/value:273 msgctxt "work_attribute_type_allowed_value" msgid "Vijayanagari" -msgstr "" +msgstr "Vijayanagari" #: DB:work_attribute_type_allowed_value/value:274 msgctxt "work_attribute_type_allowed_value" msgid "Vijayasarasvati" -msgstr "" +msgstr "Vijayasarasvati" #: DB:work_attribute_type_allowed_value/value:275 msgctxt "work_attribute_type_allowed_value" msgid "Vijayaśrī" -msgstr "" +msgstr "Vijayaśrī" #: DB:medium_format/name:7 msgctxt "medium_format" @@ -2118,62 +2217,72 @@ msgstr "Vinyl" #: DB:work_attribute_type_allowed_value/value:259 msgctxt "work_attribute_type_allowed_value" msgid "Vācaspati" -msgstr "" +msgstr "Vācaspati" #: DB:work_attribute_type_allowed_value/value:260 msgctxt "work_attribute_type_allowed_value" msgid "Vāgadīśvari" -msgstr "" +msgstr "Vāgadīśvari" #: DB:work_attribute_type_allowed_value/value:270 msgctxt "work_attribute_type_allowed_value" msgid "Vāsanti" -msgstr "" +msgstr "Vāsanti" #: DB:work_attribute_type_allowed_value/value:271 msgctxt "work_attribute_type_allowed_value" msgid "Vēgavāhiṇi" -msgstr "" +msgstr "Vēgavāhiṇi" #: DB:work_attribute_type_allowed_value/value:272 msgctxt "work_attribute_type_allowed_value" msgid "Vēlāvali" -msgstr "" +msgstr "Vēlāvali" #: DB:work_attribute_type_allowed_value/value:276 msgctxt "work_attribute_type_allowed_value" msgid "Vīra vasantaṁ" -msgstr "" +msgstr "Vīra vasantaṁ" #: DB:cover_art_archive.art_type/name:13 msgctxt "cover_art_type" msgid "Watermark" -msgstr "" +msgstr "Vannmerke" #: DB:medium_format/name:14 msgctxt "medium_format" msgid "Wax Cylinder" +msgstr "Voksrull" + +#: DB:instrument_type/name:1 +msgctxt "instrument_type" +msgid "Wind instrument" +msgstr "" + +#: DB:series_type/name:4 +msgctxt "series_type" +msgid "Work" msgstr "" #: DB:work_alias_type/name:1 msgctxt "alias_type" msgid "Work name" -msgstr "" +msgstr "Åndsverknavn" #: DB:work_attribute_type_allowed_value/value:277 msgctxt "work_attribute_type_allowed_value" msgid "Yadukula kāṁbōji" -msgstr "" +msgstr "Yadukula kāṁbōji" #: DB:work_attribute_type_allowed_value/value:278 msgctxt "work_attribute_type_allowed_value" msgid "Yamuna kalyāṇi" -msgstr "" +msgstr "Yamuna kalyāṇi" #: DB:work_type/name:19 msgctxt "work_type" msgid "Zarzuela" -msgstr "" +msgstr "Zarzuela" #: DB:medium_format/name:27 msgctxt "medium_format" @@ -2188,109 +2297,109 @@ msgstr "" #: DB:work_attribute_type_allowed_value/value:35 msgctxt "work_attribute_type_allowed_value" msgid "Ābhēri" -msgstr "" +msgstr "Ābhēri" #: DB:work_attribute_type_allowed_value/value:36 msgctxt "work_attribute_type_allowed_value" msgid "Ābhōgi" -msgstr "" +msgstr "Ābhōgi" #: DB:work_attribute_type_allowed_value/value:279 msgctxt "work_attribute_type_allowed_value" msgid "Ādi" -msgstr "" +msgstr "Ādi" #: DB:work_attribute_type_allowed_value/value:290 msgctxt "work_attribute_type_allowed_value" msgid "Ādi (Tiśra naḍe)" -msgstr "" +msgstr "Ādi (Tiśra naḍe)" #: DB:work_attribute_type_allowed_value/value:37 msgctxt "work_attribute_type_allowed_value" msgid "Āhir bhairav" -msgstr "" +msgstr "Āhir bhairav" #: DB:work_attribute_type_allowed_value/value:38 msgctxt "work_attribute_type_allowed_value" msgid "Āhiri" -msgstr "" +msgstr "Āhiri" #: DB:work_attribute_type_allowed_value/value:41 msgctxt "work_attribute_type_allowed_value" msgid "Ānandabhairavi" -msgstr "" +msgstr "Ānandabhairavi" #: DB:work_attribute_type_allowed_value/value:42 msgctxt "work_attribute_type_allowed_value" msgid "Āndōḷika" -msgstr "" +msgstr "Āndōḷika" #: DB:work_attribute_type_allowed_value/value:43 msgctxt "work_attribute_type_allowed_value" msgid "Ārabhi" -msgstr "" +msgstr "Ārabhi" #: DB:work_attribute_type_allowed_value/value:283 msgctxt "work_attribute_type_allowed_value" msgid "Ēka" -msgstr "" +msgstr "Ēka" #: DB:work_attribute_type_allowed_value/value:226 msgctxt "work_attribute_type_allowed_value" msgid "Śankarābharaṇaṁ" -msgstr "" +msgstr "Śankarābharaṇaṁ" #: DB:work_attribute_type_allowed_value/value:240 msgctxt "work_attribute_type_allowed_value" msgid "Śivaranjani" -msgstr "" +msgstr "Śivaranjani" #: DB:work_attribute_type_allowed_value/value:241 msgctxt "work_attribute_type_allowed_value" msgid "Śrī" -msgstr "" +msgstr "Śrī" #: DB:work_attribute_type_allowed_value/value:242 msgctxt "work_attribute_type_allowed_value" msgid "Śrīranjani" -msgstr "" +msgstr "Śrīranjani" #: DB:work_attribute_type_allowed_value/value:243 msgctxt "work_attribute_type_allowed_value" msgid "Śubhapantuvarāḷi" -msgstr "" +msgstr "Śubhapantuvarāḷi" #: DB:work_attribute_type_allowed_value/value:245 msgctxt "work_attribute_type_allowed_value" msgid "Śudda sārang" -msgstr "" +msgstr "Śudda sārang" #: DB:work_attribute_type_allowed_value/value:246 msgctxt "work_attribute_type_allowed_value" msgid "Śudda sāvēri" -msgstr "" +msgstr "Śudda sāvēri" #: DB:work_attribute_type_allowed_value/value:247 msgctxt "work_attribute_type_allowed_value" msgid "Śuddadhanyāsi" -msgstr "" +msgstr "Śuddadhanyāsi" #: DB:work_attribute_type_allowed_value/value:248 msgctxt "work_attribute_type_allowed_value" msgid "Śuddasīmantini" -msgstr "" +msgstr "Śuddasīmantini" #: DB:work_attribute_type_allowed_value/value:254 msgctxt "work_attribute_type_allowed_value" msgid "Śyāṁ kaḷyāṇ" -msgstr "" +msgstr "Śyāṁ kaḷyāṇ" #: DB:work_attribute_type_allowed_value/value:249 msgctxt "work_attribute_type_allowed_value" msgid "Śūḷiṇi" -msgstr "" +msgstr "Śūḷiṇi" #: DB:work_attribute_type_allowed_value/value:227 msgctxt "work_attribute_type_allowed_value" msgid "Ṣanmukhapriya" -msgstr "" +msgstr "Ṣanmukhapriya" diff --git a/po/attributes/nl.po b/po/attributes/nl.po index 99e228006..30602a333 100644 --- a/po/attributes/nl.po +++ b/po/attributes/nl.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: MusicBrainz\n" -"PO-Revision-Date: 2014-04-17 14:53+0000\n" +"PO-Revision-Date: 2014-05-21 11:52+0000\n" "Last-Translator: Maurits Meulenbelt \n" "Language-Team: Dutch (http://www.transifex.com/projects/p/musicbrainz/language/nl/)\n" "MIME-Version: 1.0\n" @@ -82,6 +82,11 @@ msgctxt "release_group_primary_type" msgid "Album" msgstr "Album" +#: DB:series_ordering_type/description:2 +msgctxt "series_ordering_type" +msgid "Allows for manually setting the position of each item in the series." +msgstr "Maakt het mogelijk om de positie van ieder object in een serie handmatig in te stellen." + #: DB:work_attribute_type_allowed_value/value:40 msgctxt "work_attribute_type_allowed_value" msgid "Amṛtavarṣiṇi" @@ -122,6 +127,11 @@ msgctxt "release_group_secondary_type" msgid "Audiobook" msgstr "Luisterboek" +#: DB:series_ordering_type/name:1 +msgctxt "series_ordering_type" +msgid "Automatic" +msgstr "Automatisch" + #: DB:work_attribute_type_allowed_value/value:45 msgctxt "work_attribute_type_allowed_value" msgid "Aṭāna" @@ -360,7 +370,7 @@ msgstr "Cantate" #: DB:release_packaging/name:4 msgctxt "release_packaging" msgid "Cardboard/Paper Sleeve" -msgstr "Kartonnnen / papieren hoes" +msgstr "Kartonnen / papieren hoes" #: DB:medium_format/name:9 msgctxt "medium_format" @@ -382,6 +392,11 @@ msgctxt "release_packaging" msgid "Cassette Case" msgstr "Cassettedoosje" +#: DB:series_type/name:5 +msgctxt "series_type" +msgid "Catalogue" +msgstr "Catalogus" + #: DB:work_attribute_type_allowed_value/value:291 msgctxt "work_attribute_type_allowed_value" msgid "Caturaśra-jāti jhaṁpe" @@ -652,6 +667,11 @@ msgctxt "release_group_primary_type" msgid "EP" msgstr "EP" +#: DB:instrument_type/name:4 +msgctxt "instrument_type" +msgid "Electronic instrument" +msgstr "Elektronisch instrument" + #: DB:work_attribute_type_allowed_value/value:17 msgctxt "work_attribute_type_allowed_value" msgid "F major" @@ -897,11 +917,41 @@ msgctxt "label_type" msgid "Imprint" msgstr "Imprint" +#: DB:series_type/description:5 +msgctxt "series_type" +msgid "Indicates that the series is a work catalogue." +msgstr "Geeft aan dat de serie een compositiecatalogus is." + +#: DB:series_type/description:3 +msgctxt "series_type" +msgid "Indicates that the series is of recordings." +msgstr "Geeft aan dat de serie opnames bevat." + +#: DB:series_type/description:1 +msgctxt "series_type" +msgid "Indicates that the series is of release groups." +msgstr "Geeft aan dat de serie uitgavegroepen bevat." + +#: DB:series_type/description:2 +msgctxt "series_type" +msgid "Indicates that the series is of releases." +msgstr "Geeft aan dat de serie uitgaves bevat." + +#: DB:series_type/description:4 +msgctxt "series_type" +msgid "Indicates that the series is of works." +msgstr "Geeft aan dat de serie composities bevat." + #: DB:place_type/name:5 msgctxt "place_type" msgid "Indoor arena" msgstr "Indoor arena" +#: DB:instrument_alias_type/name:1 +msgctxt "alias_type" +msgid "Instrument name" +msgstr "Naam van het instrument" + #: DB:release_group_secondary_type/name:4 msgctxt "release_group_secondary_type" msgid "Interview" @@ -1257,6 +1307,11 @@ msgctxt "work_attribute_type_allowed_value" msgid "Mandāri" msgstr "Mandāri" +#: DB:series_ordering_type/name:2 +msgctxt "series_ordering_type" +msgid "Manual" +msgstr "Handmatig" + #: DB:work_attribute_type_allowed_value/value:172 msgctxt "work_attribute_type_allowed_value" msgid "Manōranjani" @@ -1557,6 +1612,11 @@ msgctxt "cover_art_type" msgid "Other" msgstr "Overig" +#: DB:instrument_type/name:5 +msgctxt "instrument_type" +msgid "Other instrument" +msgstr "Overig instrument" + #: DB:work_type/name:12 msgctxt "work_type" msgid "Overture" @@ -1577,6 +1637,11 @@ msgctxt "work_attribute_type_allowed_value" msgid "Paṭdīp" msgstr "Paṭdīp" +#: DB:instrument_type/name:3 +msgctxt "instrument_type" +msgid "Percussion instrument" +msgstr "Percussie-instrument" + #: DB:artist_type/name:1 msgctxt "artist_type" msgid "Person" @@ -1687,6 +1752,11 @@ msgctxt "work_attribute_type_allowed_value" msgid "Ravicandrika" msgstr "Ravicandrika" +#: DB:series_type/name:3 +msgctxt "series_type" +msgid "Recording" +msgstr "Opname" + #: DB:medium_format/name:10 msgctxt "medium_format" msgid "Reel-to-reel" @@ -1697,6 +1767,16 @@ msgctxt "label_type" msgid "Reissue Production" msgstr "Heruitgaveproductie" +#: DB:series_type/name:2 +msgctxt "series_type" +msgid "Release" +msgstr "Uitgave" + +#: DB:series_type/name:1 +msgctxt "series_type" +msgid "Release group" +msgstr "Uitgavegroep" + #: DB:release_group_secondary_type/name:7 msgctxt "release_group_secondary_type" msgid "Remix" @@ -1814,7 +1894,8 @@ msgstr "Saurāṣtraṁ" #: DB:artist_alias_type/name:3 DB:label_alias_type/name:2 #: DB:place_alias_type/name:2 DB:work_alias_type/name:2 -#: DB:area_alias_type/name:3 +#: DB:area_alias_type/name:3 DB:instrument_alias_type/name:2 +#: DB:series_alias_type/name:2 msgctxt "alias_type" msgid "Search hint" msgstr "Zoektip" @@ -1824,6 +1905,11 @@ msgctxt "work_attribute_type_allowed_value" msgid "Sencuruṭṭi" msgstr "Sencuruṭṭi" +#: DB:series_alias_type/name:1 +msgctxt "alias_type" +msgid "Series name" +msgstr "Serienaam" + #: DB:work_attribute_type_allowed_value/value:236 msgctxt "work_attribute_type_allowed_value" msgid "Simhavāhini" @@ -1874,6 +1960,13 @@ msgctxt "work_type" msgid "Song-cycle" msgstr "Liedcyclus" +#: DB:series_ordering_type/description:1 +msgctxt "series_ordering_type" +msgid "" +"Sorts the items in the series automatically by their number attributes, " +"using a natural sort order." +msgstr "Sorteert de objecten in een serie automatisch aan de hand van de nummereigenschappen. Maakt hierbij gebruik van een natuurlijke volgorde." + #: DB:work_type/name:22 msgctxt "work_type" msgid "Soundtrack" @@ -1904,6 +1997,11 @@ msgctxt "cover_art_type" msgid "Sticker" msgstr "Sticker" +#: DB:instrument_type/name:2 +msgctxt "instrument_type" +msgid "String instrument" +msgstr "Snaarinstrument" + #: DB:place_type/name:1 msgctxt "place_type" msgid "Studio" @@ -2159,6 +2257,16 @@ msgctxt "medium_format" msgid "Wax Cylinder" msgstr "Wascilinder" +#: DB:instrument_type/name:1 +msgctxt "instrument_type" +msgid "Wind instrument" +msgstr "Blaasinstrument" + +#: DB:series_type/name:4 +msgctxt "series_type" +msgid "Work" +msgstr "Compositie" + #: DB:work_alias_type/name:1 msgctxt "alias_type" msgid "Work name" diff --git a/po/attributes/pl.po b/po/attributes/pl.po index 5959f9b38..dcbbeb5c1 100644 --- a/po/attributes/pl.po +++ b/po/attributes/pl.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: MusicBrainz\n" -"PO-Revision-Date: 2014-04-17 03:31+0000\n" +"PO-Revision-Date: 2014-05-20 19:03+0000\n" "Last-Translator: Ian McEwen \n" "Language-Team: Polish (http://www.transifex.com/projects/p/musicbrainz/language/pl/)\n" "MIME-Version: 1.0\n" @@ -82,6 +82,11 @@ msgctxt "release_group_primary_type" msgid "Album" msgstr "Album" +#: DB:series_ordering_type/description:2 +msgctxt "series_ordering_type" +msgid "Allows for manually setting the position of each item in the series." +msgstr "" + #: DB:work_attribute_type_allowed_value/value:40 msgctxt "work_attribute_type_allowed_value" msgid "Amṛtavarṣiṇi" @@ -122,6 +127,11 @@ msgctxt "release_group_secondary_type" msgid "Audiobook" msgstr "Audiobook" +#: DB:series_ordering_type/name:1 +msgctxt "series_ordering_type" +msgid "Automatic" +msgstr "" + #: DB:work_attribute_type_allowed_value/value:45 msgctxt "work_attribute_type_allowed_value" msgid "Aṭāna" @@ -382,6 +392,11 @@ msgctxt "release_packaging" msgid "Cassette Case" msgstr "" +#: DB:series_type/name:5 +msgctxt "series_type" +msgid "Catalogue" +msgstr "" + #: DB:work_attribute_type_allowed_value/value:291 msgctxt "work_attribute_type_allowed_value" msgid "Caturaśra-jāti jhaṁpe" @@ -652,6 +667,11 @@ msgctxt "release_group_primary_type" msgid "EP" msgstr "EP" +#: DB:instrument_type/name:4 +msgctxt "instrument_type" +msgid "Electronic instrument" +msgstr "" + #: DB:work_attribute_type_allowed_value/value:17 msgctxt "work_attribute_type_allowed_value" msgid "F major" @@ -897,11 +917,41 @@ msgctxt "label_type" msgid "Imprint" msgstr "" +#: DB:series_type/description:5 +msgctxt "series_type" +msgid "Indicates that the series is a work catalogue." +msgstr "" + +#: DB:series_type/description:3 +msgctxt "series_type" +msgid "Indicates that the series is of recordings." +msgstr "" + +#: DB:series_type/description:1 +msgctxt "series_type" +msgid "Indicates that the series is of release groups." +msgstr "" + +#: DB:series_type/description:2 +msgctxt "series_type" +msgid "Indicates that the series is of releases." +msgstr "" + +#: DB:series_type/description:4 +msgctxt "series_type" +msgid "Indicates that the series is of works." +msgstr "" + #: DB:place_type/name:5 msgctxt "place_type" msgid "Indoor arena" msgstr "" +#: DB:instrument_alias_type/name:1 +msgctxt "alias_type" +msgid "Instrument name" +msgstr "" + #: DB:release_group_secondary_type/name:4 msgctxt "release_group_secondary_type" msgid "Interview" @@ -1257,6 +1307,11 @@ msgctxt "work_attribute_type_allowed_value" msgid "Mandāri" msgstr "" +#: DB:series_ordering_type/name:2 +msgctxt "series_ordering_type" +msgid "Manual" +msgstr "" + #: DB:work_attribute_type_allowed_value/value:172 msgctxt "work_attribute_type_allowed_value" msgid "Manōranjani" @@ -1557,6 +1612,11 @@ msgctxt "cover_art_type" msgid "Other" msgstr "" +#: DB:instrument_type/name:5 +msgctxt "instrument_type" +msgid "Other instrument" +msgstr "" + #: DB:work_type/name:12 msgctxt "work_type" msgid "Overture" @@ -1577,6 +1637,11 @@ msgctxt "work_attribute_type_allowed_value" msgid "Paṭdīp" msgstr "" +#: DB:instrument_type/name:3 +msgctxt "instrument_type" +msgid "Percussion instrument" +msgstr "" + #: DB:artist_type/name:1 msgctxt "artist_type" msgid "Person" @@ -1687,6 +1752,11 @@ msgctxt "work_attribute_type_allowed_value" msgid "Ravicandrika" msgstr "" +#: DB:series_type/name:3 +msgctxt "series_type" +msgid "Recording" +msgstr "" + #: DB:medium_format/name:10 msgctxt "medium_format" msgid "Reel-to-reel" @@ -1697,6 +1767,16 @@ msgctxt "label_type" msgid "Reissue Production" msgstr "" +#: DB:series_type/name:2 +msgctxt "series_type" +msgid "Release" +msgstr "" + +#: DB:series_type/name:1 +msgctxt "series_type" +msgid "Release group" +msgstr "" + #: DB:release_group_secondary_type/name:7 msgctxt "release_group_secondary_type" msgid "Remix" @@ -1814,7 +1894,8 @@ msgstr "" #: DB:artist_alias_type/name:3 DB:label_alias_type/name:2 #: DB:place_alias_type/name:2 DB:work_alias_type/name:2 -#: DB:area_alias_type/name:3 +#: DB:area_alias_type/name:3 DB:instrument_alias_type/name:2 +#: DB:series_alias_type/name:2 msgctxt "alias_type" msgid "Search hint" msgstr "" @@ -1824,6 +1905,11 @@ msgctxt "work_attribute_type_allowed_value" msgid "Sencuruṭṭi" msgstr "" +#: DB:series_alias_type/name:1 +msgctxt "alias_type" +msgid "Series name" +msgstr "" + #: DB:work_attribute_type_allowed_value/value:236 msgctxt "work_attribute_type_allowed_value" msgid "Simhavāhini" @@ -1874,6 +1960,13 @@ msgctxt "work_type" msgid "Song-cycle" msgstr "" +#: DB:series_ordering_type/description:1 +msgctxt "series_ordering_type" +msgid "" +"Sorts the items in the series automatically by their number attributes, " +"using a natural sort order." +msgstr "" + #: DB:work_type/name:22 msgctxt "work_type" msgid "Soundtrack" @@ -1904,6 +1997,11 @@ msgctxt "cover_art_type" msgid "Sticker" msgstr "" +#: DB:instrument_type/name:2 +msgctxt "instrument_type" +msgid "String instrument" +msgstr "" + #: DB:place_type/name:1 msgctxt "place_type" msgid "Studio" @@ -2159,6 +2257,16 @@ msgctxt "medium_format" msgid "Wax Cylinder" msgstr "" +#: DB:instrument_type/name:1 +msgctxt "instrument_type" +msgid "Wind instrument" +msgstr "" + +#: DB:series_type/name:4 +msgctxt "series_type" +msgid "Work" +msgstr "" + #: DB:work_alias_type/name:1 msgctxt "alias_type" msgid "Work name" diff --git a/po/attributes/pt_BR.po b/po/attributes/pt_BR.po index b49ecbc34..f1e80a875 100644 --- a/po/attributes/pt_BR.po +++ b/po/attributes/pt_BR.po @@ -12,7 +12,7 @@ msgid "" msgstr "" "Project-Id-Version: MusicBrainz\n" -"PO-Revision-Date: 2014-04-17 03:31+0000\n" +"PO-Revision-Date: 2014-05-20 19:03+0000\n" "Last-Translator: Ian McEwen \n" "Language-Team: Portuguese (Brazil) (http://www.transifex.com/projects/p/musicbrainz/language/pt_BR/)\n" "MIME-Version: 1.0\n" @@ -86,6 +86,11 @@ msgctxt "release_group_primary_type" msgid "Album" msgstr "Album" +#: DB:series_ordering_type/description:2 +msgctxt "series_ordering_type" +msgid "Allows for manually setting the position of each item in the series." +msgstr "" + #: DB:work_attribute_type_allowed_value/value:40 msgctxt "work_attribute_type_allowed_value" msgid "Amṛtavarṣiṇi" @@ -126,6 +131,11 @@ msgctxt "release_group_secondary_type" msgid "Audiobook" msgstr "Audiobook" +#: DB:series_ordering_type/name:1 +msgctxt "series_ordering_type" +msgid "Automatic" +msgstr "" + #: DB:work_attribute_type_allowed_value/value:45 msgctxt "work_attribute_type_allowed_value" msgid "Aṭāna" @@ -386,6 +396,11 @@ msgctxt "release_packaging" msgid "Cassette Case" msgstr "" +#: DB:series_type/name:5 +msgctxt "series_type" +msgid "Catalogue" +msgstr "" + #: DB:work_attribute_type_allowed_value/value:291 msgctxt "work_attribute_type_allowed_value" msgid "Caturaśra-jāti jhaṁpe" @@ -656,6 +671,11 @@ msgctxt "release_group_primary_type" msgid "EP" msgstr "EP" +#: DB:instrument_type/name:4 +msgctxt "instrument_type" +msgid "Electronic instrument" +msgstr "" + #: DB:work_attribute_type_allowed_value/value:17 msgctxt "work_attribute_type_allowed_value" msgid "F major" @@ -901,11 +921,41 @@ msgctxt "label_type" msgid "Imprint" msgstr "" +#: DB:series_type/description:5 +msgctxt "series_type" +msgid "Indicates that the series is a work catalogue." +msgstr "" + +#: DB:series_type/description:3 +msgctxt "series_type" +msgid "Indicates that the series is of recordings." +msgstr "" + +#: DB:series_type/description:1 +msgctxt "series_type" +msgid "Indicates that the series is of release groups." +msgstr "" + +#: DB:series_type/description:2 +msgctxt "series_type" +msgid "Indicates that the series is of releases." +msgstr "" + +#: DB:series_type/description:4 +msgctxt "series_type" +msgid "Indicates that the series is of works." +msgstr "" + #: DB:place_type/name:5 msgctxt "place_type" msgid "Indoor arena" msgstr "" +#: DB:instrument_alias_type/name:1 +msgctxt "alias_type" +msgid "Instrument name" +msgstr "" + #: DB:release_group_secondary_type/name:4 msgctxt "release_group_secondary_type" msgid "Interview" @@ -1261,6 +1311,11 @@ msgctxt "work_attribute_type_allowed_value" msgid "Mandāri" msgstr "" +#: DB:series_ordering_type/name:2 +msgctxt "series_ordering_type" +msgid "Manual" +msgstr "" + #: DB:work_attribute_type_allowed_value/value:172 msgctxt "work_attribute_type_allowed_value" msgid "Manōranjani" @@ -1561,6 +1616,11 @@ msgctxt "cover_art_type" msgid "Other" msgstr "Outro" +#: DB:instrument_type/name:5 +msgctxt "instrument_type" +msgid "Other instrument" +msgstr "" + #: DB:work_type/name:12 msgctxt "work_type" msgid "Overture" @@ -1581,6 +1641,11 @@ msgctxt "work_attribute_type_allowed_value" msgid "Paṭdīp" msgstr "" +#: DB:instrument_type/name:3 +msgctxt "instrument_type" +msgid "Percussion instrument" +msgstr "" + #: DB:artist_type/name:1 msgctxt "artist_type" msgid "Person" @@ -1691,6 +1756,11 @@ msgctxt "work_attribute_type_allowed_value" msgid "Ravicandrika" msgstr "" +#: DB:series_type/name:3 +msgctxt "series_type" +msgid "Recording" +msgstr "" + #: DB:medium_format/name:10 msgctxt "medium_format" msgid "Reel-to-reel" @@ -1701,6 +1771,16 @@ msgctxt "label_type" msgid "Reissue Production" msgstr "" +#: DB:series_type/name:2 +msgctxt "series_type" +msgid "Release" +msgstr "" + +#: DB:series_type/name:1 +msgctxt "series_type" +msgid "Release group" +msgstr "" + #: DB:release_group_secondary_type/name:7 msgctxt "release_group_secondary_type" msgid "Remix" @@ -1818,7 +1898,8 @@ msgstr "" #: DB:artist_alias_type/name:3 DB:label_alias_type/name:2 #: DB:place_alias_type/name:2 DB:work_alias_type/name:2 -#: DB:area_alias_type/name:3 +#: DB:area_alias_type/name:3 DB:instrument_alias_type/name:2 +#: DB:series_alias_type/name:2 msgctxt "alias_type" msgid "Search hint" msgstr "Pesquisar dica" @@ -1828,6 +1909,11 @@ msgctxt "work_attribute_type_allowed_value" msgid "Sencuruṭṭi" msgstr "" +#: DB:series_alias_type/name:1 +msgctxt "alias_type" +msgid "Series name" +msgstr "" + #: DB:work_attribute_type_allowed_value/value:236 msgctxt "work_attribute_type_allowed_value" msgid "Simhavāhini" @@ -1878,6 +1964,13 @@ msgctxt "work_type" msgid "Song-cycle" msgstr "" +#: DB:series_ordering_type/description:1 +msgctxt "series_ordering_type" +msgid "" +"Sorts the items in the series automatically by their number attributes, " +"using a natural sort order." +msgstr "" + #: DB:work_type/name:22 msgctxt "work_type" msgid "Soundtrack" @@ -1908,6 +2001,11 @@ msgctxt "cover_art_type" msgid "Sticker" msgstr "" +#: DB:instrument_type/name:2 +msgctxt "instrument_type" +msgid "String instrument" +msgstr "" + #: DB:place_type/name:1 msgctxt "place_type" msgid "Studio" @@ -2163,6 +2261,16 @@ msgctxt "medium_format" msgid "Wax Cylinder" msgstr "" +#: DB:instrument_type/name:1 +msgctxt "instrument_type" +msgid "Wind instrument" +msgstr "" + +#: DB:series_type/name:4 +msgctxt "series_type" +msgid "Work" +msgstr "" + #: DB:work_alias_type/name:1 msgctxt "alias_type" msgid "Work name" diff --git a/po/attributes/ro.po b/po/attributes/ro.po index c72badb80..34101e9aa 100644 --- a/po/attributes/ro.po +++ b/po/attributes/ro.po @@ -4,7 +4,7 @@ msgid "" msgstr "" "Project-Id-Version: MusicBrainz\n" -"PO-Revision-Date: 2014-04-17 03:31+0000\n" +"PO-Revision-Date: 2014-05-20 19:03+0000\n" "Last-Translator: Ian McEwen \n" "Language-Team: Romanian (http://www.transifex.com/projects/p/musicbrainz/language/ro/)\n" "MIME-Version: 1.0\n" @@ -78,6 +78,11 @@ msgctxt "release_group_primary_type" msgid "Album" msgstr "Album" +#: DB:series_ordering_type/description:2 +msgctxt "series_ordering_type" +msgid "Allows for manually setting the position of each item in the series." +msgstr "" + #: DB:work_attribute_type_allowed_value/value:40 msgctxt "work_attribute_type_allowed_value" msgid "Amṛtavarṣiṇi" @@ -118,6 +123,11 @@ msgctxt "release_group_secondary_type" msgid "Audiobook" msgstr "Carte audio" +#: DB:series_ordering_type/name:1 +msgctxt "series_ordering_type" +msgid "Automatic" +msgstr "" + #: DB:work_attribute_type_allowed_value/value:45 msgctxt "work_attribute_type_allowed_value" msgid "Aṭāna" @@ -378,6 +388,11 @@ msgctxt "release_packaging" msgid "Cassette Case" msgstr "" +#: DB:series_type/name:5 +msgctxt "series_type" +msgid "Catalogue" +msgstr "" + #: DB:work_attribute_type_allowed_value/value:291 msgctxt "work_attribute_type_allowed_value" msgid "Caturaśra-jāti jhaṁpe" @@ -648,6 +663,11 @@ msgctxt "release_group_primary_type" msgid "EP" msgstr "EP" +#: DB:instrument_type/name:4 +msgctxt "instrument_type" +msgid "Electronic instrument" +msgstr "" + #: DB:work_attribute_type_allowed_value/value:17 msgctxt "work_attribute_type_allowed_value" msgid "F major" @@ -893,11 +913,41 @@ msgctxt "label_type" msgid "Imprint" msgstr "" +#: DB:series_type/description:5 +msgctxt "series_type" +msgid "Indicates that the series is a work catalogue." +msgstr "" + +#: DB:series_type/description:3 +msgctxt "series_type" +msgid "Indicates that the series is of recordings." +msgstr "" + +#: DB:series_type/description:1 +msgctxt "series_type" +msgid "Indicates that the series is of release groups." +msgstr "" + +#: DB:series_type/description:2 +msgctxt "series_type" +msgid "Indicates that the series is of releases." +msgstr "" + +#: DB:series_type/description:4 +msgctxt "series_type" +msgid "Indicates that the series is of works." +msgstr "" + #: DB:place_type/name:5 msgctxt "place_type" msgid "Indoor arena" msgstr "" +#: DB:instrument_alias_type/name:1 +msgctxt "alias_type" +msgid "Instrument name" +msgstr "" + #: DB:release_group_secondary_type/name:4 msgctxt "release_group_secondary_type" msgid "Interview" @@ -1253,6 +1303,11 @@ msgctxt "work_attribute_type_allowed_value" msgid "Mandāri" msgstr "" +#: DB:series_ordering_type/name:2 +msgctxt "series_ordering_type" +msgid "Manual" +msgstr "" + #: DB:work_attribute_type_allowed_value/value:172 msgctxt "work_attribute_type_allowed_value" msgid "Manōranjani" @@ -1553,6 +1608,11 @@ msgctxt "cover_art_type" msgid "Other" msgstr "altele" +#: DB:instrument_type/name:5 +msgctxt "instrument_type" +msgid "Other instrument" +msgstr "" + #: DB:work_type/name:12 msgctxt "work_type" msgid "Overture" @@ -1573,6 +1633,11 @@ msgctxt "work_attribute_type_allowed_value" msgid "Paṭdīp" msgstr "" +#: DB:instrument_type/name:3 +msgctxt "instrument_type" +msgid "Percussion instrument" +msgstr "" + #: DB:artist_type/name:1 msgctxt "artist_type" msgid "Person" @@ -1683,6 +1748,11 @@ msgctxt "work_attribute_type_allowed_value" msgid "Ravicandrika" msgstr "" +#: DB:series_type/name:3 +msgctxt "series_type" +msgid "Recording" +msgstr "" + #: DB:medium_format/name:10 msgctxt "medium_format" msgid "Reel-to-reel" @@ -1693,6 +1763,16 @@ msgctxt "label_type" msgid "Reissue Production" msgstr "Producție Reemitere" +#: DB:series_type/name:2 +msgctxt "series_type" +msgid "Release" +msgstr "" + +#: DB:series_type/name:1 +msgctxt "series_type" +msgid "Release group" +msgstr "" + #: DB:release_group_secondary_type/name:7 msgctxt "release_group_secondary_type" msgid "Remix" @@ -1810,7 +1890,8 @@ msgstr "" #: DB:artist_alias_type/name:3 DB:label_alias_type/name:2 #: DB:place_alias_type/name:2 DB:work_alias_type/name:2 -#: DB:area_alias_type/name:3 +#: DB:area_alias_type/name:3 DB:instrument_alias_type/name:2 +#: DB:series_alias_type/name:2 msgctxt "alias_type" msgid "Search hint" msgstr "Indiciu căutare " @@ -1820,6 +1901,11 @@ msgctxt "work_attribute_type_allowed_value" msgid "Sencuruṭṭi" msgstr "" +#: DB:series_alias_type/name:1 +msgctxt "alias_type" +msgid "Series name" +msgstr "" + #: DB:work_attribute_type_allowed_value/value:236 msgctxt "work_attribute_type_allowed_value" msgid "Simhavāhini" @@ -1870,6 +1956,13 @@ msgctxt "work_type" msgid "Song-cycle" msgstr "Ciclu melodie" +#: DB:series_ordering_type/description:1 +msgctxt "series_ordering_type" +msgid "" +"Sorts the items in the series automatically by their number attributes, " +"using a natural sort order." +msgstr "" + #: DB:work_type/name:22 msgctxt "work_type" msgid "Soundtrack" @@ -1900,6 +1993,11 @@ msgctxt "cover_art_type" msgid "Sticker" msgstr "Autocolant" +#: DB:instrument_type/name:2 +msgctxt "instrument_type" +msgid "String instrument" +msgstr "" + #: DB:place_type/name:1 msgctxt "place_type" msgid "Studio" @@ -2155,6 +2253,16 @@ msgctxt "medium_format" msgid "Wax Cylinder" msgstr "Cilindru de ceară" +#: DB:instrument_type/name:1 +msgctxt "instrument_type" +msgid "Wind instrument" +msgstr "" + +#: DB:series_type/name:4 +msgctxt "series_type" +msgid "Work" +msgstr "" + #: DB:work_alias_type/name:1 msgctxt "alias_type" msgid "Work name" diff --git a/po/attributes/ru.po b/po/attributes/ru.po index b6e0ee9f9..6cdd1680d 100644 --- a/po/attributes/ru.po +++ b/po/attributes/ru.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: MusicBrainz\n" -"PO-Revision-Date: 2014-05-04 13:30+0000\n" -"Last-Translator: Дмитрий Яковлев \n" +"PO-Revision-Date: 2014-05-20 19:03+0000\n" +"Last-Translator: Ian McEwen \n" "Language-Team: Russian (http://www.transifex.com/projects/p/musicbrainz/language/ru/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -19,7 +19,7 @@ msgstr "" #: DB:medium_format/name:30 msgctxt "medium_format" msgid "10\" Vinyl" -msgstr "" +msgstr "10\" Винил" #: DB:medium_format/name:31 msgctxt "medium_format" @@ -81,6 +81,11 @@ msgctxt "release_group_primary_type" msgid "Album" msgstr "Альбом" +#: DB:series_ordering_type/description:2 +msgctxt "series_ordering_type" +msgid "Allows for manually setting the position of each item in the series." +msgstr "" + #: DB:work_attribute_type_allowed_value/value:40 msgctxt "work_attribute_type_allowed_value" msgid "Amṛtavarṣiṇi" @@ -104,7 +109,7 @@ msgstr "Ария" #: DB:artist_alias_type/name:1 msgctxt "alias_type" msgid "Artist name" -msgstr "" +msgstr "Имя исполнителя" #: DB:work_attribute_type_allowed_value/value:44 msgctxt "work_attribute_type_allowed_value" @@ -121,6 +126,11 @@ msgctxt "release_group_secondary_type" msgid "Audiobook" msgstr "Аудиокнига" +#: DB:series_ordering_type/name:1 +msgctxt "series_ordering_type" +msgid "Automatic" +msgstr "" + #: DB:work_attribute_type_allowed_value/value:45 msgctxt "work_attribute_type_allowed_value" msgid "Aṭāna" @@ -159,7 +169,7 @@ msgstr "" #: DB:cover_art_archive.art_type/name:2 msgctxt "cover_art_type" msgid "Back" -msgstr "" +msgstr "Назад" #: DB:work_attribute_type_allowed_value/value:47 msgctxt "work_attribute_type_allowed_value" @@ -244,7 +254,7 @@ msgstr "Blu-ray" #: DB:medium_format/name:35 msgctxt "medium_format" msgid "Blu-spec CD" -msgstr "" +msgstr "Blu-spec CD" #: DB:release_packaging/name:9 msgctxt "release_packaging" @@ -254,7 +264,7 @@ msgstr "Книга" #: DB:cover_art_archive.art_type/name:3 msgctxt "cover_art_type" msgid "Booklet" -msgstr "" +msgstr "Буклет" #: DB:release_status/name:3 msgctxt "release_status" @@ -269,7 +279,7 @@ msgstr "" #: DB:release_group_primary_type/name:12 msgctxt "release_group_primary_type" msgid "Broadcast" -msgstr "" +msgstr "Трансляция" #: DB:work_attribute_type_allowed_value/value:62 msgctxt "work_attribute_type_allowed_value" @@ -354,7 +364,7 @@ msgstr "" #: DB:work_type/name:3 msgctxt "work_type" msgid "Cantata" -msgstr "" +msgstr "Кантата" #: DB:release_packaging/name:4 msgctxt "release_packaging" @@ -364,7 +374,7 @@ msgstr "" #: DB:medium_format/name:9 msgctxt "medium_format" msgid "Cartridge" -msgstr "" +msgstr "Картридж" #: DB:work_attribute_type_allowed_value/value:66 msgctxt "work_attribute_type_allowed_value" @@ -374,13 +384,18 @@ msgstr "" #: DB:medium_format/name:8 msgctxt "medium_format" msgid "Cassette" -msgstr "" +msgstr "Кассета" #: DB:release_packaging/name:8 msgctxt "release_packaging" msgid "Cassette Case" msgstr "" +#: DB:series_type/name:5 +msgctxt "series_type" +msgid "Catalogue" +msgstr "" + #: DB:work_attribute_type_allowed_value/value:291 msgctxt "work_attribute_type_allowed_value" msgid "Caturaśra-jāti jhaṁpe" @@ -394,7 +409,7 @@ msgstr "" #: DB:artist_type/name:4 msgctxt "artist_type" msgid "Character" -msgstr "" +msgstr "Персонаж" #: DB:artist_type/name:6 msgctxt "artist_type" @@ -414,22 +429,22 @@ msgstr "" #: DB:area_type/name:3 msgctxt "area_type" msgid "City" -msgstr "" +msgstr "Город" #: DB:release_group_secondary_type/name:1 msgctxt "release_group_secondary_type" msgid "Compilation" -msgstr "" +msgstr "Компиляция" #: DB:work_type/name:4 msgctxt "work_type" msgid "Concerto" -msgstr "" +msgstr "Концерт" #: DB:area_type/name:1 msgctxt "area_type" msgid "Country" -msgstr "" +msgstr "Страна" #: DB:work_attribute_type_allowed_value/value:67 msgctxt "work_attribute_type_allowed_value" @@ -474,17 +489,17 @@ msgstr "" #: DB:medium_format/name:11 msgctxt "medium_format" msgid "DAT" -msgstr "" +msgstr "DAT" #: DB:medium_format/name:16 msgctxt "medium_format" msgid "DCC" -msgstr "" +msgstr "DCC" #: DB:release_group_secondary_type/name:8 msgctxt "release_group_secondary_type" msgid "DJ-mix" -msgstr "" +msgstr "DJ-mix" #: DB:medium_format/name:2 msgctxt "medium_format" @@ -494,12 +509,12 @@ msgstr "DVD" #: DB:medium_format/name:18 msgctxt "medium_format" msgid "DVD-Audio" -msgstr "" +msgstr "DVD-Аудио" #: DB:medium_format/name:19 msgctxt "medium_format" msgid "DVD-Video" -msgstr "" +msgstr "DVD-Видео" #: DB:work_attribute_type_allowed_value/value:73 msgctxt "work_attribute_type_allowed_value" @@ -549,7 +564,7 @@ msgstr "" #: DB:release_packaging/name:3 msgctxt "release_packaging" msgid "Digipak" -msgstr "" +msgstr "Диджипак" #: DB:medium_format/name:12 msgctxt "medium_format" @@ -564,17 +579,17 @@ msgstr "" #: DB:label_type/name:1 msgctxt "label_type" msgid "Distributor" -msgstr "" +msgstr "Дистрибьютор" #: DB:area_type/name:5 msgctxt "area_type" msgid "District" -msgstr "" +msgstr "Район" #: DB:medium_format/name:4 msgctxt "medium_format" msgid "DualDisc" -msgstr "" +msgstr "Двойной диск" #: DB:work_attribute_type_allowed_value/value:86 msgctxt "work_attribute_type_allowed_value" @@ -649,6 +664,11 @@ msgstr "" #: DB:release_group_primary_type/name:3 msgctxt "release_group_primary_type" msgid "EP" +msgstr "EP" + +#: DB:instrument_type/name:4 +msgctxt "instrument_type" +msgid "Electronic instrument" msgstr "" #: DB:work_attribute_type_allowed_value/value:17 @@ -689,7 +709,7 @@ msgstr "" #: DB:area_alias_type/name:2 msgctxt "alias_type" msgid "Formal name" -msgstr "" +msgstr "Официальное название" #: DB:cover_art_archive.art_type/name:1 msgctxt "cover_art_type" @@ -784,7 +804,7 @@ msgstr "" #: DB:artist_type/name:2 msgctxt "artist_type" msgid "Group" -msgstr "" +msgstr "Группа" #: DB:work_attribute_type_allowed_value/value:102 msgctxt "work_attribute_type_allowed_value" @@ -874,7 +894,7 @@ msgstr "" #: DB:label_type/name:2 msgctxt "label_type" msgid "Holding" -msgstr "" +msgstr "Холдинг" #: DB:work_attribute_type_allowed_value/value:113 msgctxt "work_attribute_type_allowed_value" @@ -884,7 +904,7 @@ msgstr "" #: DB:medium_format/name:38 msgctxt "medium_format" msgid "Hybrid SACD" -msgstr "" +msgstr "Гибридный SACD" #: DB:work_attribute_type_allowed_value/value:109 msgctxt "work_attribute_type_allowed_value" @@ -896,15 +916,45 @@ msgctxt "label_type" msgid "Imprint" msgstr "" +#: DB:series_type/description:5 +msgctxt "series_type" +msgid "Indicates that the series is a work catalogue." +msgstr "" + +#: DB:series_type/description:3 +msgctxt "series_type" +msgid "Indicates that the series is of recordings." +msgstr "" + +#: DB:series_type/description:1 +msgctxt "series_type" +msgid "Indicates that the series is of release groups." +msgstr "" + +#: DB:series_type/description:2 +msgctxt "series_type" +msgid "Indicates that the series is of releases." +msgstr "" + +#: DB:series_type/description:4 +msgctxt "series_type" +msgid "Indicates that the series is of works." +msgstr "" + #: DB:place_type/name:5 msgctxt "place_type" msgid "Indoor arena" msgstr "" +#: DB:instrument_alias_type/name:1 +msgctxt "alias_type" +msgid "Instrument name" +msgstr "" + #: DB:release_group_secondary_type/name:4 msgctxt "release_group_secondary_type" msgid "Interview" -msgstr "" +msgstr "Интервью" #: DB:work_attribute_type/name:3 msgctxt "work_attribute_type" @@ -1164,7 +1214,7 @@ msgstr "" #: DB:label_alias_type/name:1 msgctxt "alias_type" msgid "Label name" -msgstr "" +msgstr "Имя Лейбла" #: DB:work_attribute_type_allowed_value/value:157 msgctxt "work_attribute_type_allowed_value" @@ -1194,7 +1244,7 @@ msgstr "" #: DB:artist_alias_type/name:2 msgctxt "alias_type" msgid "Legal name" -msgstr "" +msgstr "Юридическое название" #: DB:cover_art_archive.art_type/name:12 msgctxt "cover_art_type" @@ -1204,7 +1254,7 @@ msgstr "" #: DB:release_group_secondary_type/name:6 msgctxt "release_group_secondary_type" msgid "Live" -msgstr "" +msgstr "Live" #: DB:work_attribute_type_allowed_value/value:161 msgctxt "work_attribute_type_allowed_value" @@ -1224,7 +1274,7 @@ msgstr "" #: DB:work_type/name:7 msgctxt "work_type" msgid "Madrigal" -msgstr "" +msgstr "Мадригал" #: DB:work_attribute_type_allowed_value/value:163 msgctxt "work_attribute_type_allowed_value" @@ -1249,13 +1299,18 @@ msgstr "" #: DB:gender/name:1 msgctxt "gender" msgid "Male" -msgstr "" +msgstr "Мужской" #: DB:work_attribute_type_allowed_value/value:168 msgctxt "work_attribute_type_allowed_value" msgid "Mandāri" msgstr "" +#: DB:series_ordering_type/name:2 +msgctxt "series_ordering_type" +msgid "Manual" +msgstr "" + #: DB:work_attribute_type_allowed_value/value:172 msgctxt "work_attribute_type_allowed_value" msgid "Manōranjani" @@ -1264,7 +1319,7 @@ msgstr "" #: DB:work_type/name:8 msgctxt "work_type" msgid "Mass" -msgstr "" +msgstr "Масса" #: DB:work_attribute_type_allowed_value/value:175 msgctxt "work_attribute_type_allowed_value" @@ -1294,7 +1349,7 @@ msgstr "" #: DB:medium_format/name:6 msgctxt "medium_format" msgid "MiniDisc" -msgstr "" +msgstr "Минидиск" #: DB:release_group_secondary_type/name:9 msgctxt "release_group_secondary_type" @@ -1349,7 +1404,7 @@ msgstr "" #: DB:area_type/name:4 msgctxt "area_type" msgid "Municipality" -msgstr "" +msgstr "Муниципалитет" #: DB:work_attribute_type/name:12 msgctxt "work_attribute_type" @@ -1494,17 +1549,17 @@ msgstr "" #: DB:release_status/name:1 msgctxt "release_status" msgid "Official" -msgstr "" +msgstr "Официальный" #: DB:work_type/name:10 msgctxt "work_type" msgid "Opera" -msgstr "" +msgstr "Опера" #: DB:work_type/name:24 msgctxt "work_type" msgid "Operetta" -msgstr "" +msgstr "Оперетта" #: DB:work_type/name:11 msgctxt "work_type" @@ -1519,12 +1574,12 @@ msgstr "" #: DB:label_type/name:4 msgctxt "label_type" msgid "Original Production" -msgstr "" +msgstr "Оригинальная Продукция" #: DB:artist_type/name:3 msgctxt "artist_type" msgid "Other" -msgstr "" +msgstr "Другие" #: DB:place_type/name:3 msgctxt "place_type" @@ -1534,32 +1589,37 @@ msgstr "" #: DB:release_group_primary_type/name:11 msgctxt "release_group_primary_type" msgid "Other" -msgstr "" +msgstr "Другие" #: DB:medium_format/name:13 msgctxt "medium_format" msgid "Other" -msgstr "" +msgstr "Другие" #: DB:release_packaging/name:5 msgctxt "release_packaging" msgid "Other" -msgstr "" +msgstr "Другие" #: DB:gender/name:3 msgctxt "gender" msgid "Other" -msgstr "" +msgstr "Другие" #: DB:cover_art_archive.art_type/name:8 msgctxt "cover_art_type" msgid "Other" msgstr "" +#: DB:instrument_type/name:5 +msgctxt "instrument_type" +msgid "Other instrument" +msgstr "" + #: DB:work_type/name:12 msgctxt "work_type" msgid "Overture" -msgstr "" +msgstr "Увертюра" #: DB:work_attribute_type_allowed_value/value:203 msgctxt "work_attribute_type_allowed_value" @@ -1569,13 +1629,18 @@ msgstr "" #: DB:work_type/name:13 msgctxt "work_type" msgid "Partita" -msgstr "" +msgstr "Партита" #: DB:work_attribute_type_allowed_value/value:204 msgctxt "work_attribute_type_allowed_value" msgid "Paṭdīp" msgstr "" +#: DB:instrument_type/name:3 +msgctxt "instrument_type" +msgid "Percussion instrument" +msgstr "" + #: DB:artist_type/name:1 msgctxt "artist_type" msgid "Person" @@ -1584,7 +1649,7 @@ msgstr "" #: DB:medium_format/name:15 msgctxt "medium_format" msgid "Piano Roll" -msgstr "" +msgstr "Пианино" #: DB:place_alias_type/name:1 msgctxt "alias_type" @@ -1594,7 +1659,7 @@ msgstr "" #: DB:work_type/name:21 msgctxt "work_type" msgid "Poem" -msgstr "" +msgstr "Поэма" #: DB:cover_art_archive.art_type/name:11 msgctxt "cover_art_type" @@ -1604,12 +1669,12 @@ msgstr "Плакат" #: DB:label_type/name:3 msgctxt "label_type" msgid "Production" -msgstr "" +msgstr "Производство" #: DB:release_status/name:2 msgctxt "release_status" msgid "Promotion" -msgstr "" +msgstr "Продвижение" #: DB:work_type/name:23 msgctxt "work_type" @@ -1619,12 +1684,12 @@ msgstr "Проза" #: DB:release_status/name:4 msgctxt "release_status" msgid "Pseudo-Release" -msgstr "" +msgstr "Псевдо-релиз" #: DB:label_type/name:7 msgctxt "label_type" msgid "Publisher" -msgstr "" +msgstr "Издатель" #: DB:work_attribute_type_allowed_value/value:205 msgctxt "work_attribute_type_allowed_value" @@ -1664,7 +1729,7 @@ msgstr "" #: DB:work_type/name:14 msgctxt "work_type" msgid "Quartet" -msgstr "" +msgstr "Квартет" #: DB:work_attribute_type_allowed_value/value:215 msgctxt "work_attribute_type_allowed_value" @@ -1686,20 +1751,35 @@ msgctxt "work_attribute_type_allowed_value" msgid "Ravicandrika" msgstr "" +#: DB:series_type/name:3 +msgctxt "series_type" +msgid "Recording" +msgstr "" + #: DB:medium_format/name:10 msgctxt "medium_format" msgid "Reel-to-reel" -msgstr "" +msgstr "Катушечный" #: DB:label_type/name:6 msgctxt "label_type" msgid "Reissue Production" +msgstr "Переиздание" + +#: DB:series_type/name:2 +msgctxt "series_type" +msgid "Release" +msgstr "" + +#: DB:series_type/name:1 +msgctxt "series_type" +msgid "Release group" msgstr "" #: DB:release_group_secondary_type/name:7 msgctxt "release_group_secondary_type" msgid "Remix" -msgstr "" +msgstr "Ремикс" #: DB:label_type/name:8 msgctxt "label_type" @@ -1764,7 +1844,7 @@ msgstr "" #: DB:medium_format/name:3 msgctxt "medium_format" msgid "SACD" -msgstr "" +msgstr "SACD" #: DB:work_attribute_type/name:8 msgctxt "work_attribute_type" @@ -1784,7 +1864,7 @@ msgstr "" #: DB:medium_format/name:23 msgctxt "medium_format" msgid "SVCD" -msgstr "" +msgstr "SVCD" #: DB:work_attribute_type_allowed_value/value:223 msgctxt "work_attribute_type_allowed_value" @@ -1813,16 +1893,22 @@ msgstr "" #: DB:artist_alias_type/name:3 DB:label_alias_type/name:2 #: DB:place_alias_type/name:2 DB:work_alias_type/name:2 -#: DB:area_alias_type/name:3 +#: DB:area_alias_type/name:3 DB:instrument_alias_type/name:2 +#: DB:series_alias_type/name:2 msgctxt "alias_type" msgid "Search hint" -msgstr "" +msgstr "Поиск подсказки" #: DB:work_attribute_type_allowed_value/value:235 msgctxt "work_attribute_type_allowed_value" msgid "Sencuruṭṭi" msgstr "" +#: DB:series_alias_type/name:1 +msgctxt "alias_type" +msgid "Series name" +msgstr "" + #: DB:work_attribute_type_allowed_value/value:236 msgctxt "work_attribute_type_allowed_value" msgid "Simhavāhini" @@ -1846,7 +1932,7 @@ msgstr "" #: DB:release_group_primary_type/name:2 msgctxt "release_group_primary_type" msgid "Single" -msgstr "" +msgstr "Сингл" #: DB:release_packaging/name:2 msgctxt "release_packaging" @@ -1866,11 +1952,18 @@ msgstr "Соната" #: DB:work_type/name:17 msgctxt "work_type" msgid "Song" -msgstr "" +msgstr "Песня" #: DB:work_type/name:15 msgctxt "work_type" msgid "Song-cycle" +msgstr "Цикл песен" + +#: DB:series_ordering_type/description:1 +msgctxt "series_ordering_type" +msgid "" +"Sorts the items in the series automatically by their number attributes, " +"using a natural sort order." msgstr "" #: DB:work_type/name:22 @@ -1901,6 +1994,11 @@ msgstr "" #: DB:cover_art_archive.art_type/name:10 msgctxt "cover_art_type" msgid "Sticker" +msgstr "Стикер" + +#: DB:instrument_type/name:2 +msgctxt "instrument_type" +msgid "String instrument" msgstr "" #: DB:place_type/name:1 @@ -1921,7 +2019,7 @@ msgstr "" #: DB:work_type/name:6 msgctxt "work_type" msgid "Suite" -msgstr "" +msgstr "Сюита" #: DB:work_attribute_type_allowed_value/value:250 msgctxt "work_attribute_type_allowed_value" @@ -1946,12 +2044,12 @@ msgstr "" #: DB:work_type/name:18 msgctxt "work_type" msgid "Symphonic poem" -msgstr "" +msgstr "Симфоническая поэма" #: DB:work_type/name:16 msgctxt "work_type" msgid "Symphony" -msgstr "" +msgstr "Симфония" #: DB:work_attribute_type_allowed_value/value:224 msgctxt "work_attribute_type_allowed_value" @@ -2006,7 +2104,7 @@ msgstr "Трек" #: DB:cover_art_archive.art_type/name:9 msgctxt "cover_art_type" msgid "Tray" -msgstr "" +msgstr "Лоток" #: DB:work_attribute_type/name:5 msgctxt "work_attribute_type" @@ -2021,12 +2119,12 @@ msgstr "" #: DB:medium_format/name:28 msgctxt "medium_format" msgid "UMD" -msgstr "" +msgstr "UMD" #: DB:medium_format/name:26 msgctxt "medium_format" msgid "USB Flash Drive" -msgstr "" +msgstr "Флэш-накопитель USB" #: DB:work_attribute_type_allowed_value/value:258 msgctxt "work_attribute_type_allowed_value" @@ -2096,7 +2194,7 @@ msgstr "" #: DB:medium_format/name:32 msgctxt "medium_format" msgid "Videotape" -msgstr "" +msgstr "Видеозапись" #: DB:work_attribute_type_allowed_value/value:273 msgctxt "work_attribute_type_allowed_value" @@ -2158,6 +2256,16 @@ msgctxt "medium_format" msgid "Wax Cylinder" msgstr "" +#: DB:instrument_type/name:1 +msgctxt "instrument_type" +msgid "Wind instrument" +msgstr "" + +#: DB:series_type/name:4 +msgctxt "series_type" +msgid "Work" +msgstr "" + #: DB:work_alias_type/name:1 msgctxt "alias_type" msgid "Work name" @@ -2186,7 +2294,7 @@ msgstr "" #: DB:work_type/name:20 msgctxt "work_type" msgid "Étude" -msgstr "" +msgstr "Этюд" #: DB:work_attribute_type_allowed_value/value:35 msgctxt "work_attribute_type_allowed_value" diff --git a/po/attributes/sk.po b/po/attributes/sk.po index 059c9d47f..e59bee5fe 100644 --- a/po/attributes/sk.po +++ b/po/attributes/sk.po @@ -5,7 +5,7 @@ msgid "" msgstr "" "Project-Id-Version: MusicBrainz\n" -"PO-Revision-Date: 2014-04-17 03:31+0000\n" +"PO-Revision-Date: 2014-05-20 19:03+0000\n" "Last-Translator: Ian McEwen \n" "Language-Team: Slovak (http://www.transifex.com/projects/p/musicbrainz/language/sk/)\n" "MIME-Version: 1.0\n" @@ -79,6 +79,11 @@ msgctxt "release_group_primary_type" msgid "Album" msgstr "Album" +#: DB:series_ordering_type/description:2 +msgctxt "series_ordering_type" +msgid "Allows for manually setting the position of each item in the series." +msgstr "" + #: DB:work_attribute_type_allowed_value/value:40 msgctxt "work_attribute_type_allowed_value" msgid "Amṛtavarṣiṇi" @@ -119,6 +124,11 @@ msgctxt "release_group_secondary_type" msgid "Audiobook" msgstr "Audiokniha" +#: DB:series_ordering_type/name:1 +msgctxt "series_ordering_type" +msgid "Automatic" +msgstr "" + #: DB:work_attribute_type_allowed_value/value:45 msgctxt "work_attribute_type_allowed_value" msgid "Aṭāna" @@ -379,6 +389,11 @@ msgctxt "release_packaging" msgid "Cassette Case" msgstr "" +#: DB:series_type/name:5 +msgctxt "series_type" +msgid "Catalogue" +msgstr "" + #: DB:work_attribute_type_allowed_value/value:291 msgctxt "work_attribute_type_allowed_value" msgid "Caturaśra-jāti jhaṁpe" @@ -649,6 +664,11 @@ msgctxt "release_group_primary_type" msgid "EP" msgstr "EP" +#: DB:instrument_type/name:4 +msgctxt "instrument_type" +msgid "Electronic instrument" +msgstr "" + #: DB:work_attribute_type_allowed_value/value:17 msgctxt "work_attribute_type_allowed_value" msgid "F major" @@ -894,11 +914,41 @@ msgctxt "label_type" msgid "Imprint" msgstr "" +#: DB:series_type/description:5 +msgctxt "series_type" +msgid "Indicates that the series is a work catalogue." +msgstr "" + +#: DB:series_type/description:3 +msgctxt "series_type" +msgid "Indicates that the series is of recordings." +msgstr "" + +#: DB:series_type/description:1 +msgctxt "series_type" +msgid "Indicates that the series is of release groups." +msgstr "" + +#: DB:series_type/description:2 +msgctxt "series_type" +msgid "Indicates that the series is of releases." +msgstr "" + +#: DB:series_type/description:4 +msgctxt "series_type" +msgid "Indicates that the series is of works." +msgstr "" + #: DB:place_type/name:5 msgctxt "place_type" msgid "Indoor arena" msgstr "" +#: DB:instrument_alias_type/name:1 +msgctxt "alias_type" +msgid "Instrument name" +msgstr "" + #: DB:release_group_secondary_type/name:4 msgctxt "release_group_secondary_type" msgid "Interview" @@ -1254,6 +1304,11 @@ msgctxt "work_attribute_type_allowed_value" msgid "Mandāri" msgstr "" +#: DB:series_ordering_type/name:2 +msgctxt "series_ordering_type" +msgid "Manual" +msgstr "" + #: DB:work_attribute_type_allowed_value/value:172 msgctxt "work_attribute_type_allowed_value" msgid "Manōranjani" @@ -1554,6 +1609,11 @@ msgctxt "cover_art_type" msgid "Other" msgstr "" +#: DB:instrument_type/name:5 +msgctxt "instrument_type" +msgid "Other instrument" +msgstr "" + #: DB:work_type/name:12 msgctxt "work_type" msgid "Overture" @@ -1574,6 +1634,11 @@ msgctxt "work_attribute_type_allowed_value" msgid "Paṭdīp" msgstr "" +#: DB:instrument_type/name:3 +msgctxt "instrument_type" +msgid "Percussion instrument" +msgstr "" + #: DB:artist_type/name:1 msgctxt "artist_type" msgid "Person" @@ -1684,6 +1749,11 @@ msgctxt "work_attribute_type_allowed_value" msgid "Ravicandrika" msgstr "" +#: DB:series_type/name:3 +msgctxt "series_type" +msgid "Recording" +msgstr "" + #: DB:medium_format/name:10 msgctxt "medium_format" msgid "Reel-to-reel" @@ -1694,6 +1764,16 @@ msgctxt "label_type" msgid "Reissue Production" msgstr "" +#: DB:series_type/name:2 +msgctxt "series_type" +msgid "Release" +msgstr "" + +#: DB:series_type/name:1 +msgctxt "series_type" +msgid "Release group" +msgstr "" + #: DB:release_group_secondary_type/name:7 msgctxt "release_group_secondary_type" msgid "Remix" @@ -1811,7 +1891,8 @@ msgstr "" #: DB:artist_alias_type/name:3 DB:label_alias_type/name:2 #: DB:place_alias_type/name:2 DB:work_alias_type/name:2 -#: DB:area_alias_type/name:3 +#: DB:area_alias_type/name:3 DB:instrument_alias_type/name:2 +#: DB:series_alias_type/name:2 msgctxt "alias_type" msgid "Search hint" msgstr "" @@ -1821,6 +1902,11 @@ msgctxt "work_attribute_type_allowed_value" msgid "Sencuruṭṭi" msgstr "" +#: DB:series_alias_type/name:1 +msgctxt "alias_type" +msgid "Series name" +msgstr "" + #: DB:work_attribute_type_allowed_value/value:236 msgctxt "work_attribute_type_allowed_value" msgid "Simhavāhini" @@ -1871,6 +1957,13 @@ msgctxt "work_type" msgid "Song-cycle" msgstr "" +#: DB:series_ordering_type/description:1 +msgctxt "series_ordering_type" +msgid "" +"Sorts the items in the series automatically by their number attributes, " +"using a natural sort order." +msgstr "" + #: DB:work_type/name:22 msgctxt "work_type" msgid "Soundtrack" @@ -1901,6 +1994,11 @@ msgctxt "cover_art_type" msgid "Sticker" msgstr "" +#: DB:instrument_type/name:2 +msgctxt "instrument_type" +msgid "String instrument" +msgstr "" + #: DB:place_type/name:1 msgctxt "place_type" msgid "Studio" @@ -2156,6 +2254,16 @@ msgctxt "medium_format" msgid "Wax Cylinder" msgstr "Voskový valec" +#: DB:instrument_type/name:1 +msgctxt "instrument_type" +msgid "Wind instrument" +msgstr "" + +#: DB:series_type/name:4 +msgctxt "series_type" +msgid "Work" +msgstr "" + #: DB:work_alias_type/name:1 msgctxt "alias_type" msgid "Work name" diff --git a/po/attributes/sv.po b/po/attributes/sv.po index dd0f11406..89bdade47 100644 --- a/po/attributes/sv.po +++ b/po/attributes/sv.po @@ -4,7 +4,7 @@ msgid "" msgstr "" "Project-Id-Version: MusicBrainz\n" -"PO-Revision-Date: 2014-04-17 03:31+0000\n" +"PO-Revision-Date: 2014-05-20 19:03+0000\n" "Last-Translator: Ian McEwen \n" "Language-Team: Swedish (http://www.transifex.com/projects/p/musicbrainz/language/sv/)\n" "MIME-Version: 1.0\n" @@ -78,6 +78,11 @@ msgctxt "release_group_primary_type" msgid "Album" msgstr "Album" +#: DB:series_ordering_type/description:2 +msgctxt "series_ordering_type" +msgid "Allows for manually setting the position of each item in the series." +msgstr "" + #: DB:work_attribute_type_allowed_value/value:40 msgctxt "work_attribute_type_allowed_value" msgid "Amṛtavarṣiṇi" @@ -118,6 +123,11 @@ msgctxt "release_group_secondary_type" msgid "Audiobook" msgstr "Ljudbok" +#: DB:series_ordering_type/name:1 +msgctxt "series_ordering_type" +msgid "Automatic" +msgstr "" + #: DB:work_attribute_type_allowed_value/value:45 msgctxt "work_attribute_type_allowed_value" msgid "Aṭāna" @@ -378,6 +388,11 @@ msgctxt "release_packaging" msgid "Cassette Case" msgstr "" +#: DB:series_type/name:5 +msgctxt "series_type" +msgid "Catalogue" +msgstr "" + #: DB:work_attribute_type_allowed_value/value:291 msgctxt "work_attribute_type_allowed_value" msgid "Caturaśra-jāti jhaṁpe" @@ -648,6 +663,11 @@ msgctxt "release_group_primary_type" msgid "EP" msgstr "EP" +#: DB:instrument_type/name:4 +msgctxt "instrument_type" +msgid "Electronic instrument" +msgstr "" + #: DB:work_attribute_type_allowed_value/value:17 msgctxt "work_attribute_type_allowed_value" msgid "F major" @@ -893,11 +913,41 @@ msgctxt "label_type" msgid "Imprint" msgstr "" +#: DB:series_type/description:5 +msgctxt "series_type" +msgid "Indicates that the series is a work catalogue." +msgstr "" + +#: DB:series_type/description:3 +msgctxt "series_type" +msgid "Indicates that the series is of recordings." +msgstr "" + +#: DB:series_type/description:1 +msgctxt "series_type" +msgid "Indicates that the series is of release groups." +msgstr "" + +#: DB:series_type/description:2 +msgctxt "series_type" +msgid "Indicates that the series is of releases." +msgstr "" + +#: DB:series_type/description:4 +msgctxt "series_type" +msgid "Indicates that the series is of works." +msgstr "" + #: DB:place_type/name:5 msgctxt "place_type" msgid "Indoor arena" msgstr "" +#: DB:instrument_alias_type/name:1 +msgctxt "alias_type" +msgid "Instrument name" +msgstr "" + #: DB:release_group_secondary_type/name:4 msgctxt "release_group_secondary_type" msgid "Interview" @@ -1253,6 +1303,11 @@ msgctxt "work_attribute_type_allowed_value" msgid "Mandāri" msgstr "" +#: DB:series_ordering_type/name:2 +msgctxt "series_ordering_type" +msgid "Manual" +msgstr "" + #: DB:work_attribute_type_allowed_value/value:172 msgctxt "work_attribute_type_allowed_value" msgid "Manōranjani" @@ -1553,6 +1608,11 @@ msgctxt "cover_art_type" msgid "Other" msgstr "Övriga" +#: DB:instrument_type/name:5 +msgctxt "instrument_type" +msgid "Other instrument" +msgstr "" + #: DB:work_type/name:12 msgctxt "work_type" msgid "Overture" @@ -1573,6 +1633,11 @@ msgctxt "work_attribute_type_allowed_value" msgid "Paṭdīp" msgstr "" +#: DB:instrument_type/name:3 +msgctxt "instrument_type" +msgid "Percussion instrument" +msgstr "" + #: DB:artist_type/name:1 msgctxt "artist_type" msgid "Person" @@ -1683,6 +1748,11 @@ msgctxt "work_attribute_type_allowed_value" msgid "Ravicandrika" msgstr "" +#: DB:series_type/name:3 +msgctxt "series_type" +msgid "Recording" +msgstr "" + #: DB:medium_format/name:10 msgctxt "medium_format" msgid "Reel-to-reel" @@ -1693,6 +1763,16 @@ msgctxt "label_type" msgid "Reissue Production" msgstr "Återutgivningsproduktion" +#: DB:series_type/name:2 +msgctxt "series_type" +msgid "Release" +msgstr "" + +#: DB:series_type/name:1 +msgctxt "series_type" +msgid "Release group" +msgstr "" + #: DB:release_group_secondary_type/name:7 msgctxt "release_group_secondary_type" msgid "Remix" @@ -1810,7 +1890,8 @@ msgstr "" #: DB:artist_alias_type/name:3 DB:label_alias_type/name:2 #: DB:place_alias_type/name:2 DB:work_alias_type/name:2 -#: DB:area_alias_type/name:3 +#: DB:area_alias_type/name:3 DB:instrument_alias_type/name:2 +#: DB:series_alias_type/name:2 msgctxt "alias_type" msgid "Search hint" msgstr "Sök hint" @@ -1820,6 +1901,11 @@ msgctxt "work_attribute_type_allowed_value" msgid "Sencuruṭṭi" msgstr "" +#: DB:series_alias_type/name:1 +msgctxt "alias_type" +msgid "Series name" +msgstr "" + #: DB:work_attribute_type_allowed_value/value:236 msgctxt "work_attribute_type_allowed_value" msgid "Simhavāhini" @@ -1870,6 +1956,13 @@ msgctxt "work_type" msgid "Song-cycle" msgstr "Sång-cykel" +#: DB:series_ordering_type/description:1 +msgctxt "series_ordering_type" +msgid "" +"Sorts the items in the series automatically by their number attributes, " +"using a natural sort order." +msgstr "" + #: DB:work_type/name:22 msgctxt "work_type" msgid "Soundtrack" @@ -1900,6 +1993,11 @@ msgctxt "cover_art_type" msgid "Sticker" msgstr "Klistermärke" +#: DB:instrument_type/name:2 +msgctxt "instrument_type" +msgid "String instrument" +msgstr "" + #: DB:place_type/name:1 msgctxt "place_type" msgid "Studio" @@ -2155,6 +2253,16 @@ msgctxt "medium_format" msgid "Wax Cylinder" msgstr "Fonografcylinder" +#: DB:instrument_type/name:1 +msgctxt "instrument_type" +msgid "Wind instrument" +msgstr "" + +#: DB:series_type/name:4 +msgctxt "series_type" +msgid "Work" +msgstr "" + #: DB:work_alias_type/name:1 msgctxt "alias_type" msgid "Work name" diff --git a/po/attributes/tr.po b/po/attributes/tr.po index c032ba35f..6358a7555 100644 --- a/po/attributes/tr.po +++ b/po/attributes/tr.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: MusicBrainz\n" -"PO-Revision-Date: 2014-04-17 03:31+0000\n" +"PO-Revision-Date: 2014-05-20 19:03+0000\n" "Last-Translator: Ian McEwen \n" "Language-Team: Turkish (http://www.transifex.com/projects/p/musicbrainz/language/tr/)\n" "MIME-Version: 1.0\n" @@ -81,6 +81,11 @@ msgctxt "release_group_primary_type" msgid "Album" msgstr "Albüm" +#: DB:series_ordering_type/description:2 +msgctxt "series_ordering_type" +msgid "Allows for manually setting the position of each item in the series." +msgstr "" + #: DB:work_attribute_type_allowed_value/value:40 msgctxt "work_attribute_type_allowed_value" msgid "Amṛtavarṣiṇi" @@ -121,6 +126,11 @@ msgctxt "release_group_secondary_type" msgid "Audiobook" msgstr "" +#: DB:series_ordering_type/name:1 +msgctxt "series_ordering_type" +msgid "Automatic" +msgstr "" + #: DB:work_attribute_type_allowed_value/value:45 msgctxt "work_attribute_type_allowed_value" msgid "Aṭāna" @@ -381,6 +391,11 @@ msgctxt "release_packaging" msgid "Cassette Case" msgstr "" +#: DB:series_type/name:5 +msgctxt "series_type" +msgid "Catalogue" +msgstr "" + #: DB:work_attribute_type_allowed_value/value:291 msgctxt "work_attribute_type_allowed_value" msgid "Caturaśra-jāti jhaṁpe" @@ -651,6 +666,11 @@ msgctxt "release_group_primary_type" msgid "EP" msgstr "" +#: DB:instrument_type/name:4 +msgctxt "instrument_type" +msgid "Electronic instrument" +msgstr "" + #: DB:work_attribute_type_allowed_value/value:17 msgctxt "work_attribute_type_allowed_value" msgid "F major" @@ -896,11 +916,41 @@ msgctxt "label_type" msgid "Imprint" msgstr "" +#: DB:series_type/description:5 +msgctxt "series_type" +msgid "Indicates that the series is a work catalogue." +msgstr "" + +#: DB:series_type/description:3 +msgctxt "series_type" +msgid "Indicates that the series is of recordings." +msgstr "" + +#: DB:series_type/description:1 +msgctxt "series_type" +msgid "Indicates that the series is of release groups." +msgstr "" + +#: DB:series_type/description:2 +msgctxt "series_type" +msgid "Indicates that the series is of releases." +msgstr "" + +#: DB:series_type/description:4 +msgctxt "series_type" +msgid "Indicates that the series is of works." +msgstr "" + #: DB:place_type/name:5 msgctxt "place_type" msgid "Indoor arena" msgstr "" +#: DB:instrument_alias_type/name:1 +msgctxt "alias_type" +msgid "Instrument name" +msgstr "" + #: DB:release_group_secondary_type/name:4 msgctxt "release_group_secondary_type" msgid "Interview" @@ -1256,6 +1306,11 @@ msgctxt "work_attribute_type_allowed_value" msgid "Mandāri" msgstr "" +#: DB:series_ordering_type/name:2 +msgctxt "series_ordering_type" +msgid "Manual" +msgstr "" + #: DB:work_attribute_type_allowed_value/value:172 msgctxt "work_attribute_type_allowed_value" msgid "Manōranjani" @@ -1556,6 +1611,11 @@ msgctxt "cover_art_type" msgid "Other" msgstr "Diğer" +#: DB:instrument_type/name:5 +msgctxt "instrument_type" +msgid "Other instrument" +msgstr "" + #: DB:work_type/name:12 msgctxt "work_type" msgid "Overture" @@ -1576,6 +1636,11 @@ msgctxt "work_attribute_type_allowed_value" msgid "Paṭdīp" msgstr "" +#: DB:instrument_type/name:3 +msgctxt "instrument_type" +msgid "Percussion instrument" +msgstr "" + #: DB:artist_type/name:1 msgctxt "artist_type" msgid "Person" @@ -1686,6 +1751,11 @@ msgctxt "work_attribute_type_allowed_value" msgid "Ravicandrika" msgstr "" +#: DB:series_type/name:3 +msgctxt "series_type" +msgid "Recording" +msgstr "" + #: DB:medium_format/name:10 msgctxt "medium_format" msgid "Reel-to-reel" @@ -1696,6 +1766,16 @@ msgctxt "label_type" msgid "Reissue Production" msgstr "" +#: DB:series_type/name:2 +msgctxt "series_type" +msgid "Release" +msgstr "" + +#: DB:series_type/name:1 +msgctxt "series_type" +msgid "Release group" +msgstr "" + #: DB:release_group_secondary_type/name:7 msgctxt "release_group_secondary_type" msgid "Remix" @@ -1813,7 +1893,8 @@ msgstr "" #: DB:artist_alias_type/name:3 DB:label_alias_type/name:2 #: DB:place_alias_type/name:2 DB:work_alias_type/name:2 -#: DB:area_alias_type/name:3 +#: DB:area_alias_type/name:3 DB:instrument_alias_type/name:2 +#: DB:series_alias_type/name:2 msgctxt "alias_type" msgid "Search hint" msgstr "Arama ipucu" @@ -1823,6 +1904,11 @@ msgctxt "work_attribute_type_allowed_value" msgid "Sencuruṭṭi" msgstr "" +#: DB:series_alias_type/name:1 +msgctxt "alias_type" +msgid "Series name" +msgstr "" + #: DB:work_attribute_type_allowed_value/value:236 msgctxt "work_attribute_type_allowed_value" msgid "Simhavāhini" @@ -1873,6 +1959,13 @@ msgctxt "work_type" msgid "Song-cycle" msgstr "" +#: DB:series_ordering_type/description:1 +msgctxt "series_ordering_type" +msgid "" +"Sorts the items in the series automatically by their number attributes, " +"using a natural sort order." +msgstr "" + #: DB:work_type/name:22 msgctxt "work_type" msgid "Soundtrack" @@ -1903,6 +1996,11 @@ msgctxt "cover_art_type" msgid "Sticker" msgstr "" +#: DB:instrument_type/name:2 +msgctxt "instrument_type" +msgid "String instrument" +msgstr "" + #: DB:place_type/name:1 msgctxt "place_type" msgid "Studio" @@ -2158,6 +2256,16 @@ msgctxt "medium_format" msgid "Wax Cylinder" msgstr "" +#: DB:instrument_type/name:1 +msgctxt "instrument_type" +msgid "Wind instrument" +msgstr "" + +#: DB:series_type/name:4 +msgctxt "series_type" +msgid "Work" +msgstr "" + #: DB:work_alias_type/name:1 msgctxt "alias_type" msgid "Work name" diff --git a/po/attributes/zh_CN.po b/po/attributes/zh_CN.po index dace5a04e..c133fa7ca 100644 --- a/po/attributes/zh_CN.po +++ b/po/attributes/zh_CN.po @@ -16,7 +16,7 @@ msgid "" msgstr "" "Project-Id-Version: MusicBrainz\n" -"PO-Revision-Date: 2014-04-17 03:31+0000\n" +"PO-Revision-Date: 2014-05-20 19:03+0000\n" "Last-Translator: Ian McEwen \n" "Language-Team: Chinese (China) (http://www.transifex.com/projects/p/musicbrainz/language/zh_CN/)\n" "MIME-Version: 1.0\n" @@ -90,6 +90,11 @@ msgctxt "release_group_primary_type" msgid "Album" msgstr "专辑" +#: DB:series_ordering_type/description:2 +msgctxt "series_ordering_type" +msgid "Allows for manually setting the position of each item in the series." +msgstr "" + #: DB:work_attribute_type_allowed_value/value:40 msgctxt "work_attribute_type_allowed_value" msgid "Amṛtavarṣiṇi" @@ -130,6 +135,11 @@ msgctxt "release_group_secondary_type" msgid "Audiobook" msgstr "有声读物" +#: DB:series_ordering_type/name:1 +msgctxt "series_ordering_type" +msgid "Automatic" +msgstr "" + #: DB:work_attribute_type_allowed_value/value:45 msgctxt "work_attribute_type_allowed_value" msgid "Aṭāna" @@ -390,6 +400,11 @@ msgctxt "release_packaging" msgid "Cassette Case" msgstr "磁带包装" +#: DB:series_type/name:5 +msgctxt "series_type" +msgid "Catalogue" +msgstr "" + #: DB:work_attribute_type_allowed_value/value:291 msgctxt "work_attribute_type_allowed_value" msgid "Caturaśra-jāti jhaṁpe" @@ -660,6 +675,11 @@ msgctxt "release_group_primary_type" msgid "EP" msgstr "细碟" +#: DB:instrument_type/name:4 +msgctxt "instrument_type" +msgid "Electronic instrument" +msgstr "" + #: DB:work_attribute_type_allowed_value/value:17 msgctxt "work_attribute_type_allowed_value" msgid "F major" @@ -905,11 +925,41 @@ msgctxt "label_type" msgid "Imprint" msgstr "" +#: DB:series_type/description:5 +msgctxt "series_type" +msgid "Indicates that the series is a work catalogue." +msgstr "" + +#: DB:series_type/description:3 +msgctxt "series_type" +msgid "Indicates that the series is of recordings." +msgstr "" + +#: DB:series_type/description:1 +msgctxt "series_type" +msgid "Indicates that the series is of release groups." +msgstr "" + +#: DB:series_type/description:2 +msgctxt "series_type" +msgid "Indicates that the series is of releases." +msgstr "" + +#: DB:series_type/description:4 +msgctxt "series_type" +msgid "Indicates that the series is of works." +msgstr "" + #: DB:place_type/name:5 msgctxt "place_type" msgid "Indoor arena" msgstr "" +#: DB:instrument_alias_type/name:1 +msgctxt "alias_type" +msgid "Instrument name" +msgstr "" + #: DB:release_group_secondary_type/name:4 msgctxt "release_group_secondary_type" msgid "Interview" @@ -1265,6 +1315,11 @@ msgctxt "work_attribute_type_allowed_value" msgid "Mandāri" msgstr "" +#: DB:series_ordering_type/name:2 +msgctxt "series_ordering_type" +msgid "Manual" +msgstr "" + #: DB:work_attribute_type_allowed_value/value:172 msgctxt "work_attribute_type_allowed_value" msgid "Manōranjani" @@ -1565,6 +1620,11 @@ msgctxt "cover_art_type" msgid "Other" msgstr "其他" +#: DB:instrument_type/name:5 +msgctxt "instrument_type" +msgid "Other instrument" +msgstr "" + #: DB:work_type/name:12 msgctxt "work_type" msgid "Overture" @@ -1585,6 +1645,11 @@ msgctxt "work_attribute_type_allowed_value" msgid "Paṭdīp" msgstr "" +#: DB:instrument_type/name:3 +msgctxt "instrument_type" +msgid "Percussion instrument" +msgstr "" + #: DB:artist_type/name:1 msgctxt "artist_type" msgid "Person" @@ -1695,6 +1760,11 @@ msgctxt "work_attribute_type_allowed_value" msgid "Ravicandrika" msgstr "" +#: DB:series_type/name:3 +msgctxt "series_type" +msgid "Recording" +msgstr "" + #: DB:medium_format/name:10 msgctxt "medium_format" msgid "Reel-to-reel" @@ -1705,6 +1775,16 @@ msgctxt "label_type" msgid "Reissue Production" msgstr "重新发行的产品" +#: DB:series_type/name:2 +msgctxt "series_type" +msgid "Release" +msgstr "" + +#: DB:series_type/name:1 +msgctxt "series_type" +msgid "Release group" +msgstr "" + #: DB:release_group_secondary_type/name:7 msgctxt "release_group_secondary_type" msgid "Remix" @@ -1822,7 +1902,8 @@ msgstr "" #: DB:artist_alias_type/name:3 DB:label_alias_type/name:2 #: DB:place_alias_type/name:2 DB:work_alias_type/name:2 -#: DB:area_alias_type/name:3 +#: DB:area_alias_type/name:3 DB:instrument_alias_type/name:2 +#: DB:series_alias_type/name:2 msgctxt "alias_type" msgid "Search hint" msgstr "搜索提示" @@ -1832,6 +1913,11 @@ msgctxt "work_attribute_type_allowed_value" msgid "Sencuruṭṭi" msgstr "" +#: DB:series_alias_type/name:1 +msgctxt "alias_type" +msgid "Series name" +msgstr "" + #: DB:work_attribute_type_allowed_value/value:236 msgctxt "work_attribute_type_allowed_value" msgid "Simhavāhini" @@ -1882,6 +1968,13 @@ msgctxt "work_type" msgid "Song-cycle" msgstr "组歌" +#: DB:series_ordering_type/description:1 +msgctxt "series_ordering_type" +msgid "" +"Sorts the items in the series automatically by their number attributes, " +"using a natural sort order." +msgstr "" + #: DB:work_type/name:22 msgctxt "work_type" msgid "Soundtrack" @@ -1912,6 +2005,11 @@ msgctxt "cover_art_type" msgid "Sticker" msgstr "" +#: DB:instrument_type/name:2 +msgctxt "instrument_type" +msgid "String instrument" +msgstr "" + #: DB:place_type/name:1 msgctxt "place_type" msgid "Studio" @@ -2167,6 +2265,16 @@ msgctxt "medium_format" msgid "Wax Cylinder" msgstr "蜡筒" +#: DB:instrument_type/name:1 +msgctxt "instrument_type" +msgid "Wind instrument" +msgstr "" + +#: DB:series_type/name:4 +msgctxt "series_type" +msgid "Work" +msgstr "" + #: DB:work_alias_type/name:1 msgctxt "alias_type" msgid "Work name" diff --git a/po/bg.po b/po/bg.po index 066e69e6b..33592ef7b 100644 --- a/po/bg.po +++ b/po/bg.po @@ -8,14 +8,14 @@ msgid "" msgstr "" "Project-Id-Version: MusicBrainz\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2014-05-03 17:28+0200\n" -"PO-Revision-Date: 2014-05-04 08:44+0000\n" +"POT-Creation-Date: 2014-05-05 07:15+0200\n" +"PO-Revision-Date: 2014-05-05 11:57+0000\n" "Last-Translator: nikki\n" "Language-Team: Bulgarian (http://www.transifex.com/projects/p/musicbrainz/language/bg/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 1.3\n" +"Generated-By: Babel 0.9.6\n" "Language: bg\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" @@ -366,7 +366,7 @@ msgstr "" #: picard/coverart.py:256 #, python-format msgid "" -"Downloading cover art of type '%(type)s' for %(albumid)s from %(host)s .." +"Downloading cover art of type '%(type)s' for %(albumid)s from %(host)s ..." msgstr "" #: picard/coverartarchive.py:30 diff --git a/po/ca.po b/po/ca.po index cbc53bccd..b8ea51a35 100644 --- a/po/ca.po +++ b/po/ca.po @@ -10,14 +10,14 @@ msgid "" msgstr "" "Project-Id-Version: MusicBrainz\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2014-05-03 17:28+0200\n" -"PO-Revision-Date: 2014-05-04 08:44+0000\n" +"POT-Creation-Date: 2014-05-05 07:15+0200\n" +"PO-Revision-Date: 2014-05-05 11:57+0000\n" "Last-Translator: nikki\n" "Language-Team: Catalan (http://www.transifex.com/projects/p/musicbrainz/language/ca/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 1.3\n" +"Generated-By: Babel 0.9.6\n" "Language: ca\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" @@ -368,7 +368,7 @@ msgstr "" #: picard/coverart.py:256 #, python-format msgid "" -"Downloading cover art of type '%(type)s' for %(albumid)s from %(host)s .." +"Downloading cover art of type '%(type)s' for %(albumid)s from %(host)s ..." msgstr "" #: picard/coverartarchive.py:30 diff --git a/po/countries/hr.po b/po/countries/hr.po new file mode 100644 index 000000000..1fcd03d7c --- /dev/null +++ b/po/countries/hr.po @@ -0,0 +1,1304 @@ +# +# Translators: +# Chris_Kay_083, 2014 +msgid "" +msgstr "" +"Project-Id-Version: MusicBrainz\n" +"PO-Revision-Date: 2014-05-14 13:48+0000\n" +"Last-Translator: Chris_Kay_083\n" +"Language-Team: Croatian (http://www.transifex.com/projects/p/musicbrainz/language/hr/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: hr\n" +"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n" + +#. iso.code:AF +#: DBarea JOIN iso_3166_1 iso on iso.area = area.id/area.name:1 +msgid "Afghanistan" +msgstr "Afganistan" + +#. iso.code:AL +#: DBarea JOIN iso_3166_1 iso on iso.area = area.id/area.name:2 +msgid "Albania" +msgstr "Albanija" + +#. iso.code:DZ +#: DBarea JOIN iso_3166_1 iso on iso.area = area.id/area.name:3 +msgid "Algeria" +msgstr "Alžir" + +#. iso.code:AS +#: DBarea JOIN iso_3166_1 iso on iso.area = area.id/area.name:4 +msgid "American Samoa" +msgstr "Američka Samoa" + +#. iso.code:AD +#: DBarea JOIN iso_3166_1 iso on iso.area = area.id/area.name:5 +msgid "Andorra" +msgstr "Andora" + +#. iso.code:AO +#: DBarea JOIN iso_3166_1 iso on iso.area = area.id/area.name:6 +msgid "Angola" +msgstr "Angola" + +#. iso.code:AI +#: DBarea JOIN iso_3166_1 iso on iso.area = area.id/area.name:7 +msgid "Anguilla" +msgstr "Angvila" + +#. iso.code:AQ +#: DBarea JOIN iso_3166_1 iso on iso.area = area.id/area.name:8 +msgid "Antarctica" +msgstr "Antartika" + +#. iso.code:AG +#: DBarea JOIN iso_3166_1 iso on iso.area = area.id/area.name:9 +msgid "Antigua and Barbuda" +msgstr "Antigva i Barbuda" + +#. iso.code:AR +#: DBarea JOIN iso_3166_1 iso on iso.area = area.id/area.name:10 +msgid "Argentina" +msgstr "Argentina" + +#. iso.code:AM +#: DBarea JOIN iso_3166_1 iso on iso.area = area.id/area.name:11 +msgid "Armenia" +msgstr "Armenija" + +#. iso.code:AW +#: DBarea JOIN iso_3166_1 iso on iso.area = area.id/area.name:12 +msgid "Aruba" +msgstr "Aruba" + +#. iso.code:AU +#: DBarea JOIN iso_3166_1 iso on iso.area = area.id/area.name:13 +msgid "Australia" +msgstr "Australija " + +#. iso.code:AT +#: DBarea JOIN iso_3166_1 iso on iso.area = area.id/area.name:14 +msgid "Austria" +msgstr "Austrija" + +#. iso.code:AZ +#: DBarea JOIN iso_3166_1 iso on iso.area = area.id/area.name:15 +msgid "Azerbaijan" +msgstr "Azerbajdžan" + +#. iso.code:BS +#: DBarea JOIN iso_3166_1 iso on iso.area = area.id/area.name:16 +msgid "Bahamas" +msgstr "Bahami" + +#. iso.code:BH +#: DBarea JOIN iso_3166_1 iso on iso.area = area.id/area.name:17 +msgid "Bahrain" +msgstr "Bahrein" + +#. iso.code:BD +#: DBarea JOIN iso_3166_1 iso on iso.area = area.id/area.name:18 +msgid "Bangladesh" +msgstr "Bangladeš" + +#. iso.code:BB +#: DBarea JOIN iso_3166_1 iso on iso.area = area.id/area.name:19 +msgid "Barbados" +msgstr "Barbados" + +#. iso.code:BY +#: DBarea JOIN iso_3166_1 iso on iso.area = area.id/area.name:20 +msgid "Belarus" +msgstr "Bjelorusija " + +#. iso.code:BE +#: DBarea JOIN iso_3166_1 iso on iso.area = area.id/area.name:21 +msgid "Belgium" +msgstr "Belgija" + +#. iso.code:BZ +#: DBarea JOIN iso_3166_1 iso on iso.area = area.id/area.name:22 +msgid "Belize" +msgstr "Belize" + +#. iso.code:BJ +#: DBarea JOIN iso_3166_1 iso on iso.area = area.id/area.name:23 +msgid "Benin" +msgstr "Benin" + +#. iso.code:BM +#: DBarea JOIN iso_3166_1 iso on iso.area = area.id/area.name:24 +msgid "Bermuda" +msgstr "Bermuda" + +#. iso.code:BT +#: DBarea JOIN iso_3166_1 iso on iso.area = area.id/area.name:25 +msgid "Bhutan" +msgstr "Butan" + +#. iso.code:BO +#: DBarea JOIN iso_3166_1 iso on iso.area = area.id/area.name:26 +msgid "Bolivia" +msgstr "Bolivija" + +#. iso.code:BQ +#: DBarea JOIN iso_3166_1 iso on iso.area = area.id/area.name:258 +msgid "Bonaire, Sint Eustatius and Saba" +msgstr "Bonaire, Sveti Eustahije i Saba" + +#. iso.code:BA +#: DBarea JOIN iso_3166_1 iso on iso.area = area.id/area.name:27 +msgid "Bosnia and Herzegovina" +msgstr "Bosna i Hercegovina" + +#. iso.code:BW +#: DBarea JOIN iso_3166_1 iso on iso.area = area.id/area.name:28 +msgid "Botswana" +msgstr "Bocvana " + +#. iso.code:BV +#: DBarea JOIN iso_3166_1 iso on iso.area = area.id/area.name:29 +msgid "Bouvet Island" +msgstr "Otok Bouvet" + +#. iso.code:BR +#: DBarea JOIN iso_3166_1 iso on iso.area = area.id/area.name:30 +msgid "Brazil" +msgstr "Brazil" + +#. iso.code:IO +#: DBarea JOIN iso_3166_1 iso on iso.area = area.id/area.name:31 +msgid "British Indian Ocean Territory" +msgstr "Britanski Indijskooceanski teritorij" + +#. iso.code:VG +#: DBarea JOIN iso_3166_1 iso on iso.area = area.id/area.name:230 +msgid "British Virgin Islands" +msgstr "Britanski Djevičanski otoci" + +#. iso.code:BN +#: DBarea JOIN iso_3166_1 iso on iso.area = area.id/area.name:32 +msgid "Brunei" +msgstr "Brunej" + +#. iso.code:BG +#: DBarea JOIN iso_3166_1 iso on iso.area = area.id/area.name:33 +msgid "Bulgaria" +msgstr "Bugarska" + +#. iso.code:BF +#: DBarea JOIN iso_3166_1 iso on iso.area = area.id/area.name:34 +msgid "Burkina Faso" +msgstr "Burkina Faso" + +#. iso.code:BI +#: DBarea JOIN iso_3166_1 iso on iso.area = area.id/area.name:35 +msgid "Burundi" +msgstr "Burundi" + +#. iso.code:KH +#: DBarea JOIN iso_3166_1 iso on iso.area = area.id/area.name:36 +msgid "Cambodia" +msgstr "Kambodža" + +#. iso.code:CM +#: DBarea JOIN iso_3166_1 iso on iso.area = area.id/area.name:37 +msgid "Cameroon" +msgstr "Kamerun" + +#. iso.code:CA +#: DBarea JOIN iso_3166_1 iso on iso.area = area.id/area.name:38 +msgid "Canada" +msgstr "Kanada" + +#. iso.code:CV +#: DBarea JOIN iso_3166_1 iso on iso.area = area.id/area.name:39 +msgid "Cape Verde" +msgstr "Zelenortska Republika" + +#. iso.code:KY +#: DBarea JOIN iso_3166_1 iso on iso.area = area.id/area.name:40 +msgid "Cayman Islands" +msgstr "Kajmanski otoci" + +#. iso.code:CF +#: DBarea JOIN iso_3166_1 iso on iso.area = area.id/area.name:41 +msgid "Central African Republic" +msgstr "Centralna Afrička Republika" + +#. iso.code:TD +#: DBarea JOIN iso_3166_1 iso on iso.area = area.id/area.name:42 +msgid "Chad" +msgstr "Čad" + +#. iso.code:CL +#: DBarea JOIN iso_3166_1 iso on iso.area = area.id/area.name:43 +msgid "Chile" +msgstr "Čile" + +#. iso.code:CN +#: DBarea JOIN iso_3166_1 iso on iso.area = area.id/area.name:44 +msgid "China" +msgstr "Kina" + +#. iso.code:CX +#: DBarea JOIN iso_3166_1 iso on iso.area = area.id/area.name:45 +msgid "Christmas Island" +msgstr "Uskršnji otoci" + +#. iso.code:CC +#: DBarea JOIN iso_3166_1 iso on iso.area = area.id/area.name:46 +msgid "Cocos (Keeling) Islands" +msgstr "Kokosovi otoci" + +#. iso.code:CO +#: DBarea JOIN iso_3166_1 iso on iso.area = area.id/area.name:47 +msgid "Colombia" +msgstr "Kolumbija" + +#. iso.code:KM +#: DBarea JOIN iso_3166_1 iso on iso.area = area.id/area.name:48 +msgid "Comoros" +msgstr "Komori" + +#. iso.code:CG +#: DBarea JOIN iso_3166_1 iso on iso.area = area.id/area.name:49 +msgid "Congo" +msgstr "Kongo" + +#. iso.code:CK +#: DBarea JOIN iso_3166_1 iso on iso.area = area.id/area.name:50 +msgid "Cook Islands" +msgstr "Cookovo Otočje " + +#. iso.code:CR +#: DBarea JOIN iso_3166_1 iso on iso.area = area.id/area.name:51 +msgid "Costa Rica" +msgstr "Kostarika" + +#. iso.code:HR +#: DBarea JOIN iso_3166_1 iso on iso.area = area.id/area.name:53 +msgid "Croatia" +msgstr "Hrvatska" + +#. iso.code:CU +#: DBarea JOIN iso_3166_1 iso on iso.area = area.id/area.name:54 +msgid "Cuba" +msgstr "Kuba" + +#. iso.code:CW +#: DBarea JOIN iso_3166_1 iso on iso.area = area.id/area.name:259 +msgid "Curaçao" +msgstr "Curaçao" + +#. iso.code:CY +#: DBarea JOIN iso_3166_1 iso on iso.area = area.id/area.name:55 +msgid "Cyprus" +msgstr "Cipar" + +#. iso.code:CZ +#: DBarea JOIN iso_3166_1 iso on iso.area = area.id/area.name:56 +msgid "Czech Republic" +msgstr "Češka Republika" + +#. iso.code:XC +#: DBarea JOIN iso_3166_1 iso on iso.area = area.id/area.name:245 +msgid "Czechoslovakia" +msgstr "Čehoslovačka" + +#. iso.code:CI +#: DBarea JOIN iso_3166_1 iso on iso.area = area.id/area.name:52 +msgid "Côte d'Ivoire" +msgstr "Obala Bjelokosti" + +#. iso.code:CD +#: DBarea JOIN iso_3166_1 iso on iso.area = area.id/area.name:236 +msgid "Democratic Republic of the Congo" +msgstr "Demokratska Republika Kongo" + +#. iso.code:DK +#: DBarea JOIN iso_3166_1 iso on iso.area = area.id/area.name:57 +msgid "Denmark" +msgstr "Danska" + +#. iso.code:DJ +#: DBarea JOIN iso_3166_1 iso on iso.area = area.id/area.name:58 +msgid "Djibouti" +msgstr "Džibuti" + +#. iso.code:DM +#: DBarea JOIN iso_3166_1 iso on iso.area = area.id/area.name:59 +msgid "Dominica" +msgstr "Dominika" + +#. iso.code:DO +#: DBarea JOIN iso_3166_1 iso on iso.area = area.id/area.name:60 +msgid "Dominican Republic" +msgstr "Dominikanska Republika" + +#. iso.code:XG +#: DBarea JOIN iso_3166_1 iso on iso.area = area.id/area.name:244 +msgid "East Germany" +msgstr "Njemačka Demokratska Republika " + +#. iso.code:EC +#: DBarea JOIN iso_3166_1 iso on iso.area = area.id/area.name:62 +msgid "Ecuador" +msgstr "Ekvador" + +#. iso.code:EG +#: DBarea JOIN iso_3166_1 iso on iso.area = area.id/area.name:63 +msgid "Egypt" +msgstr "Egipat" + +#. iso.code:SV +#: DBarea JOIN iso_3166_1 iso on iso.area = area.id/area.name:64 +msgid "El Salvador" +msgstr "El Salvador" + +#. iso.code:GQ +#: DBarea JOIN iso_3166_1 iso on iso.area = area.id/area.name:65 +msgid "Equatorial Guinea" +msgstr "Ekvatorska Gvineja" + +#. iso.code:ER +#: DBarea JOIN iso_3166_1 iso on iso.area = area.id/area.name:66 +msgid "Eritrea" +msgstr "Eritreja" + +#. iso.code:EE +#: DBarea JOIN iso_3166_1 iso on iso.area = area.id/area.name:67 +msgid "Estonia" +msgstr "Estonija" + +#. iso.code:ET +#: DBarea JOIN iso_3166_1 iso on iso.area = area.id/area.name:68 +msgid "Ethiopia" +msgstr "Etiopija" + +#. iso.code:XE +#: DBarea JOIN iso_3166_1 iso on iso.area = area.id/area.name:241 +msgid "Europe" +msgstr "Europa" + +#. iso.code:FK +#: DBarea JOIN iso_3166_1 iso on iso.area = area.id/area.name:69 +msgid "Falkland Islands" +msgstr "Falklandski otoci" + +#. iso.code:FO +#: DBarea JOIN iso_3166_1 iso on iso.area = area.id/area.name:70 +msgid "Faroe Islands" +msgstr "Farski otoci" + +#. iso.code:FJ +#: DBarea JOIN iso_3166_1 iso on iso.area = area.id/area.name:71 +msgid "Fiji" +msgstr "Fidži" + +#. iso.code:FI +#: DBarea JOIN iso_3166_1 iso on iso.area = area.id/area.name:72 +msgid "Finland" +msgstr "Finska" + +#. iso.code:FR +#: DBarea JOIN iso_3166_1 iso on iso.area = area.id/area.name:73 +msgid "France" +msgstr "Francuska" + +#. iso.code:GF +#: DBarea JOIN iso_3166_1 iso on iso.area = area.id/area.name:75 +msgid "French Guiana" +msgstr "Francuska Gvajana" + +#. iso.code:PF +#: DBarea JOIN iso_3166_1 iso on iso.area = area.id/area.name:76 +msgid "French Polynesia" +msgstr "Francuska Polinezija" + +#. iso.code:TF +#: DBarea JOIN iso_3166_1 iso on iso.area = area.id/area.name:77 +msgid "French Southern Territories" +msgstr "Francuski južni i antarktički teritoriji" + +#. iso.code:GA +#: DBarea JOIN iso_3166_1 iso on iso.area = area.id/area.name:78 +msgid "Gabon" +msgstr "Gabon" + +#. iso.code:GM +#: DBarea JOIN iso_3166_1 iso on iso.area = area.id/area.name:79 +msgid "Gambia" +msgstr "Gambija" + +#. iso.code:GE +#: DBarea JOIN iso_3166_1 iso on iso.area = area.id/area.name:80 +msgid "Georgia" +msgstr "Gruzija" + +#. iso.code:DE +#: DBarea JOIN iso_3166_1 iso on iso.area = area.id/area.name:81 +msgid "Germany" +msgstr "Njemačka" + +#. iso.code:GH +#: DBarea JOIN iso_3166_1 iso on iso.area = area.id/area.name:82 +msgid "Ghana" +msgstr "Gana" + +#. iso.code:GI +#: DBarea JOIN iso_3166_1 iso on iso.area = area.id/area.name:83 +msgid "Gibraltar" +msgstr "Gibraltar " + +#. iso.code:GR +#: DBarea JOIN iso_3166_1 iso on iso.area = area.id/area.name:84 +msgid "Greece" +msgstr "Grčka" + +#. iso.code:GL +#: DBarea JOIN iso_3166_1 iso on iso.area = area.id/area.name:85 +msgid "Greenland" +msgstr "Grennlad" + +#. iso.code:GD +#: DBarea JOIN iso_3166_1 iso on iso.area = area.id/area.name:86 +msgid "Grenada" +msgstr "Grenada" + +#. iso.code:GP +#: DBarea JOIN iso_3166_1 iso on iso.area = area.id/area.name:87 +msgid "Guadeloupe" +msgstr "Gvadalupa" + +#. iso.code:GU +#: DBarea JOIN iso_3166_1 iso on iso.area = area.id/area.name:88 +msgid "Guam" +msgstr "Guam" + +#. iso.code:GT +#: DBarea JOIN iso_3166_1 iso on iso.area = area.id/area.name:89 +msgid "Guatemala" +msgstr "Gvatemala" + +#. iso.code:GG +#: DBarea JOIN iso_3166_1 iso on iso.area = area.id/area.name:251 +msgid "Guernsey" +msgstr "Guernsey" + +#. iso.code:GN +#: DBarea JOIN iso_3166_1 iso on iso.area = area.id/area.name:90 +msgid "Guinea" +msgstr "Gvineja" + +#. iso.code:GW +#: DBarea JOIN iso_3166_1 iso on iso.area = area.id/area.name:91 +msgid "Guinea-Bissau" +msgstr "Gvineja Bisau" + +#. iso.code:GY +#: DBarea JOIN iso_3166_1 iso on iso.area = area.id/area.name:92 +msgid "Guyana" +msgstr "Gvajana" + +#. iso.code:HT +#: DBarea JOIN iso_3166_1 iso on iso.area = area.id/area.name:93 +msgid "Haiti" +msgstr "Haiti" + +#. iso.code:HM +#: DBarea JOIN iso_3166_1 iso on iso.area = area.id/area.name:94 +msgid "Heard Island and McDonald Islands" +msgstr "Otok Heard i otočje McDonald" + +#. iso.code:HN +#: DBarea JOIN iso_3166_1 iso on iso.area = area.id/area.name:95 +msgid "Honduras" +msgstr "Honduras" + +#. iso.code:HK +#: DBarea JOIN iso_3166_1 iso on iso.area = area.id/area.name:96 +msgid "Hong Kong" +msgstr "Hong Kong" + +#. iso.code:HU +#: DBarea JOIN iso_3166_1 iso on iso.area = area.id/area.name:97 +msgid "Hungary" +msgstr "Mađarska" + +#. iso.code:IS +#: DBarea JOIN iso_3166_1 iso on iso.area = area.id/area.name:98 +msgid "Iceland" +msgstr "Island" + +#. iso.code:IN +#: DBarea JOIN iso_3166_1 iso on iso.area = area.id/area.name:99 +msgid "India" +msgstr "Indija" + +#. iso.code:ID +#: DBarea JOIN iso_3166_1 iso on iso.area = area.id/area.name:100 +msgid "Indonesia" +msgstr "Indonezija" + +#. iso.code:IR +#: DBarea JOIN iso_3166_1 iso on iso.area = area.id/area.name:101 +msgid "Iran" +msgstr "Iran" + +#. iso.code:IQ +#: DBarea JOIN iso_3166_1 iso on iso.area = area.id/area.name:102 +msgid "Iraq" +msgstr "Irak" + +#. iso.code:IE +#: DBarea JOIN iso_3166_1 iso on iso.area = area.id/area.name:103 +msgid "Ireland" +msgstr "Irska" + +#. iso.code:IM +#: DBarea JOIN iso_3166_1 iso on iso.area = area.id/area.name:252 +msgid "Isle of Man" +msgstr "Otok Man" + +#. iso.code:IL +#: DBarea JOIN iso_3166_1 iso on iso.area = area.id/area.name:104 +msgid "Israel" +msgstr "Izrael" + +#. iso.code:IT +#: DBarea JOIN iso_3166_1 iso on iso.area = area.id/area.name:105 +msgid "Italy" +msgstr "Italija" + +#. iso.code:JM +#: DBarea JOIN iso_3166_1 iso on iso.area = area.id/area.name:106 +msgid "Jamaica" +msgstr "Jamajka" + +#. iso.code:JP +#: DBarea JOIN iso_3166_1 iso on iso.area = area.id/area.name:107 +msgid "Japan" +msgstr "Japan" + +#. iso.code:JE +#: DBarea JOIN iso_3166_1 iso on iso.area = area.id/area.name:253 +msgid "Jersey" +msgstr "Jersey" + +#. iso.code:JO +#: DBarea JOIN iso_3166_1 iso on iso.area = area.id/area.name:108 +msgid "Jordan" +msgstr "Jordan" + +#. iso.code:KZ +#: DBarea JOIN iso_3166_1 iso on iso.area = area.id/area.name:109 +msgid "Kazakhstan" +msgstr "Kazahstan" + +#. iso.code:KE +#: DBarea JOIN iso_3166_1 iso on iso.area = area.id/area.name:110 +msgid "Kenya" +msgstr "Kenija" + +#. iso.code:KI +#: DBarea JOIN iso_3166_1 iso on iso.area = area.id/area.name:111 +msgid "Kiribati" +msgstr "Kiribati" + +#. iso.code:XK +#: DBarea JOIN iso_3166_1 iso on iso.area = area.id/area.name:2358 +msgid "Kosovo" +msgstr "Kosovo" + +#. iso.code:KW +#: DBarea JOIN iso_3166_1 iso on iso.area = area.id/area.name:114 +msgid "Kuwait" +msgstr "Kuvajt" + +#. iso.code:KG +#: DBarea JOIN iso_3166_1 iso on iso.area = area.id/area.name:115 +msgid "Kyrgyzstan" +msgstr "Kirgistan" + +#. iso.code:LA +#: DBarea JOIN iso_3166_1 iso on iso.area = area.id/area.name:116 +msgid "Laos" +msgstr "Laos" + +#. iso.code:LV +#: DBarea JOIN iso_3166_1 iso on iso.area = area.id/area.name:117 +msgid "Latvia" +msgstr "Latvija" + +#. iso.code:LB +#: DBarea JOIN iso_3166_1 iso on iso.area = area.id/area.name:118 +msgid "Lebanon" +msgstr "Libanon" + +#. iso.code:LS +#: DBarea JOIN iso_3166_1 iso on iso.area = area.id/area.name:119 +msgid "Lesotho" +msgstr "Lesoto" + +#. iso.code:LR +#: DBarea JOIN iso_3166_1 iso on iso.area = area.id/area.name:120 +msgid "Liberia" +msgstr "Liberija" + +#. iso.code:LY +#: DBarea JOIN iso_3166_1 iso on iso.area = area.id/area.name:121 +msgid "Libya" +msgstr "Libija" + +#. iso.code:LI +#: DBarea JOIN iso_3166_1 iso on iso.area = area.id/area.name:122 +msgid "Liechtenstein" +msgstr "Lihtenštajn" + +#. iso.code:LT +#: DBarea JOIN iso_3166_1 iso on iso.area = area.id/area.name:123 +msgid "Lithuania" +msgstr "Litva" + +#. iso.code:LU +#: DBarea JOIN iso_3166_1 iso on iso.area = area.id/area.name:124 +msgid "Luxembourg" +msgstr "Luxembourg" + +#. iso.code:MO +#: DBarea JOIN iso_3166_1 iso on iso.area = area.id/area.name:125 +msgid "Macao" +msgstr "Makao" + +#. iso.code:MK +#: DBarea JOIN iso_3166_1 iso on iso.area = area.id/area.name:126 +msgid "Macedonia" +msgstr "Makedonija" + +#. iso.code:MG +#: DBarea JOIN iso_3166_1 iso on iso.area = area.id/area.name:127 +msgid "Madagascar" +msgstr "Madagaskar" + +#. iso.code:MW +#: DBarea JOIN iso_3166_1 iso on iso.area = area.id/area.name:128 +msgid "Malawi" +msgstr "Malavi" + +#. iso.code:MY +#: DBarea JOIN iso_3166_1 iso on iso.area = area.id/area.name:129 +msgid "Malaysia" +msgstr "Malezija" + +#. iso.code:MV +#: DBarea JOIN iso_3166_1 iso on iso.area = area.id/area.name:130 +msgid "Maldives" +msgstr "Maldivi" + +#. iso.code:ML +#: DBarea JOIN iso_3166_1 iso on iso.area = area.id/area.name:131 +msgid "Mali" +msgstr "Mali" + +#. iso.code:MT +#: DBarea JOIN iso_3166_1 iso on iso.area = area.id/area.name:132 +msgid "Malta" +msgstr "Malta" + +#. iso.code:MH +#: DBarea JOIN iso_3166_1 iso on iso.area = area.id/area.name:133 +msgid "Marshall Islands" +msgstr "Maršalovi Otoci" + +#. iso.code:MQ +#: DBarea JOIN iso_3166_1 iso on iso.area = area.id/area.name:134 +msgid "Martinique" +msgstr "Martinik" + +#. iso.code:MR +#: DBarea JOIN iso_3166_1 iso on iso.area = area.id/area.name:135 +msgid "Mauritania" +msgstr "Mauritanija" + +#. iso.code:MU +#: DBarea JOIN iso_3166_1 iso on iso.area = area.id/area.name:136 +msgid "Mauritius" +msgstr "Mauricijus" + +#. iso.code:YT +#: DBarea JOIN iso_3166_1 iso on iso.area = area.id/area.name:137 +msgid "Mayotte" +msgstr "Mayotte" + +#. iso.code:MX +#: DBarea JOIN iso_3166_1 iso on iso.area = area.id/area.name:138 +msgid "Mexico" +msgstr "Meksiko" + +#. iso.code:FM +#: DBarea JOIN iso_3166_1 iso on iso.area = area.id/area.name:139 +msgid "Micronesia, Federated States of" +msgstr "Savezne Države Mikronezije " + +#. iso.code:MD +#: DBarea JOIN iso_3166_1 iso on iso.area = area.id/area.name:140 +msgid "Moldova" +msgstr "Moldavija" + +#. iso.code:MC +#: DBarea JOIN iso_3166_1 iso on iso.area = area.id/area.name:141 +msgid "Monaco" +msgstr "Monako" + +#. iso.code:MN +#: DBarea JOIN iso_3166_1 iso on iso.area = area.id/area.name:142 +msgid "Mongolia" +msgstr "Mongolija" + +#. iso.code:ME +#: DBarea JOIN iso_3166_1 iso on iso.area = area.id/area.name:247 +msgid "Montenegro" +msgstr "Crna Gora" + +#. iso.code:MS +#: DBarea JOIN iso_3166_1 iso on iso.area = area.id/area.name:143 +msgid "Montserrat" +msgstr "Montserrat" + +#. iso.code:MA +#: DBarea JOIN iso_3166_1 iso on iso.area = area.id/area.name:144 +msgid "Morocco" +msgstr "Maroko" + +#. iso.code:MZ +#: DBarea JOIN iso_3166_1 iso on iso.area = area.id/area.name:145 +msgid "Mozambique" +msgstr "Mozambik" + +#. iso.code:MM +#: DBarea JOIN iso_3166_1 iso on iso.area = area.id/area.name:146 +msgid "Myanmar" +msgstr "Mjanmar" + +#. iso.code:NA +#: DBarea JOIN iso_3166_1 iso on iso.area = area.id/area.name:147 +msgid "Namibia" +msgstr "Namibija" + +#. iso.code:NR +#: DBarea JOIN iso_3166_1 iso on iso.area = area.id/area.name:148 +msgid "Nauru" +msgstr "Nauru" + +#. iso.code:NP +#: DBarea JOIN iso_3166_1 iso on iso.area = area.id/area.name:149 +msgid "Nepal" +msgstr "Nepal" + +#. iso.code:NL +#: DBarea JOIN iso_3166_1 iso on iso.area = area.id/area.name:150 +msgid "Netherlands" +msgstr "Nizozemska" + +#. iso.code:AN +#: DBarea JOIN iso_3166_1 iso on iso.area = area.id/area.name:151 +msgid "Netherlands Antilles" +msgstr "Nizozemski Antili" + +#. iso.code:NC +#: DBarea JOIN iso_3166_1 iso on iso.area = area.id/area.name:152 +msgid "New Caledonia" +msgstr "Nova Kaledonija" + +#. iso.code:NZ +#: DBarea JOIN iso_3166_1 iso on iso.area = area.id/area.name:153 +msgid "New Zealand" +msgstr "Novi Zeland" + +#. iso.code:NI +#: DBarea JOIN iso_3166_1 iso on iso.area = area.id/area.name:154 +msgid "Nicaragua" +msgstr "Nikaragva" + +#. iso.code:NE +#: DBarea JOIN iso_3166_1 iso on iso.area = area.id/area.name:155 +msgid "Niger" +msgstr "Niger" + +#. iso.code:NG +#: DBarea JOIN iso_3166_1 iso on iso.area = area.id/area.name:156 +msgid "Nigeria" +msgstr "Nigerija" + +#. iso.code:NU +#: DBarea JOIN iso_3166_1 iso on iso.area = area.id/area.name:157 +msgid "Niue" +msgstr "Niue" + +#. iso.code:NF +#: DBarea JOIN iso_3166_1 iso on iso.area = area.id/area.name:158 +msgid "Norfolk Island" +msgstr "Otok Norfolk" + +#. iso.code:KP +#: DBarea JOIN iso_3166_1 iso on iso.area = area.id/area.name:112 +msgid "North Korea" +msgstr "Sjeverna Koreja" + +#. iso.code:MP +#: DBarea JOIN iso_3166_1 iso on iso.area = area.id/area.name:159 +msgid "Northern Mariana Islands" +msgstr "Sjevernomarijanski otoci" + +#. iso.code:NO +#: DBarea JOIN iso_3166_1 iso on iso.area = area.id/area.name:160 +msgid "Norway" +msgstr "Norveška" + +#. iso.code:OM +#: DBarea JOIN iso_3166_1 iso on iso.area = area.id/area.name:161 +msgid "Oman" +msgstr "Oman" + +#. iso.code:PK +#: DBarea JOIN iso_3166_1 iso on iso.area = area.id/area.name:162 +msgid "Pakistan" +msgstr "Pakistan" + +#. iso.code:PW +#: DBarea JOIN iso_3166_1 iso on iso.area = area.id/area.name:163 +msgid "Palau" +msgstr "Palau" + +#. iso.code:PS +#: DBarea JOIN iso_3166_1 iso on iso.area = area.id/area.name:249 +msgid "Palestine" +msgstr "Palestina" + +#. iso.code:PA +#: DBarea JOIN iso_3166_1 iso on iso.area = area.id/area.name:164 +msgid "Panama" +msgstr "Panama" + +#. iso.code:PG +#: DBarea JOIN iso_3166_1 iso on iso.area = area.id/area.name:165 +msgid "Papua New Guinea" +msgstr "Papua Nova Gvineja" + +#. iso.code:PY +#: DBarea JOIN iso_3166_1 iso on iso.area = area.id/area.name:166 +msgid "Paraguay" +msgstr "Paragvaj" + +#. iso.code:PE +#: DBarea JOIN iso_3166_1 iso on iso.area = area.id/area.name:167 +msgid "Peru" +msgstr "Peru" + +#. iso.code:PH +#: DBarea JOIN iso_3166_1 iso on iso.area = area.id/area.name:168 +msgid "Philippines" +msgstr "Filipini" + +#. iso.code:PN +#: DBarea JOIN iso_3166_1 iso on iso.area = area.id/area.name:169 +msgid "Pitcairn" +msgstr "Pitcairnovo Otočje" + +#. iso.code:PL +#: DBarea JOIN iso_3166_1 iso on iso.area = area.id/area.name:170 +msgid "Poland" +msgstr "Poljska" + +#. iso.code:PT +#: DBarea JOIN iso_3166_1 iso on iso.area = area.id/area.name:171 +msgid "Portugal" +msgstr "Portugal" + +#. iso.code:PR +#: DBarea JOIN iso_3166_1 iso on iso.area = area.id/area.name:172 +msgid "Puerto Rico" +msgstr "Portoriko" + +#. iso.code:QA +#: DBarea JOIN iso_3166_1 iso on iso.area = area.id/area.name:173 +msgid "Qatar" +msgstr "Katar" + +#. iso.code:RO +#: DBarea JOIN iso_3166_1 iso on iso.area = area.id/area.name:175 +msgid "Romania" +msgstr "Rumunjska" + +#. iso.code:RU +#: DBarea JOIN iso_3166_1 iso on iso.area = area.id/area.name:176 +msgid "Russian Federation" +msgstr "Ruska Federacija" + +#. iso.code:RW +#: DBarea JOIN iso_3166_1 iso on iso.area = area.id/area.name:177 +msgid "Rwanda" +msgstr "Ruanda" + +#. iso.code:RE +#: DBarea JOIN iso_3166_1 iso on iso.area = area.id/area.name:174 +msgid "Réunion" +msgstr "Réunion" + +#. iso.code:BL +#: DBarea JOIN iso_3166_1 iso on iso.area = area.id/area.name:255 +msgid "Saint Barthélemy" +msgstr "Sveti Bartolomej " + +#. iso.code:SH +#: DBarea JOIN iso_3166_1 iso on iso.area = area.id/area.name:196 +msgid "Saint Helena, Ascension and Tristan da Cunha" +msgstr "Sveta Helena, Ascension i Tristan da Cunha " + +#. iso.code:KN +#: DBarea JOIN iso_3166_1 iso on iso.area = area.id/area.name:178 +msgid "Saint Kitts and Nevis" +msgstr "Sveti Kristofor i Nevis" + +#. iso.code:LC +#: DBarea JOIN iso_3166_1 iso on iso.area = area.id/area.name:179 +msgid "Saint Lucia" +msgstr "Sveta Lucija" + +#. iso.code:MF +#: DBarea JOIN iso_3166_1 iso on iso.area = area.id/area.name:256 +msgid "Saint Martin (French part)" +msgstr "Sveti Martin (Francuska)" + +#. iso.code:PM +#: DBarea JOIN iso_3166_1 iso on iso.area = area.id/area.name:197 +msgid "Saint Pierre and Miquelon" +msgstr "Sveti Petar i Mikelon" + +#. iso.code:VC +#: DBarea JOIN iso_3166_1 iso on iso.area = area.id/area.name:180 +msgid "Saint Vincent and The Grenadines" +msgstr "Sveti Vincent i Grenadini" + +#. iso.code:WS +#: DBarea JOIN iso_3166_1 iso on iso.area = area.id/area.name:181 +msgid "Samoa" +msgstr "Samoa" + +#. iso.code:SM +#: DBarea JOIN iso_3166_1 iso on iso.area = area.id/area.name:182 +msgid "San Marino" +msgstr "San Marino" + +#. iso.code:ST +#: DBarea JOIN iso_3166_1 iso on iso.area = area.id/area.name:183 +msgid "Sao Tome and Principe" +msgstr "Sveti Toma i Princip" + +#. iso.code:SA +#: DBarea JOIN iso_3166_1 iso on iso.area = area.id/area.name:184 +msgid "Saudi Arabia" +msgstr "Saudijska Arabija" + +#. iso.code:SN +#: DBarea JOIN iso_3166_1 iso on iso.area = area.id/area.name:185 +msgid "Senegal" +msgstr "Senegal" + +#. iso.code:RS +#: DBarea JOIN iso_3166_1 iso on iso.area = area.id/area.name:254 +msgid "Serbia" +msgstr "Srbija" + +#. iso.code:CS +#: DBarea JOIN iso_3166_1 iso on iso.area = area.id/area.name:242 +msgid "Serbia and Montenegro" +msgstr "Srbija i Crna Gora" + +#. iso.code:SC +#: DBarea JOIN iso_3166_1 iso on iso.area = area.id/area.name:186 +msgid "Seychelles" +msgstr "Sejšeli" + +#. iso.code:SL +#: DBarea JOIN iso_3166_1 iso on iso.area = area.id/area.name:187 +msgid "Sierra Leone" +msgstr "Sijera Leone " + +#. iso.code:SG +#: DBarea JOIN iso_3166_1 iso on iso.area = area.id/area.name:188 +msgid "Singapore" +msgstr "Singapur" + +#. iso.code:SX +#: DBarea JOIN iso_3166_1 iso on iso.area = area.id/area.name:260 +msgid "Sint Maarten (Dutch part)" +msgstr "Sveti Martin (Nizozemska)" + +#. iso.code:SK +#: DBarea JOIN iso_3166_1 iso on iso.area = area.id/area.name:189 +msgid "Slovakia" +msgstr "Slovačka" + +#. iso.code:SI +#: DBarea JOIN iso_3166_1 iso on iso.area = area.id/area.name:190 +msgid "Slovenia" +msgstr "Slovenija" + +#. iso.code:SB +#: DBarea JOIN iso_3166_1 iso on iso.area = area.id/area.name:191 +msgid "Solomon Islands" +msgstr "Salomonski Otoci" + +#. iso.code:SO +#: DBarea JOIN iso_3166_1 iso on iso.area = area.id/area.name:192 +msgid "Somalia" +msgstr "Somalija" + +#. iso.code:ZA +#: DBarea JOIN iso_3166_1 iso on iso.area = area.id/area.name:193 +msgid "South Africa" +msgstr "Južnoafrička Republika" + +#. iso.code:GS +#: DBarea JOIN iso_3166_1 iso on iso.area = area.id/area.name:248 +msgid "South Georgia and the South Sandwich Islands" +msgstr "Južna Georgija i otočje Južni Sandwich" + +#. iso.code:KR +#: DBarea JOIN iso_3166_1 iso on iso.area = area.id/area.name:113 +msgid "South Korea" +msgstr "Južna Koreja" + +#. iso.code:SS +#: DBarea JOIN iso_3166_1 iso on iso.area = area.id/area.name:257 +msgid "South Sudan" +msgstr "Južni Sudan" + +#. iso.code:SU +#: DBarea JOIN iso_3166_1 iso on iso.area = area.id/area.name:243 +msgid "Soviet Union" +msgstr "Sovjetski Savez" + +#. iso.code:ES +#: DBarea JOIN iso_3166_1 iso on iso.area = area.id/area.name:194 +msgid "Spain" +msgstr "Španjolska" + +#. iso.code:LK +#: DBarea JOIN iso_3166_1 iso on iso.area = area.id/area.name:195 +msgid "Sri Lanka" +msgstr "Šri Lanka" + +#. iso.code:SD +#: DBarea JOIN iso_3166_1 iso on iso.area = area.id/area.name:198 +msgid "Sudan" +msgstr "Sudan" + +#. iso.code:SR +#: DBarea JOIN iso_3166_1 iso on iso.area = area.id/area.name:199 +msgid "Suriname" +msgstr "Surinam" + +#. iso.code:SJ +#: DBarea JOIN iso_3166_1 iso on iso.area = area.id/area.name:200 +msgid "Svalbard and Jan Mayen" +msgstr "Svalbard i Jan Mayen" + +#. iso.code:SZ +#: DBarea JOIN iso_3166_1 iso on iso.area = area.id/area.name:201 +msgid "Swaziland" +msgstr "Svaziland" + +#. iso.code:SE +#: DBarea JOIN iso_3166_1 iso on iso.area = area.id/area.name:202 +msgid "Sweden" +msgstr "Švedska" + +#. iso.code:CH +#: DBarea JOIN iso_3166_1 iso on iso.area = area.id/area.name:203 +msgid "Switzerland" +msgstr "Švicarska" + +#. iso.code:SY +#: DBarea JOIN iso_3166_1 iso on iso.area = area.id/area.name:204 +msgid "Syria" +msgstr "Sirija" + +#. iso.code:TW +#: DBarea JOIN iso_3166_1 iso on iso.area = area.id/area.name:205 +msgid "Taiwan" +msgstr "Tajvan" + +#. iso.code:TJ +#: DBarea JOIN iso_3166_1 iso on iso.area = area.id/area.name:206 +msgid "Tajikistan" +msgstr "Tadžikistan" + +#. iso.code:TZ +#: DBarea JOIN iso_3166_1 iso on iso.area = area.id/area.name:207 +msgid "Tanzania" +msgstr "Tanzanija" + +#. iso.code:TH +#: DBarea JOIN iso_3166_1 iso on iso.area = area.id/area.name:208 +msgid "Thailand" +msgstr "Tajland" + +#. iso.code:TL +#: DBarea JOIN iso_3166_1 iso on iso.area = area.id/area.name:61 +msgid "Timor-Leste" +msgstr "Istočni Timor" + +#. iso.code:TG +#: DBarea JOIN iso_3166_1 iso on iso.area = area.id/area.name:209 +msgid "Togo" +msgstr "Togo" + +#. iso.code:TK +#: DBarea JOIN iso_3166_1 iso on iso.area = area.id/area.name:210 +msgid "Tokelau" +msgstr "Tokelau" + +#. iso.code:TO +#: DBarea JOIN iso_3166_1 iso on iso.area = area.id/area.name:211 +msgid "Tonga" +msgstr "Tonga" + +#. iso.code:TT +#: DBarea JOIN iso_3166_1 iso on iso.area = area.id/area.name:212 +msgid "Trinidad and Tobago" +msgstr "Trinidad i Tobago" + +#. iso.code:TN +#: DBarea JOIN iso_3166_1 iso on iso.area = area.id/area.name:213 +msgid "Tunisia" +msgstr "Tunis" + +#. iso.code:TR +#: DBarea JOIN iso_3166_1 iso on iso.area = area.id/area.name:214 +msgid "Turkey" +msgstr "Turska" + +#. iso.code:TM +#: DBarea JOIN iso_3166_1 iso on iso.area = area.id/area.name:215 +msgid "Turkmenistan" +msgstr "Turkmenistan" + +#. iso.code:TC +#: DBarea JOIN iso_3166_1 iso on iso.area = area.id/area.name:216 +msgid "Turks and Caicos Islands" +msgstr "Otoci Turks i Caicos" + +#. iso.code:TV +#: DBarea JOIN iso_3166_1 iso on iso.area = area.id/area.name:217 +msgid "Tuvalu" +msgstr "Tuvalu" + +#. iso.code:VI +#: DBarea JOIN iso_3166_1 iso on iso.area = area.id/area.name:231 +msgid "U.S. Virgin Islands" +msgstr "Američki Djevičanski otoci" + +#. iso.code:UG +#: DBarea JOIN iso_3166_1 iso on iso.area = area.id/area.name:218 +msgid "Uganda" +msgstr "Uganda" + +#. iso.code:UA +#: DBarea JOIN iso_3166_1 iso on iso.area = area.id/area.name:219 +msgid "Ukraine" +msgstr "Ukrajina" + +#. iso.code:AE +#: DBarea JOIN iso_3166_1 iso on iso.area = area.id/area.name:220 +msgid "United Arab Emirates" +msgstr "Ujedinjeni Arapski Emirati" + +#. iso.code:GB +#: DBarea JOIN iso_3166_1 iso on iso.area = area.id/area.name:221 +msgid "United Kingdom" +msgstr "Ujedinjeno Kraljevstvo " + +#. iso.code:US +#: DBarea JOIN iso_3166_1 iso on iso.area = area.id/area.name:222 +msgid "United States" +msgstr "Sjedinjene Američke Države" + +#. iso.code:UM +#: DBarea JOIN iso_3166_1 iso on iso.area = area.id/area.name:223 +msgid "United States Minor Outlying Islands" +msgstr "Mali udaljeni otoci SAD-a " + +#. iso.code:UY +#: DBarea JOIN iso_3166_1 iso on iso.area = area.id/area.name:224 +msgid "Uruguay" +msgstr "Urugvaj" + +#. iso.code:UZ +#: DBarea JOIN iso_3166_1 iso on iso.area = area.id/area.name:225 +msgid "Uzbekistan" +msgstr "Uzbekistan" + +#. iso.code:VU +#: DBarea JOIN iso_3166_1 iso on iso.area = area.id/area.name:226 +msgid "Vanuatu" +msgstr "Vanuatu" + +#. iso.code:VA +#: DBarea JOIN iso_3166_1 iso on iso.area = area.id/area.name:227 +msgid "Vatican City State (Holy See)" +msgstr "Vatikan (Sveta Stolica)" + +#. iso.code:VE +#: DBarea JOIN iso_3166_1 iso on iso.area = area.id/area.name:228 +msgid "Venezuela" +msgstr "Venezuela" + +#. iso.code:VN +#: DBarea JOIN iso_3166_1 iso on iso.area = area.id/area.name:229 +msgid "Vietnam" +msgstr "Vijetnam" + +#. iso.code:WF +#: DBarea JOIN iso_3166_1 iso on iso.area = area.id/area.name:232 +msgid "Wallis and Futuna" +msgstr "Wallis i Futuna " + +#. iso.code:EH +#: DBarea JOIN iso_3166_1 iso on iso.area = area.id/area.name:233 +msgid "Western Sahara" +msgstr "Zapadna Sahara" + +#. iso.code:YE +#: DBarea JOIN iso_3166_1 iso on iso.area = area.id/area.name:234 +msgid "Yemen" +msgstr "Jemen" + +#. iso.code:YU +#: DBarea JOIN iso_3166_1 iso on iso.area = area.id/area.name:235 +msgid "Yugoslavia" +msgstr "Jugoslavija" + +#. iso.code:ZM +#: DBarea JOIN iso_3166_1 iso on iso.area = area.id/area.name:237 +msgid "Zambia" +msgstr "Zambija" + +#. iso.code:ZW +#: DBarea JOIN iso_3166_1 iso on iso.area = area.id/area.name:238 +msgid "Zimbabwe" +msgstr "Zimbabve" + +#. iso.code:XW +#: DBarea JOIN iso_3166_1 iso on iso.area = area.id/area.name:240 +msgid "[Worldwide]" +msgstr "[Worldwide]" + +#. iso.code:AX +#: DBarea JOIN iso_3166_1 iso on iso.area = area.id/area.name:250 +msgid "Åland Islands" +msgstr "Ålandski otoci" diff --git a/po/countries/tr.po b/po/countries/tr.po index 9406b84ca..f8c542169 100644 --- a/po/countries/tr.po +++ b/po/countries/tr.po @@ -2,13 +2,14 @@ # Translators: # ym syserror , 2012 # Nikolai Prokoschenko , 2011 +# secgin , 2014 # zeugma , 2012 # portik , 2012 msgid "" msgstr "" "Project-Id-Version: MusicBrainz\n" -"PO-Revision-Date: 2014-01-12 12:58+0000\n" -"Last-Translator: Ian McEwen \n" +"PO-Revision-Date: 2014-05-23 09:29+0000\n" +"Last-Translator: secgin \n" "Language-Team: Turkish (http://www.transifex.com/projects/p/musicbrainz/language/tr/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -49,17 +50,17 @@ msgstr "Angola" #. iso.code:AI #: DBarea JOIN iso_3166_1 iso on iso.area = area.id/area.name:7 msgid "Anguilla" -msgstr "" +msgstr "Anguilla" #. iso.code:AQ #: DBarea JOIN iso_3166_1 iso on iso.area = area.id/area.name:8 msgid "Antarctica" -msgstr "" +msgstr "Antarktika" #. iso.code:AG #: DBarea JOIN iso_3166_1 iso on iso.area = area.id/area.name:9 msgid "Antigua and Barbuda" -msgstr "" +msgstr "Antigua ve Barbuda" #. iso.code:AR #: DBarea JOIN iso_3166_1 iso on iso.area = area.id/area.name:10 @@ -74,7 +75,7 @@ msgstr "Ermenistan" #. iso.code:AW #: DBarea JOIN iso_3166_1 iso on iso.area = area.id/area.name:12 msgid "Aruba" -msgstr "" +msgstr "Aruba" #. iso.code:AU #: DBarea JOIN iso_3166_1 iso on iso.area = area.id/area.name:13 @@ -139,7 +140,7 @@ msgstr "Bermuda" #. iso.code:BT #: DBarea JOIN iso_3166_1 iso on iso.area = area.id/area.name:25 msgid "Bhutan" -msgstr "" +msgstr "Bhutan" #. iso.code:BO #: DBarea JOIN iso_3166_1 iso on iso.area = area.id/area.name:26 @@ -149,7 +150,7 @@ msgstr "" #. iso.code:BQ #: DBarea JOIN iso_3166_1 iso on iso.area = area.id/area.name:258 msgid "Bonaire, Sint Eustatius and Saba" -msgstr "" +msgstr "Bonaire, Sint Eustatius ve Saba" #. iso.code:BA #: DBarea JOIN iso_3166_1 iso on iso.area = area.id/area.name:27 @@ -159,12 +160,12 @@ msgstr "Bosna-Hersek" #. iso.code:BW #: DBarea JOIN iso_3166_1 iso on iso.area = area.id/area.name:28 msgid "Botswana" -msgstr "" +msgstr "Botsvana" #. iso.code:BV #: DBarea JOIN iso_3166_1 iso on iso.area = area.id/area.name:29 msgid "Bouvet Island" -msgstr "" +msgstr "Bouvet Adası" #. iso.code:BR #: DBarea JOIN iso_3166_1 iso on iso.area = area.id/area.name:30 @@ -174,17 +175,17 @@ msgstr "Brezilya" #. iso.code:IO #: DBarea JOIN iso_3166_1 iso on iso.area = area.id/area.name:31 msgid "British Indian Ocean Territory" -msgstr "" +msgstr "Britanya Hint Okyanusu Toprakları" #. iso.code:VG #: DBarea JOIN iso_3166_1 iso on iso.area = area.id/area.name:230 msgid "British Virgin Islands" -msgstr "" +msgstr "Britanya Virjin Adaları" #. iso.code:BN #: DBarea JOIN iso_3166_1 iso on iso.area = area.id/area.name:32 msgid "Brunei" -msgstr "" +msgstr "Brunei" #. iso.code:BG #: DBarea JOIN iso_3166_1 iso on iso.area = area.id/area.name:33 @@ -219,12 +220,12 @@ msgstr "Kanada" #. iso.code:CV #: DBarea JOIN iso_3166_1 iso on iso.area = area.id/area.name:39 msgid "Cape Verde" -msgstr "" +msgstr "Yeşil Burun Adaları" #. iso.code:KY #: DBarea JOIN iso_3166_1 iso on iso.area = area.id/area.name:40 msgid "Cayman Islands" -msgstr "" +msgstr "Cayman Adaları" #. iso.code:CF #: DBarea JOIN iso_3166_1 iso on iso.area = area.id/area.name:41 @@ -249,12 +250,12 @@ msgstr "Çin" #. iso.code:CX #: DBarea JOIN iso_3166_1 iso on iso.area = area.id/area.name:45 msgid "Christmas Island" -msgstr "" +msgstr "Christmas Adası" #. iso.code:CC #: DBarea JOIN iso_3166_1 iso on iso.area = area.id/area.name:46 msgid "Cocos (Keeling) Islands" -msgstr "" +msgstr "Cocos (Keyling) Adaları" #. iso.code:CO #: DBarea JOIN iso_3166_1 iso on iso.area = area.id/area.name:47 @@ -264,17 +265,17 @@ msgstr "Kolombiya" #. iso.code:KM #: DBarea JOIN iso_3166_1 iso on iso.area = area.id/area.name:48 msgid "Comoros" -msgstr "" +msgstr "Komorlar" #. iso.code:CG #: DBarea JOIN iso_3166_1 iso on iso.area = area.id/area.name:49 msgid "Congo" -msgstr "" +msgstr "Kongo" #. iso.code:CK #: DBarea JOIN iso_3166_1 iso on iso.area = area.id/area.name:50 msgid "Cook Islands" -msgstr "" +msgstr "Cook Adaları" #. iso.code:CR #: DBarea JOIN iso_3166_1 iso on iso.area = area.id/area.name:51 @@ -294,7 +295,7 @@ msgstr "Küba" #. iso.code:CW #: DBarea JOIN iso_3166_1 iso on iso.area = area.id/area.name:259 msgid "Curaçao" -msgstr "" +msgstr "Curaçao" #. iso.code:CY #: DBarea JOIN iso_3166_1 iso on iso.area = area.id/area.name:55 @@ -309,7 +310,7 @@ msgstr "Çek Cumhuriyeti" #. iso.code:XC #: DBarea JOIN iso_3166_1 iso on iso.area = area.id/area.name:245 msgid "Czechoslovakia" -msgstr "" +msgstr "Çekoslovakya" #. iso.code:CI #: DBarea JOIN iso_3166_1 iso on iso.area = area.id/area.name:52 @@ -319,7 +320,7 @@ msgstr "Fildişi Sahili" #. iso.code:CD #: DBarea JOIN iso_3166_1 iso on iso.area = area.id/area.name:236 msgid "Democratic Republic of the Congo" -msgstr "" +msgstr "Demokratik Kongo Cumhuriyeti" #. iso.code:DK #: DBarea JOIN iso_3166_1 iso on iso.area = area.id/area.name:57 @@ -334,17 +335,17 @@ msgstr "Cibuti" #. iso.code:DM #: DBarea JOIN iso_3166_1 iso on iso.area = area.id/area.name:59 msgid "Dominica" -msgstr "" +msgstr "Dominika" #. iso.code:DO #: DBarea JOIN iso_3166_1 iso on iso.area = area.id/area.name:60 msgid "Dominican Republic" -msgstr "" +msgstr "Dominik Cumhuriyeti" #. iso.code:XG #: DBarea JOIN iso_3166_1 iso on iso.area = area.id/area.name:244 msgid "East Germany" -msgstr "" +msgstr "Doğu Almanya" #. iso.code:EC #: DBarea JOIN iso_3166_1 iso on iso.area = area.id/area.name:62 @@ -359,12 +360,12 @@ msgstr "Mısır" #. iso.code:SV #: DBarea JOIN iso_3166_1 iso on iso.area = area.id/area.name:64 msgid "El Salvador" -msgstr "" +msgstr "El Salvador" #. iso.code:GQ #: DBarea JOIN iso_3166_1 iso on iso.area = area.id/area.name:65 msgid "Equatorial Guinea" -msgstr "" +msgstr "Ekvator Ginesi" #. iso.code:ER #: DBarea JOIN iso_3166_1 iso on iso.area = area.id/area.name:66 @@ -379,87 +380,87 @@ msgstr "Estonya" #. iso.code:ET #: DBarea JOIN iso_3166_1 iso on iso.area = area.id/area.name:68 msgid "Ethiopia" -msgstr "" +msgstr "Etiyopya" #. iso.code:XE #: DBarea JOIN iso_3166_1 iso on iso.area = area.id/area.name:241 msgid "Europe" -msgstr "" +msgstr "Avrupa" #. iso.code:FK #: DBarea JOIN iso_3166_1 iso on iso.area = area.id/area.name:69 msgid "Falkland Islands" -msgstr "" +msgstr "Falkland Adaları" #. iso.code:FO #: DBarea JOIN iso_3166_1 iso on iso.area = area.id/area.name:70 msgid "Faroe Islands" -msgstr "" +msgstr "Faroe Adaları" #. iso.code:FJ #: DBarea JOIN iso_3166_1 iso on iso.area = area.id/area.name:71 msgid "Fiji" -msgstr "" +msgstr "Fiji" #. iso.code:FI #: DBarea JOIN iso_3166_1 iso on iso.area = area.id/area.name:72 msgid "Finland" -msgstr "" +msgstr "Finlandiya" #. iso.code:FR #: DBarea JOIN iso_3166_1 iso on iso.area = area.id/area.name:73 msgid "France" -msgstr "" +msgstr "Fransa" #. iso.code:GF #: DBarea JOIN iso_3166_1 iso on iso.area = area.id/area.name:75 msgid "French Guiana" -msgstr "" +msgstr "Fransız Guyanası" #. iso.code:PF #: DBarea JOIN iso_3166_1 iso on iso.area = area.id/area.name:76 msgid "French Polynesia" -msgstr "" +msgstr "Fransız Polinezyası" #. iso.code:TF #: DBarea JOIN iso_3166_1 iso on iso.area = area.id/area.name:77 msgid "French Southern Territories" -msgstr "" +msgstr "Fransız Güney Toprakları" #. iso.code:GA #: DBarea JOIN iso_3166_1 iso on iso.area = area.id/area.name:78 msgid "Gabon" -msgstr "" +msgstr "Gabon" #. iso.code:GM #: DBarea JOIN iso_3166_1 iso on iso.area = area.id/area.name:79 msgid "Gambia" -msgstr "" +msgstr "Gambiya" #. iso.code:GE #: DBarea JOIN iso_3166_1 iso on iso.area = area.id/area.name:80 msgid "Georgia" -msgstr "" +msgstr "Gürcistan" #. iso.code:DE #: DBarea JOIN iso_3166_1 iso on iso.area = area.id/area.name:81 msgid "Germany" -msgstr "" +msgstr "Almanya" #. iso.code:GH #: DBarea JOIN iso_3166_1 iso on iso.area = area.id/area.name:82 msgid "Ghana" -msgstr "" +msgstr "Gana" #. iso.code:GI #: DBarea JOIN iso_3166_1 iso on iso.area = area.id/area.name:83 msgid "Gibraltar" -msgstr "" +msgstr "Cebelitarık" #. iso.code:GR #: DBarea JOIN iso_3166_1 iso on iso.area = area.id/area.name:84 msgid "Greece" -msgstr "" +msgstr "Yunanistan" #. iso.code:GL #: DBarea JOIN iso_3166_1 iso on iso.area = area.id/area.name:85 @@ -549,7 +550,7 @@ msgstr "Endonezya" #. iso.code:IR #: DBarea JOIN iso_3166_1 iso on iso.area = area.id/area.name:101 msgid "Iran" -msgstr "" +msgstr "İran" #. iso.code:IQ #: DBarea JOIN iso_3166_1 iso on iso.area = area.id/area.name:102 @@ -589,7 +590,7 @@ msgstr "Japonya" #. iso.code:JE #: DBarea JOIN iso_3166_1 iso on iso.area = area.id/area.name:253 msgid "Jersey" -msgstr "" +msgstr "Jersey" #. iso.code:JO #: DBarea JOIN iso_3166_1 iso on iso.area = area.id/area.name:108 @@ -614,7 +615,7 @@ msgstr "" #. iso.code:XK #: DBarea JOIN iso_3166_1 iso on iso.area = area.id/area.name:2358 msgid "Kosovo" -msgstr "" +msgstr "Kosova" #. iso.code:KW #: DBarea JOIN iso_3166_1 iso on iso.area = area.id/area.name:114 @@ -629,7 +630,7 @@ msgstr "Kırgızistan" #. iso.code:LA #: DBarea JOIN iso_3166_1 iso on iso.area = area.id/area.name:116 msgid "Laos" -msgstr "" +msgstr "Laos" #. iso.code:LV #: DBarea JOIN iso_3166_1 iso on iso.area = area.id/area.name:117 @@ -679,7 +680,7 @@ msgstr "" #. iso.code:MK #: DBarea JOIN iso_3166_1 iso on iso.area = area.id/area.name:126 msgid "Macedonia" -msgstr "" +msgstr "Makedonya" #. iso.code:MG #: DBarea JOIN iso_3166_1 iso on iso.area = area.id/area.name:127 @@ -749,7 +750,7 @@ msgstr "" #. iso.code:MD #: DBarea JOIN iso_3166_1 iso on iso.area = area.id/area.name:140 msgid "Moldova" -msgstr "" +msgstr "Moldova" #. iso.code:MC #: DBarea JOIN iso_3166_1 iso on iso.area = area.id/area.name:141 @@ -809,7 +810,7 @@ msgstr "" #. iso.code:AN #: DBarea JOIN iso_3166_1 iso on iso.area = area.id/area.name:151 msgid "Netherlands Antilles" -msgstr "" +msgstr "Hollanda Antilleri" #. iso.code:NC #: DBarea JOIN iso_3166_1 iso on iso.area = area.id/area.name:152 @@ -879,7 +880,7 @@ msgstr "" #. iso.code:PS #: DBarea JOIN iso_3166_1 iso on iso.area = area.id/area.name:249 msgid "Palestine" -msgstr "" +msgstr "Filistin" #. iso.code:PA #: DBarea JOIN iso_3166_1 iso on iso.area = area.id/area.name:164 @@ -1019,7 +1020,7 @@ msgstr "Sırbistan" #. iso.code:CS #: DBarea JOIN iso_3166_1 iso on iso.area = area.id/area.name:242 msgid "Serbia and Montenegro" -msgstr "" +msgstr "Sırbistan-Karadağ" #. iso.code:SC #: DBarea JOIN iso_3166_1 iso on iso.area = area.id/area.name:186 @@ -1069,12 +1070,12 @@ msgstr "Güney Afrika" #. iso.code:GS #: DBarea JOIN iso_3166_1 iso on iso.area = area.id/area.name:248 msgid "South Georgia and the South Sandwich Islands" -msgstr "" +msgstr "Güney Georgia ve Güney Sandwich Adaları" #. iso.code:KR #: DBarea JOIN iso_3166_1 iso on iso.area = area.id/area.name:113 msgid "South Korea" -msgstr "" +msgstr "Güney Kore" #. iso.code:SS #: DBarea JOIN iso_3166_1 iso on iso.area = area.id/area.name:257 @@ -1084,7 +1085,7 @@ msgstr "Güney Sudan" #. iso.code:SU #: DBarea JOIN iso_3166_1 iso on iso.area = area.id/area.name:243 msgid "Soviet Union" -msgstr "" +msgstr "Sovyetler Birliği" #. iso.code:ES #: DBarea JOIN iso_3166_1 iso on iso.area = area.id/area.name:194 @@ -1109,12 +1110,12 @@ msgstr "Surinam" #. iso.code:SJ #: DBarea JOIN iso_3166_1 iso on iso.area = area.id/area.name:200 msgid "Svalbard and Jan Mayen" -msgstr "" +msgstr "Svalbard ve Jan Mayen Adaları" #. iso.code:SZ #: DBarea JOIN iso_3166_1 iso on iso.area = area.id/area.name:201 msgid "Swaziland" -msgstr "" +msgstr "Svaziland" #. iso.code:SE #: DBarea JOIN iso_3166_1 iso on iso.area = area.id/area.name:202 @@ -1129,7 +1130,7 @@ msgstr "İsviçre" #. iso.code:SY #: DBarea JOIN iso_3166_1 iso on iso.area = area.id/area.name:204 msgid "Syria" -msgstr "" +msgstr "Suriye" #. iso.code:TW #: DBarea JOIN iso_3166_1 iso on iso.area = area.id/area.name:205 @@ -1144,7 +1145,7 @@ msgstr "Tacikistan" #. iso.code:TZ #: DBarea JOIN iso_3166_1 iso on iso.area = area.id/area.name:207 msgid "Tanzania" -msgstr "" +msgstr "Tanzanya" #. iso.code:TH #: DBarea JOIN iso_3166_1 iso on iso.area = area.id/area.name:208 @@ -1154,7 +1155,7 @@ msgstr "Tayland" #. iso.code:TL #: DBarea JOIN iso_3166_1 iso on iso.area = area.id/area.name:61 msgid "Timor-Leste" -msgstr "" +msgstr "Doğu Timor" #. iso.code:TG #: DBarea JOIN iso_3166_1 iso on iso.area = area.id/area.name:209 @@ -1164,17 +1165,17 @@ msgstr "Togo" #. iso.code:TK #: DBarea JOIN iso_3166_1 iso on iso.area = area.id/area.name:210 msgid "Tokelau" -msgstr "" +msgstr "Tokelau" #. iso.code:TO #: DBarea JOIN iso_3166_1 iso on iso.area = area.id/area.name:211 msgid "Tonga" -msgstr "" +msgstr "Tonga" #. iso.code:TT #: DBarea JOIN iso_3166_1 iso on iso.area = area.id/area.name:212 msgid "Trinidad and Tobago" -msgstr "" +msgstr "Trinidad ve Tobago" #. iso.code:TN #: DBarea JOIN iso_3166_1 iso on iso.area = area.id/area.name:213 @@ -1189,119 +1190,119 @@ msgstr "Türkiye" #. iso.code:TM #: DBarea JOIN iso_3166_1 iso on iso.area = area.id/area.name:215 msgid "Turkmenistan" -msgstr "" +msgstr "Türkmenistan" #. iso.code:TC #: DBarea JOIN iso_3166_1 iso on iso.area = area.id/area.name:216 msgid "Turks and Caicos Islands" -msgstr "" +msgstr "Turks ve Caicos Adaları" #. iso.code:TV #: DBarea JOIN iso_3166_1 iso on iso.area = area.id/area.name:217 msgid "Tuvalu" -msgstr "" +msgstr "Tuvalu" #. iso.code:VI #: DBarea JOIN iso_3166_1 iso on iso.area = area.id/area.name:231 msgid "U.S. Virgin Islands" -msgstr "" +msgstr "ABD Virjin Adaları" #. iso.code:UG #: DBarea JOIN iso_3166_1 iso on iso.area = area.id/area.name:218 msgid "Uganda" -msgstr "" +msgstr "Uganda" #. iso.code:UA #: DBarea JOIN iso_3166_1 iso on iso.area = area.id/area.name:219 msgid "Ukraine" -msgstr "" +msgstr "Ukrayna" #. iso.code:AE #: DBarea JOIN iso_3166_1 iso on iso.area = area.id/area.name:220 msgid "United Arab Emirates" -msgstr "" +msgstr "Birleşik Arap Emirlikleri" #. iso.code:GB #: DBarea JOIN iso_3166_1 iso on iso.area = area.id/area.name:221 msgid "United Kingdom" -msgstr "" +msgstr "Birleşik Krallık" #. iso.code:US #: DBarea JOIN iso_3166_1 iso on iso.area = area.id/area.name:222 msgid "United States" -msgstr "" +msgstr "Amerika Birleşik Devletleri" #. iso.code:UM #: DBarea JOIN iso_3166_1 iso on iso.area = area.id/area.name:223 msgid "United States Minor Outlying Islands" -msgstr "" +msgstr "ABD Küçük Dış Adaları" #. iso.code:UY #: DBarea JOIN iso_3166_1 iso on iso.area = area.id/area.name:224 msgid "Uruguay" -msgstr "" +msgstr "Uruguay" #. iso.code:UZ #: DBarea JOIN iso_3166_1 iso on iso.area = area.id/area.name:225 msgid "Uzbekistan" -msgstr "" +msgstr "Özbekistan" #. iso.code:VU #: DBarea JOIN iso_3166_1 iso on iso.area = area.id/area.name:226 msgid "Vanuatu" -msgstr "" +msgstr "Vanuatu" #. iso.code:VA #: DBarea JOIN iso_3166_1 iso on iso.area = area.id/area.name:227 msgid "Vatican City State (Holy See)" -msgstr "" +msgstr "Vatikan Şehir Devleti" #. iso.code:VE #: DBarea JOIN iso_3166_1 iso on iso.area = area.id/area.name:228 msgid "Venezuela" -msgstr "" +msgstr "Venezuela" #. iso.code:VN #: DBarea JOIN iso_3166_1 iso on iso.area = area.id/area.name:229 msgid "Vietnam" -msgstr "" +msgstr "Vietnam" #. iso.code:WF #: DBarea JOIN iso_3166_1 iso on iso.area = area.id/area.name:232 msgid "Wallis and Futuna" -msgstr "" +msgstr "Wallis ve Futuna" #. iso.code:EH #: DBarea JOIN iso_3166_1 iso on iso.area = area.id/area.name:233 msgid "Western Sahara" -msgstr "" +msgstr "Batı Sahra" #. iso.code:YE #: DBarea JOIN iso_3166_1 iso on iso.area = area.id/area.name:234 msgid "Yemen" -msgstr "" +msgstr "Yemen" #. iso.code:YU #: DBarea JOIN iso_3166_1 iso on iso.area = area.id/area.name:235 msgid "Yugoslavia" -msgstr "" +msgstr "Yugoslavya" #. iso.code:ZM #: DBarea JOIN iso_3166_1 iso on iso.area = area.id/area.name:237 msgid "Zambia" -msgstr "" +msgstr "Zambiya" #. iso.code:ZW #: DBarea JOIN iso_3166_1 iso on iso.area = area.id/area.name:238 msgid "Zimbabwe" -msgstr "" +msgstr "Zimbabve" #. iso.code:XW #: DBarea JOIN iso_3166_1 iso on iso.area = area.id/area.name:240 msgid "[Worldwide]" -msgstr "" +msgstr "[Dünya Çapında]" #. iso.code:AX #: DBarea JOIN iso_3166_1 iso on iso.area = area.id/area.name:250 msgid "Åland Islands" -msgstr "" +msgstr "Åland" diff --git a/po/cs.po b/po/cs.po index 5194edc04..a04b533aa 100644 --- a/po/cs.po +++ b/po/cs.po @@ -9,14 +9,14 @@ msgid "" msgstr "" "Project-Id-Version: MusicBrainz\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2014-05-03 17:28+0200\n" -"PO-Revision-Date: 2014-05-04 08:44+0000\n" +"POT-Creation-Date: 2014-05-05 07:15+0200\n" +"PO-Revision-Date: 2014-05-05 11:57+0000\n" "Last-Translator: nikki\n" "Language-Team: Czech (http://www.transifex.com/projects/p/musicbrainz/language/cs/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 1.3\n" +"Generated-By: Babel 0.9.6\n" "Language: cs\n" "Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n" @@ -370,7 +370,7 @@ msgstr "" #: picard/coverart.py:256 #, python-format msgid "" -"Downloading cover art of type '%(type)s' for %(albumid)s from %(host)s .." +"Downloading cover art of type '%(type)s' for %(albumid)s from %(host)s ..." msgstr "" #: picard/coverartarchive.py:30 diff --git a/po/cy.po b/po/cy.po index 95f5c75cc..60796c9b4 100644 --- a/po/cy.po +++ b/po/cy.po @@ -9,14 +9,14 @@ msgid "" msgstr "" "Project-Id-Version: MusicBrainz\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2014-05-03 17:28+0200\n" -"PO-Revision-Date: 2014-05-04 08:44+0000\n" +"POT-Creation-Date: 2014-05-05 07:15+0200\n" +"PO-Revision-Date: 2014-05-05 11:57+0000\n" "Last-Translator: nikki\n" "Language-Team: Welsh (http://www.transifex.com/projects/p/musicbrainz/language/cy/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 1.3\n" +"Generated-By: Babel 0.9.6\n" "Language: cy\n" "Plural-Forms: nplurals=4; plural=(n==1) ? 0 : (n==2) ? 1 : (n != 8 && n != 11) ? 2 : 3;\n" @@ -373,7 +373,7 @@ msgstr "" #: picard/coverart.py:256 #, python-format msgid "" -"Downloading cover art of type '%(type)s' for %(albumid)s from %(host)s .." +"Downloading cover art of type '%(type)s' for %(albumid)s from %(host)s ..." msgstr "" #: picard/coverartarchive.py:30 diff --git a/po/da.po b/po/da.po index db9759816..b8643c697 100644 --- a/po/da.po +++ b/po/da.po @@ -12,14 +12,14 @@ msgid "" msgstr "" "Project-Id-Version: MusicBrainz\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2014-05-03 17:28+0200\n" -"PO-Revision-Date: 2014-05-04 08:44+0000\n" -"Last-Translator: nikki\n" +"POT-Creation-Date: 2014-05-05 07:15+0200\n" +"PO-Revision-Date: 2014-05-10 15:29+0000\n" +"Last-Translator: Frederik \"Freso\" S. Olesen \n" "Language-Team: Danish (http://www.transifex.com/projects/p/musicbrainz/language/da/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 1.3\n" +"Generated-By: Babel 0.9.6\n" "Language: da\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" @@ -136,19 +136,19 @@ msgstr "" #: contrib/plugins/replaygain/ui_options_replaygain.py:60 msgid "Path to VorbisGain:" -msgstr "" +msgstr "Sti til VorbisGain:" #: contrib/plugins/replaygain/ui_options_replaygain.py:61 msgid "Path to MP3Gain:" -msgstr "" +msgstr "Sti til MP3Gain:" #: contrib/plugins/replaygain/ui_options_replaygain.py:62 msgid "Path to metaflac:" -msgstr "" +msgstr "Sti til metaflac:" #: contrib/plugins/replaygain/ui_options_replaygain.py:63 msgid "Path to wvgain:" -msgstr "" +msgstr "Sti til wvgain:" #: contrib/plugins/viewvariables/__init__.py:42 #, python-format @@ -370,7 +370,7 @@ msgstr "" #: picard/coverart.py:256 #, python-format msgid "" -"Downloading cover art of type '%(type)s' for %(albumid)s from %(host)s .." +"Downloading cover art of type '%(type)s' for %(albumid)s from %(host)s ..." msgstr "" #: picard/coverartarchive.py:30 @@ -390,12 +390,12 @@ msgstr "" #: picard/file.py:517 #, python-format msgid "File '%(filename)s' identified!" -msgstr "" +msgstr "Filen '%(filename)s' blev identificeret!" #: picard/file.py:537 #, python-format msgid "Looking up the metadata for file %(filename)s ..." -msgstr "" +msgstr "Slår metadata for filen %(filename)s op ..." #: picard/releasegroup.py:53 msgid "Tracks" @@ -403,7 +403,7 @@ msgstr "" #: picard/releasegroup.py:54 msgid "Year" -msgstr "" +msgstr "År" #: picard/releasegroup.py:55 picard/ui/cdlookup.py:35 msgid "Country" @@ -433,8 +433,8 @@ msgstr "[ingen udgivelsesinfo]" #, python-format msgid "Adding %(count)d file from '%(directory)s' ..." msgid_plural "Adding %(count)d files from '%(directory)s' ..." -msgstr[0] "" -msgstr[1] "" +msgstr[0] "Tilføjer %(count)d fil fra '%(directory)s' ..." +msgstr[1] "Tilføjer %(count)d filer fra '%(directory)s' ..." #: picard/tagger.py:512 #, python-format @@ -480,7 +480,7 @@ msgstr "Stregkode" #: picard/ui/collectionmenu.py:42 msgid "Refresh List" -msgstr "" +msgstr "Genindlæs liste" #: picard/ui/collectionmenu.py:86 #, python-format @@ -503,7 +503,7 @@ msgstr "Vis skjulte filer" #: picard/ui/filebrowser.py:48 msgid "&Set as starting directory" -msgstr "" +msgstr "&Sæt som startmappe" #: picard/ui/infodialog.py:37 picard/ui/infodialog.py:80 msgid "Info" @@ -563,11 +563,11 @@ msgstr "&Info" #: picard/ui/infostatus.py:51 msgid "Files" -msgstr "" +msgstr "Filer" #: picard/ui/infostatus.py:52 msgid "Albums" -msgstr "" +msgstr "Albummer" #: picard/ui/infostatus.py:53 msgid "Pending files" @@ -603,7 +603,7 @@ msgstr "Indlæser..." #: picard/ui/itemviews.py:362 msgid "Collections" -msgstr "" +msgstr "Samlinger" #: picard/ui/itemviews.py:365 msgid "P&lugins" @@ -611,7 +611,7 @@ msgstr "" #: picard/ui/itemviews.py:541 msgid "file view" -msgstr "" +msgstr "filvisning" #: picard/ui/itemviews.py:542 msgid "Contains unmatched files and clusters" @@ -623,11 +623,11 @@ msgstr "Klynger" #: picard/ui/itemviews.py:571 msgid "album view" -msgstr "" +msgstr "albumvisning" #: picard/ui/itemviews.py:572 msgid "Contains albums and matched files" -msgstr "" +msgstr "Indeholder albummer og matchede filer" #: picard/ui/logview.py:109 msgid "Log" @@ -758,7 +758,7 @@ msgstr "Indsend" #: picard/ui/mainwindow.py:356 msgid "Submit acoustic fingerprints" -msgstr "" +msgstr "Indsend akustiske fingeraftryk" #: picard/ui/mainwindow.py:360 msgid "E&xit" @@ -802,7 +802,7 @@ msgstr "Søg" #: picard/ui/mainwindow.py:392 msgid "Lookup &CD..." -msgstr "" +msgstr "Slå &cd op..." #: picard/ui/mainwindow.py:393 msgid "Lookup the details of the CD in your drive" @@ -926,7 +926,7 @@ msgstr "&Hjælp" #: picard/ui/mainwindow.py:553 msgid "Actions" -msgstr "" +msgstr "Handlinger" #: picard/ui/mainwindow.py:599 msgid "Track" @@ -959,22 +959,22 @@ msgstr "Lydfingeraftryk er ikke sat op endnu. Vil du sætte det op nu?" #: picard/ui/mainwindow.py:848 #, python-format msgid "%(filename)s (error: %(error)s)" -msgstr "" +msgstr "%(filename)s (fejl: %(error)s)" #: picard/ui/mainwindow.py:854 #, python-format msgid "%(filename)s" -msgstr "" +msgstr "%(filename)s" #: picard/ui/mainwindow.py:864 #, python-format msgid "%(filename)s (%(similarity)d%%) (error: %(error)s)" -msgstr "" +msgstr "%(filename)s (%(similarity)d%%) (fejl: %(error)s)" #: picard/ui/mainwindow.py:871 #, python-format msgid "%(filename)s (%(similarity)d%%)" -msgstr "" +msgstr "%(filename)s (%(similarity)d%%)" #: picard/ui/metadatabox.py:82 #, python-format @@ -992,11 +992,11 @@ msgstr[1] "(mangler fra %d elementer)" #: picard/ui/metadatabox.py:154 msgid "metadata view" -msgstr "" +msgstr "metadatavisning" #: picard/ui/metadatabox.py:155 msgid "Displays original and new tags for the selected files" -msgstr "" +msgstr "Viser oprindelige og nye tags for de valgte filer" #: picard/ui/metadatabox.py:157 msgid "Tag" @@ -1060,7 +1060,7 @@ msgstr "OK" #: picard/ui/ui_cdlookup.py:56 msgid "Lookup manually" -msgstr "" +msgstr "Slå op manuelt" #: picard/ui/ui_cdlookup.py:57 msgid "Cancel" @@ -1096,7 +1096,7 @@ msgstr "Indstillinger" #: picard/ui/ui_options_advanced.py:42 msgid "Advanced options" -msgstr "" +msgstr "Avancerede indstillinger" #: picard/ui/ui_options_advanced.py:43 msgid "Ignore file paths matching the following regular expression:" @@ -1168,11 +1168,11 @@ msgstr "Fuld størrelse" #: picard/ui/ui_options_cover.py:146 msgid "Download only images of the following types:" -msgstr "" +msgstr "Hent kun billeder af disse typer:" #: picard/ui/ui_options_cover.py:147 msgid "Download only approved images" -msgstr "" +msgstr "Hent kun godkendte billeder" #: picard/ui/ui_options_cover.py:148 msgid "" @@ -1362,7 +1362,7 @@ msgstr "Internetproxy" #: picard/ui/ui_options_network.py:112 msgid "Browser Integration" -msgstr "" +msgstr "Browserintegration" #: picard/ui/ui_options_network.py:113 msgid "Default listening port:" @@ -1519,7 +1519,7 @@ msgstr "" #: picard/ui/ui_options_tags.py:161 msgid "ID3v2 Version" -msgstr "" +msgstr "ID3v2-udgave" #: picard/ui/ui_options_tags.py:162 msgid "2.4" @@ -1531,7 +1531,7 @@ msgstr "2.3" #: picard/ui/ui_options_tags.py:164 msgid "ID3v2 Text Encoding" -msgstr "" +msgstr "ID3v2-tekstkodning" #: picard/ui/ui_options_tags.py:165 msgid "UTF-8" @@ -1554,7 +1554,7 @@ msgid "" "

Default is '/' to maintain compatibility with previous" " Picard releases.

New alternatives are ';_' or '_/_' or type your own." "

" -msgstr "" +msgstr "

Standard er '/' for at bevare kompatibilitet med tidligere versioner af Picard.

Nye alternativer er ';_', '_/_' eller at skrive sin egen.

" #: picard/ui/ui_options_tags.py:170 msgid "Also include ID3v1 tags in the files" @@ -1668,7 +1668,7 @@ msgstr "Matchning" #: picard/ui/options/network.py:29 msgid "Network" -msgstr "" +msgstr "Netværk" #: picard/ui/options/plugins.py:126 msgid "File" @@ -1688,7 +1688,7 @@ msgstr "Nulstil alle" #: picard/ui/options/renaming.py:37 msgid "File Naming" -msgstr "" +msgstr "Navngivning af filer" #: picard/ui/options/renaming.py:187 msgid "Error" @@ -2020,7 +2020,7 @@ msgstr "" #: picard/util/tags.py:89 msgid "Work" -msgstr "" +msgstr "Værk" #: picard/util/webbrowser2.py:90 msgid "Web Browser Error" diff --git a/po/de.po b/po/de.po index 3edf2caf1..4b7880725 100644 --- a/po/de.po +++ b/po/de.po @@ -17,20 +17,20 @@ msgid "" msgstr "" "Project-Id-Version: MusicBrainz\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2014-05-03 17:28+0200\n" -"PO-Revision-Date: 2014-05-04 08:44+0000\n" -"Last-Translator: nikki\n" +"POT-Creation-Date: 2014-05-05 07:15+0200\n" +"PO-Revision-Date: 2014-05-18 18:10+0000\n" +"Last-Translator: Shepard\n" "Language-Team: German (http://www.transifex.com/projects/p/musicbrainz/language/de/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 1.3\n" +"Generated-By: Babel 0.9.6\n" "Language: de\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" #: contrib/plugins/albumartist_website.py:3 msgid "Album Artist Website" -msgstr "" +msgstr "Albuminterpreten-Website" #: contrib/plugins/no_release.py:50 msgid "Enable plugin for all releases by default" @@ -46,7 +46,7 @@ msgstr "Spezifische Veröffentlichungsinformation entfernen" #: contrib/plugins/standardise_performers.py:3 msgid "Standardise Performers" -msgstr "" +msgstr "Interpreten standardisieren" #: contrib/plugins/lastfm/ui_options_lastfm.py:99 msgid "Last.fm" @@ -98,129 +98,129 @@ msgstr " %" #: contrib/plugins/replaygain/__init__.py:50 msgid "Calculate replay &gain..." -msgstr "Replay &Gain berechnen …" +msgstr "Replay-&Gain berechnen …" #: contrib/plugins/replaygain/__init__.py:67 #, python-format msgid "Calculating replay gain for \"%(filename)s\"..." -msgstr "" +msgstr "Berechne Replay-Gain für „%(filename)s“ …" #: contrib/plugins/replaygain/__init__.py:75 #, python-format msgid "Replay gain for \"%(filename)s\" successfully calculated." -msgstr "" +msgstr "Replay-Gain für „%(filename)s“ erfolgreich berechnet." #: contrib/plugins/replaygain/__init__.py:80 #, python-format msgid "Could not calculate replay gain for \"%(filename)s\"." -msgstr "" +msgstr "Konnte Replay-Gain für „%(filename)s“ nicht berechnen." #: contrib/plugins/replaygain/__init__.py:85 msgid "Calculate album &gain..." -msgstr "Album &Gain berechnen …" +msgstr "Album-&Gain berechnen …" #: contrib/plugins/replaygain/__init__.py:113 #: contrib/plugins/replaygain/__init__.py:124 #, python-format msgid "Calculating album gain for \"%(album)s\"..." -msgstr "" +msgstr "Berechne Album-Gain für „%(album)s“ …" #: contrib/plugins/replaygain/__init__.py:135 #, python-format msgid "Album gain for \"%(album)s\" successfully calculated." -msgstr "" +msgstr "Album-Gain für „%(album)s“ erfolgreich berechnet." #: contrib/plugins/replaygain/__init__.py:140 #, python-format msgid "Could not calculate album gain for \"%(album)s\"." -msgstr "" +msgstr "Konnte Album-Gain für „%(album)s“ nicht berechnen." #: contrib/plugins/replaygain/ui_options_replaygain.py:59 msgid "Replay Gain" -msgstr "" +msgstr "Replay-Gain" #: contrib/plugins/replaygain/ui_options_replaygain.py:60 msgid "Path to VorbisGain:" -msgstr "" +msgstr "Pfad zu VorbisGain:" #: contrib/plugins/replaygain/ui_options_replaygain.py:61 msgid "Path to MP3Gain:" -msgstr "" +msgstr "Pfad zu MP3Gain:" #: contrib/plugins/replaygain/ui_options_replaygain.py:62 msgid "Path to metaflac:" -msgstr "" +msgstr "Pfad zu metaflac:" #: contrib/plugins/replaygain/ui_options_replaygain.py:63 msgid "Path to wvgain:" -msgstr "" +msgstr "Pfad zu wvgain:" #: contrib/plugins/viewvariables/__init__.py:42 #, python-format msgid "File: %s" -msgstr "" +msgstr "Datei: %s" #: contrib/plugins/viewvariables/__init__.py:47 #, python-format msgid "Track: %s %s " -msgstr "" +msgstr "Titel: %s %s" #: contrib/plugins/viewvariables/__init__.py:49 msgid "Variables" -msgstr "" +msgstr "Variablen" #: contrib/plugins/viewvariables/__init__.py:69 msgid "File variables" -msgstr "" +msgstr "Dateivariablen" #: contrib/plugins/viewvariables/__init__.py:74 msgid "Hidden variables" -msgstr "" +msgstr "Versteckte Variablen" #: contrib/plugins/viewvariables/__init__.py:79 msgid "Tag variables" -msgstr "" +msgstr "Tag-Variablen" #: contrib/plugins/viewvariables/ui_variables_dialog.py:73 msgid "Variable" -msgstr "" +msgstr "Variable" #: contrib/plugins/viewvariables/ui_variables_dialog.py:75 msgid "Value" -msgstr "" +msgstr "Wert" #: picard/acoustid.py:109 #, python-format msgid "AcoustID lookup network error for '%(filename)s'!" -msgstr "" +msgstr "Netzwerkfehler beim Nachschlagen von AcoustID für „%(filename)s“!" #: picard/acoustid.py:133 #, python-format msgid "AcoustID lookup failed for '%(filename)s'!" -msgstr "" +msgstr "Nachschlagen von AcoustID fehlgeschlagen für „%(filename)s“!" #: picard/acoustid.py:155 #, python-format msgid "AcoustID lookup returned no result for file '%(filename)s'" -msgstr "" +msgstr "Nachschlagen von AcoustID für „%(filename)s“ ergab kein Ergebnis!" #: picard/acoustid.py:166 #, python-format msgid "Looking up the fingerprint for file '%(filename)s' ..." -msgstr "" +msgstr "Frage Fingerabdruck der Datei „%(filename)s“ ab …" #: picard/acoustidmanager.py:80 msgid "Submitting AcoustIDs ..." -msgstr "" +msgstr "Übermittle AcoustIDs …" #: picard/acoustidmanager.py:94 #, python-format msgid "AcoustID submission failed with error '%(error)s'" -msgstr "" +msgstr "AcoustID-Übermittlung fehlgeschlagen mit Fehler: „%(error)s“" #: picard/acoustidmanager.py:102 msgid "AcoustIDs successfully submitted." -msgstr "" +msgstr "AcoustIDs erfolgreich übermittelt." #: picard/album.py:65 picard/cluster.py:255 msgid "Unmatched Files" @@ -234,12 +234,12 @@ msgstr "[konnte Album %s nicht laden]" #: picard/album.py:277 #, python-format msgid "Album %(id)s loaded: %(artist)s - %(album)s" -msgstr "" +msgstr "Album %(id)s geladen: %(artist)s - %(album)s" #: picard/album.py:294 #, python-format msgid "Loading album %(id)s ..." -msgstr "" +msgstr "Lade Album %(id)s …" #: picard/album.py:303 msgid "[loading album information]" @@ -255,36 +255,36 @@ msgstr[1] "; %i Bilder" #: picard/cluster.py:155 picard/cluster.py:168 #, python-format msgid "No matching releases for cluster %(album)s" -msgstr "" +msgstr "Keine passenden Veröffentlichungen für Gruppierung %(album)s" #: picard/cluster.py:174 #, python-format msgid "Cluster %(album)s identified!" -msgstr "" +msgstr "Gruppierung %(album)s identifiziert!" #: picard/cluster.py:185 #, python-format msgid "Looking up the metadata for cluster %(album)s..." -msgstr "" +msgstr "Frage Metadaten für Gruppierung %(album)s ab …" #: picard/collection.py:64 #, python-format msgid "Added %(count)i release to collection \"%(name)s\"" msgid_plural "Added %(count)i releases to collection \"%(name)s\"" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "%(count)i Veröffentlichung zu Sammlung „%(name)s“ hinzugefügt" +msgstr[1] "%(count)i Veröffentlichungen zu Sammlung „%(name)s“ hinzugefügt" #: picard/collection.py:86 #, python-format msgid "Removed %(count)i release from collection \"%(name)s\"" msgid_plural "Removed %(count)i releases from collection \"%(name)s\"" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "%(count)i Veröffentlichung von Sammlung „%(name)s“ entfernt" +msgstr[1] "%(count)i Veröffentlichungen von Sammlung „%(name)s“ entfernt" #: picard/collection.py:100 #, python-format msgid "Error loading collections: %(error)s" -msgstr "" +msgstr "Fehler beim Laden von Sammlungen: %(error)s" #: picard/config_upgrade.py:58 picard/config_upgrade.py:71 msgid "Various Artists file naming scheme removal" @@ -370,13 +370,13 @@ msgstr "Schwedisch" #: picard/coverart.py:85 #, python-format msgid "Cover art of type '%(type)s' downloaded for %(albumid)s from %(host)s" -msgstr "" +msgstr "Cover-Art des Typs „%(type)s“ heruntergeladen für %(albumid)s von %(host)s" #: picard/coverart.py:256 #, python-format msgid "" -"Downloading cover art of type '%(type)s' for %(albumid)s from %(host)s .." -msgstr "" +"Downloading cover art of type '%(type)s' for %(albumid)s from %(host)s ..." +msgstr "Lade Cover-Art des Typs „%(type)s“ herunter für %(albumid)s von %(host)s …" #: picard/coverartarchive.py:30 msgid "Unknown" @@ -385,26 +385,26 @@ msgstr "Unbekannt" #: picard/file.py:494 #, python-format msgid "No matching tracks for file '%(filename)s'" -msgstr "" +msgstr "Keine passenden Titel für Datei „%(filename)s“" #: picard/file.py:510 #, python-format msgid "No matching tracks above the threshold for file '%(filename)s'" -msgstr "" +msgstr "Keine passenden Titel oberhalb der Schwellenwerte für Datei „%(filename)s“" #: picard/file.py:517 #, python-format msgid "File '%(filename)s' identified!" -msgstr "" +msgstr "Datei „%(filename)s“ identifiziert!" #: picard/file.py:537 #, python-format msgid "Looking up the metadata for file %(filename)s ..." -msgstr "" +msgstr "Frage Metadaten für Datei %(filename)s ab …" #: picard/releasegroup.py:53 msgid "Tracks" -msgstr "" +msgstr "Titel" #: picard/releasegroup.py:54 msgid "Year" @@ -424,7 +424,7 @@ msgstr "Label" #: picard/releasegroup.py:58 msgid "Cat No" -msgstr "" +msgstr "Kat.-Nr." #: picard/releasegroup.py:88 msgid "[no barcode]" @@ -438,13 +438,13 @@ msgstr "[keine Informationen zur Veröffentlichung]" #, python-format msgid "Adding %(count)d file from '%(directory)s' ..." msgid_plural "Adding %(count)d files from '%(directory)s' ..." -msgstr[0] "" -msgstr[1] "" +msgstr[0] "Füge %(count)d Datei von „%(directory)s“ hinzu …" +msgstr[1] "Füge %(count)d Dateien von „%(directory)s“ hinzu …" #: picard/tagger.py:512 #, python-format msgid "Removing album %(id)s: %(artist)s - %(album)s" -msgstr "" +msgstr "Entferne Album %(id)s: %(artist)s - %(album)s" #: picard/tagger.py:528 msgid "CD Lookup Error" @@ -640,11 +640,11 @@ msgstr "Protokoll" #: picard/ui/logview.py:113 msgid "Debug mode" -msgstr "" +msgstr "Fehlerbehebungsmodus" #: picard/ui/logview.py:134 msgid "Activity History" -msgstr "" +msgstr "Aktivitätshistorie" #: picard/ui/mainwindow.py:74 msgid "MusicBrainz Picard" @@ -680,7 +680,7 @@ msgid "" "Picard listens on this port to integrate with your browser. When you " "\"Search\" or \"Open in Browser\" from Picard, clicking the \"Tagger\" " "button on the web page loads the release into Picard." -msgstr "" +msgstr "Picard benutzt diesen Port, um deinen Browser einzubinden. Wenn Du in Picard „Suchen“ oder „Im Browser öffnen“ klickst, so lädt ein Klick auf den „Tagger“-Button auf der Webseite die Veröffentlichung in Picard." #: picard/ui/mainwindow.py:243 #, python-format @@ -763,7 +763,7 @@ msgstr "Übermitteln" #: picard/ui/mainwindow.py:356 msgid "Submit acoustic fingerprints" -msgstr "" +msgstr "Akustische Fingerabdrücke übermitteln" #: picard/ui/mainwindow.py:360 msgid "E&xit" @@ -807,11 +807,11 @@ msgstr "Suchen" #: picard/ui/mainwindow.py:392 msgid "Lookup &CD..." -msgstr "" +msgstr "&CD abfragen …" #: picard/ui/mainwindow.py:393 msgid "Lookup the details of the CD in your drive" -msgstr "" +msgstr "Frage Details zu der CD in Deinem Laufwerk ab" #: picard/ui/mainwindow.py:395 msgid "Ctrl+K" @@ -839,7 +839,7 @@ msgstr "&Abfragen" #: picard/ui/mainwindow.py:411 msgid "Lookup selected items in MusicBrainz" -msgstr "" +msgstr "Ausgewählte Elemente in MusicBrainz nachschlagen" #: picard/ui/mainwindow.py:416 msgid "Ctrl+L" @@ -895,7 +895,7 @@ msgstr "" #: picard/ui/mainwindow.py:462 msgid "Play the file in your default media player" -msgstr "" +msgstr "Datei in Deinem Standard-Medienplayer abspielen" #: picard/ui/mainwindow.py:466 msgid "Open Containing &Folder" @@ -903,7 +903,7 @@ msgstr "" #: picard/ui/mainwindow.py:467 msgid "Open the containing folder in your file explorer" -msgstr "" +msgstr "Das beinhaltende Verzeichnis in Deinem Dateiexplorer öffnen" #: picard/ui/mainwindow.py:492 msgid "&File" @@ -944,12 +944,12 @@ msgstr "Alle unterstützten Formate" #: picard/ui/mainwindow.py:695 #, python-format msgid "Adding directory: '%(directory)s' ..." -msgstr "" +msgstr "Füge Verzeichnis hinzu: „%(directory)s“ …" #: picard/ui/mainwindow.py:702 #, python-format msgid "Adding multiple directories from '%(directory)s' ..." -msgstr "" +msgstr "Füge mehrere Verzeichnisse hinzu: „%(directory)s“ …" #: picard/ui/mainwindow.py:767 msgid "Configuration Required" @@ -964,22 +964,22 @@ msgstr "Das Erzeugen von Audio-Fingerabdrücken wurde noch nicht konfiguriert. M #: picard/ui/mainwindow.py:848 #, python-format msgid "%(filename)s (error: %(error)s)" -msgstr "" +msgstr "%(filename)s (Fehler: %(error)s)" #: picard/ui/mainwindow.py:854 #, python-format msgid "%(filename)s" -msgstr "" +msgstr "%(filename)s" #: picard/ui/mainwindow.py:864 #, python-format msgid "%(filename)s (%(similarity)d%%) (error: %(error)s)" -msgstr "" +msgstr "%(filename)s (%(similarity)d%%) (Fehler: %(error)s)" #: picard/ui/mainwindow.py:871 #, python-format msgid "%(filename)s (%(similarity)d%%)" -msgstr "" +msgstr "%(filename)s (%(similarity)d%%)" #: picard/ui/metadatabox.py:82 #, python-format @@ -1639,7 +1639,7 @@ msgstr "Regex-Fehler" #: picard/ui/options/cover.py:44 msgid "title" -msgstr "" +msgstr "Titel" #: picard/ui/options/cover.py:68 msgid "Cover Art" @@ -1821,7 +1821,7 @@ msgstr "Sortiername des Albums" #: picard/util/tags.py:36 msgid "Composer Sort Order" -msgstr "" +msgstr "Sortiername des Komponisten" #: picard/util/tags.py:37 msgid "ASIN" @@ -1945,7 +1945,7 @@ msgstr "Disc-ID" #: picard/util/tags.py:67 msgid "Artist Website" -msgstr "" +msgstr "Künstler-Website" #: picard/util/tags.py:68 msgid "Compilation (iTunes)" @@ -1965,7 +1965,7 @@ msgstr "Kodiert von" #: picard/util/tags.py:72 msgid "Encoder Settings" -msgstr "" +msgstr "Kodierer-Einstellungen" #: picard/util/tags.py:73 msgid "Performer" diff --git a/po/el.po b/po/el.po index 777d4b8e8..ea81b2ef1 100644 --- a/po/el.po +++ b/po/el.po @@ -12,14 +12,14 @@ msgid "" msgstr "" "Project-Id-Version: MusicBrainz\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2014-05-03 17:28+0200\n" -"PO-Revision-Date: 2014-05-04 08:44+0000\n" +"POT-Creation-Date: 2014-05-05 07:15+0200\n" +"PO-Revision-Date: 2014-05-05 11:57+0000\n" "Last-Translator: nikki\n" "Language-Team: Greek (http://www.transifex.com/projects/p/musicbrainz/language/el/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 1.3\n" +"Generated-By: Babel 0.9.6\n" "Language: el\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" @@ -370,7 +370,7 @@ msgstr "" #: picard/coverart.py:256 #, python-format msgid "" -"Downloading cover art of type '%(type)s' for %(albumid)s from %(host)s .." +"Downloading cover art of type '%(type)s' for %(albumid)s from %(host)s ..." msgstr "" #: picard/coverartarchive.py:30 diff --git a/po/en_CA.po b/po/en_CA.po index cfdf4687d..711817f5e 100644 --- a/po/en_CA.po +++ b/po/en_CA.po @@ -11,14 +11,14 @@ msgid "" msgstr "" "Project-Id-Version: MusicBrainz\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2014-05-03 17:28+0200\n" -"PO-Revision-Date: 2014-05-04 08:44+0000\n" +"POT-Creation-Date: 2014-05-05 07:15+0200\n" +"PO-Revision-Date: 2014-05-05 11:57+0000\n" "Last-Translator: nikki\n" "Language-Team: English (Canada) (http://www.transifex.com/projects/p/musicbrainz/language/en_CA/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 1.3\n" +"Generated-By: Babel 0.9.6\n" "Language: en_CA\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" @@ -369,7 +369,7 @@ msgstr "" #: picard/coverart.py:256 #, python-format msgid "" -"Downloading cover art of type '%(type)s' for %(albumid)s from %(host)s .." +"Downloading cover art of type '%(type)s' for %(albumid)s from %(host)s ..." msgstr "" #: picard/coverartarchive.py:30 diff --git a/po/en_GB.po b/po/en_GB.po index 71038d4db..c0822b595 100644 --- a/po/en_GB.po +++ b/po/en_GB.po @@ -10,14 +10,14 @@ msgid "" msgstr "" "Project-Id-Version: MusicBrainz\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2014-05-03 17:28+0200\n" -"PO-Revision-Date: 2014-05-04 08:44+0000\n" +"POT-Creation-Date: 2014-05-05 07:15+0200\n" +"PO-Revision-Date: 2014-05-05 11:57+0000\n" "Last-Translator: nikki\n" "Language-Team: English (United Kingdom) (http://www.transifex.com/projects/p/musicbrainz/language/en_GB/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 1.3\n" +"Generated-By: Babel 0.9.6\n" "Language: en_GB\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" @@ -368,7 +368,7 @@ msgstr "" #: picard/coverart.py:256 #, python-format msgid "" -"Downloading cover art of type '%(type)s' for %(albumid)s from %(host)s .." +"Downloading cover art of type '%(type)s' for %(albumid)s from %(host)s ..." msgstr "" #: picard/coverartarchive.py:30 diff --git a/po/eo.po b/po/eo.po index 147b1da0d..f790439a9 100644 --- a/po/eo.po +++ b/po/eo.po @@ -8,14 +8,14 @@ msgid "" msgstr "" "Project-Id-Version: MusicBrainz\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2014-05-03 17:28+0200\n" -"PO-Revision-Date: 2014-05-04 08:44+0000\n" +"POT-Creation-Date: 2014-05-05 07:15+0200\n" +"PO-Revision-Date: 2014-05-05 11:57+0000\n" "Last-Translator: nikki\n" "Language-Team: Esperanto (http://www.transifex.com/projects/p/musicbrainz/language/eo/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 1.3\n" +"Generated-By: Babel 0.9.6\n" "Language: eo\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" @@ -366,7 +366,7 @@ msgstr "" #: picard/coverart.py:256 #, python-format msgid "" -"Downloading cover art of type '%(type)s' for %(albumid)s from %(host)s .." +"Downloading cover art of type '%(type)s' for %(albumid)s from %(host)s ..." msgstr "" #: picard/coverartarchive.py:30 diff --git a/po/es.po b/po/es.po index 7b92110ae..8c27e6cd8 100644 --- a/po/es.po +++ b/po/es.po @@ -10,14 +10,14 @@ msgid "" msgstr "" "Project-Id-Version: MusicBrainz\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2014-05-03 17:28+0200\n" -"PO-Revision-Date: 2014-05-04 13:43+0000\n" +"POT-Creation-Date: 2014-05-05 07:15+0200\n" +"PO-Revision-Date: 2014-05-05 12:11+0000\n" "Last-Translator: Ismael Olea \n" "Language-Team: Spanish (http://www.transifex.com/projects/p/musicbrainz/language/es/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 1.3\n" +"Generated-By: Babel 0.9.6\n" "Language: es\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" @@ -39,7 +39,7 @@ msgstr "Eliminar los datos específicos a la publicación..." #: contrib/plugins/standardise_performers.py:3 msgid "Standardise Performers" -msgstr "" +msgstr "Normalizar intérpretes" #: contrib/plugins/lastfm/ui_options_lastfm.py:99 msgid "Last.fm" @@ -264,15 +264,15 @@ msgstr "Buscando metadatos para el grupo %(album)s..." #, python-format msgid "Added %(count)i release to collection \"%(name)s\"" msgid_plural "Added %(count)i releases to collection \"%(name)s\"" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "Añadida %(count)i publicación a la colección \"%(name)s\"" +msgstr[1] "Añadidas %(count)i publicaciones a la colección \"%(name)s\"" #: picard/collection.py:86 #, python-format msgid "Removed %(count)i release from collection \"%(name)s\"" msgid_plural "Removed %(count)i releases from collection \"%(name)s\"" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "Eliminada %(count)i publicación de la colección \"%(name)s\"" +msgstr[1] "Eliminadas %(count)i publicaciones de la colección \"%(name)s\"" #: picard/collection.py:100 #, python-format @@ -368,8 +368,8 @@ msgstr "La carátula de tipo '%(type)s' descargada para %(albumid)s desde %(host #: picard/coverart.py:256 #, python-format msgid "" -"Downloading cover art of type '%(type)s' for %(albumid)s from %(host)s .." -msgstr "Descargando la carátula de tipo '%(type)s' para %(albumid)s desde %(host)s…" +"Downloading cover art of type '%(type)s' for %(albumid)s from %(host)s ..." +msgstr "Descargando la carátula de tipo '%(type)s' para %(albumid)s desde %(host)s…" #: picard/coverartarchive.py:30 msgid "Unknown" diff --git a/po/et.po b/po/et.po index 58e715e50..9bec7b3be 100644 --- a/po/et.po +++ b/po/et.po @@ -11,20 +11,20 @@ msgid "" msgstr "" "Project-Id-Version: MusicBrainz\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2014-05-03 17:28+0200\n" -"PO-Revision-Date: 2014-05-04 08:44+0000\n" -"Last-Translator: nikki\n" +"POT-Creation-Date: 2014-05-05 07:15+0200\n" +"PO-Revision-Date: 2014-05-14 20:43+0000\n" +"Last-Translator: Mihkel Tõnnov \n" "Language-Team: Estonian (http://www.transifex.com/projects/p/musicbrainz/language/et/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 1.3\n" +"Generated-By: Babel 0.9.6\n" "Language: et\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" #: contrib/plugins/albumartist_website.py:3 msgid "Album Artist Website" -msgstr "" +msgstr "Albumi esitaja veebisait" #: contrib/plugins/no_release.py:50 msgid "Enable plugin for all releases by default" @@ -40,7 +40,7 @@ msgstr "Eemalda teatud väljalasketeave..." #: contrib/plugins/standardise_performers.py:3 msgid "Standardise Performers" -msgstr "" +msgstr "Esitajate standardiseerimine" #: contrib/plugins/lastfm/ui_options_lastfm.py:99 msgid "Last.fm" @@ -97,17 +97,17 @@ msgstr "Arvuta helitugevuse parandusteave..." #: contrib/plugins/replaygain/__init__.py:67 #, python-format msgid "Calculating replay gain for \"%(filename)s\"..." -msgstr "" +msgstr "Helitugevuse paranduse arvutamine: \"%(filename)s\"..." #: contrib/plugins/replaygain/__init__.py:75 #, python-format msgid "Replay gain for \"%(filename)s\" successfully calculated." -msgstr "" +msgstr "Helitugevuse parandus edukalt arvutatud: \"%(filename)s\"." #: contrib/plugins/replaygain/__init__.py:80 #, python-format msgid "Could not calculate replay gain for \"%(filename)s\"." -msgstr "" +msgstr "Helitugevuse paranduse arvutamine polnud võimalik: \"%(filename)s\"." #: contrib/plugins/replaygain/__init__.py:85 msgid "Calculate album &gain..." @@ -117,17 +117,17 @@ msgstr "Arvuta albumi helitugevuse parandus..." #: contrib/plugins/replaygain/__init__.py:124 #, python-format msgid "Calculating album gain for \"%(album)s\"..." -msgstr "" +msgstr "Albumi helitugevuse paranduse arvutamine: \"%(album)s\"..." #: contrib/plugins/replaygain/__init__.py:135 #, python-format msgid "Album gain for \"%(album)s\" successfully calculated." -msgstr "" +msgstr "Albumi helitugevuse parandus edukalt arvutatud: \"%(album)s\"." #: contrib/plugins/replaygain/__init__.py:140 #, python-format msgid "Could not calculate album gain for \"%(album)s\"." -msgstr "" +msgstr "Albumi helitugevuse paranduse arvutamine polnud võimalik: \"%(album)s\"." #: contrib/plugins/replaygain/ui_options_replaygain.py:59 msgid "Replay Gain" @@ -152,65 +152,65 @@ msgstr "wvgaini asukoht:" #: contrib/plugins/viewvariables/__init__.py:42 #, python-format msgid "File: %s" -msgstr "" +msgstr "Fail: %s" #: contrib/plugins/viewvariables/__init__.py:47 #, python-format msgid "Track: %s %s " -msgstr "" +msgstr "Rada: %s %s " #: contrib/plugins/viewvariables/__init__.py:49 msgid "Variables" -msgstr "" +msgstr "Muutujad" #: contrib/plugins/viewvariables/__init__.py:69 msgid "File variables" -msgstr "" +msgstr "Failimuutujad" #: contrib/plugins/viewvariables/__init__.py:74 msgid "Hidden variables" -msgstr "" +msgstr "Peidetud muutujad" #: contrib/plugins/viewvariables/__init__.py:79 msgid "Tag variables" -msgstr "" +msgstr "Sildimuutujad" #: contrib/plugins/viewvariables/ui_variables_dialog.py:73 msgid "Variable" -msgstr "" +msgstr "Muutuja" #: contrib/plugins/viewvariables/ui_variables_dialog.py:75 msgid "Value" -msgstr "" +msgstr "Väärtus" #: picard/acoustid.py:109 #, python-format msgid "AcoustID lookup network error for '%(filename)s'!" -msgstr "" +msgstr "Faili \"%(filename)s\" AcoustID päringul ilmnes võrguviga." #: picard/acoustid.py:133 #, python-format msgid "AcoustID lookup failed for '%(filename)s'!" -msgstr "" +msgstr "Faili \"%(filename)s\" AcoustID päring nurjus." #: picard/acoustid.py:155 #, python-format msgid "AcoustID lookup returned no result for file '%(filename)s'" -msgstr "" +msgstr "Faili \"%(filename)s\" AcoustID päringule ei saadud vastust." #: picard/acoustid.py:166 #, python-format msgid "Looking up the fingerprint for file '%(filename)s' ..." -msgstr "" +msgstr "Faili \"%(filename)s\" sõrmejälje otsimine..." #: picard/acoustidmanager.py:80 msgid "Submitting AcoustIDs ..." -msgstr "" +msgstr "AcoustID-de edastamine..." #: picard/acoustidmanager.py:94 #, python-format msgid "AcoustID submission failed with error '%(error)s'" -msgstr "" +msgstr "AcoustID edastamine nurjus veateatega \"%(error)s\"" #: picard/acoustidmanager.py:102 msgid "AcoustIDs successfully submitted." @@ -228,12 +228,12 @@ msgstr "[albumi \"%s\" laadimine polnud võimalik]" #: picard/album.py:277 #, python-format msgid "Album %(id)s loaded: %(artist)s - %(album)s" -msgstr "" +msgstr "Album \"%(id)s\" laaditud: %(artist)s - %(album)s" #: picard/album.py:294 #, python-format msgid "Loading album %(id)s ..." -msgstr "" +msgstr "Albumi \"%(id)s\" laadimine..." #: picard/album.py:303 msgid "[loading album information]" @@ -249,36 +249,36 @@ msgstr[1] "; %i pilti" #: picard/cluster.py:155 picard/cluster.py:168 #, python-format msgid "No matching releases for cluster %(album)s" -msgstr "" +msgstr "Rühmale \"%(album)s\" vastavaid väljalaskeid pole" #: picard/cluster.py:174 #, python-format msgid "Cluster %(album)s identified!" -msgstr "" +msgstr "Rühm \"%(album)s\" tuvastatud!" #: picard/cluster.py:185 #, python-format msgid "Looking up the metadata for cluster %(album)s..." -msgstr "" +msgstr "Metaandmete otsimine rühmale \"%(album)s\"..." #: picard/collection.py:64 #, python-format msgid "Added %(count)i release to collection \"%(name)s\"" msgid_plural "Added %(count)i releases to collection \"%(name)s\"" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "Kogusse \"%(name)s\" lisati %(count)i väljalase" +msgstr[1] "Kogusse \"%(name)s\" lisati %(count)i väljalaset" #: picard/collection.py:86 #, python-format msgid "Removed %(count)i release from collection \"%(name)s\"" msgid_plural "Removed %(count)i releases from collection \"%(name)s\"" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "Kogust \"%(name)s\" eemaldati %(count)i väljalase" +msgstr[1] "Kogust \"%(name)s\" eemaldati %(count)i väljalaset" #: picard/collection.py:100 #, python-format msgid "Error loading collections: %(error)s" -msgstr "" +msgstr "Viga kogude laadimisel: %(error)s" #: picard/config_upgrade.py:58 picard/config_upgrade.py:71 msgid "Various Artists file naming scheme removal" @@ -364,13 +364,13 @@ msgstr "Rootsi" #: picard/coverart.py:85 #, python-format msgid "Cover art of type '%(type)s' downloaded for %(albumid)s from %(host)s" -msgstr "" +msgstr "Albumi \"%(albumid)s\" kaanepilt (%(type)s) alla laaditud saidilt \"%(host)s\"" #: picard/coverart.py:256 #, python-format msgid "" -"Downloading cover art of type '%(type)s' for %(albumid)s from %(host)s .." -msgstr "" +"Downloading cover art of type '%(type)s' for %(albumid)s from %(host)s ..." +msgstr "Albumi \"%(albumid)s\" kaanepildi (%(type)s) allalaadimine saidilt \"%(host)s\"..." #: picard/coverartarchive.py:30 msgid "Unknown" @@ -379,22 +379,22 @@ msgstr "Teadmata" #: picard/file.py:494 #, python-format msgid "No matching tracks for file '%(filename)s'" -msgstr "" +msgstr "Failile \"%(filename)s\" vastavaid lugusid pole" #: picard/file.py:510 #, python-format msgid "No matching tracks above the threshold for file '%(filename)s'" -msgstr "" +msgstr "Failile \"%(filename)s\" üle seatud läve vastavaid lugusid pole" #: picard/file.py:517 #, python-format msgid "File '%(filename)s' identified!" -msgstr "" +msgstr "Fail \"%(filename)s\" tuvastatud!" #: picard/file.py:537 #, python-format msgid "Looking up the metadata for file %(filename)s ..." -msgstr "" +msgstr "Metaandmete otsimine failile \"%(filename)s\"..." #: picard/releasegroup.py:53 msgid "Tracks" @@ -432,13 +432,13 @@ msgstr "[väljalaskeinfo puudub]" #, python-format msgid "Adding %(count)d file from '%(directory)s' ..." msgid_plural "Adding %(count)d files from '%(directory)s' ..." -msgstr[0] "" -msgstr[1] "" +msgstr[0] "%(count)d faili lisamine kataloogist \"%(directory)s\"..." +msgstr[1] "%(count)d faili lisamine kataloogist \"%(directory)s\"..." #: picard/tagger.py:512 #, python-format msgid "Removing album %(id)s: %(artist)s - %(album)s" -msgstr "" +msgstr "Albumi \"%(id)s\" (%(artist)s - %(album)s) eemaldamine" #: picard/tagger.py:528 msgid "CD Lookup Error" @@ -606,7 +606,7 @@ msgstr "Kogud" #: picard/ui/itemviews.py:365 msgid "P&lugins" -msgstr "" +msgstr "Pluginad" #: picard/ui/itemviews.py:541 msgid "file view" @@ -634,11 +634,11 @@ msgstr "Logi" #: picard/ui/logview.py:113 msgid "Debug mode" -msgstr "" +msgstr "Silumisrežiim" #: picard/ui/logview.py:134 msgid "Activity History" -msgstr "" +msgstr "Toiminguajalugu" #: picard/ui/mainwindow.py:74 msgid "MusicBrainz Picard" @@ -674,7 +674,7 @@ msgid "" "Picard listens on this port to integrate with your browser. When you " "\"Search\" or \"Open in Browser\" from Picard, clicking the \"Tagger\" " "button on the web page loads the release into Picard." -msgstr "" +msgstr "Picard kuulab seda porti veebilehitsejaga suhtlemiseks. Kui klõpsad Picardis \"Otsi\" või \"Ava veebilehitsejas\", siis saad pärast klõpsata veebilehel nuppu \"Sildistaja\" (\"Tagger\"), et vastav väljalase Picardi laadida." #: picard/ui/mainwindow.py:243 #, python-format @@ -757,7 +757,7 @@ msgstr "Edasta" #: picard/ui/mainwindow.py:356 msgid "Submit acoustic fingerprints" -msgstr "" +msgstr "Audiosõrmejälgede edastamine" #: picard/ui/mainwindow.py:360 msgid "E&xit" @@ -801,11 +801,11 @@ msgstr "Otsi" #: picard/ui/mainwindow.py:392 msgid "Lookup &CD..." -msgstr "" +msgstr "&CD päring..." #: picard/ui/mainwindow.py:393 msgid "Lookup the details of the CD in your drive" -msgstr "" +msgstr "CD-seadmes oleva plaadi andmete otsimine" #: picard/ui/mainwindow.py:395 msgid "Ctrl+K" @@ -833,7 +833,7 @@ msgstr "&Päring" #: picard/ui/mainwindow.py:411 msgid "Lookup selected items in MusicBrainz" -msgstr "" +msgstr "Valiku otsimine MusicBrainzist" #: picard/ui/mainwindow.py:416 msgid "Ctrl+L" @@ -873,31 +873,31 @@ msgstr "Sildid &failinime põhjal..." #: picard/ui/mainwindow.py:447 msgid "&Open My Collections in Browser" -msgstr "" +msgstr "Ava minu kogud" #: picard/ui/mainwindow.py:451 msgid "View Error/Debug &Log" -msgstr "" +msgstr "Ava vigade/silumisteabe logi" #: picard/ui/mainwindow.py:454 msgid "View Activity &History" -msgstr "" +msgstr "Vaata toiminguajalugu" #: picard/ui/mainwindow.py:461 msgid "&Play file" -msgstr "" +msgstr "Esita fail" #: picard/ui/mainwindow.py:462 msgid "Play the file in your default media player" -msgstr "" +msgstr "Faili esitamine vaikimisi meediamängijas" #: picard/ui/mainwindow.py:466 msgid "Open Containing &Folder" -msgstr "" +msgstr "Ava faili sisaldav kataloog" #: picard/ui/mainwindow.py:467 msgid "Open the containing folder in your file explorer" -msgstr "" +msgstr "Faili sisaldava kataloogi avamine failihalduris" #: picard/ui/mainwindow.py:492 msgid "&File" @@ -938,12 +938,12 @@ msgstr "Kõik toetatud vormingud" #: picard/ui/mainwindow.py:695 #, python-format msgid "Adding directory: '%(directory)s' ..." -msgstr "" +msgstr "Kataloogi \"%(directory)s\" lisamine..." #: picard/ui/mainwindow.py:702 #, python-format msgid "Adding multiple directories from '%(directory)s' ..." -msgstr "" +msgstr "Mitme kataloogi lisamine asukohast \"%(directory)s\"..." #: picard/ui/mainwindow.py:767 msgid "Configuration Required" @@ -958,22 +958,22 @@ msgstr "Audiosõrmejälgede süsteem pole veel seadistatud. Kas soovid seda kohe #: picard/ui/mainwindow.py:848 #, python-format msgid "%(filename)s (error: %(error)s)" -msgstr "" +msgstr "%(filename)s (viga: %(error)s)" #: picard/ui/mainwindow.py:854 #, python-format msgid "%(filename)s" -msgstr "" +msgstr "%(filename)s" #: picard/ui/mainwindow.py:864 #, python-format msgid "%(filename)s (%(similarity)d%%) (error: %(error)s)" -msgstr "" +msgstr "%(filename)s (%(similarity)d%%) (viga: %(error)s)" #: picard/ui/mainwindow.py:871 #, python-format msgid "%(filename)s (%(similarity)d%%)" -msgstr "" +msgstr "%(filename)s (%(similarity)d%%)" #: picard/ui/metadatabox.py:82 #, python-format @@ -1633,7 +1633,7 @@ msgstr "Regulaaravaldise viga" #: picard/ui/options/cover.py:44 msgid "title" -msgstr "" +msgstr "pealkiri" #: picard/ui/options/cover.py:68 msgid "Cover Art" @@ -1939,7 +1939,7 @@ msgstr "Plaadi-ID" #: picard/util/tags.py:67 msgid "Artist Website" -msgstr "" +msgstr "Artisti veebisait" #: picard/util/tags.py:68 msgid "Compilation (iTunes)" @@ -1959,7 +1959,7 @@ msgstr "Kodeerija" #: picard/util/tags.py:72 msgid "Encoder Settings" -msgstr "" +msgstr "Kodeerija seadistused" #: picard/util/tags.py:73 msgid "Performer" diff --git a/po/fi.po b/po/fi.po index cc87643a0..5400147e9 100644 --- a/po/fi.po +++ b/po/fi.po @@ -12,14 +12,14 @@ msgid "" msgstr "" "Project-Id-Version: MusicBrainz\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2014-05-03 17:28+0200\n" -"PO-Revision-Date: 2014-05-04 08:44+0000\n" +"POT-Creation-Date: 2014-05-05 07:15+0200\n" +"PO-Revision-Date: 2014-05-05 11:57+0000\n" "Last-Translator: nikki\n" "Language-Team: Finnish (http://www.transifex.com/projects/p/musicbrainz/language/fi/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 1.3\n" +"Generated-By: Babel 0.9.6\n" "Language: fi\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" @@ -370,7 +370,7 @@ msgstr "" #: picard/coverart.py:256 #, python-format msgid "" -"Downloading cover art of type '%(type)s' for %(albumid)s from %(host)s .." +"Downloading cover art of type '%(type)s' for %(albumid)s from %(host)s ..." msgstr "" #: picard/coverartarchive.py:30 diff --git a/po/fo.po b/po/fo.po index 76ebcacb9..64ce51aa7 100644 --- a/po/fo.po +++ b/po/fo.po @@ -8,14 +8,14 @@ msgid "" msgstr "" "Project-Id-Version: MusicBrainz\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2014-05-03 17:28+0200\n" -"PO-Revision-Date: 2014-05-04 08:44+0000\n" +"POT-Creation-Date: 2014-05-05 07:15+0200\n" +"PO-Revision-Date: 2014-05-05 11:57+0000\n" "Last-Translator: nikki\n" "Language-Team: Faroese (http://www.transifex.com/projects/p/musicbrainz/language/fo/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 1.3\n" +"Generated-By: Babel 0.9.6\n" "Language: fo\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" @@ -366,7 +366,7 @@ msgstr "" #: picard/coverart.py:256 #, python-format msgid "" -"Downloading cover art of type '%(type)s' for %(albumid)s from %(host)s .." +"Downloading cover art of type '%(type)s' for %(albumid)s from %(host)s ..." msgstr "" #: picard/coverartarchive.py:30 diff --git a/po/fr.po b/po/fr.po index 3b6e4804c..ce3e75f4d 100644 --- a/po/fr.po +++ b/po/fr.po @@ -21,14 +21,14 @@ msgid "" msgstr "" "Project-Id-Version: MusicBrainz\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2014-05-03 17:28+0200\n" -"PO-Revision-Date: 2014-05-04 20:11+0000\n" +"POT-Creation-Date: 2014-05-05 07:15+0200\n" +"PO-Revision-Date: 2014-05-16 18:04+0000\n" "Last-Translator: Alain-Olivier Breysse\n" "Language-Team: French (http://www.transifex.com/projects/p/musicbrainz/language/fr/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 1.3\n" +"Generated-By: Babel 0.9.6\n" "Language: fr\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n" @@ -379,7 +379,7 @@ msgstr "L'illustration de type « %(type)s » a été téléchargée pour %(albu #: picard/coverart.py:256 #, python-format msgid "" -"Downloading cover art of type '%(type)s' for %(albumid)s from %(host)s .." +"Downloading cover art of type '%(type)s' for %(albumid)s from %(host)s ..." msgstr "Téléchargement d'une illustration de type « %(type)s » pour %(albumid)s à partir de %(host)s..." #: picard/coverartarchive.py:30 @@ -1945,7 +1945,7 @@ msgstr "Empreinte AcoustID" #: picard/util/tags.py:66 msgid "Disc Id" -msgstr "Id du disque" +msgstr "ID du disque" #: picard/util/tags.py:67 msgid "Artist Website" diff --git a/po/fy.po b/po/fy.po index b36b592f9..29eaa58ac 100644 --- a/po/fy.po +++ b/po/fy.po @@ -8,14 +8,14 @@ msgid "" msgstr "" "Project-Id-Version: MusicBrainz\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2014-05-03 17:28+0200\n" -"PO-Revision-Date: 2014-05-04 08:44+0000\n" +"POT-Creation-Date: 2014-05-05 07:15+0200\n" +"PO-Revision-Date: 2014-05-05 11:57+0000\n" "Last-Translator: nikki\n" "Language-Team: Western Frisian (http://www.transifex.com/projects/p/musicbrainz/language/fy/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 1.3\n" +"Generated-By: Babel 0.9.6\n" "Language: fy\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" @@ -366,7 +366,7 @@ msgstr "" #: picard/coverart.py:256 #, python-format msgid "" -"Downloading cover art of type '%(type)s' for %(albumid)s from %(host)s .." +"Downloading cover art of type '%(type)s' for %(albumid)s from %(host)s ..." msgstr "" #: picard/coverartarchive.py:30 diff --git a/po/gl.po b/po/gl.po index 7e1876fd2..86b9d6366 100644 --- a/po/gl.po +++ b/po/gl.po @@ -8,14 +8,14 @@ msgid "" msgstr "" "Project-Id-Version: MusicBrainz\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2014-05-03 17:28+0200\n" -"PO-Revision-Date: 2014-05-04 08:44+0000\n" +"POT-Creation-Date: 2014-05-05 07:15+0200\n" +"PO-Revision-Date: 2014-05-05 11:57+0000\n" "Last-Translator: nikki\n" "Language-Team: Galician (http://www.transifex.com/projects/p/musicbrainz/language/gl/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 1.3\n" +"Generated-By: Babel 0.9.6\n" "Language: gl\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" @@ -366,7 +366,7 @@ msgstr "" #: picard/coverart.py:256 #, python-format msgid "" -"Downloading cover art of type '%(type)s' for %(albumid)s from %(host)s .." +"Downloading cover art of type '%(type)s' for %(albumid)s from %(host)s ..." msgstr "" #: picard/coverartarchive.py:30 diff --git a/po/he.po b/po/he.po index b233ec4c5..5066717ce 100644 --- a/po/he.po +++ b/po/he.po @@ -8,14 +8,14 @@ msgid "" msgstr "" "Project-Id-Version: MusicBrainz\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2014-05-03 17:28+0200\n" -"PO-Revision-Date: 2014-05-04 08:44+0000\n" +"POT-Creation-Date: 2014-05-05 07:15+0200\n" +"PO-Revision-Date: 2014-05-05 11:57+0000\n" "Last-Translator: nikki\n" "Language-Team: Hebrew (http://www.transifex.com/projects/p/musicbrainz/language/he/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 1.3\n" +"Generated-By: Babel 0.9.6\n" "Language: he\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" @@ -366,7 +366,7 @@ msgstr "" #: picard/coverart.py:256 #, python-format msgid "" -"Downloading cover art of type '%(type)s' for %(albumid)s from %(host)s .." +"Downloading cover art of type '%(type)s' for %(albumid)s from %(host)s ..." msgstr "" #: picard/coverartarchive.py:30 diff --git a/po/hu.po b/po/hu.po index c849eb020..5a16042f5 100644 --- a/po/hu.po +++ b/po/hu.po @@ -8,14 +8,14 @@ msgid "" msgstr "" "Project-Id-Version: MusicBrainz\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2014-05-03 17:28+0200\n" -"PO-Revision-Date: 2014-05-04 08:44+0000\n" +"POT-Creation-Date: 2014-05-05 07:15+0200\n" +"PO-Revision-Date: 2014-05-05 11:57+0000\n" "Last-Translator: nikki\n" "Language-Team: Hungarian (http://www.transifex.com/projects/p/musicbrainz/language/hu/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 1.3\n" +"Generated-By: Babel 0.9.6\n" "Language: hu\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" @@ -366,7 +366,7 @@ msgstr "" #: picard/coverart.py:256 #, python-format msgid "" -"Downloading cover art of type '%(type)s' for %(albumid)s from %(host)s .." +"Downloading cover art of type '%(type)s' for %(albumid)s from %(host)s ..." msgstr "" #: picard/coverartarchive.py:30 diff --git a/po/id.po b/po/id.po index e1be3260d..0a7e33323 100644 --- a/po/id.po +++ b/po/id.po @@ -9,14 +9,14 @@ msgid "" msgstr "" "Project-Id-Version: MusicBrainz\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2014-05-03 17:28+0200\n" -"PO-Revision-Date: 2014-05-04 08:44+0000\n" +"POT-Creation-Date: 2014-05-05 07:15+0200\n" +"PO-Revision-Date: 2014-05-05 11:57+0000\n" "Last-Translator: nikki\n" "Language-Team: Indonesian (http://www.transifex.com/projects/p/musicbrainz/language/id/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 1.3\n" +"Generated-By: Babel 0.9.6\n" "Language: id\n" "Plural-Forms: nplurals=1; plural=0;\n" @@ -364,7 +364,7 @@ msgstr "" #: picard/coverart.py:256 #, python-format msgid "" -"Downloading cover art of type '%(type)s' for %(albumid)s from %(host)s .." +"Downloading cover art of type '%(type)s' for %(albumid)s from %(host)s ..." msgstr "" #: picard/coverartarchive.py:30 diff --git a/po/is.po b/po/is.po index 4f6612645..16eed528c 100644 --- a/po/is.po +++ b/po/is.po @@ -8,14 +8,14 @@ msgid "" msgstr "" "Project-Id-Version: MusicBrainz\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2014-05-03 17:28+0200\n" -"PO-Revision-Date: 2014-05-04 08:44+0000\n" +"POT-Creation-Date: 2014-05-05 07:15+0200\n" +"PO-Revision-Date: 2014-05-05 11:57+0000\n" "Last-Translator: nikki\n" "Language-Team: Icelandic (http://www.transifex.com/projects/p/musicbrainz/language/is/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 1.3\n" +"Generated-By: Babel 0.9.6\n" "Language: is\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" @@ -366,7 +366,7 @@ msgstr "" #: picard/coverart.py:256 #, python-format msgid "" -"Downloading cover art of type '%(type)s' for %(albumid)s from %(host)s .." +"Downloading cover art of type '%(type)s' for %(albumid)s from %(host)s ..." msgstr "" #: picard/coverartarchive.py:30 diff --git a/po/it.po b/po/it.po index d0a05825b..a49938de7 100644 --- a/po/it.po +++ b/po/it.po @@ -11,14 +11,14 @@ msgid "" msgstr "" "Project-Id-Version: MusicBrainz\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2014-05-03 17:28+0200\n" -"PO-Revision-Date: 2014-05-04 11:12+0000\n" +"POT-Creation-Date: 2014-05-05 07:15+0200\n" +"PO-Revision-Date: 2014-05-05 16:37+0000\n" "Last-Translator: Luca Salini \n" "Language-Team: Italian (http://www.transifex.com/projects/p/musicbrainz/language/it/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 1.3\n" +"Generated-By: Babel 0.9.6\n" "Language: it\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" @@ -369,7 +369,7 @@ msgstr "Copertina di tipo '%(type)s' scaricata da %(host)s per %(albumid)s" #: picard/coverart.py:256 #, python-format msgid "" -"Downloading cover art of type '%(type)s' for %(albumid)s from %(host)s .." +"Downloading cover art of type '%(type)s' for %(albumid)s from %(host)s ..." msgstr "Download della copertina di tipo '%(type)s' per %(albumid)s da %(host)s in corso..." #: picard/coverartarchive.py:30 diff --git a/po/ja.po b/po/ja.po index 9c3a16bdf..8b2d6c102 100644 --- a/po/ja.po +++ b/po/ja.po @@ -11,14 +11,14 @@ msgid "" msgstr "" "Project-Id-Version: MusicBrainz\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2014-05-03 17:28+0200\n" -"PO-Revision-Date: 2014-05-04 08:44+0000\n" +"POT-Creation-Date: 2014-05-05 07:15+0200\n" +"PO-Revision-Date: 2014-05-05 11:57+0000\n" "Last-Translator: nikki\n" "Language-Team: Japanese (http://www.transifex.com/projects/p/musicbrainz/language/ja/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 1.3\n" +"Generated-By: Babel 0.9.6\n" "Language: ja\n" "Plural-Forms: nplurals=1; plural=0;\n" @@ -366,7 +366,7 @@ msgstr "" #: picard/coverart.py:256 #, python-format msgid "" -"Downloading cover art of type '%(type)s' for %(albumid)s from %(host)s .." +"Downloading cover art of type '%(type)s' for %(albumid)s from %(host)s ..." msgstr "" #: picard/coverartarchive.py:30 diff --git a/po/ko.po b/po/ko.po index a48615343..38ed140a3 100644 --- a/po/ko.po +++ b/po/ko.po @@ -8,14 +8,14 @@ msgid "" msgstr "" "Project-Id-Version: MusicBrainz\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2014-05-03 17:28+0200\n" -"PO-Revision-Date: 2014-05-04 08:44+0000\n" +"POT-Creation-Date: 2014-05-05 07:15+0200\n" +"PO-Revision-Date: 2014-05-05 11:57+0000\n" "Last-Translator: nikki\n" "Language-Team: Korean (http://www.transifex.com/projects/p/musicbrainz/language/ko/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 1.3\n" +"Generated-By: Babel 0.9.6\n" "Language: ko\n" "Plural-Forms: nplurals=1; plural=0;\n" @@ -363,7 +363,7 @@ msgstr "" #: picard/coverart.py:256 #, python-format msgid "" -"Downloading cover art of type '%(type)s' for %(albumid)s from %(host)s .." +"Downloading cover art of type '%(type)s' for %(albumid)s from %(host)s ..." msgstr "" #: picard/coverartarchive.py:30 diff --git a/po/mr.po b/po/mr.po index 8e342f401..1f41bf7a0 100644 --- a/po/mr.po +++ b/po/mr.po @@ -8,14 +8,14 @@ msgid "" msgstr "" "Project-Id-Version: MusicBrainz\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2014-05-03 17:28+0200\n" -"PO-Revision-Date: 2014-05-04 08:44+0000\n" +"POT-Creation-Date: 2014-05-05 07:15+0200\n" +"PO-Revision-Date: 2014-05-05 11:57+0000\n" "Last-Translator: nikki\n" "Language-Team: Marathi (http://www.transifex.com/projects/p/musicbrainz/language/mr/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 1.3\n" +"Generated-By: Babel 0.9.6\n" "Language: mr\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" @@ -366,7 +366,7 @@ msgstr "" #: picard/coverart.py:256 #, python-format msgid "" -"Downloading cover art of type '%(type)s' for %(albumid)s from %(host)s .." +"Downloading cover art of type '%(type)s' for %(albumid)s from %(host)s ..." msgstr "" #: picard/coverartarchive.py:30 diff --git a/po/nb.po b/po/nb.po index e8a0ce578..8172e8390 100644 --- a/po/nb.po +++ b/po/nb.po @@ -4,18 +4,19 @@ # # Translators: # Zaphod Beeblebrox, 2013 +# Zaphod Beeblebrox, 2014 msgid "" msgstr "" "Project-Id-Version: MusicBrainz\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2014-05-03 17:28+0200\n" -"PO-Revision-Date: 2014-05-04 08:44+0000\n" -"Last-Translator: nikki\n" +"POT-Creation-Date: 2014-05-05 07:15+0200\n" +"PO-Revision-Date: 2014-05-10 11:48+0000\n" +"Last-Translator: Zaphod Beeblebrox\n" "Language-Team: Norwegian Bokmål (http://www.transifex.com/projects/p/musicbrainz/language/nb/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 1.3\n" +"Generated-By: Babel 0.9.6\n" "Language: nb\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" @@ -41,7 +42,7 @@ msgstr "" #: contrib/plugins/lastfm/ui_options_lastfm.py:99 msgid "Last.fm" -msgstr "" +msgstr "Last.fm" #: contrib/plugins/lastfm/ui_options_lastfm.py:100 msgid "Use track tags" @@ -240,8 +241,8 @@ msgstr "" #, python-format msgid "; %i image" msgid_plural "; %i images" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "; %i bilde" +msgstr[1] "; %i bilder" #: picard/cluster.py:155 picard/cluster.py:168 #, python-format @@ -304,7 +305,7 @@ msgstr "Fjern" #: picard/const.py:90 msgid "Danish" -msgstr "" +msgstr "Dansk" #: picard/const.py:91 msgid "German" @@ -366,12 +367,12 @@ msgstr "" #: picard/coverart.py:256 #, python-format msgid "" -"Downloading cover art of type '%(type)s' for %(albumid)s from %(host)s .." +"Downloading cover art of type '%(type)s' for %(albumid)s from %(host)s ..." msgstr "" #: picard/coverartarchive.py:30 msgid "Unknown" -msgstr "" +msgstr "Ukjent" #: picard/file.py:494 #, python-format @@ -395,23 +396,23 @@ msgstr "" #: picard/releasegroup.py:53 msgid "Tracks" -msgstr "" +msgstr "Spor" #: picard/releasegroup.py:54 msgid "Year" -msgstr "" +msgstr "År" #: picard/releasegroup.py:55 picard/ui/cdlookup.py:35 msgid "Country" -msgstr "" +msgstr "Land" #: picard/releasegroup.py:56 msgid "Format" -msgstr "" +msgstr "Format" #: picard/releasegroup.py:57 msgid "Label" -msgstr "" +msgstr "Plateselskap" #: picard/releasegroup.py:58 msgid "Cat No" @@ -419,7 +420,7 @@ msgstr "" #: picard/releasegroup.py:88 msgid "[no barcode]" -msgstr "" +msgstr "[ingen strekkode]" #: picard/releasegroup.py:108 msgid "[no release info]" @@ -464,7 +465,7 @@ msgstr "Dato" #: picard/ui/cdlookup.py:36 msgid "Labels" -msgstr "" +msgstr "Plateselskap" #: picard/ui/cdlookup.py:36 msgid "Catalog #s" @@ -555,15 +556,15 @@ msgstr "" #: picard/ui/infodialog.py:139 picard/ui/ui_infodialog.py:73 msgid "&Info" -msgstr "" +msgstr "&Info" #: picard/ui/infostatus.py:51 msgid "Files" -msgstr "" +msgstr "Filer" #: picard/ui/infostatus.py:52 msgid "Albums" -msgstr "" +msgstr "Albumer" #: picard/ui/infostatus.py:53 msgid "Pending files" @@ -664,7 +665,7 @@ msgstr "" #: picard/ui/mainwindow.py:216 msgid "Ready" -msgstr "" +msgstr "Klar" #: picard/ui/mainwindow.py:220 msgid "" @@ -1136,11 +1137,11 @@ msgstr "" #: picard/ui/ui_options_cover.py:138 msgid "Amazon" -msgstr "" +msgstr "Amazon" #: picard/ui/ui_options_cover.py:139 picard/ui/ui_options_cover.py:141 msgid "Cover Art Archive" -msgstr "" +msgstr "Cover Art Archive" #: picard/ui/ui_options_cover.py:140 msgid "Sites on the whitelist" @@ -1186,7 +1187,7 @@ msgstr "" #: picard/ui/ui_options_fingerprinting.py:72 msgid "Use AcoustID" -msgstr "" +msgstr "Bruk AcoustID" #: picard/ui/ui_options_fingerprinting.py:73 msgid "AcoustID Settings" @@ -1199,15 +1200,15 @@ msgstr "" #: picard/ui/ui_options_fingerprinting.py:75 #: picard/ui/ui_options_interface.py:75 picard/ui/ui_options_renaming.py:134 msgid "Browse..." -msgstr "" +msgstr "Bla..." #: picard/ui/ui_options_fingerprinting.py:76 msgid "Download..." -msgstr "" +msgstr "Last ned..." #: picard/ui/ui_options_fingerprinting.py:77 msgid "API key:" -msgstr "" +msgstr "API nøkkel:" #: picard/ui/ui_options_fingerprinting.py:78 msgid "Get API key..." @@ -1414,7 +1415,7 @@ msgstr "" #: picard/ui/ui_options_ratings.py:51 msgid "E-mail:" -msgstr "" +msgstr "E-post:" #: picard/ui/ui_options_ratings.py:52 msgid "Submit ratings to MusicBrainz" @@ -1450,7 +1451,7 @@ msgstr "Bytt ut ikke-ASCII tegn" #: picard/ui/ui_options_renaming.py:132 msgid "Windows compatibility" -msgstr "" +msgstr "Windows kombatibilitet" #: picard/ui/ui_options_renaming.py:133 msgid "Move files to this directory when saving:" @@ -1519,11 +1520,11 @@ msgstr "" #: picard/ui/ui_options_tags.py:162 msgid "2.4" -msgstr "" +msgstr "2,4" #: picard/ui/ui_options_tags.py:163 msgid "2.3" -msgstr "" +msgstr "2,3" #: picard/ui/ui_options_tags.py:164 msgid "ID3v2 Text Encoding" @@ -1582,7 +1583,7 @@ msgstr "&Ok" #: picard/ui/util.py:34 msgid "&Cancel" -msgstr "" +msgstr "&Avbryt" #: picard/ui/options/about.py:33 msgid "About" @@ -1590,7 +1591,7 @@ msgstr "Om..." #: picard/ui/options/about.py:48 msgid "is not installed" -msgstr "" +msgstr "er ikke installert" #: picard/ui/options/about.py:59 msgid "translator-credits" @@ -1688,7 +1689,7 @@ msgstr "" #: picard/ui/options/renaming.py:187 msgid "Error" -msgstr "" +msgstr "Feil" #: picard/ui/options/renaming.py:187 msgid "The location to move files to must not be empty." @@ -1709,62 +1710,62 @@ msgstr "" #: picard/util/bytes2human.py:33 #, python-format msgid "%s B" -msgstr "" +msgstr "%s B" #: picard/util/bytes2human.py:34 #, python-format msgid "%s kB" -msgstr "" +msgstr "%s kB" #: picard/util/bytes2human.py:35 #, python-format msgid "%s KiB" -msgstr "" +msgstr "%s KiB" #: picard/util/bytes2human.py:36 #, python-format msgid "%s MB" -msgstr "" +msgstr "%s MB" #: picard/util/bytes2human.py:37 #, python-format msgid "%s MiB" -msgstr "" +msgstr "%s MiB" #: picard/util/bytes2human.py:38 #, python-format msgid "%s GB" -msgstr "" +msgstr "%s GB" #: picard/util/bytes2human.py:39 #, python-format msgid "%s GiB" -msgstr "" +msgstr "%s GiB" #: picard/util/bytes2human.py:40 #, python-format msgid "%s TB" -msgstr "" +msgstr "%s TB" #: picard/util/bytes2human.py:41 #, python-format msgid "%s TiB" -msgstr "" +msgstr "%s TiB" #: picard/util/bytes2human.py:42 #, python-format msgid "%s PB" -msgstr "" +msgstr "%s PB" #: picard/util/bytes2human.py:43 #, python-format msgid "%s PiB" -msgstr "" +msgstr "%s PiB" #: picard/util/bytes2human.py:84 #, python-format msgid "%s " -msgstr "" +msgstr "%s " #: picard/util/tags.py:25 msgid "Original Release Date" @@ -1776,7 +1777,7 @@ msgstr "" #: picard/util/tags.py:27 msgid "Album Artist" -msgstr "" +msgstr "Album Artist" #: picard/util/tags.py:28 msgid "Track Number" @@ -1836,11 +1837,11 @@ msgstr "BPM" #: picard/util/tags.py:42 msgid "Copyright" -msgstr "" +msgstr "Kopibeskyttelse" #: picard/util/tags.py:43 msgid "License" -msgstr "" +msgstr "Lisens" #: picard/util/tags.py:44 msgid "Composer" @@ -1924,7 +1925,7 @@ msgstr "" #: picard/util/tags.py:64 msgid "AcoustID" -msgstr "" +msgstr "AcoustID" #: picard/util/tags.py:65 msgid "AcoustID Fingerprint" @@ -1944,7 +1945,7 @@ msgstr "" #: picard/util/tags.py:69 msgid "Comment" -msgstr "" +msgstr "Kommentar" #: picard/util/tags.py:70 msgid "Genre" @@ -1988,7 +1989,7 @@ msgstr "" #: picard/util/tags.py:81 msgid "Media" -msgstr "" +msgstr "Medie" #: picard/util/tags.py:82 msgid "Lyrics" @@ -2012,11 +2013,11 @@ msgstr "" #: picard/util/tags.py:88 msgid "Artists" -msgstr "" +msgstr "Artister" #: picard/util/tags.py:89 msgid "Work" -msgstr "" +msgstr "Verk" #: picard/util/webbrowser2.py:90 msgid "Web Browser Error" diff --git a/po/nl.po b/po/nl.po index b0bde09b2..43594236a 100644 --- a/po/nl.po +++ b/po/nl.po @@ -11,14 +11,14 @@ msgid "" msgstr "" "Project-Id-Version: MusicBrainz\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2014-05-03 17:28+0200\n" -"PO-Revision-Date: 2014-05-04 10:39+0000\n" +"POT-Creation-Date: 2014-05-05 07:15+0200\n" +"PO-Revision-Date: 2014-05-10 17:19+0000\n" "Last-Translator: Maurits Meulenbelt \n" "Language-Team: Dutch (http://www.transifex.com/projects/p/musicbrainz/language/nl/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 1.3\n" +"Generated-By: Babel 0.9.6\n" "Language: nl\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" @@ -243,7 +243,7 @@ msgstr "[albuminformatie laden]" #, python-format msgid "; %i image" msgid_plural "; %i images" -msgstr[0] "%i afbeelding" +msgstr[0] "; %i afbeelding" msgstr[1] "; %i afbeeldingen" #: picard/cluster.py:155 picard/cluster.py:168 @@ -265,15 +265,15 @@ msgstr "Metadata voor cluster %(album)s aan het opzoeken …" #, python-format msgid "Added %(count)i release to collection \"%(name)s\"" msgid_plural "Added %(count)i releases to collection \"%(name)s\"" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "%(count)i uitgave aan collectie „%(name)s“ toegevoegd" +msgstr[1] "%(count)i uitgaves aan collectie „%(name)s“ toegevoegd" #: picard/collection.py:86 #, python-format msgid "Removed %(count)i release from collection \"%(name)s\"" msgid_plural "Removed %(count)i releases from collection \"%(name)s\"" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "%(count)i uitgave uit collectie „%(name)s“ verwijderd" +msgstr[1] "%(count)i uitgaves uit collectie „%(name)s“ verwijderd" #: picard/collection.py:100 #, python-format @@ -369,7 +369,7 @@ msgstr "Afbeelding van het type '%(type)s' voor %(albumid)s van %(host)s geladen #: picard/coverart.py:256 #, python-format msgid "" -"Downloading cover art of type '%(type)s' for %(albumid)s from %(host)s .." +"Downloading cover art of type '%(type)s' for %(albumid)s from %(host)s ..." msgstr "Afbeelding van het type '%(type)s' voor %(albumid)s van %(host)s aan het laden …" #: picard/coverartarchive.py:30 @@ -530,7 +530,7 @@ msgstr "Bitrate:" #: picard/ui/infodialog.py:99 msgid "Sample rate:" -msgstr "Sample rate:" +msgstr "Bemonsteringsfrequentie:" #: picard/ui/infodialog.py:101 msgid "Bits per sample:" @@ -777,7 +777,7 @@ msgstr "Verwijder geselecteerde bestanden/mappen" #: picard/ui/mainwindow.py:371 msgid "Lookup in &Browser" -msgstr "Opzoeken in de &browser" +msgstr "In de &browser opzoeken" #: picard/ui/mainwindow.py:372 msgid "Lookup selected item on MusicBrainz website" @@ -865,7 +865,7 @@ msgstr "Bestanden &verplaatsen" #: picard/ui/mainwindow.py:439 msgid "Save &Tags" -msgstr "Bewaar &Labels" +msgstr "&Tags opslaan" #: picard/ui/mainwindow.py:444 msgid "Tags From &File Names..." @@ -893,7 +893,7 @@ msgstr "Speel het bestand in de standaard mediaspeler" #: picard/ui/mainwindow.py:466 msgid "Open Containing &Folder" -msgstr "Open de map met de &folder" +msgstr "Open de bevattende &folder" #: picard/ui/mainwindow.py:467 msgid "Open the containing folder in your file explorer" @@ -1095,7 +1095,7 @@ msgstr "Opties" #: picard/ui/ui_options_advanced.py:42 msgid "Advanced options" -msgstr "UItgebreide opties" +msgstr "Uitgebreide opties" #: picard/ui/ui_options_advanced.py:43 msgid "Ignore file paths matching the following regular expression:" @@ -1103,11 +1103,11 @@ msgstr "Negeer bestandspaden die overeenkomen met de volgende reguliere expressi #: picard/ui/ui_options_cdlookup.py:43 msgid "CD-ROM device to use for lookups:" -msgstr "CD-ROM-apparaat voor opzoeken van CD's:" +msgstr "CD-ROM-apparaat voor het opzoeken van CD's:" #: picard/ui/ui_options_cdlookup_select.py:50 msgid "Default CD-ROM drive to use for lookups:" -msgstr "Standaard CD-ROM-apparaat voor opzoeken van CD's:" +msgstr "Standaard CD-ROM-apparaat voor het opzoeken van CD's:" #: picard/ui/ui_options_cover.py:131 msgid "Location" @@ -1308,7 +1308,7 @@ msgstr "Minimale overeenkomst voor het opzoeken van bestanden:" #: picard/ui/ui_options_matching.py:79 msgid "Minimal similarity for cluster lookups:" -msgstr "Minimum overeenkomst voor opzoeken van clusters:" +msgstr "Minimum overeenkomst voor het opzoeken van clusters:" #: picard/ui/ui_options_metadata.py:101 picard/ui/options/metadata.py:29 msgid "Metadata" @@ -1393,7 +1393,7 @@ msgstr "Plugins installeren..." #: picard/ui/ui_options_plugins.py:132 msgid "Open plugin folder" -msgstr "Open plugin map" +msgstr "Pluginmap openen" #: picard/ui/ui_options_plugins.py:133 msgid "Download plugins" @@ -1771,7 +1771,7 @@ msgstr "%s " #: picard/util/tags.py:25 msgid "Original Release Date" -msgstr "Originele Release Datum" +msgstr "Originele Uitgavedatum" #: picard/util/tags.py:26 msgid "Original Year" @@ -1891,7 +1891,7 @@ msgstr "MusicBrainz opname-id" #: picard/util/tags.py:55 msgid "MusicBrainz Track Id" -msgstr "MusicBrainz Nummer-ID" +msgstr "MusicBrainz nummer-ID" #: picard/util/tags.py:56 msgid "MusicBrainz Release Id" diff --git a/po/oc.po b/po/oc.po index 919f799c4..ffbefb602 100644 --- a/po/oc.po +++ b/po/oc.po @@ -8,14 +8,14 @@ msgid "" msgstr "" "Project-Id-Version: MusicBrainz\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2014-05-03 17:28+0200\n" -"PO-Revision-Date: 2014-05-04 08:44+0000\n" +"POT-Creation-Date: 2014-05-05 07:15+0200\n" +"PO-Revision-Date: 2014-05-05 11:57+0000\n" "Last-Translator: nikki\n" "Language-Team: Occitan (post 1500) (http://www.transifex.com/projects/p/musicbrainz/language/oc/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 1.3\n" +"Generated-By: Babel 0.9.6\n" "Language: oc\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n" @@ -366,7 +366,7 @@ msgstr "" #: picard/coverart.py:256 #, python-format msgid "" -"Downloading cover art of type '%(type)s' for %(albumid)s from %(host)s .." +"Downloading cover art of type '%(type)s' for %(albumid)s from %(host)s ..." msgstr "" #: picard/coverartarchive.py:30 diff --git a/po/picard.pot b/po/picard.pot index 8b34bc864..e0deef4d8 100644 --- a/po/picard.pot +++ b/po/picard.pot @@ -8,14 +8,14 @@ msgid "" msgstr "" "Project-Id-Version: picard 1.3.0dev4\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2014-05-05 07:15+0200\n" +"POT-Creation-Date: 2014-05-24 18:36+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 0.9.6\n" +"Generated-By: Babel 1.3\n" #: contrib/plugins/albumartist_website.py:3 msgid "Album Artist Website" @@ -197,60 +197,60 @@ msgstr "" msgid "Looking up the fingerprint for file '%(filename)s' ..." msgstr "" -#: picard/acoustidmanager.py:80 +#: picard/acoustidmanager.py:81 msgid "Submitting AcoustIDs ..." msgstr "" -#: picard/acoustidmanager.py:94 +#: picard/acoustidmanager.py:95 #, python-format msgid "AcoustID submission failed with error '%(error)s'" msgstr "" -#: picard/acoustidmanager.py:102 +#: picard/acoustidmanager.py:103 msgid "AcoustIDs successfully submitted." msgstr "" -#: picard/album.py:65 picard/cluster.py:255 +#: picard/album.py:65 picard/cluster.py:264 msgid "Unmatched Files" msgstr "" -#: picard/album.py:188 +#: picard/album.py:189 #, python-format msgid "[could not load album %s]" msgstr "" -#: picard/album.py:277 +#: picard/album.py:279 #, python-format msgid "Album %(id)s loaded: %(artist)s - %(album)s" msgstr "" -#: picard/album.py:294 +#: picard/album.py:296 #, python-format msgid "Loading album %(id)s ..." msgstr "" -#: picard/album.py:303 +#: picard/album.py:300 msgid "[loading album information]" msgstr "" -#: picard/album.py:478 +#: picard/album.py:485 #, python-format msgid "; %i image" msgid_plural "; %i images" msgstr[0] "" msgstr[1] "" -#: picard/cluster.py:155 picard/cluster.py:168 +#: picard/cluster.py:158 picard/cluster.py:171 #, python-format msgid "No matching releases for cluster %(album)s" msgstr "" -#: picard/cluster.py:174 +#: picard/cluster.py:177 #, python-format msgid "Cluster %(album)s identified!" msgstr "" -#: picard/cluster.py:185 +#: picard/cluster.py:188 #, python-format msgid "Looking up the metadata for cluster %(album)s..." msgstr "" @@ -360,36 +360,36 @@ msgstr "" msgid "Swedish" msgstr "" -#: picard/coverart.py:85 +#: picard/coverart.py:197 #, python-format msgid "Cover art of type '%(type)s' downloaded for %(albumid)s from %(host)s" msgstr "" -#: picard/coverart.py:256 +#: picard/coverart.py:357 #, python-format msgid "Downloading cover art of type '%(type)s' for %(albumid)s from %(host)s ..." msgstr "" -#: picard/coverartarchive.py:30 +#: picard/coverartarchive.py:31 msgid "Unknown" msgstr "" -#: picard/file.py:494 +#: picard/file.py:499 #, python-format msgid "No matching tracks for file '%(filename)s'" msgstr "" -#: picard/file.py:510 +#: picard/file.py:515 #, python-format msgid "No matching tracks above the threshold for file '%(filename)s'" msgstr "" -#: picard/file.py:517 +#: picard/file.py:522 #, python-format msgid "File '%(filename)s' identified!" msgstr "" -#: picard/file.py:537 +#: picard/file.py:542 #, python-format msgid "Looking up the metadata for file %(filename)s ..." msgstr "" @@ -426,23 +426,23 @@ msgstr "" msgid "[no release info]" msgstr "" -#: picard/tagger.py:370 +#: picard/tagger.py:377 #, python-format msgid "Adding %(count)d file from '%(directory)s' ..." msgid_plural "Adding %(count)d files from '%(directory)s' ..." msgstr[0] "" msgstr[1] "" -#: picard/tagger.py:512 +#: picard/tagger.py:519 #, python-format msgid "Removing album %(id)s: %(artist)s - %(album)s" msgstr "" -#: picard/tagger.py:528 +#: picard/tagger.py:535 msgid "CD Lookup Error" msgstr "" -#: picard/tagger.py:529 +#: picard/tagger.py:536 #, python-format msgid "" "Error while reading CD:\n" @@ -486,7 +486,7 @@ msgid_plural "%s (%i releases)" msgstr[0] "" msgstr[1] "" -#: picard/ui/coverartbox.py:141 +#: picard/ui/coverartbox.py:143 msgid "View release on MusicBrainz" msgstr "" @@ -502,59 +502,59 @@ msgstr "" msgid "&Set as starting directory" msgstr "" -#: picard/ui/infodialog.py:37 picard/ui/infodialog.py:80 +#: picard/ui/infodialog.py:40 picard/ui/infodialog.py:89 msgid "Info" msgstr "" -#: picard/ui/infodialog.py:85 +#: picard/ui/infodialog.py:94 msgid "Filename:" msgstr "" -#: picard/ui/infodialog.py:87 +#: picard/ui/infodialog.py:96 msgid "Format:" msgstr "" -#: picard/ui/infodialog.py:91 +#: picard/ui/infodialog.py:100 msgid "Size:" msgstr "" -#: picard/ui/infodialog.py:95 +#: picard/ui/infodialog.py:104 msgid "Length:" msgstr "" -#: picard/ui/infodialog.py:97 +#: picard/ui/infodialog.py:106 msgid "Bitrate:" msgstr "" -#: picard/ui/infodialog.py:99 +#: picard/ui/infodialog.py:108 msgid "Sample rate:" msgstr "" -#: picard/ui/infodialog.py:101 +#: picard/ui/infodialog.py:110 msgid "Bits per sample:" msgstr "" -#: picard/ui/infodialog.py:105 +#: picard/ui/infodialog.py:114 msgid "Mono" msgstr "" -#: picard/ui/infodialog.py:107 +#: picard/ui/infodialog.py:116 msgid "Stereo" msgstr "" -#: picard/ui/infodialog.py:110 +#: picard/ui/infodialog.py:119 msgid "Channels:" msgstr "" -#: picard/ui/infodialog.py:121 +#: picard/ui/infodialog.py:130 msgid "Album Info" msgstr "" -#: picard/ui/infodialog.py:129 +#: picard/ui/infodialog.py:138 msgid "&Errors" msgstr "" -#: picard/ui/infodialog.py:139 picard/ui/ui_infodialog.py:73 +#: picard/ui/infodialog.py:148 picard/ui/ui_infodialog.py:73 msgid "&Info" msgstr "" @@ -1037,7 +1037,7 @@ msgid "" "password." msgstr "" -#: picard/ui/tagsfromfilenames.py:56 picard/ui/tagsfromfilenames.py:101 +#: picard/ui/tagsfromfilenames.py:61 picard/ui/tagsfromfilenames.py:109 msgid "File Name" msgstr "" @@ -1637,11 +1637,7 @@ msgstr "" msgid "Regex Error" msgstr "" -#: picard/ui/options/cover.py:44 -msgid "title" -msgstr "" - -#: picard/ui/options/cover.py:68 +#: picard/ui/options/cover.py:64 msgid "Cover Art" msgstr "" diff --git a/po/pl.po b/po/pl.po index 71c288107..35285d58e 100644 --- a/po/pl.po +++ b/po/pl.po @@ -10,14 +10,14 @@ msgid "" msgstr "" "Project-Id-Version: MusicBrainz\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2014-05-03 17:28+0200\n" -"PO-Revision-Date: 2014-05-04 08:44+0000\n" +"POT-Creation-Date: 2014-05-05 07:15+0200\n" +"PO-Revision-Date: 2014-05-05 11:57+0000\n" "Last-Translator: nikki\n" "Language-Team: Polish (http://www.transifex.com/projects/p/musicbrainz/language/pl/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 1.3\n" +"Generated-By: Babel 0.9.6\n" "Language: pl\n" "Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" @@ -371,7 +371,7 @@ msgstr "" #: picard/coverart.py:256 #, python-format msgid "" -"Downloading cover art of type '%(type)s' for %(albumid)s from %(host)s .." +"Downloading cover art of type '%(type)s' for %(albumid)s from %(host)s ..." msgstr "" #: picard/coverartarchive.py:30 diff --git a/po/pt.po b/po/pt.po index 2c1add61a..ccbb5c60e 100644 --- a/po/pt.po +++ b/po/pt.po @@ -9,14 +9,14 @@ msgid "" msgstr "" "Project-Id-Version: MusicBrainz\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2014-05-03 17:28+0200\n" -"PO-Revision-Date: 2014-05-04 08:44+0000\n" +"POT-Creation-Date: 2014-05-05 07:15+0200\n" +"PO-Revision-Date: 2014-05-05 11:57+0000\n" "Last-Translator: nikki\n" "Language-Team: Portuguese (http://www.transifex.com/projects/p/musicbrainz/language/pt/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 1.3\n" +"Generated-By: Babel 0.9.6\n" "Language: pt\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" @@ -367,7 +367,7 @@ msgstr "" #: picard/coverart.py:256 #, python-format msgid "" -"Downloading cover art of type '%(type)s' for %(albumid)s from %(host)s .." +"Downloading cover art of type '%(type)s' for %(albumid)s from %(host)s ..." msgstr "" #: picard/coverartarchive.py:30 diff --git a/po/pt_BR.po b/po/pt_BR.po index 35dad582d..76d234d4c 100644 --- a/po/pt_BR.po +++ b/po/pt_BR.po @@ -10,14 +10,14 @@ msgid "" msgstr "" "Project-Id-Version: MusicBrainz\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2014-05-03 17:28+0200\n" -"PO-Revision-Date: 2014-05-04 08:44+0000\n" +"POT-Creation-Date: 2014-05-05 07:15+0200\n" +"PO-Revision-Date: 2014-05-05 11:57+0000\n" "Last-Translator: nikki\n" "Language-Team: Portuguese (Brazil) (http://www.transifex.com/projects/p/musicbrainz/language/pt_BR/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 1.3\n" +"Generated-By: Babel 0.9.6\n" "Language: pt_BR\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n" @@ -368,7 +368,7 @@ msgstr "" #: picard/coverart.py:256 #, python-format msgid "" -"Downloading cover art of type '%(type)s' for %(albumid)s from %(host)s .." +"Downloading cover art of type '%(type)s' for %(albumid)s from %(host)s ..." msgstr "" #: picard/coverartarchive.py:30 diff --git a/po/ro.po b/po/ro.po index 17aefb94b..6cf879978 100644 --- a/po/ro.po +++ b/po/ro.po @@ -9,14 +9,14 @@ msgid "" msgstr "" "Project-Id-Version: MusicBrainz\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2014-05-03 17:28+0200\n" -"PO-Revision-Date: 2014-05-04 08:44+0000\n" +"POT-Creation-Date: 2014-05-05 07:15+0200\n" +"PO-Revision-Date: 2014-05-05 11:57+0000\n" "Last-Translator: nikki\n" "Language-Team: Romanian (http://www.transifex.com/projects/p/musicbrainz/language/ro/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 1.3\n" +"Generated-By: Babel 0.9.6\n" "Language: ro\n" "Plural-Forms: nplurals=3; plural=(n==1?0:(((n%100>19)||((n%100==0)&&(n!=0)))?2:1));\n" @@ -370,7 +370,7 @@ msgstr "" #: picard/coverart.py:256 #, python-format msgid "" -"Downloading cover art of type '%(type)s' for %(albumid)s from %(host)s .." +"Downloading cover art of type '%(type)s' for %(albumid)s from %(host)s ..." msgstr "" #: picard/coverartarchive.py:30 diff --git a/po/ru.po b/po/ru.po index 7b021705c..7eb56a99a 100644 --- a/po/ru.po +++ b/po/ru.po @@ -12,14 +12,14 @@ msgid "" msgstr "" "Project-Id-Version: MusicBrainz\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2014-05-03 17:28+0200\n" -"PO-Revision-Date: 2014-05-04 12:40+0000\n" +"POT-Creation-Date: 2014-05-05 07:15+0200\n" +"PO-Revision-Date: 2014-05-07 12:43+0000\n" "Last-Translator: Дмитрий Яковлев \n" "Language-Team: Russian (http://www.transifex.com/projects/p/musicbrainz/language/ru/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 1.3\n" +"Generated-By: Babel 0.9.6\n" "Language: ru\n" "Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" @@ -93,7 +93,7 @@ msgstr " %" #: contrib/plugins/replaygain/__init__.py:50 msgid "Calculate replay &gain..." -msgstr "Вычисления преобразования и усиления..." +msgstr "Вычисление преобразования и усиления..." #: contrib/plugins/replaygain/__init__.py:67 #, python-format @@ -112,7 +112,7 @@ msgstr "Не могу рассчитать replay gain для \"%(filename)s\"." #: contrib/plugins/replaygain/__init__.py:85 msgid "Calculate album &gain..." -msgstr "Вычисления усиления альбома..." +msgstr "Вычисление усиления альбома..." #: contrib/plugins/replaygain/__init__.py:113 #: contrib/plugins/replaygain/__init__.py:124 @@ -373,8 +373,8 @@ msgstr "Обложка типа '%(type)s' загружены %(albumid)s из % #: picard/coverart.py:256 #, python-format msgid "" -"Downloading cover art of type '%(type)s' for %(albumid)s from %(host)s .." -msgstr "Загрузка обложки типа '%(type)s' для %(albumid)s с %(host)s .." +"Downloading cover art of type '%(type)s' for %(albumid)s from %(host)s ..." +msgstr "Загрузка обложки типа '%(type)s' для %(albumid)s с %(host)s ..." #: picard/coverartarchive.py:30 msgid "Unknown" @@ -708,7 +708,7 @@ msgstr "&Вырезать" #: picard/ui/mainwindow.py:314 msgid "&Paste" -msgstr "В&ставить" +msgstr "&Вставить" #: picard/ui/mainwindow.py:319 msgid "&Help..." @@ -760,7 +760,7 @@ msgstr "Сохранить выбранные файлы" #: picard/ui/mainwindow.py:355 msgid "S&ubmit" -msgstr "Отправить" +msgstr "О&тправить" #: picard/ui/mainwindow.py:356 msgid "Submit acoustic fingerprints" @@ -784,7 +784,7 @@ msgstr "Убрать отмеченные файлы или альбомы" #: picard/ui/mainwindow.py:371 msgid "Lookup in &Browser" -msgstr "Обзор в %обозревателе" +msgstr "Обзор в &Браузере" #: picard/ui/mainwindow.py:372 msgid "Lookup selected item on MusicBrainz website" @@ -792,7 +792,7 @@ msgstr "Найти выбранное на сайте MusicBrainz" #: picard/ui/mainwindow.py:376 msgid "File &Browser" -msgstr "Обзор &файлов" +msgstr "&Обзор файлов" #: picard/ui/mainwindow.py:380 msgid "Ctrl+B" @@ -880,7 +880,7 @@ msgstr "Теги из имён &файлов…" #: picard/ui/mainwindow.py:447 msgid "&Open My Collections in Browser" -msgstr "&Открыть Мою Коллекцию в Браузере" +msgstr "&Открыть Коллекцию в Браузере" #: picard/ui/mainwindow.py:451 msgid "View Error/Debug &Log" @@ -888,7 +888,7 @@ msgstr "Просмотр &Журнала ошибок" #: picard/ui/mainwindow.py:454 msgid "View Activity &History" -msgstr "Просмотр активности &Истории" +msgstr "&Просмотр Истории активности" #: picard/ui/mainwindow.py:461 msgid "&Play file" @@ -900,7 +900,7 @@ msgstr "Воспроизвести этот файл в проигрывател #: picard/ui/mainwindow.py:466 msgid "Open Containing &Folder" -msgstr "Открыть содержащую &папку" +msgstr "&Открыть содержащую папку" #: picard/ui/mainwindow.py:467 msgid "Open the containing folder in your file explorer" @@ -1000,7 +1000,7 @@ msgstr[2] "(отсутствует у %d записей)" #: picard/ui/metadatabox.py:154 msgid "metadata view" -msgstr "вид на метаданные" +msgstr "просмотр метаданных" #: picard/ui/metadatabox.py:155 msgid "Displays original and new tags for the selected files" @@ -1008,11 +1008,11 @@ msgstr "Изначальные и новые значения ярлыков н #: picard/ui/metadatabox.py:157 msgid "Tag" -msgstr "Ярлык" +msgstr "Тэг" #: picard/ui/metadatabox.py:157 msgid "Original Value" -msgstr "Изначальное значение" +msgstr "Исходное значение" #: picard/ui/metadatabox.py:157 msgid "New Value" @@ -1020,7 +1020,7 @@ msgstr "Новое значение" #: picard/ui/metadatabox.py:180 msgid "Add New Tag..." -msgstr "Добавить новый ярлык..." +msgstr "Добавить новый тег..." #: picard/ui/metadatabox.py:182 msgid "Show Changes First" @@ -1153,11 +1153,11 @@ msgstr "Amazon" #: picard/ui/ui_options_cover.py:139 picard/ui/ui_options_cover.py:141 msgid "Cover Art Archive" -msgstr "Архив Обложек " +msgstr "Cover Art Archive" #: picard/ui/ui_options_cover.py:140 msgid "Sites on the whitelist" -msgstr "Сайт в белый список" +msgstr "Sites on the whitelist" #: picard/ui/ui_options_cover.py:142 msgid "Only use images of the following size:" @@ -1187,15 +1187,15 @@ msgstr "Загружать только утвержденные изображ msgid "" "Use the first image type as the filename. This will not change the filename " "of front images." -msgstr "Используйте образ первого типа в качестве имени файла. Это не изменит Имя файла изображения лицевой стороны." +msgstr "Первый тип изображения можно используйте как имя файла. Это не изменит имя файла изображения лицевой стороны." #: picard/ui/ui_options_fingerprinting.py:70 msgid "Audio Fingerprinting" -msgstr "Звуковые отпечатки" +msgstr "Звуковой слепок" #: picard/ui/ui_options_fingerprinting.py:71 msgid "Do not use audio fingerprinting" -msgstr "Не использовать аудио отпечатки" +msgstr "Не использовать аудио слепки" #: picard/ui/ui_options_fingerprinting.py:72 msgid "Use AcoustID" @@ -1207,7 +1207,7 @@ msgstr "Настройки AcoustID" #: picard/ui/ui_options_fingerprinting.py:74 msgid "Fingerprint calculator:" -msgstr "Калькулятор отпечатка:" +msgstr "Калькулятор слепка:" #: picard/ui/ui_options_fingerprinting.py:75 #: picard/ui/ui_options_interface.py:75 picard/ui/ui_options_renaming.py:134 @@ -1294,11 +1294,11 @@ msgstr "Использовать расширенный синтаксис за #: picard/ui/ui_options_interface.py:73 msgid "Show a quit confirmation dialog for unsaved changes" -msgstr "Показывать диалоговое окно подтверждения закройте для несохраненные изменения" +msgstr "Показать диалоговое окно подтверждения выхода при несохраненных изменений" #: picard/ui/ui_options_interface.py:74 msgid "Begin browsing in the following directory:" -msgstr "Открывать в следующем каталоге:" +msgstr "Открывать каталог при запуске:" #: picard/ui/ui_options_interface.py:76 msgid "User interface language:" @@ -1326,11 +1326,11 @@ msgstr "Метаданные" #: picard/ui/ui_options_metadata.py:102 msgid "Translate artist names to this locale where possible:" -msgstr "При возможности, переводить имена музыкантов на местный язык:" +msgstr "При возможности, переводить имена артистов на местный язык:" #: picard/ui/ui_options_metadata.py:103 msgid "Use standardized artist names" -msgstr "Использовать общепризнанные имена для музыкантов" +msgstr "Использовать общепризнанные имена для артистов" #: picard/ui/ui_options_metadata.py:104 msgid "Convert Unicode punctuation characters to ASCII" @@ -1371,7 +1371,7 @@ msgstr "Прокси" #: picard/ui/ui_options_network.py:112 msgid "Browser Integration" -msgstr "Интеграция С Броузером" +msgstr "Интеграция с браузером" #: picard/ui/ui_options_network.py:113 msgid "Default listening port:" @@ -1520,7 +1520,7 @@ msgstr "Сохраните эти тэги от того, чтобы они не #: picard/ui/ui_options_tags.py:159 msgid "Tags are separated by commas, and are case-sensitive." -msgstr "Ярлыки разделены запятыми и чувствительны к регистру." +msgstr "Тэги разделены запятыми и чувствительны к регистру." #: picard/ui/ui_options_tags.py:160 msgid "Tag Compatibility" @@ -1651,7 +1651,7 @@ msgstr "Обложка" #: picard/ui/options/fingerprinting.py:32 msgid "Fingerprinting" -msgstr "Слепок" +msgstr "Отпечаток" #: picard/ui/options/interface.py:35 msgid "User Interface" @@ -1897,11 +1897,11 @@ msgstr "Ремиксер" #: picard/util/tags.py:54 msgid "MusicBrainz Recording Id" -msgstr "Id Записи MusicBrainz" +msgstr "MusicBrainz ID записи" #: picard/util/tags.py:55 msgid "MusicBrainz Track Id" -msgstr "MusicBrainz трек Id" +msgstr "MusicBrainz трек ID" #: picard/util/tags.py:56 msgid "MusicBrainz Release Id" @@ -1917,7 +1917,7 @@ msgstr "MusicBrainz ID главного музыканта альбома" #: picard/util/tags.py:59 msgid "MusicBrainz Work Id" -msgstr "Id работы MusicBrainz" +msgstr "MusicBrainz ID работы" #: picard/util/tags.py:60 msgid "MusicBrainz Release Group Id" diff --git a/po/sk.po b/po/sk.po index 2b1ad8b85..82a2f1145 100644 --- a/po/sk.po +++ b/po/sk.po @@ -9,14 +9,14 @@ msgid "" msgstr "" "Project-Id-Version: MusicBrainz\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2014-05-03 17:28+0200\n" -"PO-Revision-Date: 2014-05-04 08:44+0000\n" +"POT-Creation-Date: 2014-05-05 07:15+0200\n" +"PO-Revision-Date: 2014-05-05 11:57+0000\n" "Last-Translator: nikki\n" "Language-Team: Slovak (http://www.transifex.com/projects/p/musicbrainz/language/sk/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 1.3\n" +"Generated-By: Babel 0.9.6\n" "Language: sk\n" "Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n" @@ -370,7 +370,7 @@ msgstr "" #: picard/coverart.py:256 #, python-format msgid "" -"Downloading cover art of type '%(type)s' for %(albumid)s from %(host)s .." +"Downloading cover art of type '%(type)s' for %(albumid)s from %(host)s ..." msgstr "" #: picard/coverartarchive.py:30 diff --git a/po/sl.po b/po/sl.po index 213568359..a164572bd 100644 --- a/po/sl.po +++ b/po/sl.po @@ -9,14 +9,14 @@ msgid "" msgstr "" "Project-Id-Version: MusicBrainz\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2014-05-03 17:28+0200\n" -"PO-Revision-Date: 2014-05-04 08:44+0000\n" +"POT-Creation-Date: 2014-05-05 07:15+0200\n" +"PO-Revision-Date: 2014-05-05 11:57+0000\n" "Last-Translator: nikki\n" "Language-Team: Slovenian (http://www.transifex.com/projects/p/musicbrainz/language/sl/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 1.3\n" +"Generated-By: Babel 0.9.6\n" "Language: sl\n" "Plural-Forms: nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n%100==4 ? 2 : 3);\n" @@ -373,7 +373,7 @@ msgstr "" #: picard/coverart.py:256 #, python-format msgid "" -"Downloading cover art of type '%(type)s' for %(albumid)s from %(host)s .." +"Downloading cover art of type '%(type)s' for %(albumid)s from %(host)s ..." msgstr "" #: picard/coverartarchive.py:30 diff --git a/po/sv.po b/po/sv.po index 23cd43359..d0a9f3893 100644 --- a/po/sv.po +++ b/po/sv.po @@ -12,14 +12,14 @@ msgid "" msgstr "" "Project-Id-Version: MusicBrainz\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2014-05-03 17:28+0200\n" -"PO-Revision-Date: 2014-05-04 08:44+0000\n" +"POT-Creation-Date: 2014-05-05 07:15+0200\n" +"PO-Revision-Date: 2014-05-05 11:57+0000\n" "Last-Translator: nikki\n" "Language-Team: Swedish (http://www.transifex.com/projects/p/musicbrainz/language/sv/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 1.3\n" +"Generated-By: Babel 0.9.6\n" "Language: sv\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" @@ -370,7 +370,7 @@ msgstr "" #: picard/coverart.py:256 #, python-format msgid "" -"Downloading cover art of type '%(type)s' for %(albumid)s from %(host)s .." +"Downloading cover art of type '%(type)s' for %(albumid)s from %(host)s ..." msgstr "" #: picard/coverartarchive.py:30 diff --git a/po/te.po b/po/te.po index ef9dc2155..e8bd2212b 100644 --- a/po/te.po +++ b/po/te.po @@ -9,14 +9,14 @@ msgid "" msgstr "" "Project-Id-Version: MusicBrainz\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2014-05-03 17:28+0200\n" -"PO-Revision-Date: 2014-05-04 08:44+0000\n" +"POT-Creation-Date: 2014-05-05 07:15+0200\n" +"PO-Revision-Date: 2014-05-05 11:57+0000\n" "Last-Translator: nikki\n" "Language-Team: Telugu (http://www.transifex.com/projects/p/musicbrainz/language/te/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 1.3\n" +"Generated-By: Babel 0.9.6\n" "Language: te\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" @@ -367,7 +367,7 @@ msgstr "" #: picard/coverart.py:256 #, python-format msgid "" -"Downloading cover art of type '%(type)s' for %(albumid)s from %(host)s .." +"Downloading cover art of type '%(type)s' for %(albumid)s from %(host)s ..." msgstr "" #: picard/coverartarchive.py:30 diff --git a/po/tr.po b/po/tr.po index 4c67bf215..88f6a915c 100644 --- a/po/tr.po +++ b/po/tr.po @@ -4,20 +4,21 @@ # # Translators: # FIRST AUTHOR , 2009 +# secgin , 2014 # portik , 2013 # portik , 2012 msgid "" msgstr "" "Project-Id-Version: MusicBrainz\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2014-05-03 17:28+0200\n" -"PO-Revision-Date: 2014-05-04 08:44+0000\n" -"Last-Translator: nikki\n" +"POT-Creation-Date: 2014-05-05 07:15+0200\n" +"PO-Revision-Date: 2014-05-23 09:53+0000\n" +"Last-Translator: secgin \n" "Language-Team: Turkish (http://www.transifex.com/projects/p/musicbrainz/language/tr/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 1.3\n" +"Generated-By: Babel 0.9.6\n" "Language: tr\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n" @@ -43,15 +44,15 @@ msgstr "" #: contrib/plugins/lastfm/ui_options_lastfm.py:99 msgid "Last.fm" -msgstr "" +msgstr "Last.fm" #: contrib/plugins/lastfm/ui_options_lastfm.py:100 msgid "Use track tags" -msgstr "" +msgstr "Parça etiketlerini kullan" #: contrib/plugins/lastfm/ui_options_lastfm.py:101 msgid "Use artist tags" -msgstr "" +msgstr "Sanatçı etiketlerini kullan" #: contrib/plugins/lastfm/ui_options_lastfm.py:102 #: picard/ui/options/tags.py:30 @@ -151,12 +152,12 @@ msgstr "" #: contrib/plugins/viewvariables/__init__.py:42 #, python-format msgid "File: %s" -msgstr "" +msgstr "Dosya: %s" #: contrib/plugins/viewvariables/__init__.py:47 #, python-format msgid "Track: %s %s " -msgstr "" +msgstr "Parça: %s %s" #: contrib/plugins/viewvariables/__init__.py:49 msgid "Variables" @@ -176,7 +177,7 @@ msgstr "" #: contrib/plugins/viewvariables/ui_variables_dialog.py:73 msgid "Variable" -msgstr "" +msgstr "Değişken" #: contrib/plugins/viewvariables/ui_variables_dialog.py:75 msgid "Value" @@ -213,7 +214,7 @@ msgstr "" #: picard/acoustidmanager.py:102 msgid "AcoustIDs successfully submitted." -msgstr "" +msgstr "AcoustID'ler başarıyla gönderildi." #: picard/album.py:65 picard/cluster.py:255 msgid "Unmatched Files" @@ -306,7 +307,7 @@ msgstr "Sil" #: picard/const.py:90 msgid "Danish" -msgstr "" +msgstr "Danca" #: picard/const.py:91 msgid "German" @@ -368,7 +369,7 @@ msgstr "" #: picard/coverart.py:256 #, python-format msgid "" -"Downloading cover art of type '%(type)s' for %(albumid)s from %(host)s .." +"Downloading cover art of type '%(type)s' for %(albumid)s from %(host)s ..." msgstr "" #: picard/coverartarchive.py:30 @@ -397,11 +398,11 @@ msgstr "" #: picard/releasegroup.py:53 msgid "Tracks" -msgstr "" +msgstr "Parçalar" #: picard/releasegroup.py:54 msgid "Year" -msgstr "" +msgstr "Yıl" #: picard/releasegroup.py:55 picard/ui/cdlookup.py:35 msgid "Country" @@ -413,7 +414,7 @@ msgstr "Biçim" #: picard/releasegroup.py:57 msgid "Label" -msgstr "" +msgstr "Etiket" #: picard/releasegroup.py:58 msgid "Cat No" @@ -421,7 +422,7 @@ msgstr "" #: picard/releasegroup.py:88 msgid "[no barcode]" -msgstr "" +msgstr "[barkod yok]" #: picard/releasegroup.py:108 msgid "[no release info]" @@ -466,7 +467,7 @@ msgstr "Tarih" #: picard/ui/cdlookup.py:36 msgid "Labels" -msgstr "" +msgstr "Etiketler" #: picard/ui/cdlookup.py:36 msgid "Catalog #s" @@ -505,7 +506,7 @@ msgstr "" #: picard/ui/infodialog.py:37 picard/ui/infodialog.py:80 msgid "Info" -msgstr "" +msgstr "Bilgi" #: picard/ui/infodialog.py:85 msgid "Filename:" @@ -549,7 +550,7 @@ msgstr "Kanallar:" #: picard/ui/infodialog.py:121 msgid "Album Info" -msgstr "" +msgstr "Albüm Bilgisi" #: picard/ui/infodialog.py:129 msgid "&Errors" @@ -601,7 +602,7 @@ msgstr "Yükleniyor..." #: picard/ui/itemviews.py:362 msgid "Collections" -msgstr "" +msgstr "Koleksiyonlar" #: picard/ui/itemviews.py:365 msgid "P&lugins" @@ -609,7 +610,7 @@ msgstr "" #: picard/ui/itemviews.py:541 msgid "file view" -msgstr "" +msgstr "dosya görünümü" #: picard/ui/itemviews.py:542 msgid "Contains unmatched files and clusters" @@ -633,11 +634,11 @@ msgstr "Günlük" #: picard/ui/logview.py:113 msgid "Debug mode" -msgstr "" +msgstr "Hata ayıklama kipi" #: picard/ui/logview.py:134 msgid "Activity History" -msgstr "" +msgstr "Etkinlik Geçmişi" #: picard/ui/mainwindow.py:74 msgid "MusicBrainz Picard" @@ -840,7 +841,7 @@ msgstr "Ctrl+L" #: picard/ui/mainwindow.py:419 msgid "&Info..." -msgstr "" +msgstr "&Bilgi..." #: picard/ui/mainwindow.py:422 msgid "Ctrl+I" @@ -924,7 +925,7 @@ msgstr "&Yardım" #: picard/ui/mainwindow.py:553 msgid "Actions" -msgstr "" +msgstr "Eylemler" #: picard/ui/mainwindow.py:599 msgid "Track" @@ -990,11 +991,11 @@ msgstr[1] "" #: picard/ui/metadatabox.py:154 msgid "metadata view" -msgstr "" +msgstr "metaveri görünümü" #: picard/ui/metadatabox.py:155 msgid "Displays original and new tags for the selected files" -msgstr "" +msgstr "Seçilen dosyalar için orijinal ve yeni etiketleri görüntüle" #: picard/ui/metadatabox.py:157 msgid "Tag" @@ -1118,7 +1119,7 @@ msgstr "Kapak resimlerini etiket içine yerleştir" #: picard/ui/ui_options_cover.py:133 msgid "Only embed a front image" -msgstr "" +msgstr "Sadece ön kapak resmini göm" #: picard/ui/ui_options_cover.py:134 msgid "Save cover images as separate files" @@ -1134,15 +1135,15 @@ msgstr "Varolan dosyaların üzerine yaz" #: picard/ui/ui_options_cover.py:137 msgid "Coverart Providers" -msgstr "" +msgstr "Kapak Resmi Sağlayıcıları" #: picard/ui/ui_options_cover.py:138 msgid "Amazon" -msgstr "" +msgstr "Amazon" #: picard/ui/ui_options_cover.py:139 picard/ui/ui_options_cover.py:141 msgid "Cover Art Archive" -msgstr "" +msgstr "Kapak Resmi Arşivi" #: picard/ui/ui_options_cover.py:140 msgid "Sites on the whitelist" @@ -1154,15 +1155,15 @@ msgstr "" #: picard/ui/ui_options_cover.py:143 msgid "250 px" -msgstr "" +msgstr "250 px" #: picard/ui/ui_options_cover.py:144 msgid "500 px" -msgstr "" +msgstr "500 px" #: picard/ui/ui_options_cover.py:145 msgid "Full size" -msgstr "" +msgstr "Tam boy" #: picard/ui/ui_options_cover.py:146 msgid "Download only images of the following types:" @@ -1205,7 +1206,7 @@ msgstr "Gözat..." #: picard/ui/ui_options_fingerprinting.py:76 msgid "Download..." -msgstr "" +msgstr "İndir..." #: picard/ui/ui_options_fingerprinting.py:77 msgid "API key:" @@ -1360,11 +1361,11 @@ msgstr "Ağ Vekili" #: picard/ui/ui_options_network.py:112 msgid "Browser Integration" -msgstr "" +msgstr "Tarayıcı Entegrasyonu" #: picard/ui/ui_options_network.py:113 msgid "Default listening port:" -msgstr "" +msgstr "Varsayılan dinleme portu:" #: picard/ui/ui_options_network.py:114 msgid "Listen only on localhost" @@ -1388,7 +1389,7 @@ msgstr "Yazar" #: picard/ui/ui_options_plugins.py:131 msgid "Install plugin..." -msgstr "" +msgstr "Eklenti yükle..." #: picard/ui/ui_options_plugins.py:132 msgid "Open plugin folder" @@ -1432,11 +1433,11 @@ msgstr "" #: picard/ui/ui_options_releases.py:106 picard/ui/ui_options_releases.py:109 msgid ">" -msgstr "" +msgstr ">" #: picard/ui/ui_options_releases.py:107 picard/ui/ui_options_releases.py:110 msgid "<" -msgstr "" +msgstr "<" #: picard/ui/ui_options_releases.py:108 msgid "Preferred release formats" @@ -1452,7 +1453,7 @@ msgstr "ASCII olmayan karakterleri değiştir" #: picard/ui/ui_options_renaming.py:132 msgid "Windows compatibility" -msgstr "" +msgstr "Windows uyumluluğu" #: picard/ui/ui_options_renaming.py:133 msgid "Move files to this directory when saving:" @@ -1488,7 +1489,7 @@ msgstr "" #: picard/ui/ui_options_tags.py:154 msgid "Before Tagging" -msgstr "" +msgstr "Etiketlemeden Önce" #: picard/ui/ui_options_tags.py:155 msgid "Clear existing tags" @@ -1513,7 +1514,7 @@ msgstr "" #: picard/ui/ui_options_tags.py:160 msgid "Tag Compatibility" -msgstr "" +msgstr "Etiket Uyumluluğu" #: picard/ui/ui_options_tags.py:161 msgid "ID3v2 Version" @@ -1628,11 +1629,11 @@ msgstr "Gelişmiş" #: picard/ui/options/advanced.py:66 msgid "Regex Error" -msgstr "" +msgstr "Düzenli İfade (Regex) Hatası" #: picard/ui/options/cover.py:44 msgid "title" -msgstr "" +msgstr "Parça Adı" #: picard/ui/options/cover.py:68 msgid "Cover Art" @@ -1666,7 +1667,7 @@ msgstr "Eşleme" #: picard/ui/options/network.py:29 msgid "Network" -msgstr "" +msgstr "Ağ" #: picard/ui/options/plugins.py:126 msgid "File" @@ -1686,7 +1687,7 @@ msgstr "Tümünü sıfırla" #: picard/ui/options/renaming.py:37 msgid "File Naming" -msgstr "" +msgstr "Dosya İsimlendirme" #: picard/ui/options/renaming.py:187 msgid "Error" @@ -1711,62 +1712,62 @@ msgstr "Betik Hatası" #: picard/util/bytes2human.py:33 #, python-format msgid "%s B" -msgstr "" +msgstr "%s B" #: picard/util/bytes2human.py:34 #, python-format msgid "%s kB" -msgstr "" +msgstr "%s kB" #: picard/util/bytes2human.py:35 #, python-format msgid "%s KiB" -msgstr "" +msgstr "%s KiB" #: picard/util/bytes2human.py:36 #, python-format msgid "%s MB" -msgstr "" +msgstr "%s MB" #: picard/util/bytes2human.py:37 #, python-format msgid "%s MiB" -msgstr "" +msgstr "%s MiB" #: picard/util/bytes2human.py:38 #, python-format msgid "%s GB" -msgstr "" +msgstr "%s GB" #: picard/util/bytes2human.py:39 #, python-format msgid "%s GiB" -msgstr "" +msgstr "%s GiB" #: picard/util/bytes2human.py:40 #, python-format msgid "%s TB" -msgstr "" +msgstr "%s TB" #: picard/util/bytes2human.py:41 #, python-format msgid "%s TiB" -msgstr "" +msgstr "%s TiB" #: picard/util/bytes2human.py:42 #, python-format msgid "%s PB" -msgstr "" +msgstr "%s PB" #: picard/util/bytes2human.py:43 #, python-format msgid "%s PiB" -msgstr "" +msgstr "%s PiB" #: picard/util/bytes2human.py:84 #, python-format msgid "%s " -msgstr "" +msgstr "%s " #: picard/util/tags.py:25 msgid "Original Release Date" @@ -1774,7 +1775,7 @@ msgstr "Orijinal Sürüm Tarihi" #: picard/util/tags.py:26 msgid "Original Year" -msgstr "" +msgstr "Orijinal Yıl" #: picard/util/tags.py:27 msgid "Album Artist" @@ -1842,7 +1843,7 @@ msgstr "Telif Hakkı" #: picard/util/tags.py:43 msgid "License" -msgstr "" +msgstr "Lisans" #: picard/util/tags.py:44 msgid "Composer" @@ -1850,7 +1851,7 @@ msgstr "Besteci" #: picard/util/tags.py:45 msgid "Writer" -msgstr "" +msgstr "Yazar" #: picard/util/tags.py:46 msgid "Conductor" @@ -1942,7 +1943,7 @@ msgstr "" #: picard/util/tags.py:68 msgid "Compilation (iTunes)" -msgstr "" +msgstr "Derleme (iTunes)" #: picard/util/tags.py:69 msgid "Comment" @@ -2010,11 +2011,11 @@ msgstr "Alfabe" #: picard/util/tags.py:87 msgid "Rating" -msgstr "" +msgstr "Derecelendirme" #: picard/util/tags.py:88 msgid "Artists" -msgstr "" +msgstr "Sanatçılar" #: picard/util/tags.py:89 msgid "Work" diff --git a/po/uk.po b/po/uk.po index c380635e1..a213d989f 100644 --- a/po/uk.po +++ b/po/uk.po @@ -8,14 +8,14 @@ msgid "" msgstr "" "Project-Id-Version: MusicBrainz\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2014-05-03 17:28+0200\n" -"PO-Revision-Date: 2014-05-04 08:44+0000\n" +"POT-Creation-Date: 2014-05-05 07:15+0200\n" +"PO-Revision-Date: 2014-05-05 11:57+0000\n" "Last-Translator: nikki\n" "Language-Team: Ukrainian (http://www.transifex.com/projects/p/musicbrainz/language/uk/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 1.3\n" +"Generated-By: Babel 0.9.6\n" "Language: uk\n" "Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" @@ -369,7 +369,7 @@ msgstr "" #: picard/coverart.py:256 #, python-format msgid "" -"Downloading cover art of type '%(type)s' for %(albumid)s from %(host)s .." +"Downloading cover art of type '%(type)s' for %(albumid)s from %(host)s ..." msgstr "" #: picard/coverartarchive.py:30 diff --git a/po/zh_CN.po b/po/zh_CN.po index 377858ca9..d86d40b1b 100644 --- a/po/zh_CN.po +++ b/po/zh_CN.po @@ -9,14 +9,14 @@ msgid "" msgstr "" "Project-Id-Version: MusicBrainz\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2014-05-03 17:28+0200\n" -"PO-Revision-Date: 2014-05-04 08:44+0000\n" +"POT-Creation-Date: 2014-05-05 07:15+0200\n" +"PO-Revision-Date: 2014-05-05 11:57+0000\n" "Last-Translator: nikki\n" "Language-Team: Chinese (China) (http://www.transifex.com/projects/p/musicbrainz/language/zh_CN/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 1.3\n" +"Generated-By: Babel 0.9.6\n" "Language: zh_CN\n" "Plural-Forms: nplurals=1; plural=0;\n" @@ -364,7 +364,7 @@ msgstr "" #: picard/coverart.py:256 #, python-format msgid "" -"Downloading cover art of type '%(type)s' for %(albumid)s from %(host)s .." +"Downloading cover art of type '%(type)s' for %(albumid)s from %(host)s ..." msgstr "" #: picard/coverartarchive.py:30 From 9a6ca46341aa4eda76d5509e7483d30731c8297e Mon Sep 17 00:00:00 2001 From: Laurent Monin Date: Mon, 26 May 2014 15:17:27 +0200 Subject: [PATCH 191/212] Fix regression, save only ONE front image when "save_only_front_images_to_tags" is set This regression was introduced during code rewrite, option name is misleading. See https://github.com/musicbrainz/picard/pull/116 See PICARD-350 (which wasn't closed) --- picard/metadata.py | 10 +++++++--- test/test_formats.py | 10 +++++----- 2 files changed, 12 insertions(+), 8 deletions(-) diff --git a/picard/metadata.py b/picard/metadata.py index a1d64b666..31f1c11be 100644 --- a/picard/metadata.py +++ b/picard/metadata.py @@ -55,9 +55,13 @@ class Metadata(dict): def images_to_be_saved_to_tags(self): if not config.setting["save_images_to_tags"]: return () - if not config.setting["save_only_front_images_to_tags"]: - return self.images - return [img for img in self.images if img.is_front_image()] + if config.setting["save_only_front_images_to_tags"]: + # FIXME : rename option at some point + # Embed only ONE front image + for img in self.images: + if img.is_front_image(): + return [img] + return self.images def remove_image(self, index): self.images.pop(index) diff --git a/test/test_formats.py b/test/test_formats.py index e664ef4ba..bef277cff 100644 --- a/test/test_formats.py +++ b/test/test_formats.py @@ -623,7 +623,7 @@ class TestCoverArt(unittest.TestCase): def test_asf_types_only_front(self): self._test_cover_art_types_only_front( os.path.join('test', 'data', 'test.wma'), - set('acdfg'[:])) + set('a')) def test_ape_types_only_front(self): self._test_cover_art_types_only_front( @@ -633,22 +633,22 @@ class TestCoverArt(unittest.TestCase): def test_mp3_types_only_front(self): self._test_cover_art_types_only_front( os.path.join('test', 'data', 'test.mp3'), - set('acdfg'[:])) + set('a')) def test_mp4_types_only_front(self): self._test_cover_art_types_only_front( os.path.join('test', 'data', 'test.m4a'), - set('acdfg'[:])) + set('a')) def test_ogg_types_only_front(self): self._test_cover_art_types_only_front( os.path.join('test', 'data', 'test.ogg'), - set('acdfg'[:])) + set('a')) def test_flac_types_only_front(self): self._test_cover_art_types_only_front( os.path.join('test', 'data', 'test.flac'), - set('acdfg'[:])) + set('a')) def _test_cover_art(self, filename): self._set_up(filename) From 7a06b672618199bc948bd4eab667e83a7ee1c592 Mon Sep 17 00:00:00 2001 From: Laurent Monin Date: Mon, 26 May 2014 15:58:48 +0200 Subject: [PATCH 192/212] Only download one front image if no more is needed according to options --- picard/coverart.py | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/picard/coverart.py b/picard/coverart.py index ad1d6c31e..81fb5e06d 100644 --- a/picard/coverart.py +++ b/picard/coverart.py @@ -336,7 +336,12 @@ class CoverArt: """Downloads next item in queue. If there are none left, loading of album will be finalized. """ - if self._queue_empty(): + stop = (self.front_image_found and + config.setting["save_images_to_tags"] and not + config.setting["save_images_to_files"] and + config.setting["save_only_front_images_to_tags"]) + + if stop or self._queue_empty(): self.album._finalize_loading(None) return From 37bc2596ed7248f9bc2c4c601ea9642ea98f48a4 Mon Sep 17 00:00:00 2001 From: Sophist Date: Tue, 27 May 2014 08:38:44 +0100 Subject: [PATCH 193/212] Include socket module in py2app See [Picard-607](http://tickets.musicbrainz.org/browse/PICARD-607) for requirement. --- setup.py | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/setup.py b/setup.py index 9faa61747..69e650368 100755 --- a/setup.py +++ b/setup.py @@ -45,8 +45,12 @@ py2app_exclude_modules = [ 'PyQt4.QtTest', 'PyQt4.QtWebKit', 'PyQt4.QtXml', 'PyQt4.QtXmlPatterns', 'PyQt4.phonon' ] +py2exe_exclude_modules = [ + 'socket', +] + exclude_modules = [ - 'ssl', 'socket', 'bz2', + 'ssl', 'bz2', 'distutils', 'unittest', 'bdb', 'calendar', 'difflib', 'doctest', 'dummy_thread', 'gzip', 'optparse', 'pdb', 'plistlib', 'pyexpat', 'quopri', 'repr', 'select', @@ -713,7 +717,7 @@ try: args['options'] = { 'bdist_nsis': { 'includes': ['json', 'sip'] + [e.name for e in ext_modules], - 'excludes': exclude_modules, + 'excludes': exclude_modules + py2exe_exclude_modules, 'optimize': 2, }, } From 14b8bd85e715bc7dba1d7b08be06444f25e7ae68 Mon Sep 17 00:00:00 2001 From: Laurent Monin Date: Mon, 26 May 2014 22:50:17 +0200 Subject: [PATCH 194/212] Split cover art providers to their own classes and files - add extension point so one can write a cover art provider plugin - minor changes to ease the move --- picard/coverart.py | 298 ++++---------------------- picard/coverartproviders/__init__.py | 83 +++++++ picard/coverartproviders/amazon.py | 130 +++++++++++ picard/coverartproviders/caa.py | 165 ++++++++++++++ picard/coverartproviders/whitelist.py | 58 +++++ 5 files changed, 480 insertions(+), 254 deletions(-) create mode 100644 picard/coverartproviders/__init__.py create mode 100644 picard/coverartproviders/amazon.py create mode 100644 picard/coverartproviders/caa.py create mode 100644 picard/coverartproviders/whitelist.py diff --git a/picard/coverart.py b/picard/coverart.py index 81fb5e06d..ebd0867a9 100644 --- a/picard/coverart.py +++ b/picard/coverart.py @@ -22,74 +22,14 @@ # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. -import json -import traceback +from picard.coverartproviders import cover_art_providers, CoverArtProvider + from functools import partial from picard import config, log -from picard.util import parse_amazon_url -from picard.const import CAA_HOST, CAA_PORT -from picard.coverartimage import (CoverArtImage, CaaCoverArtImage, - CoverArtImageIOError, +from picard.coverartimage import (CoverArtImageIOError, CoverArtImageIdentificationError) from PyQt4.QtCore import QObject -# amazon image file names are unique on all servers and constructed like -# ..[SML]ZZZZZZZ.jpg -# A release sold on amazon.de has always = 03, for example. -# Releases not sold on amazon.com, don't have a "01"-version of the image, -# so we need to make sure we grab an existing image. -AMAZON_SERVER = { - "amazon.jp": { - "server": "ec1.images-amazon.com", - "id": "09", - }, - "amazon.co.jp": { - "server": "ec1.images-amazon.com", - "id": "09", - }, - "amazon.co.uk": { - "server": "ec1.images-amazon.com", - "id": "02", - }, - "amazon.de": { - "server": "ec2.images-amazon.com", - "id": "03", - }, - "amazon.com": { - "server": "ec1.images-amazon.com", - "id": "01", - }, - "amazon.ca": { - "server": "ec1.images-amazon.com", - "id": "01", # .com and .ca are identical - }, - "amazon.fr": { - "server": "ec1.images-amazon.com", - "id": "08" - }, -} - -AMAZON_IMAGE_PATH = '/images/P/%(asin)s.%(serverid)s.%(size)s.jpg' - -# First item in the list will be tried first -AMAZON_SIZES = ( - # huge size option is only available for items - # that have a ZOOMing picture on its amazon web page - # and it doesn't work for all of the domain names - #'_SCRM_', # huge size - 'LZZZZZZZ', # large size, option format 1 - #'_SCLZZZZZZZ_', # large size, option format 3 - 'MZZZZZZZ', # default image size, format 1 - #'_SCMZZZZZZZ_', # medium size, option format 3 - #'TZZZZZZZ', # medium image size, option format 1 - #'_SCTZZZZZZZ_', # small size, option format 3 - #'THUMBZZZ', # small size, option format 1 -) - -_CAA_THUMBNAIL_SIZE_MAP = { - 0: "small", - 1: "large", -} class CoverArt: @@ -99,8 +39,6 @@ class CoverArt: self.album = album self.metadata = metadata self.release = release - self.caa_types = map(unicode.lower, config.setting["caa_image_types"]) - self.len_caa_types = len(self.caa_types) self.front_image_found = False def __repr__(self): @@ -108,88 +46,20 @@ class CoverArt: def retrieve(self): """Retrieve available cover art images for the release""" + if (not config.setting["save_images_to_tags"] and not + config.setting["save_images_to_files"]): + log.debug("Cover art disabled by user options.") + return - if self._caa_has_suitable_artwork(): - self._xmlws_download( - CAA_HOST, - CAA_PORT, - "/release/%s/" % self.metadata["musicbrainz_albumid"], - self._caa_json_downloaded, - priority=True, - important=False - ) - else: - self._queue_from_relationships() - self._download_next_in_queue() - - def _caa_has_suitable_artwork(self): - """Check if CAA artwork has to be downloaded""" - if not config.setting['ca_provider_use_caa']: - log.debug("Cover Art Archive disabled by user") - return False - if not self.len_caa_types: - log.debug("User disabled all Cover Art Archive types") - return False - - # MB web service indicates if CAA has artwork - # http://tickets.musicbrainz.org/browse/MBS-4536 - if 'cover_art_archive' not in self.release.children: - log.debug("No Cover Art Archive information for %s" - % self.release.id) - return False - - caa_node = self.release.children['cover_art_archive'][0] - caa_has_suitable_artwork = caa_node.artwork[0].text == 'true' - - if not caa_has_suitable_artwork: - log.debug("There are no images in the Cover Art Archive for %s" - % self.release.id) - return False - - want_front = 'front' in self.caa_types - want_back = 'back' in self.caa_types - caa_has_front = caa_node.front[0].text == 'true' - caa_has_back = caa_node.back[0].text == 'true' - - if self.len_caa_types == 2 and (want_front or want_back): - # The OR cases are there to still download and process the CAA - # JSON file if front or back is enabled but not in the CAA and - # another type (that's neither front nor back) is enabled. - # For example, if both front and booklet are enabled and the - # CAA only has booklet images, the front element in the XML - # from the webservice will be false (thus front_in_caa is False - # as well) but it's still necessary to download the booklet - # images by using the fact that back is enabled but there are - # no back images in the CAA. - front_in_caa = caa_has_front or not want_front - back_in_caa = caa_has_back or not want_back - caa_has_suitable_artwork = front_in_caa or back_in_caa - - elif self.len_caa_types == 1 and (want_front or want_back): - front_in_caa = caa_has_front and want_front - back_in_caa = caa_has_back and want_back - caa_has_suitable_artwork = front_in_caa or back_in_caa - - if not caa_has_suitable_artwork: - log.debug("There are no suitable images in the Cover Art Archive for %s" - % self.release.id) - else: - log.debug("There are suitable images in the Cover Art Archive for %s" - % self.release.id) - - return caa_has_suitable_artwork - - def _coverart_http_error(self, http): - """Append http error to album errors""" - self.album.error_append(u'Coverart error: %s' % - (unicode(http.errorString()))) + self.providers = cover_art_providers() + self.download_next_in_queue() def _coverart_downloaded(self, coverartimage, data, http, error): """Handle finished download, save it to metadata""" self.album._requests -= 1 if error: - self._coverart_http_error(http) + self.album.error_append(u'Coverart error: %s' % (unicode(http.errorString()))) elif len(data) < 1000: log.warning("Not enough data, skipping %s" % coverartimage) else: @@ -228,125 +98,45 @@ class CoverArt: except CoverArtImageIdentificationError as e: self.album.error_append(unicode(e)) - self._download_next_in_queue() + self.download_next_in_queue() - def _caa_json_downloaded(self, data, http, error): - """Parse CAA JSON file and queue CAA cover art images for download""" - self.album._requests -= 1 - caa_front_found = False - if error: - self._coverart_http_error(http) - else: - try: - caa_data = json.loads(data) - except ValueError: - self.album.error_append( - "Invalid JSON: %s", http.url().toString()) - else: - for image in caa_data["images"]: - if config.setting["caa_approved_only"] and not image["approved"]: - continue - # if image has no type set, we still want it to match - # pseudo type 'unknown' - if not image["types"]: - image["types"] = [u"unknown"] - else: - image["types"] = map(unicode.lower, image["types"]) - # only keep enabled caa types - types = set(image["types"]).intersection( - set(self.caa_types)) - if types: - if not caa_front_found: - caa_front_found = u'front' in types - self._queue_from_caa(image) - if error or not caa_front_found: - self._queue_from_relationships() - self._download_next_in_queue() - - def _queue_from_caa(self, image): - """Queue images depending on the CAA image size settings.""" - imagesize = config.setting["caa_image_size"] - thumbsize = _CAA_THUMBNAIL_SIZE_MAP.get(imagesize, None) - if thumbsize is None: - url = image["image"] - else: - url = image["thumbnails"][thumbsize] - coverartimage = CaaCoverArtImage( - url, - types=image["types"], - comment=image["comment"], - ) - # front image indicator from CAA - coverartimage.is_front = bool(image['front']) - self._queue_put(coverartimage) - - def _queue_from_relationships(self): - """Queue images by looking at the release's relationships. - """ - use_whitelist = config.setting['ca_provider_use_whitelist'] - use_amazon = config.setting['ca_provider_use_amazon'] - if not (use_whitelist or use_amazon): - return - log.debug("Trying to get cover art from release relationships ...") - try: - if 'relation_list' in self.release.children: - for relation_list in self.release.relation_list: - if relation_list.target_type == 'url': - for relation in relation_list.relation: - # Use the URL of a cover art link directly - if use_whitelist \ - and (relation.type == 'cover art link' or - relation.type == 'has_cover_art_at'): - self._queue_from_cover_art_relation(relation) - elif use_amazon \ - and (relation.type == 'amazon asin' or - relation.type == 'has_Amazon_ASIN'): - self._queue_from_asin_relation(relation) - except AttributeError: - self.album.error_append(traceback.format_exc()) - - def _queue_from_cover_art_relation(self, relation): - """Queue from cover art relationships""" - log.debug("Found cover art link in whitelist") - url = relation.target[0].text - self._queue_put(CoverArtImage(url)) - - def _queue_from_asin_relation(self, relation): - """Queue cover art images from Amazon""" - amz = parse_amazon_url(relation.target[0].text) - if amz is None: - return - log.debug("Found ASIN relation : %s %s", amz['host'], amz['asin']) - if amz['host'] in AMAZON_SERVER: - serverInfo = AMAZON_SERVER[amz['host']] - else: - serverInfo = AMAZON_SERVER['amazon.com'] - host = serverInfo['server'] - for size in AMAZON_SIZES: - path = AMAZON_IMAGE_PATH % { - 'asin': amz['asin'], - 'serverid': serverInfo['id'], - 'size': size - } - url = "http://%s:%s" % (host, path) - self._queue_put(CoverArtImage(url)) - - def _download_next_in_queue(self): + def download_next_in_queue(self): """Downloads next item in queue. If there are none left, loading of album will be finalized. """ - stop = (self.front_image_found and + if self.album.id not in self.album.tagger.albums: + # album removed + return + + if (self.front_image_found and config.setting["save_images_to_tags"] and not config.setting["save_images_to_files"] and - config.setting["save_only_front_images_to_tags"]) - - if stop or self._queue_empty(): + config.setting["save_only_front_images_to_tags"]): + # no need to continue self.album._finalize_loading(None) return - if self.album.id not in self.album.tagger.albums: - return + if self._queue_empty(): + if self.providers: + # requeue from next provider + provider, name = self.providers.pop(0) + ret = CoverArtProvider.STARTED + try: + p = provider(self) + if p.enabled(): + log.debug("Trying cover art provider %s ..." % name) + ret = p.queue_downloads() + else: + log.debug("Skipping cover art provider %s ..." % name) + finally: + if ret != CoverArtProvider.WAIT: + self.download_next_in_queue() + return + else: + # nothing more to do + self.album._finalize_loading(None) + return # We still have some items to try! coverartimage = self._queue_get() @@ -355,7 +145,7 @@ class CoverArt: # sources log.debug("Skipping %r, one front image is already available", coverartimage) - self._download_next_in_queue() + self.download_next_in_queue() return self._message( @@ -368,7 +158,7 @@ class CoverArt: echo=None ) log.debug("Downloading %r" % coverartimage) - self._xmlws_download( + self.xmlws_download( coverartimage.host, coverartimage.port, coverartimage.path, @@ -377,7 +167,7 @@ class CoverArt: important=False ) - def _queue_put(self, coverartimage): + def queue_put(self, coverartimage): "Add an image to queue" log.debug("Queing %r for download", coverartimage) self.__queue.append(coverartimage) @@ -398,7 +188,7 @@ class CoverArt: """Display message to status bar""" QObject.tagger.window.set_statusbar_message(*args, **kwargs) - def _xmlws_download(self, *args, **kwargs): + def xmlws_download(self, *args, **kwargs): """xmlws.download wrapper""" self.album._requests += 1 self.album.tagger.xmlws.download(*args, **kwargs) @@ -409,5 +199,5 @@ def coverart(album, metadata, release): download the album art. """ coverart = CoverArt(album, metadata, release) - coverart.retrieve() log.debug("New %r", coverart) + coverart.retrieve() diff --git a/picard/coverartproviders/__init__.py b/picard/coverartproviders/__init__.py new file mode 100644 index 000000000..2150ea11c --- /dev/null +++ b/picard/coverartproviders/__init__.py @@ -0,0 +1,83 @@ +# -*- coding: utf-8 -*- +# +# Picard, the next-generation MusicBrainz tagger +# Copyright (C) 2014 Laurent Monin +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License +# as published by the Free Software Foundation; either version 2 +# of the License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + +from picard.plugin import ExtensionPoint + + +_cover_art_providers = ExtensionPoint() + + +def register_cover_art_provider(provider): + _cover_art_providers.register(provider.__module__, provider) + + +def cover_art_providers(): + providers = [] + for p in _cover_art_providers: + providers.append((p, p.NAME)) + return providers + + +class CoverArtProvider: + """Parent class for cover art providers""" + + # default state + STARTED = 0 + # next_in_queue() will be automatically called + FINISHED = 1 + # next_in_queue() has to be called explicitely by provider + WAIT = 2 + + def __init__(self, coverart): + self.coverart = coverart + self.release = coverart.release + self.metadata = coverart.metadata + self.album = coverart.album + self.xmlws_download = coverart.xmlws_download + + def enabled(self): + return True + + def queue_downloads(self): + raise Exception("Not implemented") + + def requests_count_increment(self): + self.coverart.album._requests += 1 + + def requests_count_decrement(self): + self.coverart.album._requests -= 1 + + def error(self, msg): + self.coverart.album.error_append(msg) + + def queue_put(self, what): + self.coverart.queue_put(what) + + def next_in_queue(self): + # must be called by provider if queue_downloads() returns WAIT + self.coverart.download_next_in_queue() + + +from picard.coverartproviders.caa import CoverArtProviderCaa +from picard.coverartproviders.amazon import CoverArtProviderAmazon +from picard.coverartproviders.whitelist import CoverArtProviderWhitelist + +register_cover_art_provider(CoverArtProviderCaa) +register_cover_art_provider(CoverArtProviderAmazon) +register_cover_art_provider(CoverArtProviderWhitelist) diff --git a/picard/coverartproviders/amazon.py b/picard/coverartproviders/amazon.py new file mode 100644 index 000000000..edc48f7be --- /dev/null +++ b/picard/coverartproviders/amazon.py @@ -0,0 +1,130 @@ +# -*- coding: utf-8 -*- +# +# Picard, the next-generation MusicBrainz tagger +# Copyright (C) 2007 Oliver Charles +# Copyright (C) 2007-2011 Philipp Wolfer +# Copyright (C) 2007, 2010, 2011 Lukáš Lalinský +# Copyright (C) 2011 Michael Wiencek +# Copyright (C) 2011-2012 Wieland Hoffmann +# Copyright (C) 2013-2014 Laurent Monin +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License +# as published by the Free Software Foundation; either version 2 +# of the License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + +import traceback + +from picard import config, log +from picard.util import parse_amazon_url +from picard.coverartproviders import CoverArtProvider +from picard.coverartimage import CoverArtImage + + +# amazon image file names are unique on all servers and constructed like +# ..[SML]ZZZZZZZ.jpg +# A release sold on amazon.de has always = 03, for example. +# Releases not sold on amazon.com, don't have a "01"-version of the image, +# so we need to make sure we grab an existing image. +AMAZON_SERVER = { + "amazon.jp": { + "server": "ec1.images-amazon.com", + "id": "09", + }, + "amazon.co.jp": { + "server": "ec1.images-amazon.com", + "id": "09", + }, + "amazon.co.uk": { + "server": "ec1.images-amazon.com", + "id": "02", + }, + "amazon.de": { + "server": "ec2.images-amazon.com", + "id": "03", + }, + "amazon.com": { + "server": "ec1.images-amazon.com", + "id": "01", + }, + "amazon.ca": { + "server": "ec1.images-amazon.com", + "id": "01", # .com and .ca are identical + }, + "amazon.fr": { + "server": "ec1.images-amazon.com", + "id": "08" + }, +} + +AMAZON_IMAGE_PATH = '/images/P/%(asin)s.%(serverid)s.%(size)s.jpg' + +# First item in the list will be tried first +AMAZON_SIZES = ( + # huge size option is only available for items + # that have a ZOOMing picture on its amazon web page + # and it doesn't work for all of the domain names + #'_SCRM_', # huge size + 'LZZZZZZZ', # large size, option format 1 + #'_SCLZZZZZZZ_', # large size, option format 3 + 'MZZZZZZZ', # default image size, format 1 + #'_SCMZZZZZZZ_', # medium size, option format 3 + #'TZZZZZZZ', # medium image size, option format 1 + #'_SCTZZZZZZZ_', # small size, option format 3 + #'THUMBZZZ', # small size, option format 1 +) + + +class CoverArtProviderAmazon(CoverArtProvider): + + """Use Amazon ASIN Musicbrainz relationships to get cover art""" + + NAME = "Amazon" + + def enabled(self): + if not config.setting['ca_provider_use_amazon']: + log.debug("Cover art from Amazon disabled by user") + return False + return not self.coverart.front_image_found + + def queue_downloads(self): + try: + if 'relation_list' in self.release.children: + for relation_list in self.release.relation_list: + if relation_list.target_type == 'url': + for relation in relation_list.relation: + if (relation.type == 'amazon asin' or + relation.type == 'has_Amazon_ASIN'): + self._queue_from_asin_relation(relation) + except AttributeError: + self.error(traceback.format_exc()) + return CoverArtProvider.FINISHED + + def _queue_from_asin_relation(self, relation): + """Queue cover art images from Amazon""" + amz = parse_amazon_url(relation.target[0].text) + if amz is None: + return + log.debug("Found ASIN relation : %s %s", amz['host'], amz['asin']) + if amz['host'] in AMAZON_SERVER: + serverInfo = AMAZON_SERVER[amz['host']] + else: + serverInfo = AMAZON_SERVER['amazon.com'] + host = serverInfo['server'] + for size in AMAZON_SIZES: + path = AMAZON_IMAGE_PATH % { + 'asin': amz['asin'], + 'serverid': serverInfo['id'], + 'size': size + } + url = "http://%s:%s" % (host, path) + self.queue_put(CoverArtImage(url)) diff --git a/picard/coverartproviders/caa.py b/picard/coverartproviders/caa.py new file mode 100644 index 000000000..1db2ab1e3 --- /dev/null +++ b/picard/coverartproviders/caa.py @@ -0,0 +1,165 @@ +# -*- coding: utf-8 -*- +# +# Picard, the next-generation MusicBrainz tagger +# Copyright (C) 2007 Oliver Charles +# Copyright (C) 2007-2011 Philipp Wolfer +# Copyright (C) 2007, 2010, 2011 Lukáš Lalinský +# Copyright (C) 2011 Michael Wiencek +# Copyright (C) 2011-2012 Wieland Hoffmann +# Copyright (C) 2013-2014 Laurent Monin +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License +# as published by the Free Software Foundation; either version 2 +# of the License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + +import json +import traceback +from picard import config, log +from picard.const import CAA_HOST, CAA_PORT +from picard.coverartproviders import CoverArtProvider +from picard.coverartimage import CaaCoverArtImage + + +_CAA_THUMBNAIL_SIZE_MAP = { + 0: "small", + 1: "large", +} + + +class CoverArtProviderCaa(CoverArtProvider): + + """Get cover art from Cover Art Archive using release mbid""" + + NAME = "Cover Art Archive" + + def __init__(self, coverart): + CoverArtProvider.__init__(self, coverart) + self.caa_types = map(unicode.lower, config.setting["caa_image_types"]) + self.len_caa_types = len(self.caa_types) + + def enabled(self): + """Check if CAA artwork has to be downloaded""" + if not config.setting['ca_provider_use_caa']: + log.debug("Cover Art Archive disabled by user") + return False + if not self.len_caa_types: + log.debug("User disabled all Cover Art Archive types") + return False + + # MB web service indicates if CAA has artwork + # http://tickets.musicbrainz.org/browse/MBS-4536 + if 'cover_art_archive' not in self.release.children: + log.debug("No Cover Art Archive information for %s" + % self.release.id) + return False + + caa_node = self.release.children['cover_art_archive'][0] + caa_has_suitable_artwork = caa_node.artwork[0].text == 'true' + + if not caa_has_suitable_artwork: + log.debug("There are no images in the Cover Art Archive for %s" + % self.release.id) + return False + + want_front = 'front' in self.caa_types + want_back = 'back' in self.caa_types + caa_has_front = caa_node.front[0].text == 'true' + caa_has_back = caa_node.back[0].text == 'true' + + if self.len_caa_types == 2 and (want_front or want_back): + # The OR cases are there to still download and process the CAA + # JSON file if front or back is enabled but not in the CAA and + # another type (that's neither front nor back) is enabled. + # For example, if both front and booklet are enabled and the + # CAA only has booklet images, the front element in the XML + # from the webservice will be false (thus front_in_caa is False + # as well) but it's still necessary to download the booklet + # images by using the fact that back is enabled but there are + # no back images in the CAA. + front_in_caa = caa_has_front or not want_front + back_in_caa = caa_has_back or not want_back + caa_has_suitable_artwork = front_in_caa or back_in_caa + + elif self.len_caa_types == 1 and (want_front or want_back): + front_in_caa = caa_has_front and want_front + back_in_caa = caa_has_back and want_back + caa_has_suitable_artwork = front_in_caa or back_in_caa + + if not caa_has_suitable_artwork: + log.debug("There are no suitable images in the Cover Art Archive for %s" + % self.release.id) + else: + log.debug("There are suitable images in the Cover Art Archive for %s" + % self.release.id) + + return caa_has_suitable_artwork + + def queue_downloads(self): + self.xmlws_download( + CAA_HOST, + CAA_PORT, + "/release/%s/" % self.metadata["musicbrainz_albumid"], + self._caa_json_downloaded, + priority=True, + important=False + ) + # we will call next_in_queue() after json parsing + return CoverArtProvider.WAIT + + def _caa_json_downloaded(self, data, http, error): + """Parse CAA JSON file and queue CAA cover art images for download""" + self.requests_count_decrement() + caa_front_found = False + if error: + self.error(u'CAA JSON error: %s' % (unicode(http.errorString()))) + else: + try: + caa_data = json.loads(data) + except ValueError: + self.error("Invalid JSON: %s", http.url().toString()) + else: + for image in caa_data["images"]: + if config.setting["caa_approved_only"] and not image["approved"]: + continue + # if image has no type set, we still want it to match + # pseudo type 'unknown' + if not image["types"]: + image["types"] = [u"unknown"] + else: + image["types"] = map(unicode.lower, image["types"]) + # only keep enabled caa types + types = set(image["types"]).intersection( + set(self.caa_types)) + if types: + if not caa_front_found: + caa_front_found = u'front' in types + self._queue_from_caa(image) + + self.next_in_queue() + + def _queue_from_caa(self, image): + """Queue images depending on the CAA image size settings.""" + imagesize = config.setting["caa_image_size"] + thumbsize = _CAA_THUMBNAIL_SIZE_MAP.get(imagesize, None) + if thumbsize is None: + url = image["image"] + else: + url = image["thumbnails"][thumbsize] + coverartimage = CaaCoverArtImage( + url, + types=image["types"], + comment=image["comment"], + ) + # front image indicator from CAA + coverartimage.is_front = bool(image['front']) + self.queue_put(coverartimage) diff --git a/picard/coverartproviders/whitelist.py b/picard/coverartproviders/whitelist.py new file mode 100644 index 000000000..f1a210017 --- /dev/null +++ b/picard/coverartproviders/whitelist.py @@ -0,0 +1,58 @@ +# -*- coding: utf-8 -*- +# +# Picard, the next-generation MusicBrainz tagger +# Copyright (C) 2007 Oliver Charles +# Copyright (C) 2007-2011 Philipp Wolfer +# Copyright (C) 2007, 2010, 2011 Lukáš Lalinský +# Copyright (C) 2011 Michael Wiencek +# Copyright (C) 2011-2012 Wieland Hoffmann +# Copyright (C) 2013-2014 Laurent Monin +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License +# as published by the Free Software Foundation; either version 2 +# of the License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + +import traceback + +from picard import config, log +from picard.coverartproviders import CoverArtProvider +from picard.coverartimage import CoverArtImage + + +class CoverArtProviderWhitelist(CoverArtProvider): + + """Use cover art link and has_cover_art_at MusicBrainz relationships to get + cover art""" + + NAME = "Whitelist" + + def enabled(self): + if not config.setting['ca_provider_use_whitelist']: + log.debug("Cover art from white list disabled by user") + return False + return not self.coverart.front_image_found + + def queue_downloads(self): + try: + if 'relation_list' in self.release.children: + for relation_list in self.release.relation_list: + if relation_list.target_type == 'url': + for relation in relation_list.relation: + # Use the URL of a cover art link directly + if (relation.type == 'cover art link' or + relation.type == 'has_cover_art_at'): + log.debug("Found cover art link in whitelist") + self.queue_put(CoverArtImage(url=relation.target[0].text)) + except AttributeError: + self.error(traceback.format_exc()) + return CoverArtProvider.FINISHED From b4b1619187cefa29cfedec1fa9e489b4286b5c28 Mon Sep 17 00:00:00 2001 From: Laurent Monin Date: Tue, 27 May 2014 16:36:30 +0200 Subject: [PATCH 195/212] Introduce CoverArtProvider.match_url_relations() to reduce code redundancy --- picard/coverartproviders/__init__.py | 12 ++++++++++++ picard/coverartproviders/amazon.py | 19 +++++-------------- picard/coverartproviders/whitelist.py | 18 ++++++------------ 3 files changed, 23 insertions(+), 26 deletions(-) diff --git a/picard/coverartproviders/__init__.py b/picard/coverartproviders/__init__.py index 2150ea11c..627855414 100644 --- a/picard/coverartproviders/__init__.py +++ b/picard/coverartproviders/__init__.py @@ -73,6 +73,18 @@ class CoverArtProvider: # must be called by provider if queue_downloads() returns WAIT self.coverart.download_next_in_queue() + def match_url_relations(self, relation_types, func): + """Execute `func` for each relation url matching `relation_types`""" + try: + if 'relation_list' in self.release.children: + for relation_list in self.release.relation_list: + if relation_list.target_type == 'url': + for relation in relation_list.relation: + if relation.type in relation_types: + func(relation.target[0].text) + except AttributeError: + self.error(traceback.format_exc()) + from picard.coverartproviders.caa import CoverArtProviderCaa from picard.coverartproviders.amazon import CoverArtProviderAmazon diff --git a/picard/coverartproviders/amazon.py b/picard/coverartproviders/amazon.py index edc48f7be..9e45abb0f 100644 --- a/picard/coverartproviders/amazon.py +++ b/picard/coverartproviders/amazon.py @@ -97,21 +97,13 @@ class CoverArtProviderAmazon(CoverArtProvider): return not self.coverart.front_image_found def queue_downloads(self): - try: - if 'relation_list' in self.release.children: - for relation_list in self.release.relation_list: - if relation_list.target_type == 'url': - for relation in relation_list.relation: - if (relation.type == 'amazon asin' or - relation.type == 'has_Amazon_ASIN'): - self._queue_from_asin_relation(relation) - except AttributeError: - self.error(traceback.format_exc()) + self.match_url_relations(('amazon asin', 'has_Amazon_ASIN'), + self._queue_from_asin_relation) return CoverArtProvider.FINISHED - def _queue_from_asin_relation(self, relation): + def _queue_from_asin_relation(self, url): """Queue cover art images from Amazon""" - amz = parse_amazon_url(relation.target[0].text) + amz = parse_amazon_url(url) if amz is None: return log.debug("Found ASIN relation : %s %s", amz['host'], amz['asin']) @@ -126,5 +118,4 @@ class CoverArtProviderAmazon(CoverArtProvider): 'serverid': serverInfo['id'], 'size': size } - url = "http://%s:%s" % (host, path) - self.queue_put(CoverArtImage(url)) + self.queue_put(CoverArtImage("http://%s:%s" % (host, path))) diff --git a/picard/coverartproviders/whitelist.py b/picard/coverartproviders/whitelist.py index f1a210017..37b2ce663 100644 --- a/picard/coverartproviders/whitelist.py +++ b/picard/coverartproviders/whitelist.py @@ -43,16 +43,10 @@ class CoverArtProviderWhitelist(CoverArtProvider): return not self.coverart.front_image_found def queue_downloads(self): - try: - if 'relation_list' in self.release.children: - for relation_list in self.release.relation_list: - if relation_list.target_type == 'url': - for relation in relation_list.relation: - # Use the URL of a cover art link directly - if (relation.type == 'cover art link' or - relation.type == 'has_cover_art_at'): - log.debug("Found cover art link in whitelist") - self.queue_put(CoverArtImage(url=relation.target[0].text)) - except AttributeError: - self.error(traceback.format_exc()) + self.match_url_relations(('cover art link', 'has_cover_art_at'), + self._queue_from_whitelist) return CoverArtProvider.FINISHED + + def _queue_from_whitelist(self, url): + log.debug("Found cover art link in whitelist") + self.queue_put(CoverArtImage(url)) From dead1fd34ede95205efa858a3ef5956825672d1c Mon Sep 17 00:00:00 2001 From: Sophist Date: Wed, 28 May 2014 10:29:42 +0100 Subject: [PATCH 196/212] Include select module in mac build. See [Picard-607](http://tickets.musicbrainz.org/browse/PICARD-607) for requirement. --- setup.py | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/setup.py b/setup.py index fe039c1de..45aef7f19 100755 --- a/setup.py +++ b/setup.py @@ -46,14 +46,14 @@ py2app_exclude_modules = [ ] py2exe_exclude_modules = [ - 'socket', + 'socket', 'select', ] exclude_modules = [ 'ssl', 'bz2', 'distutils', 'unittest', 'bdb', 'calendar', 'difflib', 'doctest', 'dummy_thread', 'gzip', - 'optparse', 'pdb', 'plistlib', 'pyexpat', 'quopri', 'repr', 'select', + 'optparse', 'pdb', 'plistlib', 'pyexpat', 'quopri', 'repr', 'stringio', 'tarfile', 'uu', 'zipfile' ] @@ -178,7 +178,7 @@ class picard_install_locales(Command): ('install_locales', 'install_dir'), ('force', 'force'), ('skip_build', 'skip_build'), - ) + ) def run(self): if not self.skip_build: @@ -346,7 +346,7 @@ class picard_build_ui(Command): else: for uifile, pyfile in ui_files(): if newer(uifile, pyfile): - compile_ui(uifile, pyfile) + compile_ui(uifile, pyfile) from resources import compile, makeqrc makeqrc.main() @@ -452,8 +452,8 @@ except ImportError: def _get_option_name(obj): """Returns the name of the option for specified Command object""" for name, klass in obj.distribution.cmdclass.iteritems(): - if obj.__class__ == klass: - return name + if obj.__class__ == klass: + return name raise Exception("No such command class") From 5db4d18851c35c8eb7a2ba13cdc11152501907b3 Mon Sep 17 00:00:00 2001 From: Laurent Monin Date: Wed, 28 May 2014 15:17:16 +0200 Subject: [PATCH 197/212] Raise NotImplementedError --- picard/coverartproviders/__init__.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/picard/coverartproviders/__init__.py b/picard/coverartproviders/__init__.py index 627855414..4ad6931cd 100644 --- a/picard/coverartproviders/__init__.py +++ b/picard/coverartproviders/__init__.py @@ -55,7 +55,7 @@ class CoverArtProvider: return True def queue_downloads(self): - raise Exception("Not implemented") + raise NotImplementedError def requests_count_increment(self): self.coverart.album._requests += 1 From 778c9a0aff7a5b3df18adae04fb20dbdde271885 Mon Sep 17 00:00:00 2001 From: Laurent Monin Date: Wed, 28 May 2014 15:19:23 +0200 Subject: [PATCH 198/212] Drop now unused `caa_front_found` --- picard/coverartproviders/caa.py | 3 --- 1 file changed, 3 deletions(-) diff --git a/picard/coverartproviders/caa.py b/picard/coverartproviders/caa.py index 1db2ab1e3..57ce74e91 100644 --- a/picard/coverartproviders/caa.py +++ b/picard/coverartproviders/caa.py @@ -119,7 +119,6 @@ class CoverArtProviderCaa(CoverArtProvider): def _caa_json_downloaded(self, data, http, error): """Parse CAA JSON file and queue CAA cover art images for download""" self.requests_count_decrement() - caa_front_found = False if error: self.error(u'CAA JSON error: %s' % (unicode(http.errorString()))) else: @@ -141,8 +140,6 @@ class CoverArtProviderCaa(CoverArtProvider): types = set(image["types"]).intersection( set(self.caa_types)) if types: - if not caa_front_found: - caa_front_found = u'front' in types self._queue_from_caa(image) self.next_in_queue() From e50bc12a889d4b98930fce6cfbc610b520a180db Mon Sep 17 00:00:00 2001 From: Laurent Monin Date: Wed, 28 May 2014 15:28:06 +0200 Subject: [PATCH 199/212] Remove unneeded wrapper methods --- picard/coverart.py | 8 ++------ picard/coverartproviders/__init__.py | 7 ------- picard/coverartproviders/caa.py | 5 +++-- 3 files changed, 5 insertions(+), 15 deletions(-) diff --git a/picard/coverart.py b/picard/coverart.py index ebd0867a9..898d56e97 100644 --- a/picard/coverart.py +++ b/picard/coverart.py @@ -158,7 +158,7 @@ class CoverArt: echo=None ) log.debug("Downloading %r" % coverartimage) - self.xmlws_download( + self.album.tagger.xmlws.download( coverartimage.host, coverartimage.port, coverartimage.path, @@ -166,6 +166,7 @@ class CoverArt: priority=True, important=False ) + self.album._requests += 1 def queue_put(self, coverartimage): "Add an image to queue" @@ -188,11 +189,6 @@ class CoverArt: """Display message to status bar""" QObject.tagger.window.set_statusbar_message(*args, **kwargs) - def xmlws_download(self, *args, **kwargs): - """xmlws.download wrapper""" - self.album._requests += 1 - self.album.tagger.xmlws.download(*args, **kwargs) - def coverart(album, metadata, release): """Gets all cover art URLs from the metadata and then attempts to diff --git a/picard/coverartproviders/__init__.py b/picard/coverartproviders/__init__.py index 4ad6931cd..e5087220c 100644 --- a/picard/coverartproviders/__init__.py +++ b/picard/coverartproviders/__init__.py @@ -49,7 +49,6 @@ class CoverArtProvider: self.release = coverart.release self.metadata = coverart.metadata self.album = coverart.album - self.xmlws_download = coverart.xmlws_download def enabled(self): return True @@ -57,12 +56,6 @@ class CoverArtProvider: def queue_downloads(self): raise NotImplementedError - def requests_count_increment(self): - self.coverart.album._requests += 1 - - def requests_count_decrement(self): - self.coverart.album._requests -= 1 - def error(self, msg): self.coverart.album.error_append(msg) diff --git a/picard/coverartproviders/caa.py b/picard/coverartproviders/caa.py index 57ce74e91..f258326ea 100644 --- a/picard/coverartproviders/caa.py +++ b/picard/coverartproviders/caa.py @@ -105,7 +105,7 @@ class CoverArtProviderCaa(CoverArtProvider): return caa_has_suitable_artwork def queue_downloads(self): - self.xmlws_download( + self.album.tagger.xmlws.download( CAA_HOST, CAA_PORT, "/release/%s/" % self.metadata["musicbrainz_albumid"], @@ -113,12 +113,13 @@ class CoverArtProviderCaa(CoverArtProvider): priority=True, important=False ) + self.album._requests += 1 # we will call next_in_queue() after json parsing return CoverArtProvider.WAIT def _caa_json_downloaded(self, data, http, error): """Parse CAA JSON file and queue CAA cover art images for download""" - self.requests_count_decrement() + self.album._requests -= 1 if error: self.error(u'CAA JSON error: %s' % (unicode(http.errorString()))) else: From 8c651af5013fb44eb11ce62548cb2d989f5a5b16 Mon Sep 17 00:00:00 2001 From: Laurent Monin Date: Wed, 28 May 2014 15:33:31 +0200 Subject: [PATCH 200/212] Clarify queue_downloads() return values --- picard/coverart.py | 2 +- picard/coverartproviders/__init__.py | 8 ++++++-- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/picard/coverart.py b/picard/coverart.py index 898d56e97..7f1b3a2ec 100644 --- a/picard/coverart.py +++ b/picard/coverart.py @@ -121,7 +121,7 @@ class CoverArt: if self.providers: # requeue from next provider provider, name = self.providers.pop(0) - ret = CoverArtProvider.STARTED + ret = CoverArtProvider._STARTED try: p = provider(self) if p.enabled(): diff --git a/picard/coverartproviders/__init__.py b/picard/coverartproviders/__init__.py index e5087220c..f70651521 100644 --- a/picard/coverartproviders/__init__.py +++ b/picard/coverartproviders/__init__.py @@ -37,10 +37,12 @@ def cover_art_providers(): class CoverArtProvider: """Parent class for cover art providers""" - # default state - STARTED = 0 + # default state, internal use + _STARTED = 0 + # returned by queue_downloads(): # next_in_queue() will be automatically called FINISHED = 1 + # returned by queue_downloads(): # next_in_queue() has to be called explicitely by provider WAIT = 2 @@ -54,6 +56,8 @@ class CoverArtProvider: return True def queue_downloads(self): + # this method has to return CoverArtProvider.FINISHED or + # CoverArtProvider.WAIT raise NotImplementedError def error(self, msg): From c84173190f4515f46bf18281bc34f06155d78d8a Mon Sep 17 00:00:00 2001 From: Laurent Monin Date: Wed, 28 May 2014 15:35:13 +0200 Subject: [PATCH 201/212] Fix up `CoverArtProvider.match_url_relations` description --- picard/coverartproviders/__init__.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/picard/coverartproviders/__init__.py b/picard/coverartproviders/__init__.py index f70651521..0378ba621 100644 --- a/picard/coverartproviders/__init__.py +++ b/picard/coverartproviders/__init__.py @@ -71,7 +71,9 @@ class CoverArtProvider: self.coverart.download_next_in_queue() def match_url_relations(self, relation_types, func): - """Execute `func` for each relation url matching `relation_types`""" + """Execute `func` for each relation url matching type in + `relation_types` + """ try: if 'relation_list' in self.release.children: for relation_list in self.release.relation_list: From 0988a7db37ab8027706fdef77fed79cd26ad41af Mon Sep 17 00:00:00 2001 From: Laurent Monin Date: Wed, 28 May 2014 16:12:02 +0200 Subject: [PATCH 202/212] Describe CoverArtProvider class --- picard/coverartproviders/__init__.py | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/picard/coverartproviders/__init__.py b/picard/coverartproviders/__init__.py index 0378ba621..26aa9c8c0 100644 --- a/picard/coverartproviders/__init__.py +++ b/picard/coverartproviders/__init__.py @@ -35,7 +35,17 @@ def cover_art_providers(): class CoverArtProvider: - """Parent class for cover art providers""" + """Subclasses of this class need to reimplement at least `queue_downloads()`. + `__init__()` does not have to do anything. + `queue_downloads()` will be called if `enabled()` returns `True`. + `queue_downloads()` must return `FINISHED` when it finished to queue + potential cover art downloads (using `queue_put(). + If `queue_downloads()` delegates the job of queuing downloads to another + method (asynchronous) it should return `WAIT` and the other method has to + explicitely call `next_in_queue()`. + If `FINISHED` is returned, `next_in_queue()` will be automatically called + by CoverArt object. + """ # default state, internal use _STARTED = 0 From 91b8a5ad20b3328ab1b637ac5f907b387f035b0f Mon Sep 17 00:00:00 2001 From: Laurent Monin Date: Sun, 25 May 2014 15:35:28 +0200 Subject: [PATCH 203/212] Improve handling of PDF cover art from CAA - detect PDFs in imageinfo - exclude PDFs from images to be written to tags - display info about PDF in info dialog (need more work) --- picard/metadata.py | 8 ++++++-- picard/ui/infodialog.py | 30 ++++++++++++++++-------------- picard/util/imageinfo.py | 6 ++++++ 3 files changed, 28 insertions(+), 16 deletions(-) diff --git a/picard/metadata.py b/picard/metadata.py index 31f1c11be..9fe966e18 100644 --- a/picard/metadata.py +++ b/picard/metadata.py @@ -41,6 +41,7 @@ class Metadata(dict): ('totaltracks', 5), ] + __coverart_tags_mimetypes = ('image/jpeg', 'image/png') multi_valued_joiner = MULTI_VALUED_JOINER def __init__(self): @@ -55,13 +56,16 @@ class Metadata(dict): def images_to_be_saved_to_tags(self): if not config.setting["save_images_to_tags"]: return () + # ignore images with a mime type that can't be saved to tags + images = [img for img in self.images if img.mimetype in + self.__coverart_tags_mimetypes] if config.setting["save_only_front_images_to_tags"]: # FIXME : rename option at some point # Embed only ONE front image - for img in self.images: + for img in images: if img.is_front_image(): return [img] - return self.images + return images def remove_image(self, index): self.images.pop(index) diff --git a/picard/ui/infodialog.py b/picard/ui/infodialog.py index 4063bfb3a..f9d4f5859 100644 --- a/picard/ui/infodialog.py +++ b/picard/ui/infodialog.py @@ -57,22 +57,24 @@ class InfoDialog(PicardDialog): except (OSError, IOError) as e: log.error(traceback.format_exc()) continue - size = image.datalength item = QtGui.QListWidgetItem() - pixmap = QtGui.QPixmap() - pixmap.loadFromData(data) - icon = QtGui.QIcon(pixmap) - item.setIcon(icon) - s = u"%s (%s)\n%d x %d\n%s" % ( - bytes2human.decimal(size), - bytes2human.binary(size), - pixmap.width(), - pixmap.height(), - image.types_as_string() - ) + if image.mimetype not in ('application/pdf'): + pixmap = QtGui.QPixmap() + pixmap.loadFromData(data) + icon = QtGui.QIcon(pixmap) + item.setIcon(icon) + # TODO : display pdf thumbnail if available or pdf icon + infos = [] + infos.append(image.types_as_string()) if image.comment: - s += u"\n%s" % image.comment - item.setText(s) + infos.append(image.comment) + infos.append(u"%s (%s)" % + (bytes2human.decimal(image.datalength), + bytes2human.binary(image.datalength))) + if image.width and image.height: + infos.append(u"%d x %d" % (image.width, image.height)) + infos.append(image.mimetype) + item.setText(u"\n".join(infos)) item.setToolTip(image.source) self.ui.artwork_list.addItem(item) diff --git a/picard/util/imageinfo.py b/picard/util/imageinfo.py index df5ad1c89..6b1ab6bf3 100644 --- a/picard/util/imageinfo.py +++ b/picard/util/imageinfo.py @@ -105,6 +105,12 @@ def identify(data): except ValueError: pass + # PDF + elif data[:4] == '%PDF': + h, w = 0, 0 + mime = 'application/pdf' + extension = '.pdf' + else: raise UnrecognizedFormat('Unrecognized image data') From fdab5efa7864cf20d48fbe9460611809b3965c2b Mon Sep 17 00:00:00 2001 From: Laurent Monin Date: Sun, 25 May 2014 21:04:03 +0200 Subject: [PATCH 204/212] Download pdf cover art only if needed, download main file, not thumbnails. This patch solves 2 issues: - pdf files only need to be saved if "save_images_to_files" option is set, PDFs are never embedded in tags - ignore "caa_image_size" option which causes thumbnail of the pdf to be downloaded instead of the main file --- picard/coverart.py | 1 - picard/coverartproviders/caa.py | 7 ++++++- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/picard/coverart.py b/picard/coverart.py index 7f1b3a2ec..5bd7967c2 100644 --- a/picard/coverart.py +++ b/picard/coverart.py @@ -100,7 +100,6 @@ class CoverArt: self.download_next_in_queue() - def download_next_in_queue(self): """Downloads next item in queue. If there are none left, loading of album will be finalized. diff --git a/picard/coverartproviders/caa.py b/picard/coverartproviders/caa.py index f258326ea..276907ee4 100644 --- a/picard/coverartproviders/caa.py +++ b/picard/coverartproviders/caa.py @@ -131,6 +131,11 @@ class CoverArtProviderCaa(CoverArtProvider): for image in caa_data["images"]: if config.setting["caa_approved_only"] and not image["approved"]: continue + image["~is_pdf"] = image["image"].endswith('.pdf') + if image["~is_pdf"] and not config.setting["save_images_to_files"]: + log.debug("Skipping pdf cover art : %s" % + image["image"]) + continue # if image has no type set, we still want it to match # pseudo type 'unknown' if not image["types"]: @@ -149,7 +154,7 @@ class CoverArtProviderCaa(CoverArtProvider): """Queue images depending on the CAA image size settings.""" imagesize = config.setting["caa_image_size"] thumbsize = _CAA_THUMBNAIL_SIZE_MAP.get(imagesize, None) - if thumbsize is None: + if thumbsize is None or image['~is_pdf']: url = image["image"] else: url = image["thumbnails"][thumbsize] From 0e6572fad372e66b7f032ac44ddd25a45e5e1127 Mon Sep 17 00:00:00 2001 From: Laurent Monin Date: Sun, 25 May 2014 21:37:25 +0200 Subject: [PATCH 205/212] CaaCoverArtImage: specify constructor, accept is_front --- picard/coverartimage.py | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/picard/coverartimage.py b/picard/coverartimage.py index c1d5fa0bd..903521a6d 100644 --- a/picard/coverartimage.py +++ b/picard/coverartimage.py @@ -320,6 +320,11 @@ class CaaCoverArtImage(CoverArtImage): support_types = True sourceprefix = u"CAA" + def __init__(self, url, types=[], is_front=False, comment='', data=None): + CoverArtImage.__init__(self, url=url, types=types, comment=comment, + data=data) + self.is_front = is_front + class TagCoverArtImage(CoverArtImage): From c7f224fe8f74eeccb74c16f67f2f2da17b82cb45 Mon Sep 17 00:00:00 2001 From: Laurent Monin Date: Sun, 25 May 2014 21:38:24 +0200 Subject: [PATCH 206/212] Move _queue_from_caa() code to _caa_json_downloaded(), simplify --- picard/coverartproviders/caa.py | 35 ++++++++++++++------------------- 1 file changed, 15 insertions(+), 20 deletions(-) diff --git a/picard/coverartproviders/caa.py b/picard/coverartproviders/caa.py index 276907ee4..243794ebc 100644 --- a/picard/coverartproviders/caa.py +++ b/picard/coverartproviders/caa.py @@ -128,11 +128,13 @@ class CoverArtProviderCaa(CoverArtProvider): except ValueError: self.error("Invalid JSON: %s", http.url().toString()) else: + imagesize = config.setting["caa_image_size"] + thumbsize = _CAA_THUMBNAIL_SIZE_MAP.get(imagesize, None) for image in caa_data["images"]: if config.setting["caa_approved_only"] and not image["approved"]: continue - image["~is_pdf"] = image["image"].endswith('.pdf') - if image["~is_pdf"] and not config.setting["save_images_to_files"]: + is_pdf = image["image"].endswith('.pdf') + if is_pdf and not config.setting["save_images_to_files"]: log.debug("Skipping pdf cover art : %s" % image["image"]) continue @@ -146,23 +148,16 @@ class CoverArtProviderCaa(CoverArtProvider): types = set(image["types"]).intersection( set(self.caa_types)) if types: - self._queue_from_caa(image) + if thumbsize is None or is_pdf: + url = image["image"] + else: + url = image["thumbnails"][thumbsize] + coverartimage = CaaCoverArtImage( + url, + types=image["types"], + is_front=image['front'], + comment=image["comment"], + ) + self.queue_put(coverartimage) self.next_in_queue() - - def _queue_from_caa(self, image): - """Queue images depending on the CAA image size settings.""" - imagesize = config.setting["caa_image_size"] - thumbsize = _CAA_THUMBNAIL_SIZE_MAP.get(imagesize, None) - if thumbsize is None or image['~is_pdf']: - url = image["image"] - else: - url = image["thumbnails"][thumbsize] - coverartimage = CaaCoverArtImage( - url, - types=image["types"], - comment=image["comment"], - ) - # front image indicator from CAA - coverartimage.is_front = bool(image['front']) - self.queue_put(coverartimage) From 30eac04cbf3622d5031b686aad0f53b131b507cf Mon Sep 17 00:00:00 2001 From: Laurent Monin Date: Wed, 28 May 2014 17:29:41 +0200 Subject: [PATCH 207/212] Display thumbnail image for PDFs in info dialog It requires few changes in CaaCoverArtImage, basically one property (is_thumbnail) to indicate the image is a thumbnail so it isn't added to metadata. And a thumbnail property to link main image to its thumbnail. --- picard/coverart.py | 35 ++++++++++++++++++++------------- picard/coverartimage.py | 3 ++- picard/coverartproviders/caa.py | 11 +++++++++++ picard/ui/infodialog.py | 12 ++++++++--- 4 files changed, 43 insertions(+), 18 deletions(-) diff --git a/picard/coverart.py b/picard/coverart.py index 5bd7967c2..5787a51f7 100644 --- a/picard/coverart.py +++ b/picard/coverart.py @@ -74,21 +74,28 @@ class CoverArt: ) try: coverartimage.set_data(data) - log.debug("Cover art image downloaded: %r [%s]" % - ( - coverartimage, - coverartimage.imageinfo_as_string() + if not coverartimage.is_thumbnail: + log.debug("Cover art image downloaded: %r [%s]" % + ( + coverartimage, + coverartimage.imageinfo_as_string() + ) + ) + self.metadata.append_image(coverartimage) + for track in self.album._new_tracks: + track.metadata.append_image(coverartimage) + # If the image already was a front image, + # there might still be some other non-CAA front + # images in the queue - ignore them. + if not self.front_image_found: + self.front_image_found = coverartimage.is_front_image() + else: + log.debug("Thumbnail for cover art image downloaded: %r [%s]" % + ( + coverartimage, + coverartimage.imageinfo_as_string() + ) ) - ) - self.metadata.append_image(coverartimage) - for track in self.album._new_tracks: - track.metadata.append_image(coverartimage) - # If the image already was a front image, - # there might still be some other non-CAA front - # images in the queue - ignore them. - if not self.front_image_found: - self.front_image_found = coverartimage.is_front_image() - except CoverArtImageIOError as e: self.album.error_append(unicode(e)) self.album._finalize_loading(error=True) diff --git a/picard/coverartimage.py b/picard/coverartimage.py index 903521a6d..7c4715ed1 100644 --- a/picard/coverartimage.py +++ b/picard/coverartimage.py @@ -324,7 +324,8 @@ class CaaCoverArtImage(CoverArtImage): CoverArtImage.__init__(self, url=url, types=types, comment=comment, data=data) self.is_front = is_front - + self.thumbnail = None + self.is_thumbnail = False class TagCoverArtImage(CoverArtImage): diff --git a/picard/coverartproviders/caa.py b/picard/coverartproviders/caa.py index 243794ebc..b5872ee1d 100644 --- a/picard/coverartproviders/caa.py +++ b/picard/coverartproviders/caa.py @@ -159,5 +159,16 @@ class CoverArtProviderCaa(CoverArtProvider): comment=image["comment"], ) self.queue_put(coverartimage) + if is_pdf: + url = image["thumbnails"]['small'] + thumbnail = CaaCoverArtImage( + url, + types=image["types"], + is_front=image['front'], + comment=image["comment"], + ) + thumbnail.is_thumbnail = True + self.queue_put(thumbnail) + coverartimage.thumbnail = thumbnail self.next_in_queue() diff --git a/picard/ui/infodialog.py b/picard/ui/infodialog.py index f9d4f5859..458034003 100644 --- a/picard/ui/infodialog.py +++ b/picard/ui/infodialog.py @@ -52,18 +52,24 @@ class InfoDialog(PicardDialog): return for image in images: + data = None try: - data = image.data + if image.mimetype not in ('application/pdf'): + data = image.data + elif image.thumbnail: + try: + data = image.thumbnail.data + except: + pass except (OSError, IOError) as e: log.error(traceback.format_exc()) continue item = QtGui.QListWidgetItem() - if image.mimetype not in ('application/pdf'): + if data is not None: pixmap = QtGui.QPixmap() pixmap.loadFromData(data) icon = QtGui.QIcon(pixmap) item.setIcon(icon) - # TODO : display pdf thumbnail if available or pdf icon infos = [] infos.append(image.types_as_string()) if image.comment: From 54cc1e4c8d955fc97f456df128ef5607f0732fd6 Mon Sep 17 00:00:00 2001 From: Laurent Monin Date: Wed, 28 May 2014 20:39:05 +0200 Subject: [PATCH 208/212] CaaCoverArtImage: describe `thumbnail` and `is_thumbnail` --- picard/coverartimage.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/picard/coverartimage.py b/picard/coverartimage.py index 7c4715ed1..454c6abdb 100644 --- a/picard/coverartimage.py +++ b/picard/coverartimage.py @@ -324,7 +324,9 @@ class CaaCoverArtImage(CoverArtImage): CoverArtImage.__init__(self, url=url, types=types, comment=comment, data=data) self.is_front = is_front + # thumbnail is used to link to another CaaCoverArtImage, ie. for PDFs self.thumbnail = None + # is_thumbnail set to True prevents the image to be added to metadata self.is_thumbnail = False class TagCoverArtImage(CoverArtImage): From 9ab5d725940d35d11e860956f943bf8473965907 Mon Sep 17 00:00:00 2001 From: Laurent Monin Date: Thu, 29 May 2014 09:02:26 +0200 Subject: [PATCH 209/212] Introduce CaaThumbnailCoverArtImage and properties to handle thumbnails - can_be_saved_to_tags PDFs cannot be saved to tags as today - can_be_saved_to_disk thumbnails shouldn't saved to disk (in audio files directory), they are only used for display - can_be_saved_to_metadata thumbnails aren't saved to audio files metadata --- picard/coverart.py | 2 +- picard/coverartimage.py | 33 +++++++++++++++++++++++++++++---- picard/coverartproviders/caa.py | 14 ++++++++------ picard/ui/infodialog.py | 6 +++--- 4 files changed, 41 insertions(+), 14 deletions(-) diff --git a/picard/coverart.py b/picard/coverart.py index 5787a51f7..4d6ba4f7b 100644 --- a/picard/coverart.py +++ b/picard/coverart.py @@ -74,7 +74,7 @@ class CoverArt: ) try: coverartimage.set_data(data) - if not coverartimage.is_thumbnail: + if coverartimage.can_be_saved_to_metadata: log.debug("Cover art image downloaded: %r [%s]" % ( coverartimage, diff --git a/picard/coverartimage.py b/picard/coverartimage.py index 454c6abdb..3e79ced63 100644 --- a/picard/coverartimage.py +++ b/picard/coverartimage.py @@ -124,6 +124,11 @@ class CoverArtImage: self.types = types self.comment = comment self.datahash = None + # thumbnail is used to link to another CoverArtImage, ie. for PDFs + self.thumbnail = None + self.can_be_saved_to_tags = True + self.can_be_saved_to_disk = True + self.can_be_saved_to_metadata = True if data is not None: self.set_data(data) @@ -150,6 +155,9 @@ class CoverArtImage: - if `support_types` is False, default to True for any image - if `support_types` is True, default to False for any image """ + if not self.can_be_saved_to_metadata: + # ignore thumbnails + return False if self.is_front is not None: return self.is_front if u'front' in self.types: @@ -246,6 +254,8 @@ class CoverArtImage: :counters: A dictionary mapping filenames to the amount of how many images with that filename were already saved in `dirname`. """ + if not self.can_be_saved_to_disk: + return if config.setting["caa_image_type_as_filename"]: filename = self.maintype log.debug("Make cover filename from types: %r -> %r", @@ -317,6 +327,8 @@ class CoverArtImage: class CaaCoverArtImage(CoverArtImage): + """Image from Cover Art Archive""" + support_types = True sourceprefix = u"CAA" @@ -324,13 +336,26 @@ class CaaCoverArtImage(CoverArtImage): CoverArtImage.__init__(self, url=url, types=types, comment=comment, data=data) self.is_front = is_front - # thumbnail is used to link to another CaaCoverArtImage, ie. for PDFs - self.thumbnail = None - # is_thumbnail set to True prevents the image to be added to metadata - self.is_thumbnail = False + + +class CaaThumbnailCoverArtImage(CaaCoverArtImage): + + """Used for thumbnails of CaaCoverArtImage objects, together with thumbnail + property""" + + def __init__(self, url, types=[], is_front=False, comment='', data=None): + CaaCoverArtImage.__init__(self, url=url, types=types, comment=comment, + data=data) + self.is_front = False + self.can_be_saved_to_disk = False + self.can_be_saved_to_tags = False + self.can_be_saved_to_metadata = False + class TagCoverArtImage(CoverArtImage): + """Image from file tags""" + def __init__(self, file, tag=None, types=[], is_front=None, support_types=False, comment='', data=None): CoverArtImage.__init__(self, url=None, types=types, comment=comment, diff --git a/picard/coverartproviders/caa.py b/picard/coverartproviders/caa.py index b5872ee1d..a3140e2b6 100644 --- a/picard/coverartproviders/caa.py +++ b/picard/coverartproviders/caa.py @@ -27,7 +27,7 @@ import traceback from picard import config, log from picard.const import CAA_HOST, CAA_PORT from picard.coverartproviders import CoverArtProvider -from picard.coverartimage import CaaCoverArtImage +from picard.coverartimage import CaaCoverArtImage, CaaThumbnailCoverArtImage _CAA_THUMBNAIL_SIZE_MAP = { @@ -158,17 +158,19 @@ class CoverArtProviderCaa(CoverArtProvider): is_front=image['front'], comment=image["comment"], ) - self.queue_put(coverartimage) if is_pdf: - url = image["thumbnails"]['small'] - thumbnail = CaaCoverArtImage( - url, + # thumbnail will be used to "display" PDF in info + # dialog + thumbnail = CaaThumbnailCoverArtImage( + url=image["thumbnails"]['small'], types=image["types"], is_front=image['front'], comment=image["comment"], ) - thumbnail.is_thumbnail = True self.queue_put(thumbnail) coverartimage.thumbnail = thumbnail + # PDFs cannot be saved to tags (as 2014/05/29) + coverartimage.can_be_saved_to_tags = False + self.queue_put(coverartimage) self.next_in_queue() diff --git a/picard/ui/infodialog.py b/picard/ui/infodialog.py index 458034003..cf64a3962 100644 --- a/picard/ui/infodialog.py +++ b/picard/ui/infodialog.py @@ -54,13 +54,13 @@ class InfoDialog(PicardDialog): for image in images: data = None try: - if image.mimetype not in ('application/pdf'): - data = image.data - elif image.thumbnail: + if image.thumbnail: try: data = image.thumbnail.data except: pass + else: + data = image.data except (OSError, IOError) as e: log.error(traceback.format_exc()) continue From f544a4f44fccbd4cda2ad9a415f51f166cd63f26 Mon Sep 17 00:00:00 2001 From: Laurent Monin Date: Thu, 29 May 2014 09:13:26 +0200 Subject: [PATCH 210/212] Eventually raise CoverArtImageIOError when getting CoverArtImage.data --- picard/coverartimage.py | 9 ++++++--- picard/ui/infodialog.py | 6 ++++-- 2 files changed, 10 insertions(+), 5 deletions(-) diff --git a/picard/coverartimage.py b/picard/coverartimage.py index 3e79ced63..735d450e6 100644 --- a/picard/coverartimage.py +++ b/picard/coverartimage.py @@ -304,10 +304,13 @@ class CoverArtImage: @property def data(self): - """Reads the data from the temporary file created for this image. May - raise IOErrors or OSErrors. + """Reads the data from the temporary file created for this image. + May raise CoverArtImageIOError """ - return self.datahash.data + try: + return self.datahash.data + except (OSError, IOError) as e: + raise CoverArtImageIOError(e) @property def tempfile_filename(self): diff --git a/picard/ui/infodialog.py b/picard/ui/infodialog.py index cf64a3962..0c5d24e47 100644 --- a/picard/ui/infodialog.py +++ b/picard/ui/infodialog.py @@ -23,6 +23,7 @@ import traceback from PyQt4 import QtGui, QtCore from picard import log from picard.coverartarchive import translate_caa_type +from picard.coverartimage import CoverArtImageIOError from picard.util import format_time, encode_filename, bytes2human from picard.ui import PicardDialog from picard.ui.ui_infodialog import Ui_InfoDialog @@ -57,11 +58,12 @@ class InfoDialog(PicardDialog): if image.thumbnail: try: data = image.thumbnail.data - except: + except CoverArtImageIOError as e: + log.warning(unicode(e)) pass else: data = image.data - except (OSError, IOError) as e: + except CoverArtImageIOError: log.error(traceback.format_exc()) continue item = QtGui.QListWidgetItem() From 853e7e9bb559767006e3c984a235e2cf39136ee5 Mon Sep 17 00:00:00 2001 From: Laurent Monin Date: Thu, 29 May 2014 09:30:18 +0200 Subject: [PATCH 211/212] images_to_be_saved_to_tags(): use can_be_saved_to_tags property --- picard/metadata.py | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/picard/metadata.py b/picard/metadata.py index 9fe966e18..fb5e880c0 100644 --- a/picard/metadata.py +++ b/picard/metadata.py @@ -41,7 +41,6 @@ class Metadata(dict): ('totaltracks', 5), ] - __coverart_tags_mimetypes = ('image/jpeg', 'image/png') multi_valued_joiner = MULTI_VALUED_JOINER def __init__(self): @@ -56,9 +55,7 @@ class Metadata(dict): def images_to_be_saved_to_tags(self): if not config.setting["save_images_to_tags"]: return () - # ignore images with a mime type that can't be saved to tags - images = [img for img in self.images if img.mimetype in - self.__coverart_tags_mimetypes] + images = [img for img in self.images if img.can_be_saved_to_tags] if config.setting["save_only_front_images_to_tags"]: # FIXME : rename option at some point # Embed only ONE front image From 094094b1dd3b8a845df6270a84faff821a00da90 Mon Sep 17 00:00:00 2001 From: Wieland Hoffmann Date: Sun, 1 Jun 2014 10:40:25 +0200 Subject: [PATCH 212/212] Add coverartproviders to the package list --- setup.py | 1 + 1 file changed, 1 insertion(+) diff --git a/setup.py b/setup.py index 45aef7f19..e0ff1a47c 100755 --- a/setup.py +++ b/setup.py @@ -625,6 +625,7 @@ args2 = { 'url': 'http://musicbrainz.org/doc/MusicBrainz_Picard', 'package_dir': {'picard': 'picard'}, 'packages': ('picard', 'picard.browser', + 'picard.coverartproviders', 'picard.plugins', 'picard.formats', 'picard.formats.mutagenext', 'picard.ui', 'picard.ui.options', 'picard.util'),